delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/11/08/05:33:12

Message-Id: <199911080728.JAA15875@ankara.Foo.COM>
From: "S. M. Halloran" <mitch AT duzen DOT com DOT tr>
Organization: User RFC 822- and 1123-compliant
To: djgpp AT delorie DOT com
Date: Mon, 8 Nov 1999 09:33:25 +0200
MIME-Version: 1.0
Subject: Re: memory
CC: djgpp AT delorie DOT com
References: <38235938 DOT 2C67 AT radar DOT mcgill DOT ca>
In-reply-to: <Pine.SUN.3.91.991107172620.12805f-100000@is>
X-mailer: Pegasus Mail for Win32 (v3.12)
Reply-To: djgpp AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019