This doc presents the steps needed to generate a boot disk for ModulOS. If you want an already made boot disk, see the download page.
Currently ModulOS only supports the ext2 file system. So the boot disk must have this file system.
All steps must be executed on a linux box.
1 - Make an ext2 filesystem in the floppy disk. For instance:
$ mke2fs /dev/fd0
2 - Mount the floppy disk on a dir. For instance:
$ mount /dev/fd0 /a
3 - Create system/modules, system/config and lib dirs on the floppy. For instance:
$ mkdir -p /a/system/modules /a/system/config /a/lib
4 - Copy all system modules to system/modules dir. It should have something like this:
at_video.mod chipset.mod intermanager.mod kbdlus.mod rexecmodfile.mod taskmanager.mod avltree_in.mod ext2fs.mod intmanager.mod kbdlusintl.mod rlibmodfile.mod usermodmanager.mod blockbuffer.mod fdcontroller.mod ioportmanager.mod manip.mod rsysmodfile.mod cfgmanager.mod fsmanager.mod kbd_generic.mod memmanager.mod sysmodmanager.mod
5 - Copy all library modules to lib dir. It should have something like this:
exception.mod manip.mod memmanager.mod sync.mod
6 - Copy the starter file and ls.mod and shell.mod programs to the root of the floppy. It should have something like this:
lib lost+found ls.mod shell.mod starter system
7 - Create the system.cfg file in the system/config dir with this:
[SysModManager] modules { at_video { path=/system/modules/at_video.mod prop=0x5 } avltree_in { path=/system/modules/avltree_in.mod prop=0x5 } blockbuffer { path=/system/modules/blockbuffer.mod prop=0x5 } cfgmanager { path=/system/modules/cfgmanager.mod prop=0x5 } chipset { path=/system/modules/chipset.mod prop=0x5 } ext2fs { path=/system/modules/ext2fs.mod prop=0x5 } fdcontroller { path=/system/modules/fdcontroller.mod prop=0x5 } fsmanager { path=/system/modules/fsmanager.mod prop=0x5 } intermanager { path=/system/modules/intermanager.mod prop=0x5 } intmanager { path=/system/modules/intmanager.mod prop=0x5 } ioportmanager { path=/system/modules/ioportmanager.mod prop=0x5 } kbd_generic { path=/system/modules/kbd_generic.mod prop=0x1 } kbdlusintl { path=/system/modules/kbdlusintl.mod prop=0x1 } manip { path=/system/modules/manip.mod prop=0x5 } memmanager { path=/system/modules/memmanager.mod prop=0x5 } rexecmodfile { path=/system/modules/rexecmodfile.mod prop=0x5 } rlibmodfile { path=/system/modules/rlibmodfile.mod prop=0x5 } rsysmodfile { path=/system/modules/rsysmodfile.mod prop=0x5 } sysmodmanager { path=/system/modules/sysmodmanager.mod prop=0x7 } taskmanager { path=/system/modules/taskmanager.mod prop=0x5 } usermodmanager { path=/system/modules/usermodmanager.mod prop=0x7 } } [FSManager] root { fsImp=Ext2FS devImp=FDC data= unit=0x0 } [UserModManager] modules { exception { path=/lib/exception.mod } manip { path=/lib/manip.mod } memmanager { path=/lib/memmanager.mod } sync { path=/lib/sync.mod } } init { path=/shell.mod input { keyboard { imp=MF2KBD } } output { video { imp=AT } } }
8 - Unmount the floppy. For instance:
$ umount /a
9 - Make the floppy bootable with the mkext2boot util. For instance:
$ mkext2boot /dev/fd0
That's it! The floppy is a boot disk for ModulOS. You can test this floppy disk with Bochs (bochs.sourceforge.net).