001
002 SOS: A Simple Operating System
003
004 Compilation/Installation/Test instructions
005
006
007 Compilation
008 ===========
009
010 IMPORTANT
011 ---------
012
013 Don't forget to run 'make clean' before 'make' after you have modified
014 any source or header file(s).
015
016
017 On a x86 host where grub is correctly installed
018 -----------------------------------------------
019
020 Simply run 'make'
021
022
023 On a non-x86 host (without grub of course !)
024 --------------------------------------------
025
026 See extra/README
027
028
029 On an x86 host without Grub, or with a buggy Grub
030 -------------------------------------------------
031
032 See extra/README
033
034 How do I know I have a buggy grub installation ? Answer: in the qemu
035 PC emulator, Grub hangs while loading the kernel
036
037
038 Installation
039 ============
040
041 Nothing special to do besides compiling
042
043
044 Test the SOS Kernel
045 ===================
046
047 On a x86 real machine with Grub installed
048 -----------------------------------------
049
050 1st method
051 => Boot the sos.elf file (append 'kernel=<path_to>sos.elf' in the
052 menu.lst or type it on Grub's command line) from a hard disk, a
053 floppy, or from the network
054
055 2nd method
056 => Copy the file 'fd.img' to a floppy and boot from it
057
058
059 On a x86 real machine without Grub installed
060 --------------------------------------------
061
062 1st method
063 => see extra/README to compile with the grub floppy image we provide,
064 copy the file 'fd.img' to a floppy, and boot from it
065
066 2nd method
067 => see extra/README to compile with the boot sector we provide (up to
068 article 2 only), copy the file 'extra/sos_bsect.img' to a floppy,
069 and boot from it
070
071
072 Inside a PC emulator (x86 and non-x86 hosts)
073 --------------------------------------------
074
075 Tested on both the bochs emulator (x86/linux, sparc/solaris and
076 ppc/linux hosts, 'apt-get install bochs-x vgabios' on debian
077 testing/unstable), and the qemu system emulator (with libsdl
078 installed: 'apt-get install libsdl1.2-dev' on debian
079 testing/unstable).
080
081 1/ Grub is installed on the host (x86 hosts only)
082 - - - - - - - - - - - - - - - - - - - - - - - - -
083
084 bochs: boot from the file 'fd.img'. Example of a ~/.bochsrc:
085 floppya: 1_44=/home/d2/sos/fd.img, status=inserted
086 romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
087 vgaromimage: /usr/share/vgabios/vgabios.bin
088 megs:63 # 63 Mo de RAM
089
090 qemu: run 'qemu -fda fd.img'
091 If grub hangs while loading the kernel, please go to method 2/
092
093 2/ Grub is not installed (all hosts)
094 - - - - - - - - - - - - - - - - - -
095
096 See extra/README to generate a floppy image with the Grub floppy
097 image we provide, and:
098
099 bochs: boot from the file 'fd.img'
100
101 qemu: run 'qemu -fda fd.img'
102
103 3/ Bonus: boot with the bootsector we provide (all hosts, up to art. 2 ONLY !)
104 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
105
106 See extra/README to generate a floppy image with the boot sector we
107 provide, and:
108
109 bochs: boot from the file 'extra/sos_bsect.img'
110
111 qemu: run 'qemu -fda extra/sos_qemu.img'
112
113 NOTE: After article 2, this way of booting is not supported: please
114 use the method 2/ above.
115
116
117 NOTE : recommended versions of the tools
118 ----------------------------------------
119 - OS : Linux 2.6.11.7-d2-1 i686
120 - gcc : gcc (GCC) 3.3.5 (Debian 1:3.3.5-8)
121 - GNU binutils : GNU ld version 2.15
122 - GNU make : GNU Make 3.80
123
124 Also tested with (on ppc/debian host):
125 - OS : Linux 2.6.10-powerpc ppc
126 - gcc : gcc (GCC) 3.2.2
127 - GNU binutils : GNU ld version 2.13.2
128 - GNU make : GNU Make 3.80
129
130 --
131 David Decotigny