Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Materiały pomocnicze do zajęć z przedmiotu SYSTEMY OPERACYJNE Kod przedmiotu: F***** Ćwiczenie pt. STRUKTURA I ORGANIZACJA DANYCH NA DYSKU TWARDYM I DYSKIETCE. SYSTEM PLIKÓW FAT Pracownia numer 2 Autor: Jarosław Forenc (2006) Białystok 2006
1. BUDOWA FIZYCZNA DYSKÓW TWARDYCH W dysku twardym można wyróżnić trzy podstawowe bloki funkcjonalne: nośnik danych, część mechaniczną realizującą dostęp do nośnika oraz kontroler sterujący pracą dysku i komunikujący się z otoczeniem. Nośnikiem danych jest wirujący talerz lub zestaw talerzy zamocowany na wspólnej osi. Pierwsze talerze wykonane były z aluminium i z jego specjalnych stopów z magnezem. Dzięki temu były lekkie i wykazywały minimalne zmiany wymiarów pod wpływem temperatury. Aluminium zastąpiono specjalnymi powłokami z fosforku niklu, a ostatnio szkłem. Talerze pokryte są specjalną warstwą o właściwościach ferromagnetycznych - najczęściej jest to kobalt lub specjalne ceramiki żelazowe (tzw. ferryty). W pierwszych rozwiązaniach wirujące z dużymi prędkościami talerze osadzone były w klasycznych łożyskach kulkowych. Niestety, mimo stosowania wysokiej jakości materiałów i dokładności wykonania, kulki i bieżnie łożysk zawsze wykazują pewne odkształcenia, powiększające się w wyniku zużycia. Efektem tego są wibracje utrudniające precyzyjne pozycjonowanie głowic oraz zwiększające hałas generowany przez dysk. Rozwiązaniem tego problemu są łożyska hydrodynamiczne (ang. Fluid Dynamic Bering), powszechnie nazywane łożyskami olejowymi. W łożyskach tych wirująca z dużą prędkością oś wytwarza wokół siebie warstewkę cieczy, ograniczającą do minimum kontakt osi z tuleją, w której została osadzona. Dzięki temu dysk jest cichy, a jednocześnie olej zmniejsza tarcie prowadząc do wydzielania się mniejszych ilości ciepła. Dostęp do nośnika magnetycznego realizowany jest przez pozycjoner, na ramionach którego znajdują się głowice odczytujaco-zapisujące. Wszystkie ramiona głowic są ze sobą połączone. Każdemu talerzowi przypisane są dwie głowice (góra i dół talerza). Zadaniem pozycjonera jest ustawienie głowic w wybranym miejscu dysku. W stanie spoczynku głowice dotykają powierzchni nośnika. W momencie, gdy dysk zaczyna wirować z dużą prędkością (5.400 obr/min, 7.200 obr/min, 10.000 obr/min) pod głowicami tworzy się poduszka powietrzna utrzymująca głowice nad powierzchnią nośnika w odległości ok. 0,2µm (tzw. pływające głowice). Wytworzone przez głowice pole magnetyczne powoduje uporządkowanie domen magnetycznych w nośniku (zapis). Ruch tak zapisanego nośnika w pobliżu głowicy odczytującej powoduje w niej indukcję sygnału elektrycznego, odpowiadającego zapisanym danym. Współczesna technologia do odczytu danych używa, zamiast głowic indukcyjnych, opracowaną przez firmę IBM, technologię głowic megnetorezystywnych MR i GMR (ang. Giant MagnetoResistance), umożliwiających zwiększenie zarówno odczytywalnej gęstości zapisu, jak i zwiększenie szybkości odczytu. Technologia GMR wykorzystuje zjawisko magnetooporowe, tj. zmiany oporności elektrycznej pod wpływem zewnętrznego pola magnetycznego. GMR 2
wykorzystuje oddzielne głowice do zapisu i odczytu, niskoszumowe nośniki magnetyczne wykonane ze stopu chromu, niklu i kobaltu oraz metody cyfrowej identyfikacji danych PRML (ang. Partial Response, Maximum Likelihood). Głowice wykonane w tej technologii mają naniesiony wielowarstwowo materiał ferromagnetyczny i niemagnetyczny - poprawia to czułość zapisu i odczytu informacji. Szczelina jaka powstaje między powierzchnią nośnika, a głowicami jest bardzo mała więc kurz lub uderzenia mogą spowodować uszkodzenie nośnika lub samych głowic. Długoletnia bezawaryjna praca dysku wymaga zabezpieczenia przed dostania się do środka jakichkolwiek cząsteczek zagrażających głowicy. Osiągane jest to poprzez montaż dysków w specjalnych pomieszczeniach spełniających rygorystyczne warunki czystości. Mimo tego w trakcie pracy dysku w jego wnętrzu mogą pojawić się drobinki zanieczyszczeń powstałe na skutek ścierania się elementów ruchomych lub przypadkowego zetknięcia głowicy z wirującą powierzchnią nośnika. Wirujący dysk wytwarza wewnątrz zawirowania powietrza, które są źródłem pewnej stałej cyrkulacji w jego obudowie. Na drodze strumienia powietrza ustawiany jest specjalny filtr powietrza wyłapujący niepożądane cząsteczki. Zapis danych na dyskach twardych odbywał się w systemie MFM (ang. Modified Frequency Modulation), następnie w standardzie RLL (ang. Run Length Limited). W przypadku dyskietek stosowano system FM (ang. Frequency Modulation), a potem MFM. Sterowaniem częściami ruchomymi napędu dysku (silniki krokowe i liniowe) oraz zarządzaniem danymi zajmuje się tzw. kontroler dysku. Kontroler realizuje zadania odczytu bądź zapisu danych, kontroluje pracę pozycjonera, komunikuje się z urządzeniami zewnętrznymi, z którymi jest połączony. Kontroler dysku składa się z mikroprocesora, pamięci RAM i ROM, dekoderów adresu oraz specjalistycznych układów obróbki danych. Kontroler komunikuje się z szynami systemowymi za pomocą tzw. host-adaptera, którym może być karta rozszerzająca (starsze komputery) lub układy umieszczone bezpośrednio na płycie głównej. Powszechne w użyciu określenie kontroler dysku twardego w rzeczywistości oznacza właśnie host-adaptera. W komputerach PC stosowane były/są następujące kontrolery: ST412/506 Jest to najstarszy typ kontrolera, jego nazwa wywodzi się od dwóch pierwszych modeli dysków tego systemu. Występował zawsze jako dodatkowa karta rozszerzająca. Obecnie nie spotyka się dysków i kontrolerów tego typu. IDE System IDE (ang. Intelligent Drive Electronics lub Integrated Device Electronics), nazywany także ATA lub AT-BUS, opracowany został w 1981 r. W systemie tym kontroler został zintegrowany z dyskiem. Dyski IDE komunikują się z szynami systemowymi za pośrednictwem host-adaptera. Host- 3
adapter mógł znajdować się bezpośrednio na płycie głównej i wtedy wystarczyło połączyć dysk twardy 40-żyłowym przewodem z odpowiednim gniazdem na płycie głównej. Stosowane były także host-adaptery w postaci karty rozszerzającej, często zawierającej też kontroler dyskietek, porty szeregowe i równoległe, tzw. Karta Multi I/O. Standard IDE dopuszczał obsługę do dwóch dysków twardych (Master i Slave) o maksymalnej pojemności 504 MB (dziesiętnie 528 MB). Maksymalna długość kabla łączącego dysk z adapterem wynosiła 18 cali, czyli ok. 46 cm. Przewód ten miał trzy wtyki - kontroler, urządzenie Master i Slave. Żadne przewody nie były krzyżowane, dlatego fizyczna kolejność urządzeń na magistrali nie odgrywała żadnej roli. EIDE Standard EIDE (ang. Enhanced IDE) miał usunąć ograniczenia standardu IDE, zapewniając przy tym pełną z nim zgodność. Opracowano różne wersja standardu EIDE: ATA-2 (1994 r.), ATA-3 (1996 r.), ATA/ATAPI-4 (1997 r., możliwość podłączenia innych urządzeń niż dysk twardy - streamer, CD-ROM), ATA-ATAPI-5 (2000 r.), ATA-ATAPI-6. System EIDE umożliwia obsługę dwóch host-adapterów (Primary i Secondary), czyli podłączenie do czterech urządzeń. Problem ograniczenia pojemności dysków standardu IDE do 504 MB został rozwiązany na dwa sposoby: - adresowanie CHS (ang. Cylinder, Head, Sector) - adres 24-bitowy, maksymalna pojemność dysku 7,88 GB (8,45 GB dziesiętnie), - adresowanie LBA (ang. Logical Block Addressing) - adres 28-bitowy, maksymalna pojemność dysku 128 GB (137,4 GB dziesiętnie). Zwiększenie pasma przepustowego magistrali osiągnięto przez zastosowanie trybów pracy: - Ultra DMA/33 (Ultra-ATA) - przewód 40-żyłowy, - Ultra DMA/66-40 przewodów sygnałowych, ale przewód 80-żyłowy - każdy przewód sygnałowy oddzielony jest od sąsiada dodatkową linią masy, poszczególne wtyki przewodu opisane są i oznaczone różnymi kolorami: kontroler - niebieski, Master - czarny, Slave - szary, - Ultra ATA/100, - Ultra ATA/133. Od pewnego czasu dyski EIDE nazywane są Parallel ATA w odróżnieniu od standardu Serial ATA. SERIAL ATA Interfejs ten występuje w dwóch wersjach Serial ATA i Serial ATA II, różniących się szybkością transmisji danych, odpowiednio, 150 MB/s i 300 MB/s. Urządzenia działają w topologii gwiazdy. Każdy dysk musi być 4
podłączony oddzielnie z odpowiednim gniazdem na płycie głównej. Maksymalna liczba dysków to 4. Dyski można podłączać na gorąco. Przewód Serial ATA ma 8 mm szerokości i maksymalnie 1 m długości. Składa się z 7 żył (4 przewody sygnałowe, 3 masy). SCSI System SCSI (ang. Small Computer System Interface) umożliwia połączenie ze sobą do 7 urządzeń - nie tylko dysków, ale również innych urządzeń (CD-ROM, skaner). Urządzenia te łączone są w tzw. konfiguracji łańcuchowej. Wszystkie linie interfejsu są wspólne dla wszystkich urządzeń, a kabel łączy urządzenie pierwsze z drugim, drugie z trzecim, trzecie z czwartym, itd. 2. FORMATOWANIE NISKOPOZIOMOWE Po wyprodukowaniu dysku struktura jego powierzchni jest nieuporządkowana. Dysk przez użyciem musi być sformatowany niskopoziomowo. Formatowanie niskopoziomowe (ang. Low Level Format) polega na nadaniu dyskowi struktury fizycznej, czyli utworzeniu znaczników ścieżek, sektorów i cylindrów (rys. 1). Rys. 1 Schemat budowy dysku twardego. Ścieżki są to logicznie utworzone na powierzchni dysku współśrodkowe okręgi. Ścieżki są podzielone na mniejsze jednostki, tzw. sektory. Jeden sektor może przechowywać 512 bajtów danych. Ponieważ dysk jest zbudowany z jednego lub kilku talerzy obsługiwanych przez odpowiednie zespoły głowic 5
poruszane jednym mechanizmem, to najczęściej nie mówi się o pojedynczych ścieżkach, ale o tzw. cylindrach. Cylinder są to wszystkie ścieżki o tym samym numerze położone na kolejnych stronach talerzy dysku. Każda ścieżka ma określoną strukturę, składa się ze znacznika początku ścieżki, sektorów i znacznika końca ścieżki. W sektorze poza danymi (512 bajtów) znajdują się kolejne znaczniki i kody kontrolne (CRC) znaczników i danych (16 bitowy kod CRC-2). Zatem w rzeczywistości sektor nie zajmuje 512 bajtów, ale ponad 600 bajtów (wielkość ta zależna jest od systemu kodowania). Dyski twarde podczas produkcji poddawane są długotrwałym próbom mającym na celu wykrycie wszystkich miejsc na powierzchni, które mogą być uszkodzone. Dla każdego dysku sporządzana jest lista uszkodzonych sektorów (numer cylindra, głowicy i sektora). W starszych dyskach lista ta była czasem dołączana do napędu w formie arkusza lub naklejki na obudowie. Uszkodzone sektory są eliminowane przez tzw. system odwzorowania uszkodzonych sektorów (ang. bad sector mapping). System ten opiera się na dwóch tablicach przechowywanych na dysku, a zawierających listę uszkodzonych sektorów. Pierwsza lista tworzona jest podczas testowania powierzchni magnetycznej przez producenta, natomiast druga tworzona jest przez kontroler dysku podczas formatowania niskopoziomowego - jest to tzw. lista znanych błędów (ang. Grown Error List). W oparciu o te listy kontroler niesprawne sektory i ścieżki logiczne przesuwa lub zastępuje innymi tak, że dysk na zewnątrz nie ma uszkodzeń. Jeśli na ścieżce jest uszkodzony tylko jeden sektor, to kontroler może w trakcie formatowania tak przesunąć wszystkie sektory, że uszkodzenie trafi w niewykorzystaną część ścieżki (jest to tzw. sector-slipping). Jeśli uszkodzenie obejmuje więcej niż jeden sektor, to cała ścieżka oznaczana jest jako uszkodzona, a jako zastępcza wyznaczana jest najwyższa z pozostałych dostępnych ścieżek. Formatowanie to jest wykonywane przez producenta dysku i jest niezależne od systemu operacyjnego. W starszych komputerach formatowanie niskopoziomowe mogło być wykonywane z poziomu BIOSu. W nowszych BIOSach nie ma już tej opcji. Formatowanie niskopoziomowe mogło być wykonywane na dyskach z interfejsem ST412/506 i niektórych wczesnych dyskach z interfejsem IDE. Nowoczesne kontrolery dysków twardych ignorują wszelkie żądania związane z formatowaniem niskopoziomowym. 3. PODZIAŁ DYSKU NA PARTYCJE Wszystkie sektory znajdujące się na dysku fizycznym mogą być traktowane jako jedna całość. Nie zawsze takie podejście jest korzystne, gdyż nie można wtedy umieścić na jednym dysku kilku systemów operacyjnych. 6
Z tego względu dyski dzielone są na tzw. partycje. Partycje z reguły obejmują grupę przylegających do siebie cylindrów i mogą mieć inny rozmiar i inny system plików. Podziału dysku na partycje nie jest wbudowany w sprzęt, ani w BIOS. W starszych systemach operacyjnych (DOS/Windows 9X) wykonywany był programem fdisk lub przy zastosowaniu zewnętrznych programów, np. Partition Magic, Ranish Partition Manager. W nowszych systemach (Windows 2000/XP), podział ten może być dodatkowo wykonywany podczas instalacji systemu operacyjnego lub bezpośrednio z jego poziomu. Informacje o sposobie podziału dysku na partycje zapisane są w tzw. głównym rekordzie ładującym (ang. Master Boot Record - MBR). Znajduje się on na samym początku dysku czyli w pierwszym sektorze logicznym (sektor 1 na cylindrze 0, pod głowicą 0) dysku twardego (dyskietki nie zawierają MBR!!!). MBR tworzony jest podczas podziału dysku na partycje. Jego zawartość przedstawia rys. 2. Program odszukujący i ładujący zawartość pierwszego sektora aktywnej partycji Opis partycji nr 1 Opis partycji nr 2 Opis partycji nr 3 Opis partycji nr 4 55AAH (01BEH) (01CEH) (01DEH) (01EEH) Tablica partycji Znacznik końca tablicy partycji Rys. 2 Struktura głównego rekordu ładującego dysku twardego. W czasie ładowania systemu z dysku twardego najpierw odczytywany jest i wykonywany program zawarty w pierwszej części głównego rekordu ładującego (główny kod startowy, ang. Master Boot Code, nazywany także Boot Loaderem). Kod programu ma ok. 400 bajtów - jego wielkość zależna jest od systemu operacyjnego. Program ten interpretuje zawartość tablicy partycji w celu odnalezienia partycji aktywnej tzn. takiej, z której będzie ładowany system operacyjny. Następnie odszukuje sektor początkowy partycji aktywnej (rekord ładujący - ang. Boot Record), ładuje do pamięci kopię tego sektora i przekazuje sterowanie kodowi wykonywalnemu zawartemu w tym sektorze. Kod ten odczytuje część systemu operacyjnego niezbędną do jego uruchomienia, po czym uruchamia ją (w systemie DOS/Windows 9x jest to plik io.sys, a dla Windows 2000/NT - NTLDR). Jeśli wykonanie powyższych 7
operacji nie jest możliwe to wyświetlany jest komunikat błędu (nieprawidłowa tablica partycji, błąd podczas ładowania systemu operacyjnego, brak systemu operacyjnego). Tablica partycji znajduje się za programem odszukującym i ładującym zawartość pierwszego sektora aktywnej partycji. Składa się ona z czterech 16-bajtowych rekordów. Każdy rekord znajduje się pod określonym adresem relatywnym w stosunku do początku MBR i opisuje jedną partycję (Tabela 1). Jeśli dysk zawiera mniej niż cztery partycje to niewykorzystane rekordy w tablicy partycji zawierają zera. Zawartość i organizacja tablicy partycji jest niezależna od systemu operacyjnego. Za tablicą partycji (pod adresem 01FEH) znajduje się 2-bajtowy znacznik końca tablicy partycji zawierający wartość 55AAH. Znacznik ten jest informacją dla systemu BIOS, który ładuje MBR do pamięci komputera, że odczytany został poprawny MBR. Brak znacznika powoduje wyświetlenie komunikatu błędu nawet wtedy, gdy główny kod startowy i tablica partycji zawierają poprawne dane. Tabela 1 Opis zawartości rekordu partycji w MBR Bajty Rozmiar Zawartość 00H 1 Znacznik aktywności: 00H - nieaktywna, 80H - aktywna 01H 1 Początek partycji: numer głowicy 02H-03H 2 Początek partycji: numer cylindra (10 bitów) i sektora (6 bitów) 04H 1 Typ partycji (system plików) 05H 1 Koniec partycji: numer głowicy 06H-07H 2 Koniec partycji: numer cylindra (10 bitów) i sektora (6 bitów) 08H-0BH 4 Liczba sektorów między początkiem dysku a pierwszym sektorem partycji 0CH-0FH 4 Rozmiar partycji: liczba sektorów w partycji Jak wynika z analizy struktury tablicy partycji, dysk może zawierać maksymalnie cztery partycje. Jednakże istnieje specjalny rodzaj partycji - tzw. partycja rozszerzona (ang. extended partition), która może zawierać własną tablicę partycji. Pozwala to na niemal nieograniczone dzielenie dysku na mniejsze dyski logiczne. W przypadku podziału dysku na partycje kolejność wykonywania czynności jest zazwyczaj następująca: - utworzenie partycji podstawowej, - utworzenie partycji rozszerzonej, - utworzenie dysków logicznych w partycji rozszerzonej (jednego lub kilku). Na dysku mogą być cztery partycje podstawowe albo do trzech partycji podstawowych i jedna partycja rozszerzona. 8
W części programów zarządzających dyskami partycja rozszerzona jest automatycznie tworzona podczas tworzenia pierwszego dysku logicznego znajdującego się poza partycją podstawową. Główny kod startowy Opis partycji 1 MBR partycja podstawowa 1 Tablica partycji Opis partycji 2 Opis partycji 3 Nieużywane 55AAH Rekord ładujący Dane partycja podstawowa 2 Rekord ładujący Dane EBR Rozszerzona tablica partycji 55AAH Rekord ładujący dysk logiczny partycja rozszerzona EBR Dane Rozszerzona tablica partycji 55AAH Rekord ładujący dysk logiczny Dane Rys. 3 Struktura dysku twardego zawierającego trzy partycje: dwie podstawowe (ang. primary) i jedną rozszerzoną (ang. extended) z dwoma dyskami logicznymi. Jeżeli na dysku znajduje się partycja rozszerzona, to każdy dysk logiczny na tej partycji poprzedzony jest rozszerzoną tablicą partycji (ang. extended boot record - EBR). Pierwszy wpis w EBR określa adres sektora startowego danego dysku logicznego, a drugi wpis wskazuje EBR kolejnego dysku logicznego. W przypadku braku kolejnych dysków logicznych drugi wpis nie jest używany i zawiera zera. Trzeci i czwarty wpis nigdy nie są używane. Na rys. 3 przedstawiona jest struktura dysku twardego zawierającego dwie partycje podstawowe oraz jedną partycję rozszerzoną z dwoma dyskami logicznymi. Na rys. 4 przedstawiona jest struktura partycji rozszerzonej zawierającej dwa dyski logiczne. 9
Bieżący Następny EBR Nieużywany Nieużywany pierwszy dysk logiczny 55AAH Rekord ładujący Dane partycja rozszerzona Bieżący Nieużywany EBR Nieużywany Nieużywany drugi dysk logiczny 55AAH Rekord ładujący Dane Rys. 4 Struktura partycji rozszerzonej zawierającej dwa dyski logiczne. 4. SYSTEM PLIKÓW FAT Sam podział dysku na partycje i utworzenie nie umożliwia zapisywania na nich plików lub tworzenia katalogów. Koniecznym jest jeszcze stworzenie systemu plików, czyli nadanie dyskowi struktury logicznej. Odbywa się to poprzez formatowanie dysku, nazywane często formatowaniem wysokopoziomowym (w odróżnieniu od opisanego wcześniej formatowania niskopoziomowego) lub formatowaniem logicznym. W starszych systemach operacyjnych (DOS, Windows 3.x/95) dyski formatowane były zazwyczaj programem format, w nowszych systemach formatowanie wykonywane jest podczas instalacji systemu operacyjnego lub bezpośrednio z poziomu systemu operacyjnego podczas jego pracy. System plików FAT (ang. File Allocation Table) opracowany został na przełomie lat 70. i 80. dla systemu operacyjnego MS-DOS. Występuje obecnie w trzech wersjach: FAT12, FAT16 i FAT32. Numer występujący po słowie FAT oznacza liczbę bitów przeznaczonych do numeracji jednostek alokacji 10
pliku (JAP), tzw. klastrów (ang. cluster) w tablicy alokacji plików i jest to 12 bitów w systemie FAT12, 16 bitów w systemie FAT16 oraz 32 bity w systemie FAT32. Podczas formatowania dysku logicznego lub dyskietki tworzona jest następująca struktura: Rys. 5 Ogólna struktura dysku logicznego / dyskietki. Powtórne formatowanie dysku nie niszczy zapisanej na nim informacji, a jedynie jej logiczną strukturę. Podczas formatowania zapisywany jest rekord ładujący, usuwane są wpisy w katalogu głównym, zaś tablica FAT inicjowana jest wartością zero (dysk pusty). 3.1 SYSTEM FAT12 System plików FAT12 przeznaczony jest dla nośników o małej pojemności, np. dyskietek. W systemie tym rekord ładujący zajmuje pierwszy sektor dyskietki lub dysku logicznego (sektor o numerze 0 w sensie numeracji liniowej). Znajdują się w nim następujące dane: - instrukcja skoku do początku programu ładującego (3 bajty), - nazwa wersji systemu operacyjnego (8 bajtów), - struktura BPB (ang. BIOS Parametr Block) - blok parametrów BIOS (25 bajtów), - rozszerzony BPB (ang. Extender BPB, 26 bajtów), - wykonywalny kod startowy uruchamiający system operacyjny (448 bajtów). - znacznik końca sektora - 55AAH (2 bajty). Szczegółową zawartość poszczególnych pól rekordu ładującego przedstawia Tabela 2 (kolumna Bajty określa odległość danego pola od początku rekordu ładującego), zaś w Tabeli 3 przedstawiono zawartość bajtu identyfikacji nośnika. 11
Tabela 2 Rekord ładujący (ang. Boot Record) w systemie FAT12 Bajty Rozmiar Zawartość 00H-02H 3 Instrukcja skoku do początku programu ładującego 03H-0AH 8 Nazwa wersji systemu (w znakach ASCII) 0BH-0CH 2 Rozmiar jednego sektora w bajtach 0DH 1 Liczba sektorów w jednostce alokacji plików (JAP) 0EH-0FH 2 Liczba sektorów zarezerwowanych, poprzedzających FAT 10H 1 Liczba tablic FAT 11H-12H 2 Maksymalna liczba plików w katalogu głównym 13H-14H 2 Całkowita liczba sektorów na dysku (do 32 MB) 15H 1 Bajt identyfikacji nośnika (zob. Tabela 3) 16H-17H 2 Liczba sektorów zajętych przez tablicę FAT 18H-19H 2 Liczba sektorów na ścieżce 1AH-1BH 2 Liczba głowic (stron) dysku 1CH-1FH 4 Liczba sektorów ukrytych 20H-23H 4 Całkowita liczba sektorów na dysku (jeśli dysk jest większy niż 32 MB) 24H 1 Numer mechanizmu dyskowego 25H 1 Zarezerwowane 26H 1 Znacznik rozszerzonego rekordu ładującego (wartość 29H) 27H-2AH 4 Numer seryjny dysku 2BH-35H 11 Etykieta 36H-3DH 8 Typ systemu plików 3EH-1FDH 448 Wykonywalny kod startowy uruchamiający system operacyjny 1FEH-1FFH 2 Znacznik końca sektora (55AAH) 12
Bajt identyfikacji nośnika Tabela 3 Bajt identyfikacji nośnika (15H) Rodzaj dysku Liczba stron Liczba ścieżek Liczba sektorów na ścieżce Pojemność dysku FFH Dyskietka 5,25" 2 40 8 320 KB FEH Dyskietka 5,25" 1 40 8 160 KB FDH Dyskietka 5,25" 2 40 9 360 KB FCH F9H F0H F8H Dyskietka 5,25" Dyskietka 3,5" Dyskietka 5,25" Dyskietka 3,5" Dyskietka 3,5" Dyskietka 3,5" Dysk twardy 1 2 2 2 2 2 40 80 80 80 80 80 9 9 15 9 18 36 180 KB 720 KB 1,2 MB 720 KB 1,44 MB 2,88 MB Poniżej przedstawiona jest przykładowa zawartość pierwszych 128 bajtów rekordu ładującego dyskietki. Wydruk składa się z trzech części: (1) - adresu od początku rekordu, (2) - zawartości poszczególnych bajtów w systemie szesnastkowym i (3) - odpowiadające im kody ASCII. Na wydruku zaznaczono poszczególne pola rekordu (do numeru seryjnego dysku włącznie) zgodnie z Tabelą 2. (1) (2) (3) 0000 EB 3C 90 29 23 28 2D 76-49 48 43 00 02 01 01 00.<.)#(-vIHC... 0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00...@... 0020 00 00 00 00 00 00 29 0F-0D 2A 1C 4E 4F 20 4E 41...)..*.NO NA 0030 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 FA 33 ME FAT12.3 0040 C0 8E D0 BC 00 7C 16 07-BB 78 00 36 C5 37 1E 56......x.6.7.V 0050 16 53 BF 3E 7C B9 0B 00-FC F3 A4 06 1F C6 45 FE.S.>...E. 0060 0F 8B 0E 18 7C 88 4D F9-89 47 02 C7 07 3E 7C FB....M..G...>. 0070 CD 13 72 79 33 C0 39 06-13 7C 74 08 8B 0E 13 7C..ry3.9.. t... Tablica rozmieszczenia plików FAT tworzy swego rodzaju mapę plików zapisanych na dysku. Miejsce na dysku przydzielane jest plikom w jednostkach alokacji - JAP. Za kopią tablicy FAT znajduje się katalog główny. Zajmuje on określoną dla danego typu dysku liczbę sektorów. Podkatalogi nie są ograniczone co do wielkości, zapisywane są na dysku w sposób identyczny jak pliki użytkowe. Katalog główny i podkatalogi zawierają 32-bajtowe pola mogące opisywać pliki, podkatalogi lub etykietę dysku (Tabela 4). 13
Tabela 4 Opis pola w katalogu Bajty Rozmiar Zawartość 00H-07H 8 Nazwa pliku w kodach ASCII 08H-0AH 3 Rozszerzenie nazwy pliku 0BH 1 Atrybuty pliku 0CH-15H 10 Zarezerwowane 16H-17H 2 Czas utworzenia lub aktualizacji pliku 18H-19H 2 Data utworzenia lub aktualizacji pliku 1AH-1BH 2 Numer pierwszej JAP 1CH-1DH 2 Mniej znaczące słowo rozmiaru pliku 1EH-1FH 2 Bardziej znaczące słowo rozmiaru pliku Poniżej przedstawiona jest przykładowa zawartość katalogu głównego. Na wydruku zaznaczono poszczególne pola opisujące plik MSDOS.SYS zgodnie z Tabelą 4. 0000 49 4F 20 20 20 20 20 20-53 59 53 21 00 00 00 00 IO SYS!... 0010 00 00 00 00 00 00 C0 32-BF 1C 02 00 46 9F 00 00...2...F... 0020 4D 53 44 4F 53 20 20 20-53 59 53 21 00 00 00 00 MSDOS SYS!... 0030 00 00 00 00 00 00 C0 32-BF 1C 52 00 FA 94 00 00...2..R... 0040 43 4F 4D 4D 41 4E 44 20-43 4F 4D 20 00 00 00 00 COMMAND COM... 0050 00 00 00 00 00 00 C0 32-BF 1C 9D 00 75 D5 00 00...2...u... 0060 41 54 54 52 49 42 20 20-45 58 45 20 00 00 00 00 ATTRIB EXE... 0070 00 00 00 00 00 00 C0 32-BF 1C 08 01 C8 2B 00 00...2...+.. Pierwszy bajt nazwy pliku określa również stan pola katalogu (Tabela 5). Tabela 5 Znaczenie bajtu stanu pola katalogu Wartość 00H E5H 05H 2EH Inna wartość Znaczenie Pozycja dotychczas nieużywana. Plik skasowany. Jeśli pierwszym znakiem nazwy pliku jest E5H (z narodowego zestawu znaków). 2EH - kropka. Oznacza podkatalog, jeśli następnym znakiem jest również kropka, to pole Numer pierwszej JAP zawiera JAP katalogu nadrzędnego danego katalogu (0 - jeśli katalogiem nadrzędnym jest katalog główny). Pierwszy znak nazwy pliku 14
Format bajtu atrybutów pliku przedstawia Tabela 6. Bit Tabela 6 Atrybuty pliku Znaczenie 0 Plik tylko do odczytu (ang. read only) 1 Plik ukryty (ang. hidden) 2 Plik systemowy (ang. system) 3 Etykieta dysku (ang. volume label) 4 Podkatalog 5 Plik archiwalny (ang. archive) 6,7 Nie wykorzystywane W katalogu, w 32-bajtowym polu każdego pliku wpisany jest początkowy numer JAP, określający logiczny numer sektora, w którym znajduje się początek pliku, i równocześnie miejsce w FAT, w którym wpisany jest numer kolejnej JAP. Numer wpisany we wskazanym miejscu tablicy rozmieszczenia plików wskazuje pierwszy sektor następnej części pliku i równocześnie położenie w tablicy FAT numeru następnej JAP. W ten sposób tworzy się łańcuch, określający położenie całego pliku. W systemie FAT12, 12-bitowy numer JAP zajmuje 1,5 bajtu w tablicy, co powoduje, że określenie kolejnego numeru JAP jest dość skomplikowane. Można otrzymać go w następujący sposób: 1. Podany numer JAP pomnożyć przez 1,5. 2. Część całkowita otrzymanej liczby określa kolejny numer bajtu od początku tablicy rozmieszczenia plików, zawierający następny numer JAP. 3. Odczytać wskazany i następny bajt z tablicy FAT. 4. Zamienić bajty miejscami (odczytujemy słowo 16-bitowe). 5. Jeśli wcześniejszy numer JAP był parzysty, to wziąć 12 mniej znaczących bitów słowa, a jeśli nieparzysty, to 12 bardziej znaczących bitów. 6. Otrzymana liczba wskazuje miejsce umieszczenia następnego numeru JAP. Logiczny sektor dysku odpowiadający początkowemu numerowi JAP (odczytanemu z 32-bajtowego pola w katalogu) jak i kolejnym numerom JAP (odczytanym z tablicy FAT) wyznacza się następująco: 1. Odjąć od numeru JAP dwa (sektory numeruje się od 2). 2. Pomnożyć otrzymaną liczbę przez liczbę sektorów w JAP. 3. Dodać liczbę sektorów systemowych dysku. 15
Liczby odczytywane z tablicy FAT mogą przyjmować wartości przedstawione w Tabeli 7. Dla FAT12 są to wartości 3-bajtowe. Tabela 7 Znaczenie odczytanych wartości z FAT12 Wartość FF7H FF8H - FFFH FF0H - FF6H 000H Inna wartość Znaczenie JAP uszkodzona Ostatnia JAP Wartości zarezerwowane Wolna JAP Numer JAP Największą zaleta systemu FAT12 są niewielkie rozmiary tablicy FAT i szybkość działania. 3.2 SYSTEM FAT16 System FAT16 po raz pierwszy pojawił się w systemie MS-DOS 3.3. Ogólna struktura dyskietki / dysku logicznego w systemie FAT16 jest taka sama jak w przypadku FAT12. Jedyną różnicą jest to, że do numeracji jednostek alokacji pliku (JAP) przeznaczonych jest 16 bitów. W ten sposób maksymalna liczba jednostek alokacji ograniczona jest do 2 16 czyli 65535. Gdyby rozmiar jednostki alokacji wynosił jeden sektor, to dysk mógłby zawierać nie więcej niż 65536 512 bajtów czyli 32 MB. W systemach DOS i Windows 95 maksymalny rozmiar jednostki alokacji to 2 15 bajtów czyli 32 kb, stąd maksymalny rozmiar dysku logicznego w tych systemach to 65535 32 kb czyli ok. 2 GB. W systemie Windows 2000 górna granica rozmiaru jednostki alokacji wynosi 2 16 (64 kb), czyli rozmiar dysku logicznego zwiększa się do 4 GB. Ze zwiększeniem liczby bitów przeznaczonych do numeracji jednostek alokacji pliku wiąże się także zmiana algorytmu wyznaczania kolejnego numeru JAP - jest on znacznie prostszy: 1. Podany numer JAP pomnożyć przez 2. 2. Otrzymana liczba wskazuje na pierwszy bajt słowa w tablicy FAT, w którym znajduje się numer następnej JAP. Podobnie jest z liczbami odczytywanymi z tablicy FAT - dla FAT16 są to wartości 4-bajtowe. 16
Tabela 8 Znaczenie odczytanych wartości z FAT16 Wartość FFF7H FFF8H - FFFFH FFF0H - FFF6H 0000H Inna wartość Znaczenie JAP uszkodzona Ostatnia JAP Wartości zarezerwowane Wolna JAP Numer JAP 3.3 SYSTEM FAT32 System FAT32 został po raz pierwszy wprowadzony w systemie Windows 95 OSR2. Do adresowania jednostek alokacji w tym systemie stosuje się obcięty o 4 najstarsze bity, adres 32-bitowy i dlatego dysk z FAT32 może zawierać maksymalnie 2 28 jednostek alokacji. Rozmiar jednostki alokacji wynosi od 4 kb do 32 kb. Teoretycznie więc dysk może mieć rozmiar 8 TB, ale praktycznie ograniczenie to liczba 2 32 sektorów, czyli 2 TB. System Windows 2000 obniża tę wartość do 32 GB, gdyż umożliwia to zapis całej tablicy FAT w pamięci podręcznej, co poprawia wydajność systemu. W systemie FAT32 można formatować tylko dyski, nie można natomiast zainstalować go na dyskietkach. Systemy DOS i Windows 95/NT nie mogą odczytywać partycji FAT32. Ogólna struktura systemu FAT32 jest taka sama jak przedstawiona na rys. 2 (nie ma tylko miejsca przeznaczonego na katalog główny). W systemie plików FAT32 blok BPB zajmuje 53 bajty, zaś kod startowy uruchamiający system operacyjny - 420 bajtów. Zawartość rekordu ładującego w systemie FAT32 przedstawia Tabela 9. 17
Tabela 9 Rekord ładujący (ang. Boot Record) w systemie FAT32 Bajty Rozmiar Zawartość 00H-02H 3 Instrukcja skoku do początku programu ładującego 03H-0AH 8 Nazwa wersji systemu (w znakach ASCII) 0BH-0CH 2 Rozmiar jednego sektora w bajtach 0DH 1 Liczba sektorów w jednostce alokacji plików (JAP) 0EH-0FH 2 Liczba sektorów zarezerwowanych, poprzedzających FAT 10H 1 Liczba tablic FAT 11H-12H 2 Maksymalna liczba plików w katalogu głównym (niewykorzystywane - zawsze 0) 13H-14H 2 Całkowita liczba sektorów na dysku (zawsze 0) 15H 1 Bajt identyfikacji nośnika - zawsze F8 16H-17H 2 Liczba sektorów zajętych przez tablicę FAT (niewykorzystywane - zawsze 0) 18H-19H 2 Liczba sektorów na ścieżce 1AH-1BH 2 Liczba głowic (stron) dysku 1CH-1FH 4 Liczba sektorów ukrytych 20H-23H 4 Całkowita liczba sektorów na dysku 24H-27H 4 Liczba sektorów zajętych przez FAT 28H-29H 2 Flagi 2AH-2BH 2 Wersja systemu plików 2CH-2FH 4 Numer jednostki alokacji katalogu głównego 30H-31H 2 Sektor informacji systemu plików 32H-33H 2 Położenie zapasowego sektora rozruchowego 34H-3FH 12 Bajty rezerwowe 40H 1 Numer mechanizmu dyskowego 41H 1 Zarezerwowane 42H 1 Znacznik rozszerzonego rekordu ładującego (wartość 29H) 43H-46H 4 Numer seryjny dysku 47H-51H 11 Etykieta 52H-59H 8 Typ systemu plików 5AH-1FDH 420 Wykonywalny kod startowy uruchamiający system operacyjny 1FEH-1FFH 2 Znacznik końca sektora (55AAH) 18
W systemie FAT32 katalog główny może znajdować się w dowolnym miejscu na dysku i może zawierać maksymalnie 65532 plików i katalogów. Opis pola katalogu zajmuje 32 bajty. Część zarezerwowanych bajtów w systemach FAT12 i FAT16 ma w systemie FAT32 już określone znaczenie (Tabela 10). Tabela 10 Opis pola w katalogu w systemie FAT32 Bajty Rozmiar Zawartość 00H-07H 8 Nazwa pliku w kodach ASCII 08H-0AH 3 Rozszerzenie nazwy pliku 0BH 1 Atrybuty pliku 0CH 1 Wielkość liter nazwy i rozszerzenia pliku 0DH 1 Czas utworzenia w milisekundach 0EH-0FH 2 Czas utworzenia 10H-11H 2 Data utworzenia 12H-13H 2 Czas ostatniego dostępu 14H-15H 2 Numer pierwszej JAP (16 starszych bitów) 16H-17H 2 Czas utworzenia lub aktualizacji pliku 18H-19H 2 Data utworzenia lub aktualizacji pliku 1AH-1BH 2 Numer pierwszej JAP (16 młodszych bitów) 1CH-1DH 2 Mniej znaczące słowo rozmiaru pliku 1EH-1FH 2 Bardziej znaczące słowo rozmiaru pliku Tabela 11 Znaczenie odczytanych wartości z FAT32 Wartość *FFFFFF7H *FFFFFF8H - *FFFFFFFH *FFFFFF0H - *FFFFFF6H Znaczenie JAP uszkodzona Ostatnia JAP *0000000H Wolna JAP Inna wartość Wartości zarezerwowane Numer JAP Gwiazdka (*) w powyższej tabeli oznacza ignorowanie najstarszych 4 bitów. 19
5. DŁUGIE NAZWY PLIKÓW W systemie Windows 95 wprowadzono długie nazwy plików. W celu zachowania zgodności ze starym formatem 8+3 informacje o nazwie takiego pliku muszą być zapamiętywane na dwa sposoby: jako długa nazwa i jako skrócona nazwa (tzw. alias długiej nazwy). Skrócona nazwa pliku tworzona jest w następujący sposób: - rozszerzenie długiej nazwy staje się rozszerzeniem skróconej nazwy, - pierwsze sześć znaków długiej nazwy staje się pierwszymi sześcioma znakami skróconej nazwy, przy czym niedozwolone znaki w skróconym formacie zamieniane są na znak podkreślenia i wszystkie małe litery zamieniane są na duże litery, - pozostałe dwa znaki nazwy skróconej to ~1 lub jeśli plik o takiej nazwie istnieje ~2, itd. Tak stworzona skrócona nazwa pliku przechowywana jest w identycznej, 32-bajtowej, strukturze jak w przypadku plików w starym formacie 8+3 (Tabela 4 lub Tabela 10). Długie nazwy plików zapisywane są także w 32-bajtowych strukturach, przy czym jedna nazwa zajmuje kilka struktur (w jednej strukturze umieszczonych jest 13 kolejnych znaków w formacie Unicode). Struktury mają ustawione atrybuty: ReadOnly, Hidden, System, VolumeLabel. Organizację tego typu struktury przedstawia Tabela 12. Tabela 12 Opis pola w katalogu dla długiej nazwy Bajty Rozmiar Zawartość 00H 1 Pierwsze 6 bitów określa numer fragmentu nazwy, bit 7 - czy jest to ostatni fragment nazwy, a bit 8 - czy plik został usunięty lub jego nazwa skrócona 01H-0AH 10 Pierwsze 5 znaków nazwy 0BH 1 Atrybut (zawsze F) 0CH 1 Zarezerwowany (zawsze 0) 0DH 1 Suma kontrolna wersji krótkiej 8+3 0EH-19H 12 Kolejne 6 znaków nazwy 1AH-1BH 2 Numer początkowego klastra (zawsze 0) 1CH-1FH 4 Dwie ostatnie litery nazwy 20
Na poniższym wydruku przedstawiono fragment katalogu głównego, w którym umieszczono plik o nazwie: Systemy Operacyjne - praca domowa.txt. Skrócona nazwa oznaczona została symbolem - 4, natomiast długa nazwa symbolami - 3, 2, 1. 0000 43 20 00 64 00 6F 00 6D-00 6F 00 0F 00 CF 77 00 C.d.o.m.o...w. 1 0010 61 00 2E 00 74 00 78 00-74 00 00 00 00 00 FF FF a...t.x.t... 0020 02 63 00 79 00 6A 00 6E-00 65 00 0F 00 CF 20 00.c.y.j.n.e.... 2 0030 2D 00 20 00 70 00 72 00-61 00 00 00 63 00 61 00 -..p.r.a...c.a. 0040 01 53 00 79 00 73 00 74-00 65 00 0F 00 CF 6D 00.S.y.s.t.e...m. 3 0050 79 00 20 00 4F 00 70 00-65 00 00 00 72 00 61 00 y..o.p.e...r.a. 0060 53 59 53 54 45 4D 7E 31-54 58 54 20 00 4B 03 80 SYSTEM~1TXT.K.. 4 0070 67 32 67 32 00 00 08 80-67 32 02 00 06 00 00 00 g2g2...g2... 6. WADY SYSTEMU FAT W systemie plików FAT dane zapisywane są w jednostkach alokacji plików - JAP. Zatem nawet najmniejszy plik, np. o rozmiarze 1 bajta będzie zajmował całą JAP. W przypadku, gdy na dysku znajdują się bardzo duże pliki nie ma to większego znaczenia. Problemy pojawiają się wtedy, gdy rozmiar klastra jest duży, a na dysku znajduje się dużo małych plików - pewna część miejsca jest tracona. Problem ten jest dużą wadą systemu plików FAT. Poważną wadą systemu FAT jest także silna fragmentacja plików pomiędzy wiele klastrów o bardzo różnym fizycznym położeniu na dysku. Pociąga to za sobą konieczność okresowej defragmentacji przy użyciu specjalnych narzędzi programowych, a także powoduje stosunkowo duże prawdopodobieństwo powstawania błędów zapisu, polegających na przypisaniu jednego klastra dwóm plikom (tzw. crosslink), co kończy się utratą danych z jednego lub obu skrzyżowanych plików. Typowym błędem, pojawiającym się w systemie FAT, jest również pozostawianie tzw. zgubionych klastrów, tj. jednostek alokacji nie zawierających informacji, ale opisanych jako zajęte. 7. PROGRAM DEBUG DEBUG jest prostym programem uruchomieniowym (ang. debugger) pozwalającym uruchomić mały program, obejrzeć zawartość bloku pamięci, sektorów dysku, wysłać informację do dowolnego wyjścia, itp. Wszystkie wartości liczbowe w programie DEBUG powinny być wpisywane w formacie szesnastkowym, bez litery H na końcu. Wszystkie adresy podawane są w postaci segment:offset. W przypadku niepodania segmentu brany jest 21
domyślny adres segmentu. Program ten będzie wykorzystywany w czasie zajęć do odczytu zawartości dyskietki. Podstawowe polecenia programu DEBUG: d [address_start [address_end]] Wyświetla szesnastkowo i znakowo określony blok pamięci operacyjnej. Adres końcowy jest opcjonalny, gdy pominiemy go, to wyświetlane jest pierwsze 128 bajtów. Gdy pominiemy adres początkowy to wyprowadzane jest 128 bajtów, względem punktu, w którym zakończono wyprowadzanie ostatniej komendy d. l address drivenum startsector sectorcount Ładuje do pamięci sektory z dysku logicznego. Ładowanie z dysku logicznego o numerze drivenum (A - 0, B - 1, itd.) rozpoczyna się od sektora o numerze logicznym startsector i dotyczy sectorcount sektorów. q Wyjście z programu. Przykład zastosowania programu: C:\>debug - uruchomienie programu, -l 0 0 0 1 - odczytanie rekordu ładującego dyskietki, -d 0 - wyświetlenie pierwszych 128 bajtów rekordu ładującego, 1796:0000 EB 3C 90 2A 31 77 4A 6A-49 48 43 00 02 01 01 00.<.*1wJjIHC... 1796:0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00...@... 1796:0020 00 00 00 00 00 00 29 40-90 DF C0 4E 4F 20 4E 41...)@...NO NA 1796:0030 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 33 C9 ME FAT12 3. 1796:0040 8E D1 BC F0 7B 8E D9 B8-00 20 8E C0 FC BD 00 7C...{...... 1796:0050 38 4E 24 7D 24 8B C1 99-E8 3C 01 72 1C 83 EB 3A 8N$}$...<.r...: 1796:0060 66 A1 1C 7C 26 66 3B 07-26 8A 57 FC 75 06 80 CA f.. &f;.&.w.u... 1796:0070 02 88 56 02 80 C3 10 73-EB 33 C9 8A 46 10 98 F7..V...s.3..F... -q - zakończenie pracy z programem. C:\> 22
LITERATURA: [1] Bułhak L., Goczyński R., Tuszyński M.: DOS 5.00 od środka, HELP, Warszawa, 1992. [2] Metzger P.: Anatomia dysków twardych, Helion, Gliwice, 1995. [3] Marks P.: Pamięci masowe w systemach mikroprocesorowych, BTC, Warszawa, 2006. [4] Metzger P.: Anatomia PC. Wydanie X, Helion, Gliwice, 2006. [5] W. Boswell: Windows 2000 Server. Vademecum profesjonalisty, Helion, Gliwice, 2002. [6] Microsoft Windows 2000 Professional Resource Kit - http://www.microsoft.com/poland/windows2000/win2000prof/default.asp Rozdział 32: Dyski i rozwiązywanie problemów. [7] FAT: General Overview of On-Disk Format, Version 1.03, December 6, 2000, Hardware White Paper, Microsoft Corporation - http://staff.washington.edu/dittrich/misc/fatgen103.pdf [8] Long Filename Specification, Version 0.5, December 4, 1992, Hardware White Paper, Microsoft Corporation - http://www.osdever.net/documents/longfilename.pdf?the_id=39 23
Wymagania BHP Warunkiem przystąpienia do praktycznej realizacji ćwiczenia jest zapoznanie się z instrukcją BHP i instrukcją przeciw pożarową oraz przestrzeganie zasad w nich zawartych. Wybrane urządzenia dostępne na stanowisku laboratoryjnym mogą posiadać instrukcje stanowiskowe. Przed rozpoczęciem pracy należy zapoznać się z instrukcjami stanowiskowymi wskazanymi przez prowadzącego. W trakcie zajęć laboratoryjnych należy przestrzegać następujących zasad: Sprawdzić, czy urządzenia dostępne na stanowisku laboratoryjnym są w stanie kompletnym, nie wskazującym na fizyczne uszkodzenie. Sprawdzić prawidłowość połączeń urządzeń peryferyjnych. Jeżeli istnieje taka możliwość, należy dostosować warunki stanowiska do własnych potrzeb, ze względu na ergonomię. Monitor komputera ustawić w sposób zapewniający stałą i wygodną obserwację dla wszystkich członków zespołu. Załączenie komputera może się odbywać po wyrażeniu zgody przez prowadzącego. Zabronione jest dokonywanie jakichkolwiek przełączeń w urządzeniach oraz wymiana elementów składowych pod napięciem. Konfiguracja sprzętu (np. konfiguracja systemu operacyjnego, ustawienie parametrów monitora) może się odbywać wyłącznie w porozumieniu z prowadzącym zajęcia. W trakcie pracy z komputerem zabronione jest spożywanie posiłków i picie napojów. W przypadku zaniku napięcia zasilającego należy niezwłocznie wyłączyć komputer i monitor z sieci elektrycznej. Stwierdzone wszelkie braki w wyposażeniu stanowiska oraz nieprawidłowości w funkcjonowaniu sprzętu należy przekazywać prowadzącemu zajęcia. W przypadku zakończenia pracy należy zakończyć sesję przez wydanie polecenia wylogowania. Zamknięcie systemu operacyjnego może się odbywać tylko na wyraźne polecenie prowadzącego. 24