[ Pobierz całość w formacie PDF ]
.(Zatem mo¿na napisaæ program, któryprzeczyta³by sam siebie, pomimo, ¿e by³by nie do odczytania - warunek -trzeba w nim zawrzeæ w³asny kod, który to zrealizuje - dlatego piszê NAPISAÆ,zatem raczej nieprzydatne do w³amañ.(a i tak nie za bardzo))Rejestr CR3 po wykonaniu prze³±czenia zadañ zostaje wczytany z danegosegmentu TSS, w tym rejestrze znajduje siê w³a¶nie adres katalogu tablicystron danego procesu.deskryptory segmentow TSS sa w tablicy GDT(kazdy proces oddzielnie).W tablicy GDT sa jeszcze 4 istotne deksryptory - dwa dla jadra (kod,dane),dwa wspolne dla wszystkich procesow (kod dane).W GDT moga sie znalezc jescze nadprogramowo w wyjatkowych sytuacjach wpisydeskrytpory segmentow przeznaczonych na LDT czyli lokalna tablicedeksryptorow, w przypadku programow typu WINE (emulator W3.11/W95) czy DOSEMU(wykonawca DOS).Wlasciwa obrobka pamieci procesow najczê¶ciej zaczyna siê dopiero napoziomie stronicowania (poza np.Wine/DOSemu - jw.) - procesy maj±bowiem ró¿ne katalogi tablic/tablice/strony fizyczne, byæ mo¿e czêsciowowspólne (kod lub SHM).Jednak to jest poza mechanizmem segmentacji (twórcylinuxa, jak ju¿ zaznaczy³em, pominêli milczeniem rozbudowane mo¿liwo¶ciochrony/rekalkulacji adresu na poziomie segmentacji, a zatem i ja pomijamje w swym opisie.)przypis: Mog± one byæ ze wzglêdu na ilo¶æ (4 warstwy ochronyz kontrol± przej¶æ miêdzy warstwami) zapewne przydatne do konstrukcji systemówopartych o ideê mikroj±dra (jednak idea ta ze wzglêdu na malej±c± cenêpamiêci staje siê nieaktualna, z drugiej strony wygodniej jest podzieliæsystem na kilka niezale¿nych warstw coraz bardziej niezale¿nych od sprzêtu)BibliografiaPliki ¼rod³owe:mm/memory.cmm/vm_area???.carch/i386/kernel/entry.Sarch/i386/kernel/*.S- ??? --- !!! patrz stronicowanie !!!>include/asmi386/mm.hinclude/asmi386/shed.hinclude/asmi386/pgtable.hKernel Hacker's Guide - Linux Memory Managementintel military i486 family spec.Pytania i odpowiedziCo, gdy ten sam adres - kodu i danych?Takiej sytuacji chyba nie ma.Zgodnie z KHG - wirtualne warto¶ci adresów kodu i danych s± roz³±czne.Kod, to domy¶lnie segment (selektor) z rejestru CS, a dane DS, zatemmog± byæ inne, choæ w praktyce chyba te same.Autor: Jaros³aw ¦lebocki
[ Pobierz całość w formacie PDF ]