boot.s is loaded at 0x7c00 by the bios startup routines and moves itself out of the way to address 0x90000, and jumps there.It then loads the system at 0x10000, using BIOS interrupts. Thereafter it disables all interrupts,moves the system down to 0x0000 , changes to protected mode and calls the start of system. The system then should reinitialize the protected mode in it's own tables, and enables interrupts as needed.
Notes Practice
boot.s (copy) 0.01 kernel size and paging
currently system is atmost 8*65536 bytes long. This should be no problem even in the future. I want to keep it simple.This 512 size kernel kB kernel size should be enough - infact more would mean we should have to move not just these startup routines, but also do something about the cache memory(block I/O devices.the area left over in the lower 640kB is meant for these.No oher memory is assumed to be "physical", ie all memory above 1Mb is demand paging. All addresses under 1Mb are guaranteed to match their physical addresses.