Systemy plików.
Transkrypt
Systemy plików.
Systemy plików. Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych), o skończonej długości, posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całość. Pliki dzieli się na kilka typów: ● katalogi (stosuje się też nazwy foldery lub kartoteki) - (ang. directory), pliki zawierające spis odwołań do innych plików (w tym także do katalogów), ● dowiązania symboliczne - (ang. symbolic link) odwołanie do innego pliku; większość operacji na tego typu plikach będzie w rzeczywistości wywoływane na plikach, na które one wskazują (skróty do plików :-)). ● kolejki FIFO (ang. First In, First Out, w skrócie FIFO), gniazda (ang. sockets), strumienie danych itd. - realizujące bardziej złożone zadania, występują nie w każdym systemie ● pliki „zwykłe” - pliki zwierające dane jako ciąg bajtów zależenie od typu dane te mogą być rożnie interpretowane np.: ● pliki wykonywalne (ang. executable files), skrypty (ang. scripts), pliki wsadowe (ang. batch files) - zawierające program do wykonania lub polecenia dla interpretera (często powłoki) Ponadto system DOS (a później i Windows) rozróżnia pliki: ● tekstowe - dane zapisane w formie kodów ASCII łącznie z kodami sterującymi urządzeniami (np. drukarka, terminal, ekran) do których mają być wysłane, ● binarne - pozostałe pliki. W systemach uniksowych pliki binarne i tekstowe są tożsame. System plików – metoda przechowywania plików, zarządzania plikami, informacjami o tych plikach, tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika i systemu Systemy plików stosuje się dla różnych nośników danych, takich jak dyski, dyskietki, a także w sieciach komputerowych, pamięciach. We współczesnych systemach operacyjnych bezpośrednie operowanie na danych w plikach zarezerwowane jest tylko dla systemu operacyjnego, aplikacje mają dostęp tylko do operacji na plikach i mają zabroniony bezpośredni dostęp do nośnika danych. Większość systemów operacyjnych posiada własny (macierzysty) system plików, rozwijany równolegle z nim (np. FAT w DOS-ie, NTFS w Microsoft Windows NT lub ext/ext2/ext3/ext4 i ReiserFS/Reiser4 w Linuksie), ze względu na pewne specyficzne właściwości nadawane plikom (np. atrybut wykonywalności pliku), podobnie jak niektóre nośniki danych (np. ISO 9660 na CDROM i UDF na DVD), jednak sam system plików jest niezależny od nich. Same systemy operacyjne potrafią obsługiwać wiele systemów plików. Organizacja danych Nośniki danych, takie jak dyski twarde, dyskietki posiadają blokową strukturę danych, znaczy to, że dane są w nich przechowywane w postaci bloków, a blok musi być w całości zapisywany i odczytywany, bloki te nazywane są sektorami). W przypadku dysków i dyskietek mają taką samą wielkość (przeważnie 512 bajtów). Bloki tworzą strukturę liniową: Blok 0 Blok 1 Blok 2 Blok 3 … Blok n Systemy operacyjne łączą bloki w klastry. Klaster składa się z kilku bloków. Dyskowy system plików część pamięci wykorzystuje na tzw. sektor rozruchowy (boot sector), który nie stanowi zasadniczej części systemu plików i jest używany do rozruchu systemu. Ponadto systemy plików przechowują listy wszystkich klastrów (oraz informacje do których plików one należą) w tzw. tablicach alokacji. Jeżeli program chce wykonać jakąś operację na pliku robi to poprzez system plików. Rodzaje systemów plików ● Dyskowy system plików - "normalny" system plików pozwalający na zarządzanie danymi na stacjonarnych nośnikach danych, takich jak twarde dyski. Każdy system posiada swój własny system plików (np. Linux - ext2, Windows NT - NTFS Windows 95,98,ME,XP,Vista - FAT,FAT32 itd.). ● Systemy dziennikujące (lub księgujące, ang. journaling) - systemy z mechanizmem księgującym, zwiększającym bezpieczeństwo danych i umożliwiającym szybkie przywrócenie sprawności systemu po awarii. Mechanizm taki posiadają nowsze systemy plików (np. NTFS, HFS+ lub ext3). ● Sieciowy system plików - w zasadzie jest to protokół umożliwiający przesyłanie poleceń do serwera przez sieć oraz wykonywanie operacji na odległość. Informacje są z powrotem przekazywane z serwera do klienta. Dzięki takiemu rozwiązaniu użytkownik nie widzi żadnej różnicy między pracą na sieciowym systemie plików a pracą na lokalnym systemie plików. Najbardziej znane to NFS, Coda, AFS, SMB (Otocznie sieciowe pod Windows) oraz NCP (Novella). ● Specjalne systemy plików (Wirtualne systemy plików) - nie umożliwiają zarządzania danymi, np. system /proc (w Linuksie) dostarcza interfejsu, który umożliwia dostęp do niektórych struktur jądra. ● Systemy oparte na bazie danych - systemy plików, w których pliki są identyfikowane na podstawie swojej charakterystyki (np. autora, typu czy tematu, którego dotyczą) - jak w bazach danych. Hierarchiczność systemu plików Prymitywne systemy plikowe posiadały jedną listę plików wchodzących w skład systemu plików. W miarę postępu systemy plików zostały unowocześnione i współczesne systemy plików oprócz głównej listy (katalogu głównego) zawierają także podlisty (podkatalogi) które również mogą zawierać dalsze podlisty (podkatalogi). W ten sposób rozwinęło się pojęcie katalogów nadrzędnych oraz katalogów podrzędnych. Katalog, w którym znajduje się plik jest nadrzędny (bezpośrednio) względem tego pliku. Katalog jest podrzędny (bezpośrednio) względem innego katalogu w którym się znajduje. W ten sposób powstało pojęcie drzewiastej hierarchii systemu plików, w której każdy katalog może zawierać podkatalogi, które mogą zawierać dalsze podkatalogi. Powstaje w ten sposób struktura, która wygląda jak "odwrócone drzewo". Systemy, które mają taką strukturę nazywają się hierarchicznymi systemami plików. W takich systemach plik identyfikowany jest nie tylko na postawie unikalnej nazwy ale również ścieżki dostępu. Dysk twardy – jeden z typów urządzeń pamięci masowej, wykorzystujących nośnik magnetyczny do przechowywania danych. Nazwa "dysk twardy" (hard disk drive) powstała w celu odróżnienia tego typu urządzeń od tzw. "dysków miękkich", czyli dyskietek (floppy disk), w których nośnik magnetyczny naniesiono na elastyczne podłoże, a nie jak w dysku twardym na sztywne. Pierwowzorem twardego dysku jest pamięć bębnowa. Pierwsze dyski twarde takie, jak dzisiaj znamy, wyprodukowała w 1980 r. firma Seagate. Pierwszy dysk przeznaczony do mikrokomputerów miał pojemność 5 MB. Procedura uruchamiania systemu z dysku twardego czyli po co nam MBR ;-). Po przeprowadzeniu procedury testowej (POST) przez BIOS, sterowanie jest przekazywane do pierwszego urządzenia z listy startowej (boot order) które ma prawidłowo zapisany MBR: MBR (ang. Master Boot Record) – główny rekord startowy, czyli umowna struktura zapisana w pierwszym sektorze dysku twardego. Zawiera on program rozruchowy oraz główną tablicę partycji (w przypadku dysku twardego – dyskietki zwykle nie posiadają tablicy partycji). MBR znajduje się na zerowej ścieżce, zerowym cylindrze, w pierwszym sektorze dysku (CHS 0,0,1). MBR ma 512 bajtów długości, z czego pierwsze 446 bajtów zajmuje program rozruchowy (bootstrap). Druga część MBR – tablica partycji – zawiera 4 struktury opisujące poszczególne partycje podstawowe, każda po 16 bajtów. MBR kończą 2 bajty sygnatury – szesnastkowo 0x55 0xAA, co daje 446 + (4 · 16) + 2 = 512. 512 bajtów 446 bajtów bootstrap 64 bajty (4 x 16) partycja 1 partycja 2 partycja 3 2 bajty partycja 4 0x55 0xAA Każda partycja posiada sektor rozruchowy, natomiast cały dysk posiada a Główny Sektor Rozruchowy (MBR). Sektor rozruchowy partycji może posiadać własny program rozruchowy, co wykorzystuje program NT OS Loader służący do uruchamiania systemów operacyjnych z rodziny Windows NT, z wyjątkiem Windows Vista. Program rozruchowy zawarty w sektorze rozruchowym partycji może zostać wykonany tylko po przekazaniu mu sterowania przez program rozruchowy zawarty w MBR-ze, ponieważ BIOS umie uruchamiać program rozruchowy (boot loader) tylko z MBR-u. Program rozruchowy (ang. boot loader). W komputerach PC nagłówek (segment startowy) umieszczony w pierwszym, 446-bajtowym fragmencie sektora MBR dysku twardego. W systemach DOS/Win32 jest tam zapisany program, który ładuje kolejny program rozruchowy z partycji oznaczonej jako aktywna. W systemach uniksowych pliki dodatkowe programu rozruchowego znajdują się zazwyczaj w katalogu lub partycji montowanej w katalogu /boot. Program rozruchowy oraz cały system operacyjny może być pobierany także z innych urządzeń takich jak stacja dyskietek, napęd CDROM, dyski USB a nawet spoza komputera, z serwera w sieci lokalnej. Partycja - logiczny, wydzielony obszar dysku twardego, który może być sformatowany przez system operacyjny w odpowiednim systemie plików. Rozmaici producenci systemów operacyjnych i oprogramowania stosują różną terminologię, (np. Microsoft nazywa ją dyskiem lokalnym a systemy BSD zamiast określenia partycja używa się określenia slice). Każda partycja (lub dysk logiczny) jest opisana w MBR lub w partycji rozszerzonej w następujący sposób: Opis flaga aktywności startowy CHS typ partycji końcowy CHS sektor początkowy liczba sektorów partycji Numer bajtu: 1 2-4 5 6-8 9-12 13-16 Partycja rozszerzona - rodzaj partycji, który można tworzyć tylko na podstawowych dyskach MBR (ang. master boot record). Partycje rozszerzone są użyteczne, gdy trzeba utworzyć więcej niż cztery woluminy na podstawowym dysku MBR. W przeciwieństwie do partycji podstawowych. Zamiast tego w ramach jednej partycji rozszerzonej można utworzyć jedną lub więcej partycji logicznych, który po utworzeniu można sformatować. Partycje logiczne przypominają partycje podstawowe, chociaż liczba partycji logicznych, jaką można utworzyć na jednym dysku fizycznym, jest nieograniczona, a liczba partycji podstawowych wynosi maksymalnie cztery. Powody partycjonowania: Partycjonowanie umożliwia posiadanie kilku systemów plików na jednym dysku twardym. Powodem partycjonowania mogą być: ● ograniczenia techniczne (np. stare wersje FAT mają ograniczenia co do wielkości partycji, stare biosy nie mogą zaadresować obszaru poza 1024 cylindrem, więc partycja startowa musi znajdować się przed tą granicą) ● uszkodzenie danych na jednej partycji nie ma wpływu na inne partycje ● często systemy operacyjne nie mogą być zainstalowane na jednej partycji lub używają innego systemu plików. Wtedy instaluje się je na oddzielnych partycjach. ● by zapobiec zapełnieniu dysku przez określoną usługę, można jej dane umieścić na oddzielnej partycji (np. logi systemowe). ● każda partycja może być dostosowana do konkretnych wymagań. Np. Szybkość zapisu i odczytu małych plików. Zależnie od potrzeb możemy na dysku utworzyć partycje/dyski logiczne w wielu różnych systemach plików.