To view parent comment, click here.
To read all comments associated with this story, please click here.
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.
I agree that real mode is perhaps better to use when starting out, but to call 16-bit real mode assembly 'quite simple' is a bit of an overstatement, with its total non-ortogonalness and weird memory layout. Yes, some asm must be learned to get the thing to boot etc., but a higher level language like C is really better to use as a teaching instrument, to hide all this crappy IA16 stuff.
JAL
It's what you make of it. Yes, 16-bit real mode memory management is hideous, but MikeOS avoids that completely by residing in a single 64K segment. The code never ventures outside that, so we can forget the memory complications.
And yes, x86 asm isn't as nice as, say, ARM, but the code is mostly movs, cmps and jmps, so it's not doing anything really obscure.
you do have to write your own drivers in pmode but staying with the bios, you lose mouse, cdrom, networking, sound, hard drive size restrictions, etc.
the originaly minix 16bit is probably the better educational os out there.
for a 16bit os, you can write it all in c with no asm since you dont need to deal with GDT or anything. you dont even need to write a bootsector you can re-use any old PC boot sector and just rename your os kernel to be IO.SYS on the root of a fat12/fat16 partition.
you make some easy wins really hard. and a 486 requirement for a 16bit os is overkill. a plain old 286 would suffice.







Member since:
2007-09-17
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.