157 lines
4.1 KiB
Plaintext
157 lines
4.1 KiB
Plaintext
|
|
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=<path_to>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
|