Wszyscy używamy pliki lub pliki każdego dnia i wszyscy z niego korzystamy foldery lub katalogi, czy to w systemach plików komputera stacjonarnego, na laptopach, urządzeniach mobilnych itp. Dlatego w tym artykule wyjaśnię wszystko, co musisz o tym wiedzieć, aby móc zrozumieć czym są informacje i jak są przechowywane ku pamięci.
Czym jest system plików?
Un system plików System plików (FS) to metoda i struktura danych, których system operacyjny używa do kontrolowania sposobu przechowywania i pobierania informacji. Bez systemu plików dane przechowywane na nośniku danych byłyby pojedynczym zbiorem danych, bez możliwości rozróżnienia, gdzie kończy się jeden zestaw danych, a zaczyna następny, ani gdzie znajduje się dany zestaw danych w momencie konieczności jego pobrania. Są to tzw. dane surowe.
Formatując dysk pamięci masowej przy użyciu systemów plików NTFS, FAT, ext4, btrfs, HFS+ itp., w rzeczywistości tworzysz system plików do zarządzania danymi na tym dysku. Innymi słowy, to, co nazywamy formatami, to w rzeczywistości FS.
Dzieląc dane na fragmenty i nazywając każdy fragment,Dane można łatwo wyizolować i zidentyfikowaćAby to wszystko było możliwe, system plików składa się z dwóch lub trzech warstw. Czasami warstwy te są wyraźnie oddzielone, a innym razem funkcje są łączone. Warstwy, o których mówimy, to:
- Logiczny system plików: odpowiada za interakcję z aplikacją użytkownika. Zapewnia API do operacji na plikach, takich jak Otwórz, Zamknij, Odczytaj, itd.i przekazuje żądaną operację do warstwy niższej w celu przetworzenia. Logiczny system plików zarządza otwartymi wpisami w tabeli plików i deskryptorami plików dla każdego procesu. Ta warstwa zapewnia dostęp do plików, operacje katalogowe, bezpieczeństwo i ochronę.
- Wirtualny system plików:Ten interfejs umożliwia obsługę wielu równoczesnych instancji fizycznych systemów plików. Ta warstwa jest opcjonalna i nie zawsze występuje.
- Fizyczny system plików:Obsługuje fizyczne działanie urządzenia pamięci masowej. Przetwarza bloki fizyczne, które są odczytywane lub zapisywane. Zajmuje się buforowaniem, zarządzaniem pamięcią i odpowiada za fizyczne rozmieszczenie bloków w określonych lokalizacjach na nośniku pamięci. Fizyczny system plików współpracuje ze sterownikami urządzeń pamięci masowej lub kanałem, aby sterować urządzeniem pamięci masowej.
Funkcje FS
Każdy istniejący system plików ma swoje ograniczenia i charakter powinieneś wiedzieć, np.:
- Zarządzanie przestrzenią lub jej przydział: Systemy plików przydzielają przestrzeń w sposób szczegółowy, zazwyczaj na wielu dyskach fizycznych urządzenia. Systemy plików odpowiadają za organizację plików i katalogów oraz śledzenie, które obszary nośnika należą do których plików, a które są nieużywane.
- Podział: Dzieje się tak, gdy ten sam plik jest przechowywany w różnych częściach dysku, co oznacza, że poszczególne części pliku nie są ze sobą powiązane. Podczas tworzenia, modyfikowania i usuwania plików może to powodować powstawanie obszarów zajętej i niezajętej przestrzeni o różnych rozmiarach. Co więcej, wpływa to na niektóre systemy plików (np. FAT i NTFS firmy Microsoft), spowalniając odczyt plików.
- Nazwy plików: Systemy plików zarządzają ograniczeniami długości, uwzględniają wielkość liter i używają znaków specjalnych w nazwach plików.
- Katalogi: Często zawierają katalogi, które pozwalają organizować pliki w osobne kolekcje. Mogą być płaskie lub hierarchiczne. Omówię to bardziej szczegółowo później, bo właśnie o to chodzi...
- Metadane: Zawiera powiązane metadane, które zawierają szczegóły takie jak długość danych, znaczniki czasu, uprawnienia dostępu i atrybuty pliku.
- Media i dostęp: Służą do inicjowania, modyfikowania i usuwania instancji systemu plików, a także do tworzenia, zmieniania nazw i usuwania katalogów i plików, szyfrowania, limitów, migracji, konwersji, tworzenia kopii zapasowych itp.
- Integralność i zarządzanie błędami: System plików musi utrzymywać integralność struktur systemu plików na pamięci dodatkowej lub dyskach zewnętrznych, nawet w przypadku awarii systemu operacyjnego lub przerw w dostawie prądu.
- Dane użytkownika: musi umożliwiać zarządzanie danymi użytkownika, w tym przechowywanie, pobieranie i aktualizowanie danych.
- Wiele systemów plików: Możliwe jest posiadanie wielu systemów plików na jednym systemie.
- Ograniczenia projektowe: Systemy plików mają ograniczenia funkcjonalne, które określają maksymalną pojemność pamięci masowej w systemie, maksymalny rozmiar plików, liczbę plików itd.
Co to jest partycja?
A podział Partycja to logiczna sekcja lub podjednostka urządzenia pamięci masowej, takiego jak dysk twardy, dysk SSD, dysk flash itp. Partycja ta służy kilku celom, umożliwiając lepszą organizację i zarządzanie przechowywanymi danymi. Na przykład, każda partycja może być wykorzystywana do określonego celu, można na niej zainstalować wiele systemów operacyjnych itp.
Należy zauważyć, że tworzenie, usuwanie i zmiana rozmiaru Zmiany partycji mogą prowadzić do utraty danych, dlatego należy wykonywać te operacje ostrożnie i tworzyć kopie zapasowe ważnych danych przed wprowadzeniem większych zmian w strukturze partycji.
Z drugiej strony, podsumowując, powinieneś również zrozumieć, że istnieją różne rodzaje partycji podstawowe w systemie MBR (możliwości są rozszerzone w GPT, aż do 128 możliwych partycji na tej samej jednostce, choć to już inny temat...):
- Partycja podstawowa: Każdy dysk może mieć maksymalnie cztery partycje podstawowe. Są to partycje główne, na których zainstalowane są systemy operacyjne i przechowywane są dane. Jedna z partycji podstawowych może być oznaczona jako partycja aktywna lub rozruchowa, z której uruchamiany jest system operacyjny.
- Partycja rozszerzona: Partycja rozszerzona to specjalna partycja podstawowa, służąca do tworzenia w niej dodatkowych partycji logicznych. Nie zawiera ona bezpośrednio danych, lecz pełni funkcję kontenera dla partycji logicznych. W obrębie partycji rozszerzonej można umieścić wiele partycji logicznych. Pozwala to ominąć ograniczenie czterech partycji podstawowych na dysku twardym.
- Partycja logiczna: Są one tworzone w ramach partycji rozszerzonej. Nie służą do uruchamiania systemu operacyjnego, a zazwyczaj służą do porządkowania danych lub plików. W ramach partycji rozszerzonej można utworzyć wiele partycji logicznych, co ułatwia porządkowanie danych.
Czym jest tablica partycji?
La tabela partycji Jest to struktura danych zlokalizowana na początku dysku twardego i zawierająca informacje o podziale dysku na partycje. Zazwyczaj jest przechowywana w głównym sektorze rozruchowym (MBR) w systemach opartych na systemie BIOS lub w tabeli partycji GPT (GUID Partition Table) w nowszych systemach opartych na UEFI. Tabela partycji zawiera szczegółowe informacje, takie jak rozmiar każdej partycji, jej typ (np. NTFS, FAT32, ext4 itp.) oraz jej lokalizacja na nośniku danych.
Zatem związek między tablicą partycji a systemem plików polega na tym, że tablica partycji wskazuje gdzie zaczyna się i kończy każda partycja Na dysku fizycznym. Każda partycja jest sformatowana przy użyciu określonego systemu plików. Gdy użytkownik uzyskuje dostęp do partycji w celu odczytu lub zapisu plików, system operacyjny wykorzystuje informacje z tabeli partycji, aby zlokalizować i zrozumieć strukturę systemu plików na danej partycji.
Typy systemów plików
Spośród różnych systemów plików należy wyróżnić następujące typy:
- Systemy plików dyskowych: Systemy te wykorzystują zdolność dyskowych nośników danych do losowego i szybkiego dostępu do danych. Umożliwiają one wielu użytkownikom lub procesom dostęp do danych na dysku, niezależnie od jego sekwencyjnej lokalizacji. Przykładami są FAT, exFAT, NTFS, Reiser FS, HFS, HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, btrfs, VMFS, ZFS, ReiserFS, NSS i ScoutFS. Oprócz nich można również rozważyć następujące systemy:
- Dyski optyczne: popularne formaty, takie jak ISO 9660 i Universal Disk Format (UDF) używane na płytach CD, DVD i Blu-ray.
- Systemy plików Flash: Systemy te zostały zaprojektowane specjalnie dla urządzeń pamięci flash i uwzględniają ich charakterystykę oraz ograniczenia. Zaleca się stosowanie systemów plików zaprojektowanych dla urządzeń flash zamiast adaptowania systemów dyskowych. Przykładami są JFFS, JFFS2, YAFFS, UBIFS, LogFS i F2FS.
- Systemy plików na taśmach magnetycznych: Systemy te zarządzają pamięcią masową na taśmach, które charakteryzują się dłuższym czasem dostępu losowego niż dyski. Różnią się one zarządzaniem katalogami i kładą nacisk na konieczność unikania częstych, liniowych przesunięć na taśmach. Przykładem może być system LTFS firmy IBM.
- Systemy plików baz danych: Systemy plików oparte na bazach danych, w których pliki są identyfikowane na podstawie takich cech, jak typ, autor lub metadane. Przykładami są m.in. IBM DB2.
- Systemy plików transakcyjnych: Systemy te gwarantują atomowość i izolację operacji na pliku. Przykładami są NTFS w systemie Microsoft Windows i inne prototypowe transakcyjne systemy plików dla systemów UNIX/Linux, takie jak LFS, ext3 itp.
- Systemy plików sieciowych: Sieciowe systemy plików, które umożliwiają dostęp do plików na serwerach zdalnych za pośrednictwem protokołów takich jak NFS, AFS, SMB, FTP i WebDAV. Oznacza to, że są one przeznaczone do przetwarzania rozproszonego.
- Współdzielone systemy plików: Systemy te umożliwiają wielu serwerom bezpieczny dostęp do tego samego podsystemu dyskowego. Przykładami są GFS2, GPFS, SFS, CXFS, StorNext i ScoutFS.
- Specjalne systemy plików: Są one dość specyficzne i nie posiadają elementów plikowych jako takich, ale można uzyskać do nich dostęp za pośrednictwem interfejsów API. Na przykład definiujemy system plików urządzeń jako devfs, używany w Linuksie itd. Z drugiej strony, mamy inne, specjalne systemy, takie jak configfs, sysfs i procfs, również znane w świecie Linuksa.
- Minimalny system plików / przechowywanie kaset audio: Kasety audio wykorzystywano jako systemy przechowywania danych, zasilające niektóre modele mikrokomputerów tamtego okresu, np. Commodore PET.
- Systemy plików płaskich (Flat File System): Te systemy nie mają podkatalogów i przechowują wszystkie wpisy katalogowe w jednym katalogu głównym. Przykładami takich systemów plików są system CP/M i system plików Macintosh dla klasycznych komputerów Mac firmy Apple.
Technologie FS

