Linked by Thom Holwerda on Sun 16th Sep 2007 20:39 UTC, submitted by M-Saunders
OSNews, Generic OSes MikeOS 1.0 has been released. It is an open source PC operating system, designed as a tutor for basic OS design and x86 assembly language. "MikeOS is a 16-bit operating system for x86 PCs, written in assembly language, which boots from a floppy disk or CD-ROM. It features a text-based dialog-driven user interface, a command-line, support for FAT12 (DOS) floppies and PC speaker sound. It can load external programs and has over 30 system calls. Basic DOS .COM program support is also included." This version includes a complete Handbook with a whole section on writing your own OS.
Thread beginning with comment 271856
To read all comments associated with this story, please click here.
Sounds interesting.
by rcsteiner on Mon 17th Sep 2007 02:13 UTC
rcsteiner
Member since:
2005-07-12

An OS acting as a teaching tool siunds like a good idea. Look at what Minix ended up doing ... Linux used its filesystem to help develop a kernel of his own. If MikeOS helps to light a similar spark someday, many people will benefit.

Browser: Links (1.00pre17; Linux 2.6.16.27-omap1 armv5tejl; 79x18)

Reply Score: 2

RE: Sounds interesting.
by dbolgheroni on Mon 17th Sep 2007 04:49 in reply to "Sounds interesting."
dbolgheroni Member since:
2007-01-18

There are a lot of learning OS out there. But it's hard to find a well documented one like this.

Maybe I'm forgetting some (or even don't know), but I think only Minix (with his detailed written book) and now MikeOS (althought it's much simpler than Minix) it's worth to take a look.

Reply Parent Score: 2

RE: Sounds interesting.
by jal_ on Mon 17th Sep 2007 10:43 in reply to "Sounds interesting."
jal_ Member since:
2006-11-02

An OS acting as a teaching tool sounds like a good idea

Yeah, but by writing it in assembly and using IA16 is a bit, well, out of date?


JAL

Reply Parent Score: 1

RE[2]: Sounds interesting.
by M-Saunders on Mon 17th Sep 2007 10:49 in reply to "RE: Sounds interesting."
M-Saunders Member since:
2007-09-17

Yeah, but by writing it in assembly and using IA16 is a bit, well, out of date?


It would be if MikeOS was meant to be a modern, general-purpose operating system. But it's not; it's a learning tool, and 16-bit real mode assembly is quite simple to grasp.

Once you throw in another language, you have to deal with linkers and stubs and it all gets rather messy. Besides, you have to use a bit of assembly to kick-start a kernel anyway, so you can't really avoid it.

Using 32-bit protected mode is a no-no. You lose (easy) access to the BIOS, and therefore have to write your own keyboard/screen drivers etc from scratch. By sticking with 16-bit real mode, the MikeOS code can focus on interesting stuff like loading programs and system calls -- not trying to faff around with the keyboard controller.

Reply Parent Score: 4

RE[2]: Sounds interesting.
by rcsteiner on Mon 17th Sep 2007 16:23 in reply to "RE: Sounds interesting."
rcsteiner Member since:
2005-07-12

Old approaches aren't always bad ones, and assembly language is sometimes an appropriate solution.

If the assembly is well-documented, and it sounds like it might be in this case, then MikeOS could server as a tutorial for x86 assembly use as well as general OS design, and that isn't a bad thing at all in my book.

Reply Parent Score: 2