Segmentation understanding problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

I'm reading "Understanding the Linux Kernel - 2nd Edition" and have some
problems with Chapter 2 - memory addressing.

1) Segmentation: Each time a logical address is loaded into a segmentation
register, the corresponding segment descriptor is loaded into a
non-programmable register. The segment descriptor tells me the linear
start address of the segment. 

"Accesses to the GDT or LDT are necessary only when the contents of the
segmentation register change". When does this situation appears? I mean
if I have another logical address it is loaded into the segmentation
register and the corresponding segment descriptor is loaded
automatically. Why should I change the segmentation register which
contains the segment selector? Could you provide some examples?


2) Is it correct that without segments I could not provide privilege levels
(user=3, kernel=0) ? If I haven't overseen anything, there are no flags
in the paging entries.

3) "The 2.4 version of Linux uses segmentation only when required by the
80x86 architecture. In particular, all processes use the same logical
addresses, so the total number of segments to be defined is quite
limited". Why?

4) I haven't coded in the kernel. But if I have an address (e.g. from a
malloc() return value), what kind of address is this? A 32-bit linear
address, a 48-bit logical address? I do not understand where the 48-bit
addresses are "created" which one needs for segments... 

I'm a bit confused with the whole paging / segmentation stuff, perhaps
you can help me a bit. Do you have some recommendations (links, books)?

Thanks in advance
Andreas


-- 
  ^^^    | Andreas Leppert
d(O_o)b  | GPG/PGP-Key-ID: 0x4845F397
 >-|-<   | GPG/PGP-Finger: E3C0 8438 6F0C 2D02 5E0C
  / \    |                 0306 E847 964A 4845 F397 
         | 
         | 

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux