The finished Image file consists of the boot sector, setup code, and kernel
concatenated together. Each is rounded up to a multiple of 512 bytes (i.e.
starts on a fresh sector)

	Sector 1:	boot sector
	Sector 2..n:	setup
	Sector n+1..m:	kernel

Note that sectors are counted from 1 but tracks from 0, just to be
confusing :-)

BOOT SECTOR:

arch/i86/boot/
bootsect.S	(first 512 bytes on disk; loaded by the PC's BIOS at BOOTSEG:0 (0x07C0:0))
		moves itself to INITSEG:0 (0x100:0) and jumps to INITSEG:go
		loads setup.S at INITSEG:0x200 (= INITSEG+0x20:0 = 0120:0)
		loads kernel at SYSSEG:0 (1000:0)
		jumps to setup.S (INITSEG+0x20:0)

SETUP CODE:

setup.S		gets some system params, stores them over the boot block
		sets up code and data segments for kernel
		jumps to SYSSEG+2:3 (1002:3)

(Note: .S files are preprocessed to .s before being assembled)

KERNEL:

crt0.s		(This module must be linked first. Because the
		kernel is loaded at SYSSEG:0, and there's a 32-byte
		a.out header, that makes the kernel start SYSSEG+2:0)
		puts parameters passed on stack from setup into global
		  storage, calls arch_boot and start_kernel
crt1.c		arch_boot, just wipes the bss
init/main.c	start_kernel, immediately calls...
arch/i86/kernel/
system.c	setup_arch. Stores initial settings into arch_segs
.		(which doesn't appear to be used elsewhere)
.
arch/i86/mm/
init.c		init memory manager, uses info which setup stored over
		the boot block (INITSEG:0)

----------------------------------------------------------------------------
The boot sector contains some parameters at the end:

(0x1ef)495,496   Segment for setup.S			(SETUPSEG)
(0x1f1)497      *number of sectors in setup.S		(SETUPSECS)
(0x1f2)498,499   root_flags				(ROOTFLAGS)
(0x1f4)500,501  *size of kernel in 16-byte chunks	(SYSSIZE)
(0x1f6)502,503   swap device				(SWAP_DEV)
(0x1f8)504,505   ramdisk size				(RAMDISK)
(0x1fa)506,507   video mode				(SVGA_MODE)
(0x1fc)508,509  *root device				(ROOT_DEV)
(0x1fe)510,511   constant flag 0xAA55

*patched by arch/i86/tools/build when the kernel is being built.
Only 497, 500,501 and 508,509 are used at present.
