From: Patrick Schaaf (bof@bellona.wg.saar.de)
Date: 06/18/93


From: bof@bellona.wg.saar.de (Patrick Schaaf)
Subject: Re: **** Protection ****
Date: Fri, 18 Jun 1993 12:33:19 GMT

iiitac@swan.pyr (Alan Cox) writes:
>In other words Linux is generating tiny model 80386 programs. With
>segment registers you can address a selection of 32 bit address
>spaces - I wonder how long it will be till you need large model
>32 bit programs.

Well, the kernel itself is kind of a large model program. From a user
process view, the kernel resides somewhere at 0xc0000000, but while
the kernel runs on behalf of a user process, it thinks it runs at offset 0;
the kernel CS and DS start at 0xc0000000. User data is available via
the FS segment.

BTW, segmentation doesn't really buy you a larger virtual address space on
the x86; segments map to a 32bit linear address space.
So segments are merely a different view into the same address space.
To manage a bigger address space you have to play with page tables, not
with segments, but doing so kills the TLB on every task switch (unless
optimized for i486/INVLPG).

Anyway; x86 segments (where x>2) are not neccessarily a backward kludge only;
at least they are good to simulate offset 0 address spaces.

just my 2 rubber ningis...

Patrick

-- 
# I am a proactively moderating .signature.  Copy me to your killfile.
:!n=:Richard E. Depew