Re: blad ochrony systemu - dlaczego to sie robi??

Autor: Slawek J (slawektepsaNoSpam_at_poczta.onet.pl)
Data: Wed 12 Feb 2003 - 20:13:46 MET


tak ogolnie to NTG ale podaje za Piotrem Palusinskim
z grupy pl.comp.os.ms-windows.win9x
cytuje:
Ochrona systemu Windows jest to temat "rzeka" ,ja w sposob uproszczony
napisze co to jest ochrona....
Z pewnoscia zdarzylo Ci sie (i nieraz jeszcze zdarzy) ujrzec komunikat w
rodzaju "Ten program wykonal nieprawidlowa operacje i nastapi jego
zamkniecie" itd. W wiekszosci przypadkow spowodowane jest to wystapieniem
ogolnego wyjatku ochrony (GPF - General Protection Fault) w ktorej jeden
program odwoluje sie do pamieci nalezacej do innego programu.
Przypuscmy , ze uruchomiles Excela i Worda,kazdy z nich posiada oddzielna
przestrzen pamieci. Z jakiegos powodu Word odwoluje sie do pamieci Excela i
niszczy jego zawartosc,zapisujac jakies swoje dane.
(Jesli to do konca nie jest jasne to wyobras sobie ze ktos przestawi Ci
znajdujace się na biurku rzeczy .Jesli nie zuwazysz ze np.dziurkacz jest w
innym miejscu mozesz przezyc sewgo rodzaju GPF, siegajac po niego i nie
mogac go znalezc).
Exel ma zniszczona strukture ,a Ty nie wiedzac o tym prosisz go o wykonanie
czegos , czego w zwiazku z uszkodzeniem nie moze dobrze zrobic.Program wtedy
generuje jakis wyjatek systemowy informujacy ze jest uszkodzony.Ale zwroc
uwage ze jako bledny program jest tu wymieniany Excel mimo ze to Word
spowodowal klopoty.Tak wiec Excel zglasza GPF , myslisz ze to Execl
spowodowal i zamykasz go. Ale to Word jest tu winowajca i wciaz dziala.

A teaz troche o poziomach ochrony.
W procesorach x86 mozliwe jest nadanie fragmentowi kodu okreslonego poziomu
uprzywilejowania.
Niektorym programom moze byc przypisany poziom 0 , ktory jest najwyszym
poziomem ochrony.Pozostale poziomy to 1,2,3.
Programy pracujace na poziomie 0 moga chronic pamiec w ten sposob ze moga
przydzielac pamiec innym programom i sprawdzac czy inny program nie probuje
naryszyc obszaru poza przydzielona mu pamiecia - takie naruszenie nazywa sie
wlasnie ogolnym wyjatkiem ochrony.
W windows 98x wykorzystywane sa tylko dwa poziomy uprzywilejowania:
poziom 0 - menedzer maszyn wirtualnych i jego sterowniki VxD a takze system
plikow trybu chronionego (VFAT,CDFS,SCSI,Network)
Wszystkie pozostale programy ,lacznie z modulami Kernel,GDI i User pracuja
na poziomie 3.
Sposob w jaki Windows chroni i zarzadza pamiecia mozna przedstawic w
nast.punktach:

1.VMM32 i sterowniki VxD sa chronione na poziomie 0 , jesli jednak zawieraja
one bledy ,zadna sila nie moze ich powstrzymac , gdyz moga dokonywac zapisow
w dowolnym miejscu pamieci, gdziekolwiek.
2.Kernel,GDI,User i inne DLL-e systemowe posiadaja wlasny obszar pamieci ,
znajduja sie na poziomie 3 , co oznacza ze zwykle sa zabezpieczone przed
aplikacjami.
3.Programy -aplikacje Windows kazda z nich posiada oddzielna przestrzen
adresowa poza ktora nie moze wyjsc.Bledne aplikacje zwykle powoduja
zalamanie tylko samych siebie.

Mozna by tu jeszcze wiele pisac, ale mysle ze wystarczajaco mozna zrozumiec
co to jest sytem ochrony.

Koniec cytatu
pzdr
slawek
P.s na przyszlosc wchodz na wlasciwa grupe



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 09:21:11 MET DST