{B,C}LFS State of Things (was Re: SVN-20070706: ...)

Bruce Dubbs bruce.dubbs at gmail.com
Sat Jul 21 09:14:29 PDT 2007

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

More information about the lfs-dev mailing list