Live data from Hacker News

How to Write an Operating System

acm.uiuc.edu

21–30 of 59 posts

Re: How to Write an Operating System

#21

Either I'm missing something or this tutorial is seriously lacking. I'd much recommend Tannenbeum's classic text that covers implementing Minix: http://www.amazon.com/Operating-Systems-Implementation-Prent... But since this text is rather old, it doesn't have some of the later developments in OS. So for that additional material, I'd recommend his latest book to have at your side: http://www.amazon.com/Modern-Operatin…

Actually, I'd recommend the latest version of OSDI, which is fairly recent, and contains the complete source for MINIX3 (in text form, and on CD): http://www.amazon.com/Operating-Systems-Design-Implementatio...

So Tanenbaum has two OS textbooks in print? How different are they? Why read one rather than the other?

Re: How to Write an Operating System

#22

Some hobby OSes: http://f2.fasm4u.net/hyos.html http://softwarewizard.dk/mojo http://mikeos.berlios.de http://www.ctpp.co.uk/chaos http://www.returninfinity.com/baremetal.html http://mythago.net/enthflux.html A kernel development tutorial: http://www.jamesmolloy.co.uk/tutorial_html/index.html

There's also LoseThos (http://www.losethos.com/), although it's a bit on the eccentric side.

Re: How to Write an Operating System

#24
post #14

I used XINU to study OS course: http://en.wikipedia.org/wiki/Xinu Xinu is a small, elegant, multitasking Operating System supporting the following features: * Concurrent Processing * Message Passing * Ports * Semaphores * Memory Management * Buffer Pools * Uniform Device I/O * Shell * Tcl * TCP/IP Xinu was originally designed as a vehicle for teaching Operating System design concepts and is used by many educational i…

Interesting project, but it's name sounds too much like Xenu: http://en.wikipedia.org/wiki/Xenu .

Aliens had much more advanced operating systems 75 million years ago. Imagine which operating systems they have NOW! :-)

Re: How to Write an Operating System

#25

I used XINU to study OS course: http://en.wikipedia.org/wiki/Xinu Xinu is a small, elegant, multitasking Operating System supporting the following features: * Concurrent Processing * Message Passing * Ports * Semaphores * Memory Management * Buffer Pools * Uniform Device I/O * Shell * Tcl * TCP/IP Xinu was originally designed as a vehicle for teaching Operating System design concepts and is used by many educational i…

I also used Xinu in my O/S course. I'll mention that one of Doug Comer's (http://www.wikipedia.org/wiki/Douglas_Comer) intentions with Xinu was to purposefully make a different design decision than Unix when pedagogically relevant. For example, instead of treating everything like a file (Unix/Linux) everything is treated like a device.

Its various iterations over the year do not necessarily remain true to that principle, but it is something different about the O/S.

Re: How to Write an Operating System

#26
I implemented my own timesharing kernel in C and little inline x86 assembler.

Main ideas:

1. Write context switch routine, which will require a little inline x86 assembler code.

2. Map it to timer interrupt.

3. Use C setjmp and longjmp to switch context.

Re: How to Write an Operating System

#27
post #9
post #4

See, this is why I dream of making FU money. So I can spend all my time doing stuff like that.

Makes me wonder, can I make that money doing stuff like this? I know systems research is irrelevant and all that (Rob Pike)... AFAIK the last successful operating systems startup was VMware (is that true?). Does the world have place for more OS startups these days?

I don't know about OS research specifically but there are a few systems startups about. RethinkDB and Acunu are the first to come to mind.

Re: How to Write an Operating System

#28
post #21

Earlier quoted context omitted.

Actually, I'd recommend the latest version of OSDI, which is fairly recent, and contains the complete source for MINIX3 (in text form, and on CD): http://www.amazon.com/Operating-Systems-Design-Implementatio...

So Tanenbaum has two OS textbooks in print? How different are they? Why read one rather than the other?

OSDI is "the MINIX book". It shows, about as much detail as possible, how a microkernel-based OS is written, down to the actual (complete) source code.

Modern Operating Systems, on the other hand, is a bit higher level (but still fairly nitty-gritty) and examines two monolithic kernels (Linux/Unix and Windows) as case studies.

Re: How to Write an Operating System

#29
post #14

I used XINU to study OS course: http://en.wikipedia.org/wiki/Xinu Xinu is a small, elegant, multitasking Operating System supporting the following features: * Concurrent Processing * Message Passing * Ports * Semaphores * Memory Management * Buffer Pools * Uniform Device I/O * Shell * Tcl * TCP/IP Xinu was originally designed as a vehicle for teaching Operating System design concepts and is used by many educational i…

Interesting project, but it's name sounds too much like Xenu: http://en.wikipedia.org/wiki/Xenu .

You say that like it's a bad thing. ;-)

Re: How to Write an Operating System

#30

Either I'm missing something or this tutorial is seriously lacking. I'd much recommend Tannenbeum's classic text that covers implementing Minix: http://www.amazon.com/Operating-Systems-Implementation-Prent... But since this text is rather old, it doesn't have some of the later developments in OS. So for that additional material, I'd recommend his latest book to have at your side: http://www.amazon.com/Modern-Operatin…

The tutorial certainly lacks any emphasis on security. It ought to be mentioned right up front. Does the choice of development environment matter? Say so!!! Trying to add security after the fact is painful and tends to be only marginally successful.
Post reply on HN