mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Paolo Ornati <javaman@katamail.com>
Cc: herbert@13thfloor.at, linux-kernel@vger.kernel.org
Subject: Re: [OT] Documentation for PC Architecture
Date: Tue, 19 Aug 2003 01:53:45 +0100	[thread overview]
Message-ID: <20030819005345.GD11081@mail.jlokier.co.uk> (raw)
In-Reply-To: <200308182244.01727.javaman@katamail.com>

Paolo Ornati wrote:
> So I THINK YOU mean: "you can use more than 640KB in real mode using a memory 
> manager that "remap" 0xC0000 (for example) to 0x100000 or something like it"

As with all things PC, you cannot easily tell what RAM address it is
mapped to, but yes, it is remapped somewhere by the memory controller
so that it isn't wasted.

Perhaps on machines with lots of RAM this isn't done any more.

Also, these days there are other regions of RAM which you cannot see,
because they are only available to the BIOS, when the CPU is in SMM
mode :)

Your larger question, about how addresses are matched by the hardware,
is a complex one and it is different on different PC systems.  That is
some 20 years of computing history; it has changed a lot even though
many of the old programming methods continue to be supported.

Your best bet is to learn about PCI, PCI configuration space, PCI
transactions, PCI bridges and additive/subtractive decoding,
northbridge and southbridge chipsets (just what they are), PCI to ISA
bridge, legacy I/O controller (what provides most of the ISA space I/O
ports), AGP and GART, MTRR registers, and get some idea of how the
L1/L2/L3 cache hierarchy works.

And of course read all the big x86 manuals from developer.intel.com :-)

Your other large question, How does a PC work?, is huge because there
is much variety.  For example, on every other architecture in the
world, interrupts are quite simple, easy to program and easy to
understand.  On a modern PC they are extraordinarily complicated, to
the point where even the top kernel developers are still changing the
code, year on year, to workaround new surprises in different PCs.  As
you see, there is no readily available answer to your question
that is definitive for all the PCs out there.  Unfortunately.

-- Jamie

  parent reply	other threads:[~2003-08-19  0:53 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-18  9:27 Paolo Ornati
2003-08-18 18:55 ` Herbert Pötzl
2003-08-18 21:11   ` Paolo Ornati
2003-08-18 22:54     ` Herbert Pötzl
2003-08-19  1:02       ` Jamie Lokier
2003-08-18 16:34         ` Nagendra Singh Tomar
2003-08-19 16:30           ` Jamie Lokier
2003-08-19  8:01         ` Paolo Ornati
2003-08-19 15:23         ` Krzysztof Halasa
2003-08-19  0:53     ` Jamie Lokier [this message]
2003-08-18 10:14 John Bradford
2003-08-18 11:24 ` Paolo Ornati
2003-08-19  7:37 John Bradford
2003-08-19 11:48 ` Maciej W. Rozycki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030819005345.GD11081@mail.jlokier.co.uk \
    --to=jamie@shareable.org \
    --cc=herbert@13thfloor.at \
    --cc=javaman@katamail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®