## 2. System overview.

## 2.1 The standard hal91 booting sequence

1. ldlinux, loads from the msdos disk,
2. the kernel /vmlinuz and the core image /initrd.gz is loaded into memory
3. the linux kernel boots up
4. the filesystem is unpacked
5. linuxrc(in /initrd.gz) runs the script /hal91.ini on the device defined in /syslinux.cfg (defualts to /dev/fd0, the floppy)

## 2.2 The core file system

The core system, located in the file /initrd.gz on the disk contains only the most vital files to get an linux system up running. Most probably you don't want to change anything in here. The contents are as follows:

/linuxrc

  this shellscript is started by the kernel when the system boots.

- /dev/ system device filesconsole, systty, tty1..8 - for the virtual consoles
- cua0, cua1 - for mouse/modem
- fd0, hda(1..4), hdb(1..4), hdc..,hdd,sda(1..4) - storage media
- ram(1..4) ramdisk
- zero, null bytebuckets

/lib/

  libraries needed by binaries

- ld-linux.so.1 - needed to load programs
- libc.so.5, libm.so.5 - standard dynamic c libraries,.. to reduce binary sizes
- libtermcap.so.2(.0.8) - needed by bash for terminal handling

/proc/

  neccity

/etc/

  configuration directory + ld.so.cache - to make dynamic libraries work + mtab@ - a link to /proc/mounts to keep track of mounted filesystems

/mnt/tmp/

  mountpoint for temporary use

/bin/

  binaries

- bash, @sh - my favourite shell, can't live without it
- @bunzip2, bzip2, @gunzip, gzip, tar - to handle compressed files
- cat + chmod - smaller than cp.. for initialization
- mount, umount - to be able to mount/unmount other filesystems

## 2.3 The /linuxrc file

The /linuxrc file performs the following tasks at boot-time:

1. mounts /proc/
2. mounts the device defined as root by syslinux, loadlin or lilo under /mnt/tmp/
3. If it finds a file /mnt/tmp/hal91.ini it duplicates it to /hal91.ini and transfers control to it. If it is unable to mount the device, or /mnt/tmp/hal91.ini can't be found you are dumped to an minimal bash shell.