Każdy system plików ma swoje własne cechy szczególne i obsługuje różne technologie. Niektóre z najważniejszych to:
- Samoleczenie: Odnosi się do zdolności systemu plików do automatycznego wykrywania i korygowania błędów i problemów, które mogą wystąpić w systemie pamięci masowej. Błędy te mogą obejmować uszkodzone sektory na dysku twardym lub inne rodzaje uszkodzeń danych. Po wykryciu błędu system plików może podjąć próbę odzyskania danych, których dotyczył błąd, poprzez przywrócenie ich z kopii zapasowych lub naprawę uszkodzonych danych. Pomaga to zachować integralność danych przechowywanych w systemie plików.
- Kompresja: Funkcja ta pozwala zmniejszyć rozmiar plików i danych przechowywanych w systemie plików. Kompresja danych pozwala zaoszczędzić miejsce na dysku i przyspieszyć transfer plików. Po włączeniu kompresji system plików automatycznie kompresuje zapisywane na nim pliki i dekompresuje je podczas odczytu. Może to być przydatne w systemach pamięci masowej o ograniczonych zasobach, choć może spowolnić dostęp do danych.
- szyfrowanie: Jest to technika stosowana w celu ochrony poufności danych przechowywanych w systemie plików. Dane są szyfrowane przed zapisem na dysku i odszyfrowywane podczas odczytu. Szyfrowanie gwarantuje, że dane są nieczytelne dla nikogo bez odpowiedniego klucza deszyfrującego. Jest to niezbędne dla ochrony prywatności i bezpieczeństwa poufnych danych. Podobnie jak kompresja, może również spowolnić dostęp.
- Rejestrowanie (dziennik transakcji): Jest to funkcja, która rejestruje wszystkie operacje wykonywane w systemie plików, takie jak tworzenie, modyfikowanie lub usuwanie plików. Ten zapis nazywany jest „dziennikiem” lub „dziennikiem transakcji”. W przypadku awarii systemu, takiej jak nieoczekiwana przerwa w dostawie prądu, system plików może użyć dziennika transakcji, aby przywrócić spójny stan. Zapobiega to uszkodzeniu danych i zapewnia integralność systemu plików.
- Pojemność migawki: Migawki to kopie systemu plików w określonym momencie. Kopie te są migawkami i są przechowywane wraz z bieżącymi danymi w systemie plików. Migawki umożliwiają przywrócenie systemu plików do poprzedniego stanu w przypadku wystąpienia błędów lub niepożądanych zmian. Jest to przydatne do tworzenia kopii zapasowych, odzyskiwania danych i testowania zmian przed ich trwałym wdrożeniem w systemie.
Czym jest katalog lub folder?

