views:

3095

answers:

15

Hi, Let me know how I can create a basic operating system.

What books do you recommend?

+7  A: 
Daok
I just want to point out that Linux wasn't really "based on" Minix, it was intended as a replacement for it. Linux has a monolithic kernel, while Minix is based on a microkernel design.
Bill the Lizard
+24  A: 
Bill the Lizard
I'm reading through this book (second edition) cover-to-cover as we speak and whilst it's a huge book it's incredibly detailed. This and Operating System Concepts by Silberschatz and Galvin are the two best books to pick up knowledge on Operating Systems.
EnderMB
+2  A: 

Os dev website is rich in information if you want to start coding your own OS too,

Daok
A: 

You might want to take a look at Linux from Scratch:

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

Martin Klinke
LFS is a manual that explains how to install Linux compiling everything. Agusti-N is asking how to create his own kernel.
Federico Ramponi
Thanks Federico Ramponi
Agusti-N
There used to be more there in that HOWTO on this subject. If you can find some older versions archived online, you'll get some more relevant information.
skiphoppy
+8  A: 
Daok
Ugly? But the cover is _beautiful_! I love that book because it looks so pretty on my bookshelf.Can't really remember what it's like on the inside, though.
mipadi
Yeah, this is a classic. It's usually referred to as the Dinosaur book. I have it on the couch with my right now actually. This is a good book, it is introductory though. Usually, it is an undergraduate text.
BobbyShaftoe
I've always heard it referred to as The Dino Book and I'll agree that it is an undergraduate textbook.
EnderMB
The dinosaur book!
Joe Philllips
I tried to click to look inside but it didnt work :(
Joe Philllips
+5  A: 

Similar threads on this very site:

PhiLho
A: 

I'd highly recommend taking a look at the MIT Operating Systems class. It's got lots of useful references, and a bunch of lab exercises which you can play around with (including automated grading scripts, so you don't have to be an MIT student to do them).

Adam Rosenfield
A: 

If I remember correctly, the Powerup to Bash Prompt HOWTO contained a lot of information that looked like it would be useful for this. So did older versions of the Linux From Scratch HOWTO, but in recent versions that has been removed.

You'll also find a lot of good information in Understanding the Linux Kernel.

skiphoppy
+5  A: 
Foredecker
A: 

I would recommend looking at embedded operating systems and building an embedded OS. It will deal with the core concepts without the overhead of a modern desktop CPU.

I wrote a multitasking embedded OS last spring as a final project, it's easier than you might think.

Paul Nathan
+1  A: 

Developing Your Own 32-Bit Operating System by Richard A. Burgess. Went into great details about boot loaders, setting up those strange memory and process management registers, etc. It was a great read back in 1996 when i thought i'd take a crack at writing a simple OS from scratch, but may be dated by now, dealing only with the first few generations of Pentium-class CPUs.

DarenW
A: 

You should look into MINIX 3. This is an operating system that was written in, I believe, less than 10,000 lines. You can get a very good idea of how an OS works with the aid of one of Tanenbaum's books and understanding how MINIX 3 works. You could go straight to Linux, but I think this is a useful task and really helps you see how it really doesn't take that many lines to build a working OS.

http://www.minix3.org/

BobbyShaftoe
Just putting it out there... but I think MINIX 1 was < 10,000. MINIX 3 is significantly more complex, thought I don't know how many lines it is.
Austin Kelley Way
A: 

Take a look at HelenOS, which is a from scratch microkernel based OS that aims to be a fully modern OS. Disclamer, I'm a contributor, I'm working on its shell from scratch.

HelenOS has been ported to ia32/64, SPARC, ARM and more, its very well designed and easy to read. Its still in its infancy but shows one possible design that really takes advantage of the microkernel design and solves many issues in a microkernel implementation (such as IPC).

It also includes scripts that automatically set up a proper tool chain needed for cross compiling. Its very easy to build and runs very well in most simulators (i.e. QEMU) or bare metal.

I would also study L4, Minix3 and the GNU HURD (based on Mach), the latter being an illustration of design pitfalls when trying to leverage a microkernel.

If you want to go the monolithic route, just study Linux.

Tim Post
+1  A: 
Tim