SOS: A Simple Operating System Compilation/Installation/Test instructions Compilation =========== IMPORTANT --------- Don't forget to run 'make clean' before 'make' after you have modified any source or header file(s). On a x86 host where grub is correctly installed ----------------------------------------------- Simply run 'make' On a non-x86 host (without grub of course !) -------------------------------------------- See extra/README On an x86 host without Grub, or with a buggy Grub ------------------------------------------------- See extra/README How do I know I have a buggy grub installation ? Answer: in the qemu PC emulator, Grub hangs while loading the kernel Installation ============ Nothing special to do besides compiling Test the SOS Kernel =================== On a x86 real machine with Grub installed ----------------------------------------- 1st method => Boot the sos.elf file (append 'kernel=sos.elf' in the menu.lst or type it on Grub's command line) from a hard disk, a floppy, or from the network 2nd method => Copy the file 'fd.img' to a floppy and boot from it On a x86 real machine without Grub installed -------------------------------------------- 1st method => see extra/README to compile with the grub floppy image we provide, copy the file 'fd.img' to a floppy, and boot from it 2nd method => see extra/README to compile with the boot sector we provide, copy the file 'extra/sos_bsect.img' to a floppy, and boot from it Inside a PC emulator (x86 and non-x86 hosts) -------------------------------------------- Tested on both the bochs emulator (x86/linux, sparc/solaris and ppc/linux hosts, 'apt-get install bochs-x vgabios' on debian testing/unstable), and the qemu system emulator (with libsdl installed: 'apt-get install libsdl1.2-dev' on debian testing/unstable). 1/ Grub is installed on the host (x86 hosts only) - - - - - - - - - - - - - - - - - - - - - - - - - bochs: boot from the file 'fd.img'. Example of a ~/.bochsrc: floppya: 1_44=/home/d2/sos/fd.img, status=inserted romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000 vgaromimage: /usr/share/vgabios/vgabios.bin megs:63 # 63 Mo de RAM qemu: run 'qemu -fda fd.img' If grub hangs while loading the kernel, please go to method 2/ 2/ Grub is not installed (all hosts) - - - - - - - - - - - - - - - - - - See extra/README to generate a floppy image with the Grub floppy image we provide, and: bochs: boot from the file 'fd.img' qemu: run 'qemu -fda fd.img' 3/ Bonus: boot with the bootsector we provide (all hosts) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - See extra/README to generate a floppy image with the boot sector we provide, and: bochs: boot from the file 'extra/sos_bsect.img' qemu: run 'qemu -fda extra/sos_qemu.img' NOTE: This technique assumes that INT 15H is supported by the machine's BIOS. This should be OK for the vast majority of targets (bochs, qemu, recent machines), but we do not guarantee it. In case of doubt, please use Grub. NOTE : recommended versions of the tools ---------------------------------------- Release development platform: - OS : Linux 2.6.14.3 x86_64 - gcc : i586-pc-elf-gcc-4.0.2 (GCC) 4.0.2 - GNU binutils : GNU ld version 2.16 - GNU make : GNU Make 3.80 Usual development platforms known to work: + amd64 (x86_64)/debian sarge: - OS : Linux 2.6.14.3 x86_64 - gcc : i586-pc-elf-gcc-4.0.2 (GCC) 4.0.2 - GNU binutils : GNU ld version 2.16 + x86/debian sarge: - OS : Linux 2.6.11.7-d2-1 i686 - gcc : gcc (GCC) 3.3.6 (Debian 1:3.3.6-5) - GNU binutils : GNU ld version 2.15 + ppc/debian sarge: - OS : Linux 2.6.10-powerpc ppc - gcc : gcc (GCC) 3.2.2 - GNU binutils : GNU ld version 2.13.2 + x86/windows with cygwin (http://sos.enix.org/SOSFaq#TOC_0_2_1): - OS : MS Windows XP Pro SP2 / Cygwin - gcc : gcc 3.4.4 - GNU binutils : GNU ld version 2.16 - GNU make : GNU Make 3.80 -- David Decotigny