Teraz, gdy wiemy, jak dane są przechowywane w jednostkach pamięci masowej i jakie są niezbędne struktury danych, czas wyjaśnić, czym jest folder lub katalog.
Katalog lub folder to struktura do katalogowania innych plików w systemie plików, nadając mu bardziej intuicyjną hierarchię lub organizację dla użytkownika lub systemu operacyjnego. W tym celu zawiera odwołania do innych plików i ewentualnie innych katalogów lub folderów, w tym przypadku nazywanych podkatalogami lub podfolderami.
Niektóre systemy operacyjne z hierarchicznymi systemami plików, takie jak Unix, zazwyczaj posiadają pamięć podręczną katalogów z ostatnio używanymi ścieżkami przechowywanymi w części pamięci RAM. W systemie Unix ta część nazywana jest DNLC (Directory Name Lookup Cache), a w systemie Linux – dcache. Ta część pamięci jest aktualizowana o ostatnio używane ścieżki. Natomiast w sieciowych systemach plików wymagany jest mechanizm zapewniający spójność poprzez zarządzanie wpisami, które zostały unieważnione lub utworzone przez użytkowników.
W jednym hierarchiczny system plików Przechowywanie danych ma strukturę drzewiastą. Terminy „nadrzędny” i „podrzędny” są często używane do opisania relacji między podkatalogiem a katalogiem, w którym jest on skatalogowany, przy czym ten ostatni jest katalogiem nadrzędnym. Katalog o najwyższej pozycji w takim systemie plików, który nie ma własnego katalogu nadrzędnego, nazywany jest katalogiem głównym. Najlepiej widać to w systemach Unix i Linux, gdzie istnieje określona hierarchia, a katalogiem głównym jest root lub /, z którego odchodzą wszystkie inne katalogi, nawet jeśli nie znajdują się na tej samej partycji.
Katalog wirtualny to rodzaj organizacji plików, który nie opiera się na lokalizacji w hierarchicznym drzewie katalogów. Zamiast tego gromadzi wyniki ze źródła danych, takiego jak baza danych lub indeks niestandardowy, i prezentuje je wizualnie w tym samym formacie, co widoki folderów.
Te foldery lub katalogi można zarządzać Korzystając z narzędzi, zarówno graficznych, jak i wiersza poleceń (CLI). Na przykład, możemy używać poleceń lub samego menedżera plików do tworzenia, usuwania, zmiany nazwy, przenoszenia, kopiowania itp. Chociaż niektóre systemy operacyjne mogą mieć pewne ograniczenia dotyczące uprawnień i czynności, które można wykonywać w określonych folderach...
Szczegóły dotyczące folderu lub katalogu w różnych systemach operacyjnych
En cada system plików i system operacyjny, pliki i foldery są traktowane inaczej:
- Źródło: To punkt, w którym znajduje się reszta hierarchii folderów systemu. W systemie Windows jest to zazwyczaj C:\, natomiast w systemach Unix/Linux jest to partycja główna lub /.
- Ścieżka lub trasa: Jest to ścieżka, w której znajduje się folder lub plik w systemie plików. Na przykład, w systemie Windows może to być C:\Program Files\Office\Word.exe. W systemach Unix/Linux będzie to na przykład /home/user/example.c. Jak widać, w systemie Windows używany jest ukośnik odwrotny, natomiast w systemach *nix używany jest tradycyjny ukośnik.
- Nazwa pliku lub nazwa pliku: Jest to nazwa nadawana każdemu plikowi w ramach konkretnego systemu plików. Każdy system plików ma własne ograniczenia dotyczące maksymalnej liczby znaków w nazwie pliku. Ponadto należy rozróżnić nazwę bazową od rozszerzenia. Niektóre wczesne systemy miały również ograniczenia dotyczące długości rozszerzeń, zazwyczaj do trzech. Dlatego czasami zamiast .html można spotkać rozszerzenie .htm, aby zapewnić zgodność z systemami DOS. Przykładem nazwy pliku może być example.txt, gdzie „example” to nazwa, a „txt” to rozszerzenie, co w tym przypadku oznacza, że jest to tekst.
Szczególny przypadek Unix/Linux
Czym jest superblok?
Un superblok Jest to podstawowa struktura danych znajdująca się na początku systemu plików. Superblok zawiera kluczowe informacje o samym systemie plików i służy do zarządzania danymi przechowywanymi w tym systemie oraz do uzyskiwania do nich dostępu. Każdy system plików Unix ma swój własny superblok, a jego specyficzny format może się różnić w zależności od używanego systemu plików (np. ext4, XFS, UFS itp.).
La informacje, które są przechowywane w superbloku mogą znajdować się:
- Rozmiar systemu plików: wskazuje całkowity rozmiar systemu plików.
- Liczba inodów: Określa liczbę inodów dostępnych w systemie plików. Inody to struktury danych reprezentujące pliki i katalogi.
- Wolne bloki: Rejestruje liczbę wolnych bloków danych pozostałych w systemie plików do przechowywania informacji.
- Punkt montowania: oznacza katalog, w którym zamontowany jest system plików w systemie operacyjnym.
- Identyfikacja systemu plików: Unikalny identyfikator systemu plików, który odróżnia go od innych systemów plików w tym samym systemie.
- Data i godzina zgromadzenia: rejestruje, kiedy system plików został ostatnio zamontowany.
- Używane liczniki inodów i bloków: śledzi liczbę inodów i bloków danych używanych w systemie plików.
- Suma kontrolna i inne metadane integralności: Niektóre nowoczesne superbloki mogą zawierać dodatkowe informacje mające na celu weryfikację integralności danych przechowywanych w systemie plików.
Po zamontowaniu systemu plików, czyli sformatowanej partycji, system operacyjny uzyskuje dostęp do superbloku, aby uzyskać istotne informacje o strukturze i stanie systemu plików. Informacje te są niezbędne do odczytu i zapisu danych w systemie plików, a także do zapewnienia integralności i spójności przechowywanych danych.
Inody i katalogi
En Unix/Linux, Wszystko jest plikiem, na przykład partycje, dyski urządzeń itd. Nie dotyczy to jednak innych systemów, takich jak Windows. Jednak gdy wszystko jest plikiem, nawet foldery i katalogi są uważane za specjalne typy plików.
Dlatego katalog jest specjalnym plikiem zawierającym nazwy plików (i podkatalogów) i numery inodów dla plików w tym samym systemie plików lub nazw dowiązań symbolicznych do plików lub katalogów w tym samym lub różnych systemach plików. W przypadku dowiązań twardych, inod śledzi liczbę wpisów katalogowych w nim wymienionych i usuwa bloki plików, gdy liczba dowiązań osiągnie zero. Inaczej jest w przypadku dowiązania miękkiego lub dowiązania symbolicznego. Usunięcie dowiązania symbolicznego nie ma wpływu na plik docelowy. Jeśli jednak plik z dowiązaniami symbolicznymi zostanie usunięty, dowiązania te staną się bezużyteczne.
W systemach plików Unix/Linux plik może mieć kilka nazw, z wpisem katalogowym dla każdej nazwy w tym samym lub różnych katalogach, przy czym wszystkie wskazują na tę samą strukturę inodów, która utrzymuje listę bloków dyskowych, w których przechowywane są dane.
Aby lepiej to wszystko zrozumieć, warto przypomnieć sobie, czym jest inod (węzeł indeksowy). To podstawowa struktura danych w systemach plików *nix. Reprezentuje i przechowuje istotne informacje do pliku lub katalogu w systemie plików. W związku z tym zarówno folder, jak i plik będą postrzegane przez system jako inod.
Aby było to możliwe, każdy inod wskazuje na następny informacja:
- Numer inoda: unikalny identyfikator każdego pliku lub katalogu.
- Typ pliku: Określa, czy inod odnosi się do zwykłego pliku (f), katalogu (d), łącza symbolicznego (l) czy innego typu pliku.
- Rozmiar: aktualny rozmiar pliku w bajtach.
- Uprawnienia i właściciel: Informacje o tym, kto ma uprawnienia dostępu (odczytu, zapisu, wykonywania) i modyfikacji pliku, a także o właścicielu pliku (użytkownik lub root). Właścicielem może być nawet użytkownik, który nie istnieje jako taki, ale może być urządzeniem itp.
- Data i godzina utworzenia/modyfikacji: Rejestruje datę pierwszego utworzenia i ostatniej modyfikacji inoda. Mogą być również uwzględnione inne metadane lub rozszerzone uprawnienia.
- Liczba linków: Wskazuje, ile nazw plików lub katalogów jest powiązanych z tym inodem. Katalogi mają co najmniej dwa łącza: jedno do siebie i jedno do katalogu nadrzędnego.
- Wskaźniki do bloków danych: Zawiera odwołania do bloków danych w jednostce pamięci masowej, które przechowują faktyczną zawartość pliku. Bloki te mogą być adresami bezpośrednimi, pośrednimi lub podwójnie pośrednimi, w zależności od implementacji konkretnego systemu plików i rozmiaru pliku.
Inody są kluczowe dla funkcjonowania systemu plików, ponieważ pozwalają systemowi operacyjnemu śledzić fizyczną lokalizację i informacje powiązane z każdym plikiem i katalogiem. Podczas dostępu do pliku lub katalogu system operacyjny sprawdza odpowiedni numer inoda, aby znaleźć lokalizację danych i innych informacji związanych z tym plikiem.