1
Praca semestralna
Podstawy systemów operacyjnych
Spis tre ci
1.
Wprowadzenie
1.
Architektura współczesnych komputerów - maszyna von Neumanna
2.
Definicja systemu operacyjnego
3.
Struktura systemu operacyjnego
2.
Zarz dzanie czasem procesora
1.
Definicje procesu, wieloprocesowo ci, wielodost pu i wywłaszcania procesora
2.
Graf stanów procesu
3.
Kolejki i priorytety
4.
W tki
5.
Kontekst procesu
6.
Procesy interakcyjne i wsadowe
3.
Zarz dzanie pami ci
1.
Do czego procesowi pami
2.
Gospodarka pami ci w systemach bez mechanizmu pami ci wirualnej
3.
Mechanizm pami ci wirtualnej
4.
Zarz dzanie wej ciem-wyj ciem
1.
Ogólna architektura podsystemu wej ia/wyj cia
2.
Zasoby urz dze fizycznych
3.
Sterowniki i urz dzenia logiczne
4.
Urz dzzenia dyskowe
5.
Systemy plików
5.
Zagadnienia bezpiecze stwa
1.
Autentykacja na przykładzie haseł wielokrotnych
2.
Autoryzaja czyli o uprawnieniach
3.
Audyt
4.
Kopie bezpiecze stwa
5.
Kryptografia
6.
Inne zagadnienia
Literatura
Literatura podstawowa (dla zainteresowanych)
1.
Zbigniew Weiss "Komputery jak ludzie", WNT, Warszawa 1996;
2.
Abracham Silberschatz, James L. Peterson, Peter B. Gavin "Podstawy systemów
operacyjnych", WNT, Warszawa 1993;
3.
Maurice J. Bach "Budowa systemu operacyjnego Unix", WNT, Warszawa 1995;
4.
Simson Garfinkel, Gene Spafford "Bezpiecze stwo w unixie i internecie",
Wydawnictwo RM, Warszawa 1997;
5.
Helen Custer "Inside Windows NT", Microsoft Press 1992;
2
6.
Paul Tyler "Windows NT server - czarna ksi ga administratora", Helion, Gliwice
1997;
Podr czniki dla pocz tkuj cych u ytkowników komputerów
7.
T. Kołodziejczak "Podstawy Informatyki", Prószy ski i S-ka, Warszawa 1992;
8.
Witold Wrotek "PC i ty, pierwszy krok", PLJ, Warszawa 1995;
9.
Stanisław Jachimek "Informatyka dla szkół", Helion, Gliwice 1996/97;
10.
Anna Kurzydłowska et al "Kompendium Obsługi Komputera", Mikom, Warszawa
1997;
11.
Zdzisław Dec, Robert Konieczny "Abc komputera", Edition 2000, Kraków 1998;
12.
Shelly O'Hara "Komputer od A do Z", Read Me, Warszawa 1998;
13.
Dan Gookin "Komputer dla opornych", Read Me, Warszawa 1997;
Literatura pomocnicza
14.
Don Sellers "Nie daj si , czyli jak komputer mo e ci wyko czy ", Helion, Gliwice
1996.
3
Rozdział 1: Wprowadzenie
Architektura współczesnych komputerów - maszyna von Neumanna
W drugiej połowie lat 40. John von Neumann zaproponował schemat blokowy elektronicznej
maszyny licz cej (rys. 1.1).
Schemat ten a do dzisiaj z niewielkimi modyfikacjami jest podstaw budowy komputerów.
Gdzie:
•
Procesor (ang. processor) - układ dokonuj cy operacji na danych zgromadzonych w
pami ci lub płyn cych z/do urz dze wej cia wyj cia, sterowany programem, którego
kod znajduje si w pami ci. Do przechowywania swojego wewn trznego stanu
procesor wyposa ony jest w pen ilo rejestrów, z których najwa niejsze to:
o
Wska nik instrukcji (ang. instruction pointer) - wskazuje komórk pami ci, z
której pobrany b dzie nast pna instrukcja do wykonania.
o
Rejestr flag stanu (ang. flag register, flags) - składaj si na niego jednobitowe
flagi przechowuj ce informacje o stanie procesora (np. dopuszczalno ci
4
przerwa ) lub rezultacie ostatnio wykonanej instrukcji (np. czy otrzymano
zero).
o
Wska nik stosu (ang. stack pointer) - wskazuje pierwsz woln komórk
pami ci na stosie procesora - strukturze danych typu FILO (ang. first in last
out - pierwszy przyszedł,ostatni wyszedł) wykorzystwanej przy skokach do
podprogramów dla przechowywania adresu powrotu i zmiennych lokalnych.
o
Akumulator (ang. accumulator) - słu y jako argument a zarazem miejsce
umieszczania rezultatów operacji arytmetycznych.
•
Pami (pami operacyjna, ang memory) - przechowuje dane i kod prgramu. Je eli
jej konstrukcja umo liwia oprócz odczytu dokonywanie w niej modyfikacji nazywamy
j RAM (ang. random access memory), je li jej konstrukcja pozwala jedynie na odczyt
nazywana jest ROM (ang. read only memory). Obecnie konstruaowane pami ci RAM
trac swoj zawarto w chwili wył czenia zasilania w przeciwie stwie do ROM.
Niezale nie od typu, pami dzieli si na komórki, z których ka da jest w stanie
przechowa liczb całkowit z ustalonego dla danej architektury zakresu. Najcz ciej
jest to 0, 1,...,255. Do zakodowania takich liczb potrzeba 8 bitów t.j. 1 bajt. Ka da
komórka pami ci posiada unikalny numer zwany adresem fizycznym, który słu y
procesorowi do owoływania si do niej. Je li nie decyduj o tym inne wa ne wzgl dy,
komórkom pami ci przydziela si adresy fizyczne poczynaj c od zera bez luk w
numeracji.
•
Zegar - odmierza cykle wykonywania instrukcji programu.
•
Magistrale (ang. buses) słu do przesyłania danych i synchornizacji mi dzy
elementami komputera:
o
Magistrala danych (ang. data bus) słu y do przesyłania danych mi dzy
pami ci , układami we/wy a procesorem. Ilo u ytych tutaj linii jest równa
długo ci słowa masynowego i jest równa rozmiarowi komórki pami ci, lub jest
jego wielokrotno ci .
o
Magistrala adresów (ang. address bus) słu y procesorowi do wysyłania
numerów komórek pami ci lub rejestrów we/wy na których b dzie doknane
nast pne przesłanie danych. Ilo u ytych tutaj linii decyduje o ilo ci pami ci
jak mo na zaadresowa .
o
Magistrala steruj ca (ang. control bus) słu y do wzajemnej synchronizacji oraz
przekazywania i potwierdzania przyj cia/wykonania zlece .
•
Wej cie/Wyj cie pozwala kompuerowi kontaktowa si z zewn trznym wiatem
(klawiatura, monitor, czytniki, adaptery sieciowe itp) lub przechowywa dane poza
pami ci operacyjn (dyski). Na wej cie wyj cie składaj si nast puj ce układy i
urz dzenia:
o
Sprz towe sterowniki wej cia wyj cia. Układy te potrafi si porozumiewa z
procesorem poprzez rejestry we/wy, przerwania, kanały DMA i własn
adresowaln przez procesor pami układu. Wykonuj c zlecenia procesora
steruj urz dzeniami wej cia wyj cia. W technologii mikrokomputerowej s
montowane jako karty rozszerzaj ce wewn trz obudowy komputera.
o
Urz dzenia zewn trzne - zapewniaj kontakt komputera ze wiatem. Mog to
by klawiatury, monitory, dyski, drukarki, modemy ale tak e czujniki i
ramiona robotów w procesie produkcyjnym.
o
Interfejsy. Interfejs jest to specyfikacja sposobu przesyłania danych mi dzy
dwoma urz dzenami. Poj cie to bywa cz sto przenoszone na realizacj
sprz tow interfejsu w postaci gniazd, wtyków i kabli. Bywa te rozszerzane
na komunikacj człowiek-maszyna, mówimy wtedy o interfejsie u ytkownika.
5
Pod wzgl dem funkcjonalnym komputer von Neumanna składa si z uwidocznionego na rys.
1.1 sprz tu i oprogramowania zawartego w pami ci (nieuwidocznionego). Przez system
komputerowy (informatyczny) rozumie si komputer (sprz t + oprogramowanie) i osoby
zwi zane z jego działaniem.
W ród osób zwi zanych z działaniem komputera wyodr bnia si nast puj ce typy:
•
U ytkownicy - wykorzystuj komputery jako narz dzia uł twiaj ce pewne rutynowe
czynno ci przetwarzania informacji.
•
Administratorzy - personel dbaj cy o poprawne działanie systemu informatycznego.
•
Twórcy oprogramowania - tworz oprogramowanie działaj ceme w systemie
informatycznym i zapewniaj mu serwis.
•
Dostawcy sprz tu - produkuj i dostarczaj sprz t działaj cy w systemie
informatycznym oraz zapewniaj mu serwis.
Definicja systemu operacyjnego
Definicje
Oprogramowanie komputera daje si podzieli na oprogramowanie wykonuj ce u yteczne dla
u ytkownika obliczenia i oprogramowanie dbaj ce o poprawn prac systemu
komputerowego jako cało ci, jednak e nie zawsze ten podział jest oczywisty i precyzyjny.
Oprogramowanie tworzone z przeznaczeniem do wykonywania u ytecznych oblicze
nazywamy aplikacjami. Oprogramowania tworzone z przeznaczeniem do zapewniania
poprawnej pracy systemowi informatycznemu nazywamy oprogramowaniem systemowym.
Rdzeniem oprogramowania systemowego jest system operacyjny. Z powodu trudno ci w
precyzyjnym zdefiniowaniu tego co jest, a co nie jest systemem operacyjnym, niektórzy
autorzy definiuj system operacyjny jako wszystko to opragramowanie, które producent
wkłada do pudełka z tak nazw .
Silberschatz et al w [2] podaj nast puj ce definicje systemu operacyjnego:
System operacyjny jest dystrybutorem zasobów komputera.
System operacyjny jest programem steruj cym. Program steruj cy nadzoruje działanie
programów u ytkownika, przeciwdziała bł dom i zapobiega niewła ciwemu u yciu
komputera. Zajmuje si zwłaszcza obsługiwaniem i kontrolowaniem pracy urz dze
wej cia/wyj cia.
Nie ma [...] w pełni adekwatnej definicji systemu operacyjnego. Istnienie systemów
operacyjnych jest uzasadnione tym, e pozwalaj one w rozs dny sposób rozwi za problem
kreowania u ytecznego rodowiska pracy.
Przez zasoby rozumie si wszystkie te elementy komputera, którymi daje si dysponowa
jako odr bnymi obiektami, np: procesor (w sensie przydziału jego czasu pracy), obszary
pami ci, obszary dyskowe, drukarki itp.
Na potrzeby niniejszego wykładu
system operacyjny zostanie zdefiniowany jako zbiór
programów i podprogramów wywoływanych przez inne programy lub u ytkownika,
które maj zapewni u ytkownikowi i jego aplikacjom niezawodne, zestandaryzowane,
wygodne i wydajne rodowisko pracy.
Mo na w zwi zku z powy szym przyj , e oprogramowanie rozdziela si na dwie warstwy,
system operacyjny jest t warstw , która separuje warstw aplikacji od sprz tu, a przez to je
od niego uniezale nia (rys. 1.2).
6
Dla u ytku aplikacji system operacyjny tworzy pewne abstrakcje zasobów sprz towych,
zrealizowane w postaci pewnych struktur danych i podprogramów, w dalszej cz ci wykładu
równie zwane zasobami. Separacj aplikacji od sprz tu nale y rozumie w ten sposób, e
aplikacje nie steruj bezpo rednio sprz tem, a jedynie posługuj si strukturami danych
dostarczonymi przez system operacyjny (abstrakcjami zasobów sprz towych) i wywołuj
systemowe podprogramy.
Zalety istnienia w komputerze systemu operacyjnego
•
mo liwo posługiwania si komputerem przez osoby nie b d ce ekspertami budowy
komputerów oraz mo liwo wydajnej pracy tych osób,
•
brak konieczno ci gruntownych szkole personelu w razie wymiany komputerów lub
ich podzespołów,
•
minimalizacja ilo ci oprogramowania do wymiany w razie wymiany komputerów lub
ich podzespołów,
•
mo liwo zamawiania, tworzenia, czy wreszcie kupowania aplikacji bez
konieczno ci dokładnego precyzowania parametrów sprz tu,
•
mo liwo tworzenia sterowników programowych urz dze niezale nie od aplikacji,
które ja wykorzystaj ,
•
w poł czeniu z j zykami programowania wysokiego poziomu, mo na we wzgl dnie
ł twy sposób tworzy wersje oprogramowania dla ró nych komputerów,
•
mo liwo wyegzekwowania zasad ochrony danych przed niepowoł nym dost pem,
dost pu do innych zasobów (jak drukarki) czy przestrzegania godzin pracy systemu,
•
mo liwo rozliczania u ytkowników/klientów za wykorzystanie czasu pracy
procesora i innych zasobów.
Struktura systemu operacyjnego
J dro systemu
Aby zabezpieczy si przed mo liwo ci bezpo redniego sterowania sprz tem przez
aplikacje, konstruktorzy procesorów podzielili
zbiór instrukcji procesora na dwie cz ci (niekiedy na wi cej, ale pominiemy te przypadki).
Jeden zbiór instrukcji, zawieraj cy jedynie instrukcje nie steruj ce bezpo rednio sprz tem i
odwołuj ce si do wydzielonych obszarów pami ci, dopuszczono do u ytku przez aplikacje (i
oczywi cie system operacyjny). Drugi zbiór, zawieraj cy instrukcje steruj ce sprz tem, lub
odwołuj ce si do dowlnych miejsc w pami ci dopuszczono do u ytku tylko przez system
7
operacyjny.
Aby w praktyce zorganizowa wła ciwe u ycie tych instrukcji wprowadzono tak e dwa tryby
pracy procesora: tryb u ytkownika i tryb j dra. W trybie u ytkownika dopuszczone s tylko
instrukcje nie steruj ce sprz tem i o ograniczonym dost pie do pami ci, jest on przeznaczony
dla aplikacji. W trybie j dra dopuszczone s wszystkie instrukcje, jest on przeznaczony dla
systemu operacyjnego.
Nie cały system operacyjnym musi si wykonywa w trybie j dra, wobec czego wyodr bnia
si z systemu operacyjnego zbiór podprogramów o ywotnym znaczeniu. Zbiór ten nosi
nazw j dra systemu operacyjnego.
Wywołanie podprogramu j dra przez aplikacj (w celu dost pu do zasobów) powoduje
natychmiastowe przeł czenie si procesora w tryb j dra, w trybie tym wykonuje si
wielokrotnie sprawdzony podprogram j dra, który tu przed powrotem do aplikacji przeł cza
si z powrotem do trybu u ytkownika.
Twórcy nowoczesnych systemów operacyjnych nadaj j dru modułow budow , co mi dzy
innymi pozwala wydzieli grupy podprogramów zwane sterownikami programowymi we/wy
(ang. driver) obsługuj cych konkretne urz dzenia i wł cza je do j dra zale nie od potrzeb.
Programy
U ytkownik nie mo e wywoływa bezpo rednio podprogramów j dra systemu operacyjnego.
Oprogramowanie, które mo e by wywoływane bezpo rednio przez u ytkownika nazywamy
programami. Zgodnie z tym, co zostało powiedziane wcze niej programami s aplikacje i
cz
systemu operacyjnego przeznaczona do bezpo redniego wywoływania przez
u ytkownika tj. powłoki i programy narz dziowe.
Podstawow rzecz jak system operacyjny musi udost pni u ytkownikowi jest mo liwo
wywoływania aplikacji i innych programów. Do tego słu powłoki.
Powłoka jest to program przeznaczony do bezpo redniej konwersacji z u ytkownikiem,
przyjmowania od niego zlece i wywoływania na jego polecenie innych programów.
Zadaniem programów narz dziowych jest wsparcie administratorów w piel gnacji komputera.
Zadaniem programów usługowych (zwanych serwerami lub demonami) jest wspieranie j dra
w tych czynno ciach, których samo nie mo e z ró nych wzgl dów wykona (np. wymiatanie
pami ci podr cnej) lub zarz dzanie abstrakcyjnymi zasobami (np. kolejki wydruków, silniki
baz danych, serwery stron www).
Start komputera
8
W czasie startu komputera (ang. boot) pierwsze ładowane jest j dro (np. w MS-DOS s to
pliki IO.SYS i MSDOS.SYS), nast pnie j dro ładuje wymagane sterowniki (w MS-DOS
nast puje to w trakcie interpretacji pliku CONFIG.SYS), startuje programy usługowe i
uruchamia powłok (COMMAND.COM w MS-DOS).
Je li system przewiduje kontrol dost pu, przed uruchomieniem powłoki autentykuje
u ytkownika.
Po starcie powłoki u ytkownik mo e podj prac , jao e powłoka daje mu mo liwo
uruchamiania własnych aplikacji. Cz sto startuj ca powłoka wykonuje skrypt startowy aby
skonfigurowa rodowisko u ytkownika i uruchamia przy tym odpowiednie aplikacje (w MS-
DOS skryptem startowym jest AUTOEXEC.BAT).
Rozdział 2: Zarz dzanie czasem procesora
Definicje procesu, wieloprocesowo ci, wielodost pu i wywłaszcania procesora
Pierwsze systemy operacyjne pozwalały na wykonanie jednego programu na raz. W raz z
rozwojem informatyki w szczególno ci pojawieniem si interakcyjnych wielodost pnych
systemów operacyjnych, a pó niej wprowadzeniem graficznych interfejsów u ytkownika
wyst piła opotrzeba jednoczesnego uruchamiania na tym samym procesorze wielu
programów w taki sposób by zminimalizowa mo liwo ci wzajemnych zakłóce mi dzy
procesami.
System operacyjny nazyway wielodost pnym, je eli wielu u ytkowników mo e jednocze nie
z nim pracowa , ka dy z nich ma wra enie ci głej pracy systemu na jego rzecz.
Podobn drog przeszły mikrokomputery od systemu CP/M i MS-DOS do dzisiejszych
MAC-OSa i MS Windows NT.
W nowoczesnym systemie operacyjnym dany program mo e by wykonywany przez wielu
u ytkowników jednocze nie, w zwi zku z tym wprowadza si poj cie procesu. Silberschatz et
al w [2] definiuj
proces jako program, który jest wykonywany. Sprecyzowa nale y, e
ka dy załadowany do pami ci operacyjnej celem wykonania egzempla programu razem z
danymi na których operuje stanowi oddzielny proces.
System operacyjny nazywamy wieloprocesowym je eli dopuszcza jednoczesne istnienie w
nim wielu procesów. Takim systemem jest np. MS-DOS, przy czym w tym wypadku proces
raz uruchomiony blokuje innym procesom dost p do procesora a do swego zatrzymania,
dopiero wówczas mo e na nowo podj swe wykonanie jego proces macierzysty. Takim
systemem nie jest np. CP/M, w którym mo e istnie tylko jeden proces.
Jak to ju stwierdzono w MS-DOSie po uruchomieniu procesu potomnego dany proces był
zamra any i faktycznie nie mógł si wykonywa a do zako czenia potomka. Je eli
oczekujemy od komputera z jednym procesorem aby był wielodost pny, musimy zadba o to
by dzieli czas procesora mi dzy ró ne procesy, niezale nie od tego, czy aktualnie
wykonuj cy si proces ma ochot zwolni procesor, czy nie. Takim mechanizmem jest
wywałaszczanie procesora.
Ka dy proces w systemie wieloprocesowym z wywłaszczaniem w chwili uzyskania
procesoraotrzymuje te kwant czasu. Po wyczerpaniu swego kwantu czasu proces jest
przerywany, a na jego miejsce wykonywany jest inny proces. Wywłaszczony proces trafia na
koniec kolejki procesów ubiegaj cych si o procesor. Przykładami takich systemów s Unix,
Windows NT i Windows 95.
9
Graf stanów procesu
Współbie na praca wi cej ni jednego procesu niesie z sob mozliwo konfliktów przy
dost pie do zasobów. W takich warunkach ujawnia si rola systemu operacyjnego jako
dystrybutora zasobów. System operacyjny (a w zasadzie jego j dro) rozstrzyga konflikty o
zasoby przydzielaj c je jednym ubiegaj ceym si o nie procesom a innne procesy
powstrzymuj c do czasu zwolnienia zasobów przez dotychczasowych zwyci zców.
Proces, który za dał dost pu do zasobu (w szczególno ci wykonania operacji we/wy) i go
nie otrzymał nie mo e by dalej wykonywany a do chwili uzyskania zasobu (zako czenia
operacji we/wy). O takim procesie mówi si e jest w stanie u pionym. Zwalnia on procesor
pozwalaj c innym procesom na wykonywanie si .
W systemach z wywłaszczaniem procesora wyró nia si pewien specjalny stan - oczekiwanie
na przydział procesora. Mamy z nim do czynienia gdy proces posiada wszystkie niezb dne
mu zasoby, nie wykonuje operacji wej cia wyj cia a czeka jedynie na przydzielenie mu
[czasu] procesora. O takim procesie mówimy, e jest w stanie gotowy do wykonania.
Ró ne systemy operacyjne wyró niaj ró ny zestaw stanów, przez które przechodzi proces w
trakcie ycia, ale w ka dym systemie wieloprocesowym z wywłaszczaniem mo na wyró ni
nast puj ce stany:
•
Wykonywany - jest aktualnie wykonywany przez procesor,
•
Gotów do wykonania - oczekuje na swoj kolejk do wykonania,
•
U piony - oczekuje na dost p do zasobu lub operracj wej cia/wyj cia, np. wcisni cie
klawisza przez u ytkownika,
•
Niszczony - w trakcie zwalniania zasobów po zako czeniu.
Kolejki i priorytety
Procesy oczekuj ce na zwolnienie procesora mog mie ró n wa no . Przykładowo, mo e
to by proces dokonuj cy pomiaru w tocz cym si eksperymencie, edytor teksu, proces
systemowy uruchomiony celem zrobinia okresowych porz dków i zadanie symulacji
numerycznej pewnego układu fizycznego wykonywane długi czas w tle. Pierwsze dwa
procesy maj to do siebie, e wi kszo czasu oczekuj na zaj cie operacji wej cia wyj cia, a
gdy ju to nast pi, powinny natychmiast reagowa , z kolei dwa ostatnie wykorzystuj
10
głównie czas procesora, ale nie s na tyle pilne, by nie mogły ust powa w razie potrzeby
innym.
W zale no ci od pilno ci zadania i jego dotychczasowego przebiegu, system operacyjny
nadaje procesowi priorytet. Generalnie, czym mniejsz liczb jest wyra ony, tym lepiej z
punktu widzenia procesu - ma wi ksy dost p do procesora. Dla ka dego priorytetu tworzona
jest osobna kolejka procesów gotowych do wykonania. Dopóki w kolejce o priorytecie
wyra onym mniejsz liczb czekaj procesy, prcesy z kolejki wi kszego priorytetu nie b d
wykonywane.
Najmniejsze priorytety s zarezerwowane dla u ytku systemu operacyjnego, s one do tego
stopnia uprzywilejowane, e procesy wykonuj ce si z tymi priorytetami nie s
wywłaszczane. St d te s u ywane jedynie w wyj tkowych okoliczno ciach przez krótkie
procedury systemowe.
U ytkownik ma zwykle mo liwo wyboru priorytetu dla uruchamianego procesu, jednak e
jest w swym wyborze ograniczony "z dołu". System operacyjny rezewuje sobie mo liwo
zmiany priorytetu w trakcie działania procesu, celem wyrównania szans ró nych procesów.
W tki
Niektóre systemy operacyjne dopuszczaj współbie no w ramach jednego procesu. Okre la
si wówczas
w tek jako jednostk wykonania. Ka dy wykonuj cy si proces ma
przynajmniej jeden w tek, ka dy w tek wykonuje si w ramach jednego procesu.
W tki konkuruj ze sob o czas procesora. Pozostałe zasoby przydzielane s na rzecz procesu.
System operacyjny zostawia programi cie aplikacji woln r k w rozstrzyganiu konfliktów
pomi dzy w tkami o dost p do zasobów przydzielonych procesowi.
System operacyjny nazywamy wielow tkowym, je eli dopuszcza istnienie wielu w tków
wykonania w ramach jednego procesu. Przykładami systemów wielow tkowych s Windows
NT, Windows 95 i niektóre odmiany Uniksa.
W systemach nie b d cych wielow tkowymi poj cie w tku i prcesu uto samia si .
Przedstawiony na rys. 2.1 graf stanów procesu oraz kolejkowanie w systemie
wielow tkowym dotyczy oczywi cie w tków. Proces nie posiada stanów, jest ko czony w
momencie gdy sko czy si jego ostatni w tek.
Je eli nie b dzie to wyra nie zaznaaczone, w dalszej cz ci wykładu procesy i w tki b d ze
sob uto samiane.
Kontekst procesu
Aby proces/w tek mógł by wznowiony od miejsca w którym przerwane zostało jego
wykonanie, nale y zachowa pewne informacje o stanie procesora w chwili przerywania
działania procesu. Zbiór wszystkich informacji niezb dnych do podj cia prez proces działania
z miejsca, w którym si znajduje nazywamy kontekstem procesu. Zdarzenie zapami tania
kontekstu aktualnego procesu i wprowadzenia do procesora wcze niej zachowanego
kontekstu innego procesu celem rozpocz cia jego wykonania nazywamy przeł czeniem
kontekstu.
Kontekst procesu składa si z zawarto ci rejestrów procesora, w szczególno ci wska nika
instrukcji, rejestru flag stanu i wska nika stosu. W przypadku systemów z pami ci wirtualn
w skład kontekstu wchodz tablice stron.
Procesy interakcyjne, wsadowe i demony
11
Nie wszystkie procesy wymagaj ci głej współpracy u ytkownika w trakcie działania. Te
które wymagaj - nazywamy interakcyjnymi. S to m.in. edytory tekstu, programy do
odbierania poczty itp. Programy interakcyjne maj zawsze przypisany jaki zasób
umo liwiaj cy konwersacj z u ytkownikiem. W przypadku Uniksa jest to terminal znakowy.
W przypadku programu z graficznym interfejsem u ytkownika jest to okienko graficzne na
ekranie komputera.
Procesy nie wymagaj ce uwagi u ytkownika dziel si na dwie kategorie:
•
demony - programy wiadcz ce usługi dla systemu jako cało ci (program wymiataj cy
pami podr czn ) lub dla ogółu u ytkowników (silnik bazy danych) oraz
•
zadania wsadowe - zadania uruchomione przez jednego u ytkownika, wykonuj ce
długotrwałe obliczenia, których nie trzeba nadzorowa , np: sysmulacje numeryczne,
tworzenie grafiki w oparciu o techniki ledzenia promieni, itp.)
System operacyjny dostarcza administratorowi narz dzi do uruchamiania i nadzorowania
procesów pierwszego typu, a pozostałym u ytkownikom drugiego typu.
Rozdział 3: Zarz dzanie pami ci
Do czego procesowi pami
Ka dy prces działaj cy w komputerze wymaga pami ci operacyjnej do przechowywania kodu
swego prograamu i danych które przetwarza.
Dane, które przetwarza proces reprezentowane s przez zmienne programu. Przez zmienn
programu rozumie si obszar pami ci o ustalonym adresie pocz tkowym i długo ci, do
którego mo na odwoływa si z programu poprzez symbol zwany nazw zmiennej. Ka da
zmienna posiada swój typ, definiowany jako zbiór, którego elementy mog by kodowane
przez warto ci zmiennej, np. typ
char
j zyka C koduje znaki zbioru ASCII lub liczby z
przedziału -128 do 127. Typ decyduje o długo ci obszaru przeznaczonego na zmienn .
Wa nymi typami zmiennych s zmienne wska nikowe. Przechowuj one adresy (adresy
pocz tku obszaru) innych zmiennych.
Z punktu widzenia zarz dzania pami ci wyró nia si trzy klasy zmiennych:
•
Zmienne statyczne - s tworzone przy starcie procesu i istniej przez cały czas jego
ycia.
Okre lenie zmienna statyczna mo e by myl ce. Zmienna ta, oczywi cie, mo e by
modyfikowana przez program. Okre lenie statyczna odnosi si do sposobu
gospodarowania pami ci tej zmiennej - rezerwuje si j przy starcie a zwalnia przy
ko cu procesu. Przez cały czas ycia procesu dany obszar pami ci wykorzystywany
jest w ten sam sposób - na przechowywanie aktualnej warto ci danej zmiennej.
•
Zmienne lokalne podprogramów zwane te automatycznymi - s tworzone dla
ka dego wywołania podprogramu i usuwane po jego zako czeniu.
•
Zmienne dynamiczne - s tworzone i usuwane w miar potrzeby.
Wyró nia si trzy zasadnicze grupy obszarów pami ci, z których korzysta proces:
12
•
Obszary zajmowane przez kod programu i bibliotek. Na pami ci wchodz cej w skład
tych obszarów po załadowaniu programu (lub biblioteki) procesor wykonuje jedynie
operacje odczytu. Obszary te mog by wspólny dla ró nych procesów wykonuj cych
ten sam program, lub korzystaj cych z tej samej bibloteki ładowanej dynamicznie.
•
Obszary zajmowany przez prywatne dane programu, w tym zmienne statyczne i
dynamiczne. Obszar ten jest inicjowany przy starcie procesu pocz tkowymi
warto ciami zmiennych globalnych (cz sto zerami). W trakcie ycia procesu
dokonywane s zarówno operacje odczytu jak i zapisu. Obszar przechowuj cy
zmienne dynamiczne nazywany jest stert . Tworzenie i niszczenie zmiennych
dynamicznych mo e powodowa zwi kszanie si i zmniejszanie tego obszaru w
trakcie ycia procesu. Ka dy proces wymaga własnego obszaru prywatnych danych.
Je eli proces składa si z w tków, w tki współdziel obszar danych procesu.
•
Obszar stosu. W obszarze tym zapami tuje si adresy powrotów z podprogramów oraz
przechowuj zmienne lokalne (dla ka dego wywołania podprogramu tworzony jest jego
własny komplet zmiennych lokalnych). Obszar ten jest rezerwowany w pami ci przy
starcie procesu. Z pocz tku jest pusty. Wypełnia si i opró nia w miar jak
wywoływane i ko czone s poszczególne podprogramy. Ka dy w tek wymaga
własnego obszaru stosu.
Powy sze obszary pami ci bywaj cz sto nazywane segmentami odpowiednio kodu, danych i
stosu.
Mo na wyró ni dodatkowe obszary pami ci dost pnej procesowi:
•
Obszary systemowe. W nowoczesnych systemach operacyjnych dost p do tych
obszarów proces ma tylko wtedy, gdy wykonuje w trybie j dra podprogram j dra
systemu operacyjnego.
o
Dane systemu operacyjnego w tym np. bufory dyskowe,
o
kod j dra systemu operacyjnego,
o
kod sterowników urz dze w pami ci ROM,
o
adresowalna pami urz dze wej cia wyj cia, np. pami obrazu karty
graficznej.
•
Pami dzielona - obszary pami ci przechowuj ce dane, do których dost p ma wi cej
ni jeden proces.
•
Pliki dyskowe mapowane na pami .
Rozwa my prosty program w C
#include <stdio.h>
#include <string.h>
char napis[] = "Hello world!";
void main()
{
char *tymczasowa;
tymczasowa=strdup(napis);
printf("%s\n",tymczasowa);
free (tymczasowa);
}
Rys. 3.1 Przykładowy program w C u ywaj cy ró nych klas zmiennych
W trakcie działania powy szego programu tworzone s (a potem usuwane) nast puj ce
zmienne:
13
•
zmienna statyczna ``
napis
'' zawieraj ca ła cuch "
Hello World!
";
•
bezimienna zmienna statyczna zawieraj ca ła cuch "
%s\n
";
•
zmienna lokalna funkcji ``
main
'' typu wska nikowego (wska nik do typu
char
) o
nazwie ``
tymczasowa
'';
•
zmienna dynamiczna, b d ca duplikatem zmiennej ``
napis
'', wska nik do niej
podstawiany jest do zmiennej ``
tymczasowa
''.
•
inne zmienne zadeklarowane w standardowej bibliotece C, których deklaracje
znajduj si w plikach nagłówkowych stdio.h i string.h
Przy starcie procesu wykonuj cego powy szy program w obszarze kodu programu znajdzie
si skompilowana funkcja ``
main
'' oraz skompilowane niezb dne funkcje biblioteczne w tym
funkcje ``
printf
'', ``
strdup
'' i ``
free
''. W obszarze danych statycznych utworzone b d zmienne
``
napis
'', bezimienna zmienna zawieraj ca ła cuch "
%s\n
" oraz niesprecyzowane tutaj bli ej
zmienne tworzone dla potrzeb bibliotek.
Po zainicjowaniu pami ci proces zaczyna wykonywa swój kod poczynaj c od funkcji
``
main
''. W trakcie prologu tej funkcji rezerwowane jest na stosie miejsce na zmienn
``
tymczasowa
''. W trakcie wykonania (druga linijka) tworzona jest zmienna dynamiczna b d ca
duplikatem zmiennej ``
napis
'' a jej adres wstawiany jest do zmiennej ``
tymczasowa
''. Przy ko cu
programu zmienna dynamiczna (której adres wci przechowuje zmienna ``
tymczasowa
'') jest
niszczona. Epilog funkcji ``
main
'' niszczy zmienn lokaln ``
tymczasowa
''. Zako czenie si tej
funkcji ko czy jednocze nie proces. W trakcie usuwania zako czonego procesu niszczone s
pozostałe zmienne.
Gospodarka pami ci w systemach bez mechanizmu pami ci wirtualnej
CP/M
Najprostsz gospodark pami ci prezentuje system operacyjny CP/M. Poniewa w systemie
tym mo e istnie tylko jeden proces, dostaje on cał pami w swoje władanie. System
operacyjny iinformuje go jedynie, gdzie znajduj si jego obszary pami ci. Poza tym
ostrze eniem, system operacyjny nie chroni swej pami ci przed procesem.
Systemy wieloprocesowe
W wieloprocesowych systemach operacyjnych nale y stworzy mechanizmy przydzielania
pami ci wielu procesom oraz ochrony pami ci przydzielonej poszczególnym procesom i
pami ci zajmowanej przez kod i dane j dra przed innymi procesami.
W pierwszych sysemach wieloprocesowych z ochron pami ci uruchamiany proces
otrzymywał sztywn pul pami ci wyznaczn przez adresy graniczne. Proces musiał zmie ci
swój kod i dane w zadanym obszarze. U ycie zmiennych dynamicznych było w zwi zku z
tym ograniczone. W przypadku odwołania si do adresów spoza wyznaczonych granic proces
wpadał w pułapk i był ko czony.
MS-DOS
W systemie operacyjnym MS-DOS proces przy starcie mo e zarezerwowa pewn ilo tzw.
segmentów pami ci operacyjnej poło onej poni ej adresu 655360. W trakcie ycia mo e
zarezerwowa dodatkowe segmenty lub zwolni je. Mo e te rezerwowa i zwalnia pami
powy ej 1MB. Nowy proces b dzie uruchomiony pod warunkiem, e jest do segmentów
dla niego w obszarze pierwsych 640kB pami ci. MS-DOS nie zapewnia ochrony pami ci.
14
MS-Windows 3.x
Windows 3.x s nakładk na MS-DOS cz ciowo modyfikuj c jego zachowanie, m in.
zarz dzanie pami ci . Przede wszystkim znika ograniczenie wielko ci pami ci procesu do
640kB. MS-Windows równie nie zapewniaj pami ci.
Obszary pami ci mo na rezerwowa jako:
•
Fixed - Obszar ten cały czas dost pny jest pod adresami przydzielonymi mu przy
rezerwacji. W obszarach tej klasy lokuje si kod, dane statyczne i stos procesu.
•
Movable - Aby odwoływa si do adresów w tym obszarze, nale y go zablokowa .
System operacyjny gwarantuje, e po odblokowaniu zawarto obszaru nie b dzie
zniszczona, jednak nie gwarantuje, e po powtórnym zablokowaniu znajdowa si
b dzie w tym samym miejscu pami ci. W zwi zku z tym, adresy zmiennych
zawartych w tym obszarze, po jego odblokowaniu trac wa no . Obszary tej klasy
wykorzystuje si na współdzielone dane i pewne mniej potrzebne zmienne
dynamiczne.
•
Discardable - Aby odwoływa si do adresów w tym obszarze, nale y go zablokowa .
Po odblokowaniu obszaru mo e on zosta zniszczony. W zwi zku z tym, adresy
zmiennych zawartych w tym obszarze, po jego odblokowaniu trac wa no . Obszary
tej klasy wykorzystuje si na pewne mniej potrzebne zmienne dynamiczne.
MS-Windows zapewnia dwa mechanizmy gospodarowania pami ci :
1.
Konsolidacja. W przypadku gdy dla nowotworzonego procesu, lub procesu, który
zarz dał pami ci brak miejsca, odblokowane obszary klasy discardable s niszczone, a
odblokowane obszary klasy movable przesuwane tak by utworzy spójny obszar
15
mog cy zaspokoi danie.
2.
Wymiana. Je eli powy sze operacje nie pozwalaj uzyska spójnego obszaru pami ci
odpowiedniej wielko ci, jeden lub wi cej z obszarów klasy fixed, lub zablokowanych
obszarów klas movable i discardable nale cych do innych procesów trafia na dysk do
pliku wymiany. Zmiana kontekstu (uzyskanie procesora przez inny proces) powoduje
e obszary pami ci danego procesu umieszczone w pliku wymiany s sprowadzane do
pami ci operacyjnej, a obszary nale ce do innych procesów, pokrywaj ce si w
pami ci operacyjnej z nimi s konsolidowane lub trafaj do pliku wymiany.
Jak wida na rysunku 3.2 pomimo zastosowania konsolidacji pami ci, jest ona wci
pofragmentowana, cho najwi kszy spójny obszar znacz co wzrósł. Fragmentacja pami ci
powoduje, e dania przydziału pami ci, domagaj ce si mniej pami ci ni jest w sumie
wolne, ale wi cej ni zawiera najwi kszy spójny obszar mog nie zosta spełnione.
Z pomoc przychodzi wymiana (mechanizm zapewniany przez system operacyjny) i
nakładkowanie (mechanizm zapewniany przez programist lub jego kompilator). Polegaj
one na czasowym usuwaniu pewnych obszarów pami ci na dysk do specjalnie utworzonego
pliku wymiany. Mechanizmem nakładkowania nie b dziemy si tu zajmowa , jest on
zbli ony do mechanizmu wymiany, a dotyczy głównie wymiany zestawów podprogramów.
Wad mechanizmu wymiany jest to, e pami jest usuwana na dysk wielkimi blokami, a w
razie przeł czenia kontekstu cała pami procesu musi by przeniesiona od razu z pliku
16
wymiany do pami ci operacyjnej. Nie mo na równie zarezerwowa obszaru wi kszego ni
dost pna pami operacyjna.
Mechanizm pami ci wirtualnej
Zalety i wady
Mechanizm pami ci wirtualnej nie posiada wad przedstawionych w poprzednim paragrafie.
Jego cechy to:
•
Powstanie prywatnych przestrzeni adresowych dla ka dego procesu. Procesy nie
widz nawzajem swoich przestrzeni adresowych.
•
Niewidoczny dla procesu podział pami ci na niewielkie (rz du 1kB) obszary pami ci
podlegaj ce wymianie zwane stronami.
•
Praktyczne nieistnienie problemu fragmentacji pami ci.
•
Mo liwo c przechowywania w pami ci operacyjnej w trakcie wykonywania procesu
jedynie najcz ciej ostatnio u ywanych stron. Długo niewykorzystywane strony
trafiaj na dysk do pliku wymiany. Przy przeł czaniu kontekstu nie ma potrzeby
ładowa całej przestrzeni adresowej do pami ci operacyjnej, wystarczy strona z
komórk zawieraj c nast pn instrukcj programu, oraz strona z wierzchem stosu.
•
Proces ma iluzj posiadania przez maszyn znacznie wi kszej ilo ci pami ci
operacyjnej ni ma ona w rzeczywisto ci, w szczególno ci mo na tworzy zmienne o
rozmiarze przekraczaj cym rozmiar pami ci operacyjnej.
•
Mo liwo poddania ochronie obszarów przestrzeni adresowej procesu, w
szczególno ci obszarów systemowych, obszaru kodu i pami ci współdzielonej.
•
Mo liwo spójnego implementowania pami ci wirtualnej, pami ci współdzielonej,
mapowania pliku na pami operacyjn i buforowania operacji dyskowych.
Wadami mechanizmu pami ci wirtualnej s
•
Narzut na pami zwi zany z przechowywaniem dodatkowych struktur danych t.j.
tablic stron.
•
Narzut na wydajno i zło ono procesora zwi zany z wyliczaniem adresów
fizycznych z adresów wirtualnych.
•
Narzut na wydajno systemu zwi zany z konieczno ci wczytania do procesora
cz sci tablicy stron nowego procesu przy przeł czaniu kontekstu.
•
Narzut na wydajno systemu zwi zany z operacjami dyskowymi wymiany stron.
Trzeba tu jednak zaznaczy , e dobre algorytmy wymiany stron minimalizuj ten
narzut.
Zasada działania
Najistotniejszym elementem mechanzmu jest rozró nienie mi dzy adresem logicznym a
fizycznym komórki pami ci i sposób odwzorowania adresu logicznego na fizyczny.
Adresem fizycznym komórki nazywamy adres, jaki wysyła na magistral adresow procesor,
aby odwoła si do tej komórki. Ka da komórka pami ci operacyjnej ma swój niezmienny
adres fizyczny. Ka dy adres fizyczny odnosi si zawsze do tej samej komórki pami ci lub jest
zawsze bł dny.
Adresem logicznym (lub wirtualnym) nazywamy adres jakim posługuje si program, aby
odwoła si do zmiennej lub instrukcji. Adres logiczny mo e odnosi si zarówno do komórki
17
pami ci operacyjnej jak i słowa maszynowego zapisanego na dysku. Przypisanie adresu
logicznego do konkretnej komórki pami ci, czy konkretnego miejsca na dysku jest inne dla
ka dego procesu i mo e si zmienia w trakcie jego ycia.
Pami operacyjna dzielona jest na ramki, to jest spójne obszary o stałym romiarze zwanym
wielko ci ramki. Przestrze adresów wirtualnych dzielona jest na strony, to jest spójne
obszary o stałym rozmiarze zwnym wielko ci strony. Wielko strony równa si wielko ci
ramki i jest wielokrotno ci rozmiaru sektora dyskowego. Wielko strony jest rz du 1kB, i
tak, w systemie VMS wynosi ona 512B, w Linuksie - 1kB a w Windows NT - 4kB.
Analogicznie do pami ci operacyjnej, mo na przyj , e plik wymiany dzieli si równie na
ramki. Strona pami ci wirtualnej mo e znajdowa si w jednej z ramek pami ci operacyjnej,
jednej z ramek pliku wymiany lub by stron niezarezerwowan (bł dn ). Odwzorowania
stron pami ci wirtualnej w ramki pami ci operacyjnej lub ramki pliku wymiany dokonuje
procesor za ka dym razem, gdy oblicza adres fizyczny z adresu wirtualnego (celem pobrania
instrukcji, lub odwołania si do zmiennej). Do odwzorowywania stron w ramki słu mu
tablice stron wirtualnych. Szczegóły tłumaczenia adresu logicznego na fizyczny w prypadku,
gdy strona znajduje si w pewnej ramce pami ci operacyjnej ilustruje rys. 3.3.
Adres logiczny składa si z dwóch c ci: numery strony i przesuni cia na stronie. Numer
strony słu y jako indeks do tablicy stron wirtualnych. W tablicy tej odnajdywana jaest
pozycja odpowiadaj ca dnej stronie. Na podstawie atrybutów procesor ustala, czy strona
znajduje si w pami ci operacyjnej i je li tak, pobiera numer ramki po czym ł czy go z
przesuni ciem na stronie otrzymuj c adres fizyczny, który mo e by wysłany na magistral
adresow .
Je eli atrybut dost pno ci strony wskazuje, e znajduje si ona w pami ci wymiany, nast puje
tzw. ``page fault'' - wyj tek pami ci wirtualnej. Procesor przerywa proces (w tek), który
18
odwołał si do nieobecnej strony i przenosi go w stan u piony. Jednocze nie podejmowane s
działania maj ce na celu sprowadzenie strony do pami ci t.j. wyszukiwana jest wolna ramka.
Je li wolnej ramki brak, jedna z ramek zaj tych zapisywana jest na dysk i zwalniana.
Uzyskana ramka pami ci operacyjnej zapełniana jest zawarto ci przywracanej strony
przechowywan w pliku wymiany.
Tablice stron mog rezydowa tak jak to pokazano na rysunku w specjalnych obszarach
pami ci, które s znane procesorowi przez ich adres fizyczny (a nie logiczny) lub te mog
by cz ciowo przechowywane w podr cznej pami ci asocjacyjnej procesora. Wiele
systemów operacyjnych dopuszcza by cz
tabeli stron mogła by przenoszona do pliku
wymiany.
Du a cz
mechanizmu pami ci wirtualnej musi by realizowana sprz towo przez procesor.
System operacyjny dochodzi do głosu gdy nast puje page fault i trzeba sprowadzi stron do
pami ci, usuwaj c by mo e inn stron oraz dokona przeł czenia kontekstu. Mechanizm
ten mo e zatem działa jedynie w systemach operacyjnych działaj cych na procesorach
wspieraj cych go, takich jak np. Intel i386 i nowsze procesory Intela, procesory Alpha,
nowsze procesory Motorolli itd.
Izolacja procesów i ochrona pami ci.
Aby zapewni ka demu procesowi prywatn przestrze adresow , dostaje on własn tablic
stron wirtualnych. W zwi zku z tym tablica ta jest elementem kontekstu procesu. Przeł czenie
kontekstu wymaga wczytania do procesora tablicy stron nowego procesu (a przynajmniej jej
cz ci).
Atrybutem strony mo e by uprawnienie procesu do posługiwania si t stron :
•
Uprawnienie do odczytu i zapisu (read/wite). To uprawnienie otrzymuj strony
obszarów danych i stosu programu.
•
Uprawnienie do odczytu (read only). To uprawnienie nadaje si m.in. stronom
zawieraj cym kod programu. Mo na dzi ki temu współdzieli te strony mi dzy
procesami wykonuj cymi ten sam program bez obawy, e jeden proces zmodyfikuje
kod programu i tym samym wpłynie katastrofalnie na przebieg działania drugiego
procesu.
•
Uprawnienie zabraniaj ce wszelkich operacji (no access). Tym atrybutem oznacza si
strony przechowuj ce kod i dane j dra systemu operacyjnego oraz strony nie
zarezerwowane dot d przez proces.
Niektóre systemy operacyjne wyró niaj bardziej zło ony system uprawnie np. copy on
write i execute only, pod warunkiem, e procesor wspiera takie upranienia.
Proces, diałaj c w trybie u ytkownika, nie ma mo liwo ci bezpo redniej zmiany zawarto ci
tablicy stron. Mo e on zleci systemowi operacyjnemu rezerwacj nowych stron (np. na
zmienne dynamiczne) lub zwolnienie tych które przestał u ywa . Odbywa si to przez
wywołanie odpowiednich podprogramów j dra (działaj cych w trybie j dra).
Rozdział 4: Zarz dzanie wej ciem-wyj ciem
Ogólna architektura podsystemu wej ia/wyj cia
19
Ogóln architektur wej cia/wyj cia przedstawiono na rys. 4.1.
Na sprz t (patrz
rozdział 1
i rys. 1.1) składa si pewna ilo urz dze wej cia wyj cia
zwanych dalej urz dzeniami fizycznymi (ang. phisical device), ka de z tych urz dze
sterowane jest przez sterownik sprz towy (ang. hardware controller).
Do komunikacji z urz dzeniami fizycznymi wykorzystuje si zasoby urz dze t.j. rejestry
we/wy, przerwania, adresowaln pami urz dze i kanały DMA.
J dro systemu operacyjego zawiera pewn ilo modułów zwanych stertownikami
programowymi urz dze (ang. device driver), które potrafi sterowa urz dzeniami. Jeden
sterownik mo e obsługiwa wiele urz dze podobnego typu (np. sterownik dysków) lub
uzupełniaj cych si typów (np. sterownik terminala obsługuje klawiatur i kart graficzn
wraz z monitorem).
Sterowniki programowe tworz dla wy szych warstw oprogramowania urz dzenia logiczne
(ang. logical device). Urz dzenie logiczne jest obiektem b d cym abstrakcj urz dzenia
fizycznego. Na urz dzeniu logicznym mo na dokonywa operacji zapisu i odczytu poprzez
podprogramy dostarczane przez sterownik. Wy sze warstwy oprogramowania nie musz zna
20
szczegółów sterowania danym urz dzeniem.
Wsród urz dze logicznych mo na wyodr bni nast puj ce typy:
•
Urz dzenia znakowe lub strumieniowe (ang. character device). Z urz dzenia
znakwego mo na czyta w sposób sekwencyjny ci gi bajtów, lub w sposób
sekwencyjny zapisywa ci gi bajtów.
Przykłady urz dze fizycznych dla których tworzy si logiczne urz dzenia znakowe:
zegar systemowy, porty szergowe i równoległe oraz widoczne przez nie drukarki,
modemy, myszy i terminale, komsola, streamery itp.
•
Urz dzenia blokowe (ang. block device). Z urz dzenia blokowego mo na odczytywa
i zapisywa bloki bajtów okre lonej dla danego urz dzenia wielko ci. Dost p do
danych w urz dzeniu blokowym w przeciwie stwie do urz dze znakowych jest
swobodny t.j. poprzez podanie adresu bloku.
Przykłady urz dze fizycznych dla których tworzy si logiczne urz dzenia blokowe:
dyski, niektóre skanery.
•
Inne. Urz dzenia te oferuj funkcje, która wykraczaj znacz co poza operacje
odczytu/zapsu na urz dzeniu znakowym lub blokowym.
Przykłady urz dze : karty sieciowe, karty graficzne.
Modyły j dra odpowiedzialne za wy sze funkcje to moduły systemów plików, protokołów
sieciowych, interfejsu u ytkownika itp.
Systemy plików mog by zakładane na urz dzeniach blokowych. System plików umo liwia
przechowywanie na tym samym urz dzeniu ró nych informacji w sposób pozwalaj cy
wyszuka potrzebne zbiory danych oraz zabezpieczy dane przed niepowołanym dost pem.
Wy sze funkcje we/wy dost pne s przez tzw. API (application programmer's interface -
interfejs programisty aplikacji) czyli zbiory podprogramów dost pnych do wywołania przez
aplikacje.
Istniej pewne zło one operacje, które nie powinny lub nie musz by wykonywane w j drze
systemu operacyjnego ze wzgl du np. na wydajno systemu, d enie do zmniejszenia
stopnia komplikacji j dra czy bezpiecze stwo. Do wykonania tych operacji uruchamia si
przy starcie systemu programy usługowe zwane te demonami (ang. daemon). Przykłady
zastosowa : zarz dzanie kolejkami wydruków, implementacja cz ci usług sieciowych czy
wymiatanie buforów dyskowych.
Programy usługowe i aplikacje mog si odwoływa bezpo rednio do urz dze logicznych,
je eli konfiguracja systemu na to pozwala lub do odpowiednich API. adna warstwa
oprogramowania z wyj tkiem sterowników programowych nie odwołuje si bezpo rednio do
sprz tu.
Zasoby urz dze fizycznych
Zasoby urz dze fizycznych umo liwiaj procesorowi i wykonywanemu si na nim
oprogramowaniu komunikowa si z urz dzeniami fizycznymi. Wyró nia si cztery klasy
zasobów urz dze fizycznych:
•
rejestry we/wy (ang. I/O registers),
•
przerwania (ang. interrupts),
•
adresowalna pami sterownika,
•
kanały DMA.
Rejestry we/wy
21
Rejestry we/wy to rejestry sterowników sprz towych, do których procesor mo e wpisywa
(lub odczytywa ) dane podane na magistral danych, podaj c na magistral adresow adres
rejestru. Wiele procesorów informuje o operacjach na rejestrach we/wy podaj c sygnał na
specjaln cie k w magistrali steruj cej, co pozwala oddzieli przestrze adresow pami ci
fizycznej od przestrzeni adresowej rejestrów we/wy. Rozwi canie to zastosowano w
procesorach Intela. Istniej procesory, które nie rozró niaj pami ci operacyjnej i rejestrów
we/wy, jak np. Motorolla 6502. Komplikuje to prac projektantom magistral.
Funkcje rejestrów we/wy mog by ró ne. Zapis do pewnego rejestru mo e by komend dla
sterownika sprz towego urz dzenia. Inne rejestry słu jako bufory wej cia wyj cia - nale y
do nich wpisyswa dane wysyłane do urz dzenia a odczytywa dane przychodz ce z
urz dzenia. Jeszcze inne rejestry pozwalaj odczyta status urz dzenia lub ostatnio
wykonanej operacji.
Adresy rejestrów we/wy danego sterownika sprz towego cz sto mog by modyfikowane.
Nadaje si je ustawiaj c zworki na karcie sterownika (np. dawne modele kart sieciowych
zgodnych z NE2000), konfiguruj c programem SETUP (np. adresy portów szeregowych) lub
programem dostarczonym przez producenta urz dzenia (np. karty sieciowe ISA 3Com) lub
poprzez fakt wł czenie karty w konkretne gniazdo magistrali (np. karty PCI).
O ustawieniu adresów we/wy na sterowniku sprz towym nale y poinformowa sterownik
programowy (ang. driver), aby mógł si poprawnie odwoływa do danego urz dzenia.
Nowsze sterowniki programowe potrafi same wykry adresy we/wy swoich sterowników
fizycznych.
Adresy we/wy nie musz tworzy spójnej przestrzeni adresowej jak to było z pami ci
fizyczn . Je eli adresy we/wy dwóch sterowników pokrywaj si , to urz dzenia te nawzajem
przeszkadzaj sobie w pracy. Mówimy wtedy o konflikcie adresów we/wy. Konflikt
rozwi zuje si nadaj c jenemu z urz dze inne adresy we/wy i informuj c o tym sterownik
programowy danego urz dzenia.
Rejestry we/wy zapewniaj przepływ niewielkich paczek informacji w obie strony (procesor
<-> urz dzenie). Inicjatorem komunikacji jest zawsze procesor.
Przerwania
Przerwana to sygnały jakie wysyłaj sterowniki sprz towe aby poinformowa procesor o
istotnym zdarzeniu, które wymaga po wi cenia przez procesor uwagi danemu urz dzeniu.
Przykładami takich wydarze mo e by wci ni cie klawisza, zako czenie operacji dyskowej,
nadej cie pakietu informacji do karty sieciowej itp.
Aby odró ni zdarzenia pochodz ce od ró nych urz dze , poszczególnym sterownikom
sprz towym przypisuje si numery przerwa w podobny sposób jak to było z adresami
we/wy, przy czym zakres numerów przerwa sprz towych jest niewielki i przykładowo
wynosi od 0 do 15 dla komputerów o architekturze PC/AT. Konflikt numerów przerwa mo e
by równie katastrofalny w skutkach jak konflikt adresów we/wy. Podobnie jak z adresami
we/wy, o ustawieniu numeru przerwania w sterowniku sprz towym nale y poinformowa
odpowiedni sterownik programowy.
Po otrzymaniu przerwania procesor przerywa aktualnie wykonywany proces, zapisuje cz
swego kontekstu na stosie (przynajmniej wska nik instrukcji i rejestr flagowy) i przechodzi
do wykonania podprogramu obsługi przerwania zarejestrowanego dla danego numeru
przerwania. Podprogram ten pochodzi ze sterownika programowego danego urz dzenia i
został zarejestrowany w trakcie inicjacji sterownika. Po zako czeniu obsługi przerwania
sterowanie wraca do przerwanego procesu, który wykonuje si dalej tak jakby nie został
przerwany.
Istnieje hierarchia przerwa , tzn. pewne przerwania mog by przerywane przez inne
22
umieszczone wy ej w hierarchii.
Aby zwi kszy szybko reagowania na przerwania podprogram obsługi przerwania
wykonuje si w kontek cie procesu, który został przerwany, co poci ga za sob mo liwo
manipulowania danymi procesu przez podprogram obsługi przerwania pochod cy ze le lub
zło liwie napisanego sterownika programowego.
Adresowalna pami
Adresowalna pami sterownika to cz
pami ci RAM lub ROM sterownika sprz towego,
która jest widoczna dla procesora w przestrzeni adresów fizycznych pami ci. Przykłady
zastosowa : pami obrazu karty graficznej, pami ROM zawieraj ca kod podprogramów
wchodz cych w skład sterownika programowego danego urz dzenia.
Kanały DMA
Kanały DMA (direct memory access - bezpo redni dost p do pami ci) s to narz dzia jakie
udost pniaj magistrale sterownikom sprz towym we/wy, aby te mogły bezpo rednio czyta
lub pisa do pami ci operacyjnej (bez pochłaniania uwagi procesora). Podczas gdy sterownik
sprz towy dokonuje operacji przez kanał DMA magistrala stgeruj ca blokuje procesorowi
dost p do cało ci lub cz ci pami ci. Z kanałów DMA korzystaj sterowniki urz dze
przesyłaj cych dane z wielkimi pr dko ciami takich jak dyski, karty sieciowe czy kardt
d wi kowe.
Kanały DMA maj swoje numery, do których przydzielania odnosz si podobne uwagi co do
przydziału adresów we/wy.
Sterowniki i urz dzenia logiczne
Sterownik programowy (ang. device driver) to zbiór podprogramów pozwalaj cych sterowa
danym urz dzeniem (urz dzeniami) fizycznym. Dla poprawnej pracy sterownik musi zna
zasoby sterownika sprz towego urz dzenia fizycznego, poprzez które mo e si z nim
komunikowa . Je eli sam nie potrafi ich znale , nale y poda mu je podczas konfiguracji.
Pojedy czy sterownik mo e obsługiwa wiele urz dze fizycznych tego samego typu (np.
dysków) lub typów uzupełniaj cych si (np. klawiatura i ekran).
Wy szym warstwom oprogramowania sterownik prezentuje pewn ilo urz dze logicznych
(ang. logical device). Ka de urz dzenie logiczne ma swoj unikaln nazw np. "A:", "C:",
"COM1:" w MS DOS czy "/dev/fd0", "/dev/hda1", "/dev/cua0" w Linuksie (podobne nazwy
s w innych systemach uniksowych).
W MSDOSie nazwy urz dze logicznych nie mog by dłu sze ni 9 znaków ł cznie z
obowi zkowym ko cowym znakiem dwukropka ":". W MS Windows NT nazwy urz dze
logicznych umieszczone s w drzewie nazw obiektów systemowych, dodatkowo istnieje
mechanizm tłumaczenia nazw MSDOSa na nazwy obiektów MS Windows NT. W uniksie
ka demu urz dzeniu logicznemu udost pnionemu przez administratora odpowiada plik
specjalny w katalogu "/dev", st d nazwy urz dze zaczynaj si na "/dev/".
Urz dzenia logiczne reprezentuj abstrakcje urz dze fizycznych:
•
Urz dzenia logiczne mog wprost odpowiada urz dzeniom fizycznym. Np. w
MSDOS urz dzenie logiczne "COM1:" odpowiada pierwszemu portowi szeregowemu
i w konsekwencji przypi tej do niego myszce.
•
W niektórych przypadkach wiele urz dze logicznych odpowiada temu samemu
urz dzeniu fizycznemu. Dzieje si tak gdy urz dzenie daje si na pewnym poziomie
23
abstrakcji podzieli na kilka odr bnych fragmentów. Np. w systemie MSDOS
działaj cym na komputerze z jednym dyskiem podzielonym na dwie partycje,
urz dzenia logiczne "C:" i "D:" odpowiadaj poszczególnym partycjom tego samego
dysku fizycznego. Inny przykład: na wietlarka t.j. urz dzenie do na wietlania klisz do
offsetu mo e by widoczna jako kilka drukarek logicznych, ka da drukarka logiczna
reprezentuje inne parametry na wietlania (takie jak rozdzielczo ).
•
Mo liwa jest równie sytuacja gdy jedno urz dzenie logiczne odpowiada wi cej ni
jednemu rz dzeniu fizycznemu, np. "/dev/console" w linuksie odpowiada konsoli
znakowej, czyli klawiaturze i monitorowi.
Sterownik programowy urz dzenia zapewnia m.in.:
•
podprogramy obsługi przerwa obsługuj ce przerwania danego urz dzenia,
•
podprogramy implementuj ce operacje na urz dzeniach logicznych jakie dany
sterownik dostarcza wy szym warstwom,
•
podprogramy do wykonania czynno ci organizacyjnych zlecanych przez system
operacyjny takich jak np. inicjacja urz dzenia.
Sterowniki programowe urz dze mog by dostarczne przez firmy niezale ne od producenta
systemu operacyjnego w szczególno ci przez proucentów urz dze we/wy. Najbardziej
fundamentalne sterowniki takie jak sterowniki dysków, klawiatury, karty graficznej i
monitora przychodz razem z systemem operacyjnym. System operacyjny musi dawa si
rozszerza o inne sterowniki oraz definiowa i egzekwowa normy, których przestrzeganie
pozwoli współistnie w jednym systemie operacyjnym sterownikom programowym
pochodz cym od ró nych producentów.
Po zainstalowaniu, sterownik programowy staje si cz ci systemu operacyjnego, w zwi zku
z czym, sterowniki nieznanego pochodzenia mog stanowi wyłom w bezpiecze stwie
systemu.
Urz dzenia dyskowe
Budowa urz dze dyskowych
Dysk jest urz dzeniem blokowym przeznaczonym do przechowywania du ych ilo ci danych.
Najmniejsz porcj danych jaka mo e by odczytana/zapisana na dysk nazywamy sektorem.
Obecnie budowane dyski składaj si z pewnej ilo ci talerzy (ang. plate) na których
dwustronnie zapisywana jest informacja przez kolumn głowic (ang. head) odczytuj co-
zapisuj cych. Na ka dym talerzu wyodr bni mo na cie ki (ang. track) w postaci
koncentrycznych okr gów, na których przy ustalonym poło eniu kolumny głowic zapisywana
jest informacja. cie ki nale ce do ró nych dysków odpowiadaj ce ustalonemu poło eniu
kolumny głowic nazywa si cylindrem (ang. cylinder). Na ka dej cie ce wyodr bnia si
pewn ilo sektorów.
Bezpo redni kontroler dysku jest najcz ciej zintegrowany z dyskiem. Do komputera dysk
jest przył czony poprzez magistral dyskow i adapter - sterownik sprz towy magistrali
dyskowej. Popularnie stosowane s dwa rodzaje magistral dyskowych i zwi zanych z nimi
protokołów komunikacji z dyskami:
•
IDE (Integrated Drive Electronics - zintegrowany kontroler dysku), którego nowsze
wersje wyst puj pod akronimami: ATA (AT Attachment Interface - interfejs
przył cza architektury AT), EIDE (Enhanced IDE - rozszerzony IDE), ATA-2, Fast-
24
ATA, ATAPI (ATA Packet Interface - interfejs pakietowy do ATA, wzorowany na
SCSI, u ywany do nap dów CD-ROM). Do magistrali IDE mo na prezył czy 1
adapter i maksymalnie 2 dyski. Jeden z dysków pełni rol nadrz dn (ang. master) w
stosunku do drugiego (ang. slave). W wytwarzanych obecnie komputerach PC
najcz ciej dwa adaptery (pierwszy - primary i drugi - secondary) IDE s
zintegrowane z płyt główn , pozwalaj c obsługiwa maksymalnie 4 dyski. Zalet
standardu IDE jest niski stopie komplikacji sterowników sprz towych a co za tym
idzie niska cena. Wad jest mała elastyczno , rozszerzalno i wydajno . Niska
wydajno (w porównaniu ze SCSI) wynika z przyj tego protokołu, który blokuje
magistral IDE, a przez to drugi dysk do czasu wykonania operacji.
•
SCSI (small computer system interface - interfejs małych systemów komputerowych)
zaprojektowany pocz tkowo dla minikomputerów okazał si bezkonkurencyjny przy
budowie serwerów i silnych stacji roboczych oraz przył czaniu do komputera
urz dze niekoniecznie dyskowych produkuj cych lub konsumuj cych du e ilo ci
danych (takich jak np. skanery i na wietlarki). Do magistrali SCSI mo na przył czy
do 8 lub w nowszych wersjach do 16 urz dze . Jednym z nich jest adapter komputera
zarz dzaj cy magistral (ang. host adapter). Zalet tego rozwi zania jest jego
elastyczno i du a wydajno . Protokół SCSI pozwala by adapter wysyłał zlecenia do
urz dzenia podczas gdy urz dznie to lub inne przył czonego do tej samej magistrali
wci jeszcze wykonuje swoje poprzednie zlecenie. Wad jest du y stopie
komplikacji urz dze a przez to wyskoa cena.
Wydajno dysku (ang. overall disk speed) charakteryzuj parametry:
•
Pr dko transferu danych z dysku do sterownika (ang. data transfer rate) - jest to
pr dko , z jak dysk jest w stanie przesyła dane na magistral ł cz c go z
adapterem. Traci na znaczeniu, gdy odwołania do dysku nast puj w du ej ilo ci do
przypadkowych miejsc.
•
redni czas dost pu do sektora (ang. average seek time) - jest to redni czas potrzebny
głowicy na znalezienie si nad losowo wybranym sektorem.
•
Ilo obrotów dysku na minut (rpm - ang. reverses per minute) i zwi zany z tym
redni czas oczekiwania głowicy na odczyt/zapis sektora na tej samej cie ce (ang.
average track seek time). Ten czynnik ma du e znaczenie gdy odwołania nast puj w
wiekszo ci do s siednich sektorów dysku, co dzieje si przy wczytywaniu du ych
niepofragmentowanych plików.
•
Ilo pami ci podr cznej na danym dysku (ang. internal disk cache size). Wewn trzna
pami podr czna dysku pozwala przyspieszy operacje na dysku:
o
zmniejszeniu ulega ilo fizycznych odczytów/zapisów dysku dzi ki
przechowywaniu ostatnio odczytanych/zapisanych sektorów oraz
o
mo na zaimplementowa mechanizm czytania sektorów z wyprzedzeniem.
Organizacja logiczna dysku
Dysk jest charakteryzowany przez nast puj ce zale ne od siebie parametry, od których zale y
pojemno dysku:
•
geometri : ilo zapisywalnych stron talerzy (ang. sides) = ilo głowic (ang. heads),
ilo cylindrów, ilo sektorów na cie ce (ang. sectors per track), rozmiar sektora
(ang. sector size);
•
ilo wszystkich sektorów, rozmiar sektora;
25
Sektory na dysku mo na posortowa w/g numeru cylindra, numeru głowicy i numeru sektora
na cie ce a nast pnie w tej kolejno ci ponumerowa . Powstaje w ten sposób płaski numer
sektora. Niektóre dyski dopuszczaj by do ich sektorów odwoływa si poprzez podanie
płaskiego numeru sektora, inne wymagaj podania tzw. parametrów geometrycznych tj.
numeru głowicy, numeru cylindra i numeru sektora na cie ce.
Utworzenie na dysku cie ek i sektorów na cie kach nazywamy formatowaniem
niskopoziomowym. Formatowanie niskopoziomowe przeprowadzane jest najcz ciej u
producenta lub jako pierwsza czynno po zainstalowaniu dysku w systemie. W czasie
formatowania niskopoziomowego dokonywane jest tak e sprawdzanie zdatno ci no nika
magnetycznego. Przeprowadzenie formatowania niskopoziomowego wymazuje z dysku
wszelkie informacje (ł cznie z tablic partycji).
Na dysku mo na wydziela obszary zwne partycjami, przydzielane ró nym systemom plików,
by mo e nale cych do ró nych systemów operacyjnych. Wiele systemów plików wymaga
aby ich partycje zawierały pełne cylindry. Opis podziału dysku na partycje znajduje si w
tzw. tablicy partycji umieszczonej na pocz tku dysku. Zmiana podziału na partycje niszczy
zawarto partycji, których rozmiar lub poło enie uległo zmianie. Do manipulacji tablic
partycji słu y program fdisk.
Na ka dym dysku obsługiwanym przez MSDOS, MS Windows 3.xx lub 95 mo e istnie
jedna partycja podstawowa FAT16 lub FAT32 oraz jedna partycja rozszerzona z pewn
ilo ci podpartycji FAT16 lub FAT32.
Po utworzeniu partycji nale y na ka dej z nich zapisa dane niezb dne do poprawnego
funkcjonowania systemu plików. Ten proces nazywamy formatowaniem
wysokopoziomowym. Formatowanie wyskokpoziomowe mo e zniszczy dane zapisane na
danej partycji.
Je eli system operacyjny startuje z dysku, jedna z partycji, tzw. partycja aktywna powinna
zawiera program ładuj cy j dro systemu operacyjnego oraz wszystkie inne pliki niezb dne
do startu systemu. Program ładuj cy jadro bywa umieszczany w zerowym sektorze dysku,
zwieraj cym te tablic partycji zwanym sektorem startowym (ang. bootsector).
System operacyjny ł czy sektory dyskowe w wi ksze jednostki, które traktuje nierozdzielnie
przy przydzielaniu ich plikom. Jednostki te nazywaj si w ró nych systemach: jednostkami
alokacji (ang. allocation unit), blokami (ang. block) klasterami (ang.cluster). Przykładowe
rozmiary jednostek alokacji to:
•
512 B = 1 sektor - SCO Unix, MSDOS FAT16 dla partycji nie wi kszych ni 32 MB
•
1kB = 2 sektory - Linux Ext2, MSDOS FAT16 dla partycji nie wi kszych ni 64 MB
•
4kB = 8 sektorów - Novell Netware, MSDOS FAT16 dla partycji nie wi kszych ni
256MB, MS Windows NT NTFS, MS Windows 95 FAT32.
Programowe sterowniki dysków wykorzystuj pami podr czn przy dost pie do dysków. W
pami ci podr cznej przechowywane s jednostki alokacji, na których ostatnio dokonywano
operacji (zapis na dysk nie nast puje natychmiast) oraz te, o których s dzi si , e w niedługim
czasie b d odczytywane. Przyspiesza to czas operacji na cz sto u ywanych plikach, lub gdy
wczytuje si dane z pliku w sposób sekwencyjny. W MSDOSie i MS Windows 3.11 rozmiar
dyskowej pami ci podr cznej nale ało ustawi r cznie. W nowszych systemach rozmiar ten
ustalany jest automatycznie na podstawie ilo ci dost pnej pami ci i cz sto ci operacji na
dysku.
Systemy plików
Pliki
26
Systemy plików maj zapewni mo liwo przechowywania zbiorów danych na urz dzeniach
zewn trznych komputera w sposób pozwalaj cy na pó niejsze odwoływanie si do danych,
ich przetwarzanie oraz łatwe wyodr bnianie, kopiowanie, przenoszenie i usuwanie do i z
systemu.
Plikiem lub zbiorem danych (ang. file) nazywamy ci g bajtów okre lonej długo ci stanowi cy
dla systemu plików atomiczn cało , wyposa ony w nazw i inne atrybuty zale ne od
systemu plików takie jak daty utworzenia, ostatniej modyfikacji, dost pu, flag archiwizacji,
czy uprawnienia.
Strumieniem (ang. stream) nazywamy obiekt z którego mo na czyta lub do którego mo na
zapisywa dane w sposób sekwencyjny (bajt po bajcie). Strumienie stanowi wa n
abstrakcj danych, wykorzystywan m.in. przy dost pie do plików. Przykładami strumieni
mog by poza zwykłymi plikami znakowe urz dzenia logiczne (w szczególno ci terminale).
Wiekszo systemów plików zapewnia do zwykłych plików zarówno dost p sekwencyjny
(tak jak do strumienia) jak i swobodny (w dowolnym momencie mo na powoływa si na
dowolny bajt, lub ci g bajtów pliku podaj c adres pierwszego bajtu i długo ci gu).
Katalogi
Aby ułatwi odszukiwanie plików, tworzy si hierarchiczn struktur zwan drzewem
katalogów.
Katalogiem (ang. directory) nazywamy plik interpretowany przez system plików jako list
odwoła do innych plików. Jako synonimy katalogu stosuje si tak e nazwy folder i
kartoteka.
Wszystkie obecnie spotykane systemy plików dopuszczaj aby katalogi zawierały inne
katalogi (tzw. podkatalogi ang. subdirectory), przy czym wymaga si , aby graf katalogów był
drzewem (ang. tree) skierowanym. Ka dy katalog ma co najwy ej jeden nadkataolg (ang.
updir). Istnieje dokładnie jeden katalog b d cy korzeniem drzewa katalogów, który nie
posiada swego nadkatalogu (lub sam jest sobie nadkatalogiem, ang. root directory). Niektóre
systemy plików (np. uniksowe systemy plików) dopuszczaj aby ten sam plik mógł si
znajdowa w wielu katalogach jednocze nie lub w tym samym katalogu pod ró nymi
nazwami. W takich systemach plików katalogi i pliki tworz graf acykliczny. W systemach
plików FAT16 i FAT32 stosowanych w MSDOS i MS Windows 3.xx i 95 pliki i katalogi
tworz drzewo.
Nazywanie plików
Jak wcze niej stwierdzono, ka dy plik posiada nazw (ang. file name). Nazwa pliku musi by
unikalna w ramach katalogu.
Ka dy plik w systemie plików posiada (przynajmniej jedn ) pełn (bezwzgl dn ) nazw ,
unikaln w ramach całego systemu plików, tworzon przez poł czenie z nazw pliku tzw.
cie ki bezwzgl dnej, t.j. nazw wszystkich katalogów, jakie nale y przej aby osi gn dany
plik poczynaj c od korzenia drzewa katalogów. Je li pliki i katalogi tworz drzewo to ka dy
plik posiada dokładnie jedn pełn nazw .
Mi dzy innymi dla uproszczenia nazewnictwa plików wprowadza si poj cie katalogu
bie cego. Katalog bie cy mo e by zwi zany z procesem (jak np. w Uniksie) lub by
globalnym dla wszystkich procesów systemu (MSDOS). Nazwa utworzona z nazwy pliku i
tzw. cie ki wzgl dnej, t.j. nazw katalogów jakie nale y przej aby osi gn dany plik
poczynaj c od katalogu bie cego nosi nazw nazwy wzgl dnej. Przej cie do nadkatalogu
sygnalizowane jest w cie ce i nazwie wzgl dnej przez człon "..".
Do ł czenia nazw katalogów i plików w cie ki i nazwy wzgl dne i bezwzgl dne u ywa
27
znaku charakterystycznego dla danego systemu operacyjnego zwanego dalej znakem
katalogu:
•
"\" - w MSDOS, MS Windows XX,
•
"/" - w systemach zgodnych z uniksem,
•
"." - w VMSie
W MSDOSie, MS Windows XX i systemach zgodnych z uniksem katalog główny nosi nazw
tak jak znak katalogu ("\" w MSDOS, "/" w uniksach), a nazwa bezwzgl dna ró ni si tym
od nazwy wzgl dnej, e nazwa bezwzgl dna zaczyna si znakiem katalogu, np.
"\Windows\Command" - cie ka bezwzgl dna, "Command" - nazwa wzgl dna, (wzgl dem
katalogu "\Windows").
System operacyjny z ró nych powodów narzuca pewne ograniczenia na nazwy plików, np.
długo - 8 znaków nazwy wła ciwej + 3 znaki rozszerzenia w MSDOS, 14 znaków w
niektórych uniksach, 255 znaków w niektórych nowszych systemach operacyjnych. Innym
ograniczeniem jest to jakie znaki mo na stosowa w nazwach. Uniksy dopuszczaj wszystkie
znaki oprócz (co jest oczywiste) znaku katalogu "/" i znaku ko ca ła cucha (znak o kodzie 0).
Systemy te rozró niaj du e/małe litery. MSDOS dopuszczał jesynie litery, cyfry, i kilka
znaków nieliterowych, m.in. "_", "$" i "!". MS Windows 95 dopuszczaj m.in. odst p (czyli
sacj " "), "-" i wiele innych. Systemy te nie rozró niaj du ych/małych liter przy
odwołaniach do plików, cho MS Windows 95 rozró nia je przy wy wietlaniu nazw plików.
Kilku słów komentarza wymaga mechanizm pozwalaj cy korzysta z tego samego systemu
plików zarówno przez MS Windows 95 (długie nazwy) jak i starsze wersje systemów
Microsoftu. Mechanizm ten zwany jest Virtual FAT (vfat). Ka dy plik posiada dwie nazwy,
tzw. nazw dług tworzon zgodnie z regułami MS Windows 95 i nazw 8+3 tworzon
zgodnie z regułami MSDOSa na podstawie nazwy długiej. MSDOS widzi w danym katalogu
tylko nazwy 8+3, natomiast MS Windows 95 widzi obie nazwy, a domy lnie wy wietla
nazwy długie.
Systemy plików a dyski logiczne
Ka dej partycji odpowiada urz dzenie logiczne i zwi zana z nim nazwa dysku logicznego.
Istniej dwa podej cia do nazywania plików poło onych na ró nych partycjach:
1.
Globalny system plików. Takie nazewnictwo wyst puje w uniksach. Istnieje jeden
katalog główny dla całego systemu operacyjnego. Katalog ten jest jednocze nie
katalogiem głównym wyró nionej partycji, zwanej partycj korzeniow (ang. root).
Katalogi główne pozostałych partycji s montowane do li ci drzewa partycji
korzeniowej lub wcze niej zamontowanych partycji, rozbudowuj c drzewo.
Rozmieszczenie poszczególnych katalogów i plików na partycjach jest przezroczyste
dla u ytkowników. Doło enie nowego dysku lub przemieszczenie całych katalogów
pomi dzy partycjami nie musi powodowa zmiany nazwy bezwzgl dnej adnego
pliku. Pomaga w tym mechanizm dowi za symbolicznych (ang. symbolic link, czyli
skrót, ang. shortcut, w terminologi MS Windows ).
2.
Jawne nazwy dysków. Takie nazewnictwo wykorzystuj m.in. MS DOS i MS
Windows XX. Nie istnieje globalny system plików. Tworz c pełn nazw pliku nale y
powoła si na nazw dysku logicznego. Dyski logiczne maj nazwy składaj ce si z
pojedy czej du ej litery alfabetu łaci skiego i dwukropka (np. "A:", "C:", takich
nazw mo e by najwy ej 26). U ytkownik musi pami ta na którym dysku znajduj
si jego pliki. Dodanie nowego dysku lub przemieszczenie katalogów mi dzy dyskami
28
powoduje zmian bezwzgl dnych nazw plików.
Dla ułatwienia tworzenia nazw wzgl dnych pojawia si poj cie dysku bie cego.
Je eli nazwa pliku nie zawiera nazwy dysku, to przyjmuje si e odnosi si do dysku
bie cego.
Ka dy dysk logiczny ma swój katalog bie cy. Je li w nazwie pliku podana b dzie
nazwa dysku, a po niej nie nast pi znak "\", to plik jest poszukiwany id c po cie ce
poczynaj c od bie cego katlogu podanego dysku.
Typy plików
Systemy operacyjne wyró niaj typy plików, które s traktowane w sposób specyficzny.
Jeden spo ród atrybutów pliku zwany typem pliku decyduje o sposobie traktowania pliku
przez system operacyjny. Najcz ciej spotykane typy plików to:
1.
Katalogi. O katalogach była ju mowa.
2.
Pliki specjalne urz dze - wyst puj w systemach uniksopodobnych, słu a do
nazywania urz dze logicznych.
3.
Kolejki FIFO, kolejki komunikatów, gniazda (ang. sockets), strumienie - pliki
realizuj ce bardziej zło one sposoby dost pu. Wyst puj w systemach
uniksopodobnych i MS Windows NT.
4.
Dowi zania sybmoliczne (ang. symbolic link) inaczej skróty (ang. shortcut). Pliki
które stanowi odwołanie do innych plików lub katalogów. Wi kszo operacji
wykonywanych na tych plikach odnosi si w rzeczywisto ci do plików przez nie
wskazywanych.
5.
Pliki wykonywalne (ang. executables): programy, komendy, skrypty (ang. scripts),
pliki wsadowe (ang. batch files) - pliki zawieraj ce kod programu do wykonania przez
procesor lub komendy do wykonania przez powłok (lub inny interpreter).
Programy mog by wyró nione jak w systemach uniksopodobnych przez posiadanie
specjalnego uprawnienia do wykonania lub przez nadanie odpowiedniego
rozszerzenia, np. ".COM", ".EXE " i ".BAT" w MSDOSie.
6.
Zwykłe pliki z danymi. Te dziel si na podtypy, zale nie od posiadanego
rozszerzenia, tj przyrostka nazwy pliku zaczyaj cego si zazwyczja znakiem kropki
lub od tzw. liczby magicznej tj. pierwszych 2 lub 4 bajtów zawarto ci pliku.
Interpretacj zawarto ci plików z danymi róznych typów zajmuj si specjalizowane
aplikacje (takie jak MS Word, AutoCAD itp.). System operacyjny nie próbuje
interpretowa tych plików, co najwy ej powłoki u ytkownika dostarczaj narz dzi do
łatwego uruchamiania odpowiednich aplikacji, rejestrowania nowych typów plików z
danymi i kojarzenia z nimi aplikacji.
ASCII
Na osobne omówienie zasługuje plik tekstowy ASCII. Otrzymuje on cz sto rozszerzenia
".txt" lub ".asc". Bajty przechowywane w tym pliku interpretowane s jako znaki
alfanumeryczne kodowane w ASCII (Amercan Standard Code for Information Interchange).
Kod ten koduje du e i małe litery, cyfry, znaki przestankowe oraz podstawowe symbole
matematyczne.
Aby nada danym przechowywanym w plikach ASCII form podobn do dokumentów
pisanych na dwuwymiarowych kartkach, pewne znaki o kodach mniejszych od 32 oraz znak o
kodzie 127 otrzymuj specjalne znaczenie steruj ce. Na znaczenia przypisane znakom
steruj cym powa ny wpływ miały terminale teletekstowe (ang. teletype) stosowane w
pocz tkowych fazach rozwoju informatyki. Wa niejsze znaki steruj ce to:
29
•
CR (dziesi tny kod znaku: 13) - Carriage Return - powrót karetki. Oznacza
przesuni cie głowicy drukarki na pocz tek wiersza.
•
LF (dziesi tny kod znaku: 10) - Line Feed - przej cie do nowego wiersza. W
systemach uniksopodobnych słu y do rozdzielnia wierszy pliku tekstowego. W
systemach Microsoftu do tego celu słu y para nastepuj cych po sobie znaków CR LF.
•
FF (dziesi tny kod znaku: 12) - Form Feed - przej cie do nowej strony. Powoduje
wysuni cie strony z drukarki i przej cie do drukowania na nowej.
•
HT (dziesi tny kod znaku: 9) - Horizontal Tab - tabulacja pozioma. Powoduje
przej cie do nast pnej pozycji przy tworzeniu tabel, zazwyczaj przej cie do najbil szej
kolumny znaków o numerze podzielnym przez 8.
•
BS (dziesi tny kod znaku: 8) - BackSpace - wymazywanie wsteczne. Nakazuje
wymazanie poprzedniego znaku.
•
ESC (dziesi tny kod znaku: 27) - Escape - kod ucieczki. Oznacza, e po nim nast pi
zakodowana komenda dla urz dzenie wy wietlaj cego lub drukuj cego. W edytorach
nazywany jest tak e metaznakiem (ang. meta, metacharacter) słu cym do
konstruowania znaków niedost pnych bezpo rednio z klawiatury lub komend.
•
Znak ko ca pliku (kod dziesi tny ró ny w róznych systemach). Oznacza koniec pliku
tekstowego lub transmisji tekstowej.
Oryginalny kod ASCII jest siedmiobitowy. Ósmy bit bajtu u ywany był jako suma kontrolna.
Obecnie wykorzystywane jest wszystkie osiem bitów. Tak uzyskane dodatkowe 128 znaków
słu y do przedstawiania semigrafiki lub znaków narodowych. Poniewa jest to zamało do
przedstawienia znaków narodowych, cho by wszystkich alfabetów łaci skich, wprowadzono
strony kodowe, t.j. sposoby kodowania znaków spoza podstawowego alfabetu łaci skiego. W
Polsce obowi zuje norma przemysłowa zgodna z norm mi dzynarodow ISO 8895-2.
Popularnie stosowane oprogramowanie Microsoftu z wyj tkiem MS Windows NT
stosuj cych unikody (ang. unicode) nie jest zgodne z powy szymi normami i wprowadza
dwie własne strony kodowe CP 852 (MSDOS) i CP 1250 (MS Windows XX).
Pliki ASCII ze wgl du na prostot kodowania informacji s powszechnie wykorzystywane
jako pliki konfiguracyjne, dzienniki odnotowuj ce błedy programów, pliki przenosz ce dane
mi dzy ró nymi aplikacjami lub przechowuj ce dane w sposób ułatwiaj cy u ytkownikowi
ingerencj niezale nie od aplikacji.
Rozdział 5: Zagadnienia bezpiecze stwa
W j zyku angielskim wyró nia si dwa terminy, którym odpowiada jedno polskie okre lenie -
bezpiecze stwo:
•
safety - bezpiecze stwo u ytkownika (i jego danych) przed niezgodnym ze
specyfikacj (awaryjnym) działaniem systemu i
•
security - bezpiecze stwo systemu przez destrukcyjnymi działaniami u ytkownika.
S to dwie strony tego samego medalu. System nie b d cy bezpiecznym w jednym z
powy szych znacze , przestaje by bezpieczny w drugim.
Autentykacja na przykładzie haseł wielokrotnych
30
Autentykacja jest to proces, w którym komunikuj cy si partnerzy potwierdzaj swoj
to samo . Najcz ciej autentykacja ogranicza si jedynie do potwierdzenia to samo ci
u ytkownika. Zakłada si tutaj, e u ytkownik pracuje w otoczeniu zaufanych komputerów.
Jednak zdarzaj si przypadki podszywania si "wrogich" komputerów pod "przyjazne"
serwery, aby np. przechwyci hasła nie wiadomych u ytkowników. Wskazanie sposobów
rozwi zania tego problemu znajduje si w punkcie po wi conym kryptografii. Tutaj
omówiony b dzie najprostszy przypadek, gdy komputery sieci lokalnej s dostatecznie dobrze
chronione przed podszywaniem by ka dy u ytkownik mógł ufa , e ka dy komputer jest tym
za którego si podaje.
U ytkownik przyst puj c do pracy (lub ł cz c si z kolejnym komputerem), proszony jest to
podanie identyfikatora (konta lub profilu).
Identyfikator jest jawny. Pozwala on innym u ytkownikom i oprogramowaniu powoływa si
na danego u ytkownika. Identyfikator ten jest ci giem znaków, najcz ciej małych liter.
Zaleca si , aby miał jaki zwi zek z imieniem, nazwiskiem lub wydziałem, w którym pracuje
u ytkownik.
Teraz u ytkownik musi potwierdzi swoje prawo do posługiwania si identyfikatorem.
Najcz ciej proszony jest o podanie znanego tylko jemu hasła. Hasło nie pojawia si na
ekranie.
Oczywi cie, istniej inne bardziej wyrafinowane sposoby potwierdzania to samo ci
u ytkownika oparte o biometri , karty magnetyczne lub procesorowe, czy hasła jednorazowe,
ale ich omówienie wykracza poza ramy tego wykładu.
Zalet haseł wielokrotnych jest "prostota obsługi" i brak konieczno ci instalowania
specjalizowanego sprz tu. Wady s rozliczne:
•
U ytkownicy wybieraj hasła, które łatwo jest odgadn .
•
Bywa, e hasło jest zapisane w dost pnym dla postronnych miejscu, lub jest gubione.
•
Hasła s przechowywane w niektórych komputerach, lub przesyłane sieci w postaci
jawnej (niezaszyfrowanej), co pozwala na ich przechwytywanie.
•
U ytkownicy posługuj si tymi samymi hasłami w odniesieniu do kont na ró nych
komputerach. Nieuczciwy administrator, lub włamywacz, przegl daj c pliki z hasłami
na jednym komputerze wchodzi w posiadanie haseł na innych komputerach.
Wad tych nie mo na w cało ci wyeliminowa , ale mo na zrobi wiele aby je zmniejszy :
•
Aby utrudni odgadni cie hasła:
o
W adnym wypadku nie nale y ustawia sobie jako hasła, słowa, które łatwo
jest skojarzy z własn osob , tj: nazwy konta, imienia, nazwiska (własnego,
członka rodziny, znajomego lub zwierz cia domowego), numeru telefonu,
rejestracji samochodu, adresu, daty urodzin itp.
o
Hasło powinno mie przynajmniej 6 znaków, czym dłu sze tym lepsze.
o
Niektórzy włamywacze próbuj ró nych haseł pochodz cych ze specjalnie
sporz dzonych słowników zawieraj cych popularne słowa z danego j zyka,
nazwy geograficzne, słownictwo fachowe, imiona bohaterów powie ci, filmów
itp. Je li zatem stosuje si hasło, które jest popularnym słowem, nale y wple
w nie cyfr lub znak nieliterowy, lub je li pozwala na to oprogramowanie,
cz
znaków wpisa du ymi, a cz
małymi literami.
o
Dobre hasła uzyskuje si bior c pierwsze litery z wybranego zdania.
•
Przez pewien czas zalecano by haseł nie zapisywa , lecz pami ta je. Obecnie zaleca
si zapisywanie haseł, ale przechowywa nale y je w miejscach dla innych
31
niedost pnych, np. w portfelu. Dobrze jest te zamaskowa hasło wplataj c je w inne
napisy.
•
Nale y unika ł czenia si przez niepewne sieci z usługami wymagaj cymi haseł. Np.
z domu przez publiczny modem telekomunikacji i dalej przez Internet do pracy
(nale y dzwoni bezpo rednio na firmowy modem, je li takowy jest). Je li tylko
mo na, nale y skorzysta z oprogramowania kryptograficznego.
•
Dobrze jest posiada inne hasło do ka dego z kont. Czasem jest to uci liwe, dlatego
mo na ograniczy si do posiadania jednego hasła do komputerów w pracy i drugiego
do usług w Internecie. W adnym razie nie nale y zakłada sobie takiego samego
hasła w jakiejkolwiek usłudze internetowej, jakie ma si w pracy.
Autoryzaja czyli o uprawnieniach
Autoryzacja, oznacza udzielanie dost pu danemu u ytkownikowi (reprezentowanemu przez
zautentykowany identyfikator) do tych zasobów, które s dla niego przeznaczone. W tym celu
system operacyjny danego komputera utrzymuje baz danych zawieraj c informacje o tym
które zasoby (pliki, katalogi, urz dzenia itp.) mog by udost pniane poszczególnym
u ytkownikom i na jakich prawach.
Baza ta zawiera nast puj ce informacje:
1.
Obiekty podlegaj ce ochronie. Najcz ciej s to pliki i katalogi, w ogólno ci s to
zasoby danego komputera.
2.
Podmioty uzyskuj ce prawa dost pu. Podmiotami tymi s u ytkownicy. Aby ułatwi
zarz dzanie prawami du ych zbiorowo ci u ytkownków wprowadza si grupy
u ytkowników, które s równie podmiotami uzyskuj cymi uprawnienia.
U ytkownicy s przypisywani do grup. Dany u ytkownik mo e nale e do wielu grup.
Przez fakt przynale no ci do danej grupy u ytkownik zyskuje lub traci takie
uprawnienia jakie zostały przypisane grupie.
3.
Uprawnienia. We wszystkich systemach operacyjnych powtarzaj si prawa do zapisu
i odczytu plików. Wiele systemów rozszerzaja te podstawowe uprawnienia o prawo do
uruchamiania programów, prawo do kasowania lub tworzenia plików w katalogu,
prawo do powoływania si na katalogi itp.
Na poziomie systemu operacyjnego wyró ni mo na kilka klas systemów autoryzacji,
dokładn klasyfikacj daje "Pomara czowa ksi ga" Ministerstwa Obrony USA, na potrzeby
tego opracowania ogranicz si do krótkiej listy:
1.
Brak autoryzacji. Takie systemy nadaj si dla pojedy czego u ytkownika, lub tam
gdzie autoryzacja nie jest wymagana. Np. MS DOS.
2.
Profile u ytkownika. Komputer rozpoznaje u ytkowników, ka demu daje
spersonalizowane rodowisko pracy, jednak nie zabezpiecza danych jednego
u ytkownika przed innym u ytkownikiem. W praktyce takie systemy s wi c
równowa ne poprzedniej klasie. Nadaj si dla niewielkiej grupy zaufanych
u ytkowników. Np. MS Windows 9x.
3.
Wspólne hasła. System nie wyró nia u ytkowników, wyró nia natomiast zasoby
maj ce przypisane hasła. Ka dy u ytkownik, który poda hasło do zasobu, otrzymuje
do niego dost p. Utrzymanie bezpiecze stwa takich systemów jest mo liwe tylko w
niewielkich grupach zaufanych u ytkowników. Np. Microsoft Networks w wersji
peer-to-peer tj. bez serwerów Netware i NT.
32
4.
Klasyczne systemy wielou ytkownikowe. Wyró niaj u ytkowników i grupy.
Autentykacja u ytkownika nast puje w momencie rozpoczynania sesji pracy z
systemem. Z ka dym obiektem zwi zana jest ograniczona liczba podmiotów jakie
uzyskuj do niego uprawnienia. Np. w standardowym uniksie ka dy plik ma dokładnie
jednego wła ciciela-u ytkownika, któremu przypisane s pewne uprawnienia,
dokładnie jednego wła ciciela-grup maj c uprawnienia, oraz uprawnienia stosowane
do pozostałych. Podobnie jest w VMSie. Wiele takich systemów jest zgodnych z klas
bezpiecze stwa C2 w sensie "Pomara czowej ksi gi". W oparciu o takie systemy
uprawnie działa spora cz
serwerów w internecie. Pewn wad tego systemu jest
to, e jedynie administrator ma swobod nadawania uprawnie . Zwykły u ytkownik
ma ograniczone mo liwo ci okre lania uprawnie dla innych podmiotów do swoich
zasobów.
5.
Systemy z ACL (Access Control List - lista kontroli dost pu). Systemy te ró ni si
tym od klasycznych, e z ka dym obiektem mo na zwi za dowolnie lub
wystarczaj co dług (np 32 elementow w Netware) list podmiotów maj cych
uprawnienia do danego zasobu. U ytkownik mo e bez pomocy administratora
nadawa uprawnienia innym podmiotom do swoich zasobów (z oczywistym
ograniczeniem, e nie mo e nada wi kszych ni sam ma). Do tej klasy nale takie
systemy jak Novel Netware, Windows NT i niektóre uniksy np. Solaris. S one
wystarczaj ce do wi kszo ci zastosowa cywilnych.
6.
Systemy z okre leniem klas poufno ci. Oprócz istnienia grup i ACL u ytkownicy i
zasoby komputera s przydzieleni do klas poufno ci. aden u ytkownik nie mo e
udzieli uprawnie do zasobów danej klasy poufno ci innemu u ytkownkowi
nale cemu do klasy gorszej. Utrudnia to przypadkowe przecieki informacji tajnych i
z tego powodu jest stosowane w instytucjach o podobnym do wojskowego sposobie
zarz dzania dost pem do informacji poufnych.
Wiele aplikacji, w szczególno ci bazy danych ma własne mechanizmy autentykacji i
autoryzacji, gdzie wyró nia si przywileje przypisywane u ytkownikom do wykonywania
pewnych charakterystycznych dla tych aplikacji operacji (np. nie ka dy mo e dokona
sprzeda y).
Wiele serwerów sieciowych rozszerza podstawowe systemy uprawnie dostarczane przez
system operacyjny, aby ograniczy dost p z zen trz do charakterystycznych dla tych
serwerów usług, np. serwer WWW Apache okre la w których katalogach mo na umieszcza
skrypty CGI, programy umieszczone poza tymi katalogami nie b d uruchamiane przez
serwer.
Oprócz uprawnie do pojedy czych zasobów mog istnie w systemie tzw, kwoty (ang.
quota) tj. ograniczenia ilo ci jednocze nie wykorzystywanych zasobów danej klasy. Kwoty
zabezpieczaj system przed wyczerpaniem zasobów przez zachłannych u ytkowników. Np.
kwota dyskowa okre la jak du y obszar dysku mo e by jednocze nie zaj ty przez pliki
danego u ytkownika. Kwoty mog te dotyczy procentu czasu pracy procesora na rzecz
danego u ytkownika w jednostce czasu, ilo ci uruchomionych procesów itp.
W wielu systemach istniej mechanizmy do ograniczania u ytkownikowi dost pu do
wydzielonych stanowisk lub okre lonych godzin pracy.
W ród u ytkowników wyró nia si administratorów i operatorów, czyli takich, do których
zada nale y troska o poprawne działanie systemu. Maj w zwi zku z tym znacznie szersze
prawa. W rozbudowanych systemach mo na wyró ni kilka klas administratorów:
•
główny administrator (w uniksie zwany tradycyjnie root, w innych systemach admin,
sysadmin itp.), ma maksymalne prawa do systemu operacyjnego, mo e w
33
szczególno ci nadawa prawa innym, w zwi zku z czym jego hasło nie powinno by
jego prywatn tajemnic , lecz tajmnic firmy,
•
operatorzy poszczególnych usług i aplikacji, przykładowo:
o
operatorzy backupu - maj prawo nadzorowa wykonanie kopii
bezpiecze stwa systemu,
o
administratorzy baz danych - odpowiadaj za integralno bazy danych i
poprawne działanie jej oprogramowania,
o
webmasterzy odpowiedzialni za poprawn prac serwisu WWW,
o
operatorzy drukarek - odpowidaj za poprawn prac drukarek, mog m.in.
wstrymywa i usuwa z kolejek wyduku zadania innych u ytkowników.
Osobnym zagadnieniem s prawa głównego administratora. Mo na tu wyró ni dwa
podej cia:
•
Administrator jest osob , która doskonale zna system, która go zainstalowała na
komputerze oraz ma pełne prawa zapisu i odczytu dysków i pami ci operacyjnej, wi c
nie ma sensu broni u ytkowników przed nieuczciwym administratorem, poniewa
mo e on wszystkie mechanizmy obej lub wył czy . Takie podej cie prezentuje
wi kszo uniksów. Włamywacz, który przejmie prawa administratora mo e nie
zostawi ladów swej działalno ci.
•
Twórcy systemu operacyjnego utajniaj pewne informacje (m. in. projekt i kod
ródłowy) dotycz ce systemu operacyjnego, a w szczególno ci systemu plików, dzi ki
czemu administrator nie mo e wykona z systemem wszystkiego w szczególno ci
usun ladów swoich działa . Takie podej cie zastosowano w Windows NT. (Np.
je li administrator przejmie uprawnienia do jakiego pliku, to nie mo e si potem tego
wyprze . Niestety tajemnice bywaj wykradane jak to si stało z kodem ródłowym
tego systemu i kwesti czasu jest pojawienie si oprogramowania usuwaj cego lady
działania administratora w wystarczaj co popularnym systemie.)
Audyt
Audyt oznacza ledzenie działania systemu i poczyna u ytkowników. Pozwala ustali
przyczyny awarii oraz momenty i sprawców narusze bezpiecze stwa. U ytkownicy
komputerów powinni sobie zdawa spraw , e ich prywatno jest w ka dej chwili naruszana
przez audyt. Jest to zło konieczne, z którego administratorzy nie zgodz si zrezygnowa .
Dost p do dzienników systemowych powinien by ci le limitowany.
Kopie bezpiecze stwa
Awarii systemu ko cz cych si utrat danych nigdy nie da si wykluczy . Posiadanie starych
wersji dokumentów, które przestały by u yteczne i zostały normaln drog usuni te z
systemu te mo e by niekiedy cenne. Niekiedy archiwizacja wymuszana jest osobnymi
przepisami, np. bazy danych ksi gowo ci. St d jednym z zada administratora jest rutynowe
wykonywanie kopii bezpiecze stwa plików. Systemy operacyjne i oprogramowanie
narz dziowe niezale nych producentów dostarcza mu niezb dnego wsparcia. Istniej
wyspecjalizowane firmy zajmuj ce si kompleksowo archiwizacj danych komputerowych i
tworzeniem elektronicznych baz dokumentów papierowych.
Narz dzia
34
Do tworzenia kopii bezpiecze stwa słu y specjalizowany sprz t i oprogramowanie.
Ze sprz tu nale y wymieni przede wszystkim nap dy i no niki o du ej pojemno ci (rozmiary
no ników podane s orintacyjnie):
•
Do przeszło ci odchodz dyskietki, stosowane do archiwizacji drobnych plików.
Przeci tne pojemno ci s rz du 1MB.
•
Obecnie popularno zdobywaj no niki magnetooptyczne. Dost pne technologie
pozwalaj zmie ci powy ej 100MB na jednym no niku. W niedługiej przyszło ci
pojemno ci tych no ników maj wzrosn do rz du 10GB i wi cej. No niki te
charakteryzuj si dost pem swobodnym i mo liwo ci wielokrotnego zapisu.
•
Najpopularniejszymi no nikami kopii zapasowych s streamery, b d ce kasetami z
t m magnetyczn . Pojemno ci streamerów wahaj si od 100MB do 30GB, zapewne
b d jeszcze rosły. Kasety s wielokrotnie zapisywalne. Dost p do nich jest
sekwencyjny, co przy robieniu cało ciowych zrzutów nie ma znaczenia. No niki te s
najmniej wra liwe na awarie nap du w trakcie odczytu/zapisu.
•
Dyski optyczne jednokrotnego zapisu. Niemo no wymazania raz zapisanych danych
w tym zastosowaniu mo e by ich zalet . Najbardziej rozpowszechnione s dyski CD-
ROM o pojemno ci 650MB, powoli standaryzuje si technologia DVD o pojemno ci
rz du 10GB. Wad tych no ników jest to, e w czasie procesu zapisu komputer musi
dostarcza w odpowiednim tempie strumie danych, co powoduje, e w czasie zapisu
komputer nie mo e wykonywa innych czynno ci.
Niektórzy zalecaj wybiera takie no niki, by zmie cił si na nich w cało ci zrzut dysku bez
robienia kompresji.
Nap dy backupuj ce mo na:
•
wmontowa na stałe po jednym do ka dego komputera,
•
przył cza na czas robienia zrzutu przez magistral SCSI lub w inny sposób, lub
•
umie ci na wydzielonym komputerze, który b dzie ci gał zrzuty z innych
komputerów sieci .
W ród oprogramowania nale y wyró ni :
•
programy dokonuj ce zrzutów i odtworze cało ci dysku bez kompresji: tar, cpio,
dump/restore, backup/restore,
•
programy kompresuj ce/dekompresuj ce: zip, gzip, pkzip, arj, lharc i in.,
•
narz dzia kryptograficzne,
•
narz dzia do weryfikacji kopii bezpiecze stwa,
•
zło one programy rozwi zuj ce problem kompleksowo, w tym pozwalaj ce planowa
zakres zrzutów oraz ich automatyczne wykonanie np. sysadmsh w SCO Uniksie,
Microsoft Backup i in.
Do robienia kopii zapasowych nale y wybiera narz dzia, które b d dost pne wiele lat po
zrobieniu kopii.
Torzenie kopii bezpiecze stwa
Istniej ró ne poziomy kopii bezpiecze stwa:
•
zerowy - pełna kopia - obejmuje cały dysk lub drzewo katalogów,
35
•
kopie ró nicowe lub przyrostowe - obejmuj tyko pliki, które zmieniły si od ostatniej
kopii, mo e tu istnie wiele poziomów (pierwszy, drugi, ...), dany poziom obejmuje te
pliki, które zmieniły si od czasu ostatniej kopii poziomu ni szego.
System operacyjny wspiera tworzenie przyrostowych kopii bezpiecze stwa utrzymuj c
informacje o datach modyfikacji plików lub flagi niezb dno ci archiwizacji.
Przyjmuje si , e kopie poziomu zerowego powinno si robi nie rzadziej ni raz na kwartał a
zaleca si raz na miesi c. Kopie takie powinno si przechowywa przez czas nieokre lony,
dobrze sprawdzaj si tutaj streamery i CD-ROMy.
Kopie wy szych poziomów powinno sporz dza si w połowie okresów wykonywania kopii
poziomów ni szych, nale y je przechowywa przynajmniej przez dwukrotno okresu jej
sporz dzania. Po upływie czasu przechowywania kopii, no nik mo na wykorzysta
powtórnie. Dobrze sprawdzaj si tutaj takie no niki jak streamery i dyski magnetooptyczne.
Nie wszystkie dane w komputerze s równie nara one na mo liwo c utraty, mo na je
podzieli pod tym wgl dem na kilka grup:
•
Pliki tymczasowe. W zasadzie nie wymagaj archiwizacji.
•
Oprogramowanie systemowe i inne oprogramowanie niededykowane. W razie utraty
mo na je powtórnie zainstalowa z no ników instalacyjnych. Pod warunkiem
zapewnienia ochrony no nikom instalacyjnym nie wymagaj archiwizacji.
•
Dzienniki systemu (logi). Zawieraj cenne informacje dla administratora, jednak ich
utrata zazwyczaj nie uniemo liwia bie cego działania systemu. Warto archiwizowa .
•
Konfiguracja oprogramowania. Cz sto łatwa do odtworzenia, zwłaszcza, gdy została
udokumentowana na papierze, jednak w zło onych programach odtworzenie mo e
wymaga wielu godzin mudnej pracy. Zaleca si archiwizowa .
•
Oprogramowanie dedykowane i jego konfiguracja. Powtórna instalacja
oprogramowania dedykowanego, takiego jak programy bankowe, oprogramowanie
linii technologicznej itp. mo e wymaga obecno ci przedstawicieli producenta a sam
proces zazwyczaj jest długotrwały. Nale y liczy si z tym, e producent mo e nie
dysponowa plikami instalacyjnymi pewnych modułów oprogramowania, je li były
robione dla potrzeb specyficznego klienta. Nale y archiwizowa .
•
Dane przedsi biorstwa, własna twórczo u ytkownika itp. S bezcenne.
Bezwzgl dnie archiwizowa .
Do ró nego stopnia wra liwo ci i zmienno ci danych mo na dostosowa cz sto robienia
kopii zapasowych. I tak, przyrostowe kopie firmowych danych mo na robi codziennie, a
kopie oprogramowania raz na kwartał oraz po wi kszych instalacjach lub uaktualnieniach.
Proste narz dzia wymagaj uwagi operatora przy tworzeniu kopii, zło one (np. sysadmsh dla
SCO Uniksa) potrafi wł cza kopiowanie automatycznie w rodku nocy w/g
przygotowanego wcze niej przez administratora planu.
Po wykonaniu kopii bezpiecze stwa nale y j zweryfikowa . Nale y sprawdza tak e kopie
przechowywanez dłu szy czas w archiwum przez losowe odtwarzanie zawartych w nich
plików.
Kopie bezpiecze stwa, przynajmniej te poziomu zerowego nale y robi w kilku
egzempla ach, z których jeden powinien by przechowywany w miejscu mo liwie odległym
od tego, w którym pracuj obj te kopi komputery.
Kryptografia
36
Techniki kryptograficzne pozwalaj chroni poufno i autentyczno informacji. Poufno
oznacza, e informacja mo e by poprawnie odczytana jedynie przez upowa nione osoby (lub
programy). Autentyczno oznacza, e informacja mo e (mogła) by wygenerowana jedynie
przez upowa nione osoby w sposób daj cy si pó niej poprawnie odczyta . Nieco słabsz
cech jest integralno oznaczaj ca e informacja nie uległ zmianie w czasie przekazu, nie
gwarantuje si natomiast autentyczno ci jej nadawcy.
Kryptografia nie chroni przed nieupowa nion modyfikacj danych (jest to zadanie
autoryzacji) a jedynie pozwala odbiorcy wykry i odrzuci nieautentyczne wiadomo ci (przez
co mo e by wykorzystywana jako jeden z elementów algorytmów autoryzacji).
Aby móc chroni informacj wykonuje si na niej przekształcenie zwane szyfrowaniem.
Operacja odwrotna zwana jest deszyfrowaniem. Wiadomo pocz tkow nazywamy tekstem
jawnym lub otwartym, po zaszyfrowaniu - tekstem zaszyfrowanym lub kryptogramem.
Przekształcenie szyfruj ce i deszyfruj ce zale od tzw. kluczy kryptograficznych. Podaj c
niewła ciwy klucz przy deszyfrowaniu nie mo emy poprawnie odszyfrowa wiadomo ci. Nie
znaj c klucza szyfrowania nie mo emy zaszyfrowa tekstu tworz c daj cy si potem
poprawnie odszyfrowa wła ciwym kluczem kryptogram.
W zastosowaniach cywilnych nale y stosowa jedynie te przekształcenia szyfruj ce, które nie
pozwalaj na systematyczne odgadywanie tekstu jawnego i klucza kryptograficznego
osobom, które znaj algorytm przekształcenia i dowoln ilo tekstu zaszyfrowanego. Zaleca
si stosowanie szyfrów spełniaj cych silniejszy warnek: nie powinno by mo liwe
systematyczne odgadywanie klucza przez osoby, które mog wygenerowa z dowolnego
tekstu jawnego kryptogramy i znaj algorytm przekształcenia. W adnym razie
bezpiecze stwo szyfru nie powinno si opiera na utajnieniu algorytmu.
Wszystkie szyfry z wyj tkiem niemo liwego do zastosowania w praktyce szyfru z
jednorazowym kluczem s teoretycznie przełamywalne, to znaczy, e w sko czonym czasie
mo na odgadn klucz (i w konsekwencji tekst jawny). W praktyce stosuje si zazwyczaj
szyfry dla których czas potrzebny na przełamanie zale y w sposób wykładniczy od długo ci
klucza. W przypadku wzrostu mocy obliczeniowych komputerów b d cych w ekonomicznym
zasi gu potencjalnego przeciwnika nale y wymieni klucze na dłu sze.
Ameryka skie regulacje dotycz ce eksportu broni zabraniaj wywozu oprogramowania
kryptograficznego posługuj cego si kluczami dłu szymi ni 40 bitowe. Beneficjentem tego
ograniczenia miał by wywiad USA dysponuj cy superkomputerami, jednak obecnie szyfry
takie mo na łama na PCtach. Powszechnie uwa a si , e ograniczenie to powa nie utrudnia
powstawanie oprogramowania kryptograficznego dla potrzeb cywilnych i nara a na straty
równie gospodark USA.
Wyró nia si dwa systemy szyfrowania:
•
Szyfrowanie z kluczem prywatnym (symetryczne, klasyczne).
•
Szyfrowanie z kluczem publicznym (asymetryczne).
Szyfrowanie symetryczne
Zarówno do szyfrowania, jak i deszyfrowania wiadomo ci stosuje si ten sam klucz, lub te
klucze mo na łatwo przekształci jeden w drugi. W tym systemie nie da si rozdzieli
ochrony poufno ci i autentyczno ci. Dla prowadzenia korespondencji mi dzy n podmiotami
potrzeba razem n*(n-1)/2 kluczy (ka dy podmiot potrzebuje innego klucza dla ka dego ze
swych n-1 partnerów - innymi słowy ka da para potrzebuje osobnego klucza).
Przykłady historyczne: szyfr Cezara, Tablica Vigenere'a i Enigma oraz obecnie powszechnie
37
stosowane: DES i IDEA.
Szyfrowanie asymetryczne
Podstawy teoretyczne opracowano dopiero w latach '70 tego stulecia.
Metody te opieraj si na parze kluczy. Jeden z nich zwany jest kluczem publicznym, drugi -
prywatnym. Wyznaczenie klucza publicznego na podstawie klucza prywatnego jest na ogół
obliczeniowo łatwe. Wykonanie operacji w drug stron (wyznaczenie klucza prywatnego na
podstawie publicznego) w rozs dnym czasie, przy odpowiedniej długo ci klucza mo e by
poza zasi giem technicznym.
Je li jednego z kluczy u yto do szyfrowania to kryptogram daje si odszyfrowa tylko
drugim. I na odwrót, je li kryptogram daje si odszyfrowa pierwszym, to do szyfrowania
mógł by u yty tylko drugi.
W tym systemie mo na chroni osobno poufno , osobno autentyczno lub obie te cechy na
raz.
Tekst zaszyfrowany kluczem publicznym mo e by poprawnie odszyfrowany tylko kluczem
prywatnym znanym jednej konkretnej osobie. Tak chroni si poufno .
38
Kryptogram daj cy si poprawnie odszyfrowa kluczem publicznym mógł by sporz dzony
tylko przy u yciu klucza prywatnego b d cego w dyspozycji tylko jednej konkretnej osoby.
Tak zapewnia si autentyczno .
Klucze publiczne mo na swobodnie rozpowszechnia bez obawy ujawnienia kluczy
prywatnych. Do prowadzenia komunikacji mi dzy n podmiotami potrzeba razem n par kluczy
(po parze kluczy prywatny/publiczny na podmiot). Ka dy podmiot pami ta swój klucz
prywatny i klucze publiczne swoich partnerów.
Dzi ki szyfrowaniu asymetrycznemu mo liwe stało si sporz dzanie podpisów (sygnatur)
cyfrowych. Autor wiadomo ci sporz dza jej skrót znanym algorytmem haszuj cym i szyfruje
ten skrót swoim kluczem prywatnym. Ka dy (kto zna klucz publiczny) mo e sporz dzi skrót
wiadomo ci oraz odszyfrowa podpis i sprawdzi czy wynikowe ci gi znaków s identyczne.
Jednocze nie, je li kto zmodyfikuje wiadomo , to nie b dzie mógł doprowadzi do sytuacji,
e b dzie ona zgodna z dotychczasow sygnatur , ani sporz dzi sygnatury, która po
odszyfrowaniu kluczem publicznym oryginalnego autora byłaby zgodna ze zmodyfikowan
wiadomo ci . Dokument opatrzony podpisem cyfrowym nazywamy certyfikatem cyfrowym.
Opracowano pewnym mechanizmy pozwalaj ce rozpowszechnia klucze publiczne przez
podatne na atak media przy zapewnieniu autentyczno ci samych kluczy. Oznacza to, ka dy
podmiot ma mo liwo sprawdzenia, czy klucze publiczne które posiada odpowiadaj
kluczom prywatnym jego partnerów i nie zostały mu podstawione przez przeciwnika.
39
•
Odciski palaca kluczy (fingerprints). S to krótkie ci gi znaków, b d ce skrótem
całego (długiego) klucza, które mo na np. przedyktowa przez telefon i w ten sposób
potwierdzi autentyczno klucza przekazanego inn drog .
•
Certyfikaty kluczy. Je eli jeden z u ytkowników, nazwijmy j Al , chce przekaza
innemu u ytkownikowi, nazwijmy go Bolkiem, swój klucz publiczny przez kanał,
który nie gwarantuje autentyczno ci przekazu, mo e poprosi wspólnego znajomego,
nazwijmy go Cze kiem o udzielenie certyfikatu jej kluczowi publicznemu.
Sytuacja jest taka: Czesiek zna klucz publiczny Ali, Bolek zna klucz publiczny Cze ka
ale nie zna klucza Ali i chciałby go otrzyma w sposób nie budz cy w tpliwo ci co do
autentyczno ci tego klucza. Czesiek podpisuje klucz publiczny Ali swoim kluczem
prywatnym i taki certyfikat wysyła do Ali. Ala mo e teraz wysła go do Bolka. Bolek
maj c klucz publiczny Cze ka, sprawdzi, e certyfikat został podpisany jego kluczem
prywatnym. Z certyfikatu odczyta klucz publiczny i informacj , e jest to klucz Ali.
Nieprzyjazny im wszystkim Darek mo e na pewnym etapie przechwyci certyfikat i
zmodyfikowa go, jednak e Bolek odrzuci taki zmodyfikowany certyfikat, gdy
Darek nie b dzie mógł sporz dzi podpisu Cze ka.
Gdy Ala b dzie chciała przekaza swój klucz publiczny Ewie nie b dzie musiała po
raz drugi prosi o pomoc Cze ka, gdy ju ma jego certyfikat na swój klucz.
Najsłabszym ogniwem jest tu wymiana kluczy publicznych z Cze kiem. Czesiek musi
by zatem wystarczaj co szeroko znanym i pot nym indywiduum by podszycie si
pod niego było niemo liwe.
Mo na sobie wyobrazi , e w roli Ali wyst puje bank emitent kart kredytowych, w
roli Bolka i Ewy - sprzedawcy przyjmuj cy plastikowe pieni dze, a w roli Cze ka -
ogólnokrajowa instytucja certyfikacyjna, jak mo e by konsorcjum du ych instytucji
finansowych lub bank narodowy. W chwili pisania niniejszego opracowania, taki
system w odniesieniu do powszechnego obrotu finansowego pozostawał w sferze
wyobra ni.
Przykłady: RSA (oparte na trudno ci rozkładu du ych liczb na czynniki pierwsze), szyfry
oparte na problemie plecakowym, El-Gamal.
Szyfry asymetryczne s najcz ciej powolne, dlatego stosuje si techniki hybrydowe - przy
pomocy szyfru asymetrycznego partnerzy uzgadniaj klucz sesji słu acy nast pnie do
szyfrowania szybkim algorytmem symetrycznym. Klucze sesyjne s jednorazowego u ytku.
Funkcje jednokierunkowe
W niektórych przypadkach do ochrony autentyczno ci lub poufno ci nie jest potrzebne lub
wskazane szyfrowanie wiadomo ci (daj ce mo liwo deszyfrowania). Stosuje si wówczas
funkcje jednokierunkowe.
Funkcja jednokierunkowa jest to takie przekształcenie, które daje si oblicza szybko w jedn
stron , ale dla którego wyznaczenie przekształcenia odwrotnego jest bardzo zło one
obliczeniowo. Zmiana pojedy czego bitu argumentu powoduje zmiany wielu bitów wyniku
według zło onego schematu. Odgadywanie argumentu dla którego fukcjia przyjmuje zadan
warto najcz ciej polega na przeszukaniu całej dziedziny argumentów funcji.
Funkcje jednokierunkowe słu m.in. do przechowywania haseł, oraz do tworzenia streszcze
wiadomo ci dla potwierdzania ich integralno ci i autentyczno ci (patrz wcze niej - podpisy
cyfrowe).
Inne zagadnienia
40
Inne zagadnienia maj ce wpływ na bezpiecze stwo komputerów to mi dzy innymi
piel gnacja, konserwacja i wła ciwe przechowywanie sprz tu i oprogramowania, dobór
wykwalifikowanego i odpowiedzialnego personelu, szkolenia oraz tworzenie polityki
bezpiecze stwa systemu informatycznego.