Podstawy systemow operacyjnych
Transkrypt
Podstawy systemow operacyjnych
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 MSDOS 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 cozapisuj 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 CDROM 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.