next up previous
Next: Stronicowanie Up: Model pamięci niezależny od Previous: Model pamięci niezależny od

Segmentacja

Linux nie korzysta z segmentacji sprzętowej (koncepcja podzału pamięci procesu na segmenty występuje w Linuxie, jest ona jednak realizowana zupełnie innymi metodami).

Brak segmentów jest implementowany na zorientowanej segmentowo architekturze Intel 80x86 w następujący sposób: 4 segmenty, do których odwołują się wszystkie procesy w systemie, współdzielą między siebie przestrzeń adresową użytkownika i jądra. Są to:

Każdy z segmentów zaczyna się od adresu 0x00000000 i obejmuje całą przestreń adresową.

Prawa dostępu ustawione są tak, by segmenty jądra były dostępne z poziomu jądra, a użytkownika z poziomu użytkownika. Segmenty kody mają prawa odczytu i wykonania, a segmenty danych odczytu i zapisu.

Tłumaczenie adresu logicznego na liniowy jest trywialne: adres liniowy jest równy wartości przesunięcia adresu logicznego.

Potrzebne są 4 segmenty, ponieważ wykorzystuje się 4 komibnacje uprawnień. W szczególności nie potrzeba segmentów stosu, mimo iż występują w architekturze Intela, ponieważ ich uprawnienia są takie jak segmentów danych.

Istnieje jeden wspólny dla wszystkich procesów i nie wykorzystywany segment LDT. Istnieje też funkcja pozwalająca przydzielić procesowi jego własny LDT, co jest przydatne przy emulacji programów MS Windows.


next up previous
Next: Stronicowanie Up: Model pamięci niezależny od Previous: Model pamięci niezależny od
Wojciech Jaworski 2001-12-16