Bryan Kadzban wrote: > Right. (Actually I'm not sure you can access more than 1MB of memory > even if you *do* pull your hair out. The memory model is 16-bit > segments and 16-bit offsets, but the physical address mapping is "shift > the segment number by 4 bits and add the offset" -- so the maximum > physical memory is 20 bits' worth, or 1MB. Although I'm not exactly > sure what happens when you try to access FFFF:0010. Physical address > zero? Overflow bit turned on in EFLAGS? Hard lockup? :-P)
It's called extended (not expanded) memory. This was a way to access 1M + 64K - 16 of memory. It is my understanding that many systems use the hardware's BIOS, which is always customized for the specific hardware of the motherboard, to copy from real address space ( < 1M ) to protected address space > 1M. If you look at the detail of the kernel code that starts exactly at the 1M address point. It starts in real mode. It transitions to protected mode, uncompresses the kernel to just above the compressed image, jumps to some very small piece of copy code, copies the uncompressed kernel back to 1M and then jumps back to 1M where the kernel starts initializing hardware, memory structures, etc. -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page