Mail Archives: djgpp/1999/11/08/05:33:12
On 7 Nov 99, Eli Zaretskii was found to have commented thusly:
> On Fri, 5 Nov 1999, Frederic Cazenave wrote:
>
> > What is the difference between dos memory and
> > linear memory?
>
> DOS memory is the part of memory below the 1MB mark. It is also known
> as the ``conventional memory''.
>
> As to ``linear memory'', I don't know what that is. Perhaps if you
> explain in what context did you see that term, I could try guessing
> what does that mean.
He probably means "linear address" instead of "linear memory." Chapter 5
on "Memory Management" of the Intel 386 Programmer's Reference Manual
(published in 1986) references this term. Here are some interesting
excerpts from this chapter:
The 80386 transforms logical addresses (i.e., addresses as viewed by
programmers) into physical address (i.e., actual addresses in physical
memory) in two steps:
* Segment translation, in which a logical address (consisting of a
segment selector and segment offset) are converted to a linear
address.
* Page translation, in which a linear address is converted to a
physical address. This step is optional, at the discretion of
systems-software designers.
1. A *logical* address is the combination of the selector and the offset,
forming a map to a *linear* address. The selector points to the
descriptor, which, among other things, provides the information (base &
limit) to point to the *linear* address in the 4 GB address space.
A *segment translation* is performed: the base given in the descriptor is
added to the offset to give the linear address.
2. That linear address is the *physical address* if paging is not
enabled. Otherwise that linear address is a three-part reference to a
page table (to a directory, then to a page in the directory, then to an
offset in the page), which provides the final resolution of the physical
address.
[....]
Mitch Halloran
Research (Bio)chemist
Duzen Laboratories Group
Ankara TURKEY
- Raw text -