Menu
Jest wolny
rejestracja
główny  /  Nawigatorzy/ Porównanie systemów plików Linux. Systemy plików Windows

Porównanie systemów plików Linux. Systemy plików Windows

System operacyjny Linux obsługuje szeroką gamę typów systemów plików. Z punktu widzenia Linuksa systemy plików można z grubsza podzielić na cztery grupy:

  • „Natywne” systemy plików. Oznacza to, że system plików obsługuje wszystkie atrybuty specyficzne dla Linuksa: prawa dostępu, znaczniki czasu, informacje o właścicielu pliku itp.;
  • Nienatywne systemy plików. Oznacza to, że systemy plików nie obsługują atrybutów Linuksa;
  • Wirtualny. Są to systemy plików, które nie mają fizycznych nośników;
  • Sieciowe systemy plików.

Natywne systemy plików obejmują:

  • reiserfs

System plików Ext2

Ext2 jest jednym z pierwszych systemów plików używanych w Linuksie ( Dokładniej, pierwszym systemem plików Linuksa był minix. Ale możliwości tego fs są bardzo ograniczone i był używany tylko we wczesnych stadiach rozwoju Linuksa.). Została założona w 1993 roku. System uważany jest za bardzo niezawodny i sprawdzony w czasie. Ale ponieważ ext2 został opracowany w czasie, gdy dysk twardy 300 MB był uważany za bardzo duży, ma pewne ograniczenia. Nie ma sensu używać tego fs do dużych partycji, zacznie się "zwalniać", gdy w sekcji jest duża liczba plików. Oznacza to, że ext2 jest uważany za wolny ( Powolny to termin bardzo względny. Ext2 jest uważany za wolny w systemie Linux. Ale jeśli porównać go do standardowego systemu plików FreeBSD, ext2 jest bardzo szybki.). Oczywiście wraz ze wzrostem rozmiarów dysków, wraz z pojawieniem się nowych trendów, w systemie plików wprowadzono zmiany mające na celu poprawę jego wydajności i funkcjonalności. Na przykład obsługa POSIX ACL. Jednak nie wpłynęły na nią globalne zmiany, dzięki którym można powiedzieć:

Tak, to jedyny system plików, który całkowicie mi odpowiada.

Ponadto ext2 ma poważne ograniczenia:

  • Maksymalny rozmiar pliku to 2048 GB.
  • Maksymalny rozmiar systemu plików to 32768 GB.
  • Maksymalna liczba podkatalogów w jednym katalogu to 32768.

Kronikowane systemy plików

System plików ext2 nie jest już praktycznie używany. I nie chodzi nawet o jego ograniczenia, ext2 jest dość niezawodnym systemem plików. Chodzi o szybkość ładowania serwerów Linux. Serwer musi być stale uruchomiony. Ale cuda się nie zdarzają, serwer czasami musi być przeciążony. Twoim zadaniem jest upewnienie się, że po awarii systemu uruchomią się ponownie tak szybko, jak to możliwe. Gdy serwer jest włączony, dyski są sprawdzane. Procedura sprawdzania systemów plików, zwłaszcza dużych, jest dość długą procedurą. Jeśli istnieje kilka takich systemów plików, sprawdzenie ich może zająć bardzo dużo czasu. A serwer powinien działać!

Systemy plików kronikowania zostały opracowane w celu skrócenia czasu poświęcanego na sprawdzanie i zwiększenia niezawodności. Jeśli pracowałeś z bazami danych, prawdopodobnie znasz coś takiego jak transakcja. Kilka instrukcji SQL jest połączonych w transakcję. System musi wykonać wszystkie instrukcje. Jeśli przynajmniej jeden z nich zawiedzie, system cofa się do początku transakcji. Jeśli system został zamknięty podczas trwania transakcji, po włączeniu, jeśli to możliwe, spróbuje wykonać pozostałe instrukcje lub powrócić do początku transakcji.

Do nowoczesnych systemów plików dodano obsługę dzienników transakcji. Z punktu widzenia działania systemu plików wszystkie operacje na pliku wyglądają jak jedna transakcja. Jeśli przyjrzysz się bliżej operacjom na plikach w Linuksie, pisanie lub modyfikowanie pliku jest dość złożoną procedurą, składającą się z wielu akcji z danymi na dysku. Podczas korzystania z dziennika transakcji, przed wprowadzeniem jakichkolwiek fizycznych zmian na dysku, w dzienniku otwierana jest nowa transakcja, która zapisuje wszystkie akcje, które zostaną wykonane w systemie plików. I dopiero po zapisaniu transakcji na dysku zmiany zostaną wprowadzone w systemie plików.

Jeśli system plików jest niepoprawnie odłączony, sprawdzający najpierw przegląda dziennik transakcji i na podstawie zawartych w nim danych spróbuje albo zwrócić (cofnąć) system w momencie rozpoczęcia transakcji, albo, jeśli to możliwe, dokończyć działania opisane w transakcji. Biorąc pod uwagę, że dziennik jest mały (w systemie plików ext3 wynosi 32 MB), proces odtwarzania systemu plików jest znacznie przyspieszony.

System plików Ext3

Kiedy pojawiła się potrzeba implementacji kronikowanych systemów plików w Linuksie, RedHat opracował system plików ext3. RedHat wybrał ścieżkę najmniejszego oporu - jako podstawę przyjął dobrze znany ext2 i dodał obsługę dziennika.

Ext2 jest fizycznie identyczny z ext3. Ta funkcja umożliwiła korzystanie z tych samych narzędzi do pracy z ext3 (tworzenie, sprawdzanie i konfiguracja systemów plików), jak do pracy z ext2.

Pomimo dodania dziennika ext3 jest szybszy niż ext2. Do zalet ext3 należy również zaliczyć możliwość kronikowania nie tylko niezbędnych działań, ale także danych, na które inne systemy kronikowania nie pozwalają. Ta cecha sprawia, że ​​ext3 jest bardzo niezawodny.

Ext3 obsługuje trzy tryby pracy:

  • Zapis zwrotny — w tym trybie nie jest rejestrowane żadne dane. Tak zwane metadane (i-węzeł pliku, linki do bloków) są najpierw umieszczane w logu. Dopiero po wejściu do dziennika dane są zapisywane w systemie plików.
  • Ordered (tryb domyślny) — ten tryb jest podobny do opisanego powyżej. Jedyna różnica polega na tym, że w trybie zapisu zwrotnego wszystkie metadane są najpierw zapisywane w dzienniku, a dopiero potem wprowadzane są zmiany w systemie plików. A w trybie uporządkowanym, gdy informacja o bloku zostanie umieszczona w dzienniku, blok ten jest natychmiast zmieniany w systemie plików. Następnie do dziennika zapisywane są informacje o kolejnym bloku, zapisywany jest blok i tak dalej. Oznacza to, że dane zmieniają się równolegle ze zmianą w dzienniku.
  • Dziennik - tryb pełnego dziennika. Dziennik zawiera metadane i dane. I dopiero potem następuje zmiana w systemie plików.

System plików ReiserFS

ReiserFS jest rozwijany przez Hansa Reisera i jego firmę Namesys (http://www.namesys.com). Jest to bardzo szybki system plików, dobrze przystosowany do przechowywania dużej liczby małych plików.

Udało się rozwiązać problem umieszczania małych plików na dysku. Na przykład w ext2/3 cały blok byłby używany na dysku, aby pomieścić plik zawierający pojedynczy znak. Blok ext2/3 może mieć od 1 do 8 KB ( rozmiar zależy od rozmiaru systemu plików). A w ReiserFS dane z kilku plików można umieścić w jednym bloku. Co więcej, jeśli rozmiar pliku jest bardzo mały, dane można umieścić w i-węźle, czyli bezpośrednio w metadanych.

System plików oparty jest na zoptymalizowanych drzewach (drzewo B). Zwiększa to szybkość wyszukiwania w systemie plików i eliminuje problem ograniczania liczby plików i katalogów w katalogu.

Ten system plików bardzo pewnie obsługuje również duże pliki.

ReiserFS 3.6 ma następujące ograniczenia:

  • Maksymalny rozmiar pliku to 8 TB (dla komputerów 32-bitowych);
  • Maksymalny rozmiar systemu plików to 16 TB.

Obecnie opracowywana jest kolejna wersja ReiserFS - czwarta. Oczekuje się, że znajdzie się w jądrach 2.6.17 lub 2.6.18.

System plików JFS

Ten system plików został opracowany przez IBM i jest objęty licencją GNU GPL. Opis JFS można znaleźć w Internecie pod adresem. JFS jest używany nie tylko w systemie Linux, ale także w innych systemach operacyjnych, takich jak AIX i OS/2.

JFS to kronikowany system plików. Jego główną mocną stroną jest użycie w połączeniu z LVM (Menedżer woluminów logicznych). LVM umożliwia łączenie wielu fizycznych partycji dysku twardego w jedną logiczną, którą można następnie podzielić na partycje jak zwykły dysk twardy. Jednocześnie niektóre typy LVM pozwalają na podłączenie nowej przestrzeni dyskowej w locie. A jeśli używasz systemu plików ext3 na rosnących partycjach, pewnego dnia otrzymasz komunikat o niemożności utworzenia nowego pliku. Faktem jest, że podczas formatowania partycji w ext3 z góry rezerwowana jest skończona liczba i-węzłów, w zależności od rozmiaru. Oznacza to, że z góry znana jest maksymalna liczba plików. Jeśli rozmiar systemu plików nie zwiększa się, ta liczba i-węzłów jest wystarczająca do normalnego działania. JFS ma możliwość dynamicznego zwiększania systemu plików i liczby i-węzłów. Dzięki tej właściwości wraz ze wzrostem rozmiaru systemu plików nie ma limitu liczby tworzonych plików.

System plików JFS ma następujące ograniczenia:

  • Maksymalny rozmiar pliku jest ograniczony przez bitowość systemu operacyjnego.
  • Maksymalny rozmiar systemu plików to 512 TB.

System plików XFS

System plików XFS został opracowany przez SGI (dawniej Silicon Graphics, Inc.). XFS narodził się w 1994 roku i oryginalnie był dostarczany z systemem operacyjnym IRIX. Firma SGI jest znana ze swoich stacji roboczych wideo i serwerów pamięci masowej. Dlatego system plików jest zoptymalizowany pod kątem obsługi dużej liczby dużych plików i obsługi dużych katalogów. Ze względu na swoją strukturę dobrze obsługuje również dużą liczbę małych plików. Pod względem szybkości jest porównywalny z systemem plików ReiserFS, a pod względem niezawodności przewyższa system plików Hans ( Ile danych straciłem w systemie plików ReiserFS od podstaw. Zapisano tylko kopię zapasową. Dlatego teraz nie używam ReiserFS na serwerach.).

Obsługa dużych plików jest możliwa, ponieważ XFS to 64-bitowy system plików. Szybkość systemu plików osiąga się za pomocą drzew B + do znajdowania i opisywania struktur wewnętrznych.

Wewnętrzna struktura systemu plików jest dość złożona i nie widzę potrzeby krótkiego opisu jej struktury. Ponadto w Internecie są dobre artykuły opisujące XFS:

Systemy plików Microsoft

Jeśli chodzi o systemy plików Microsoftu, Linux obsługuje FAT i NTFS. Z FAT wszystko jest bardzo proste, struktura systemu plików jest znana, więc jest w pełni obsługiwany w Linuksie. Jedyną rzeczą, którą należy wziąć pod uwagę podczas korzystania z FAT, w Linuksie są dwa rodzaje:

  • msdos - FAT12 / 16.
  • vfat - FAT32.

Obsługa FAT powinna być włączona, jeśli zamierzasz używać dyskietek i różnych urządzeń pamięci masowej USB: kart flash, dysków twardych itp. Chodzi o to, że wszystkie są zwykle sformatowane w FAT.

NTFS jest trochę bardziej skomplikowany. Ten system plików jest zwykle tylko do odczytu. Nie zaleca się używania go w trybie nagrywania. Chociaż tryb zapisu jest obsługiwany, ale jeśli przeczytasz dokumentację sterowników NTFS, zobaczysz, że jest tam napisany wielkimi literami: w trybie zapisu możesz tylko zmieniać zawartość istniejących plików, w żadnym wypadku nie powinieneś tworzyć nowe pliki, usuń lub zmień rozmiar istniejących - może to zniszczyć system plików.

Systemy plików iso9660 i udf

Te systemy plików służą do przechowywania informacji na dyskach CD i DVD.

Iso9660 był pierwotnie bardzo prostym systemem plików z wieloma ograniczeniami. Na przykład nazwy plików jak w MS DOS, ograniczenie liczby załączników katalogów. Dlatego do iso9660 napisano kilka dodatków rozszerzających jego możliwości. W tym dodatki, które pozwalają zachować atrybuty plików UNIX. Wszystkie dodatki są obsługiwane przez sterownik systemu plików i nie powinno być żadnych problemów podczas pracy. Co więcej, sterownik iso9660 obsługuje, co dziwne, tryb nagrywania. Służy do tworzenia obrazów CD-ROM.

Nie zauważono również żadnych specjalnych problemów z udf. Dzięki temu praca z płytami CD i DVD jest obsługiwana w systemie Linux bez żadnych ograniczeń.

System plików proc

Należy do kategorii wirtualnych systemów plików. Bardzo przydatny system plików. Jako administrator bardzo często będziesz odwoływał się do jego możliwości. W jednym z pierwszych rozdziałów poświęconych organizacji systemu plików Linux krótko omówiłem cel tego systemu plików. Dla przypomnienia, pliki w katalogu / proc są mapowaniem obszaru danych jądra na system plików. Oznacza to, że jeśli spojrzysz na zawartość pliku, w rzeczywistości zobaczysz pewną część obszaru danych jądra.

Poniżej kilka interesujących plików, które można znaleźć w katalogu / proc. Zawartość plików w twoim systemie będzie się różnić od zawartości plików pokazanych jako przykłady.

/ proc / cmdline

Zawiera wiersz poleceń przekazany do jądra podczas jego uruchamiania.

# cat cmdline BOOT_IMAGE = Linux-2613 ro root = 303 #

/ proc / cpuinfo

Informacje o procesorze lub procesorach.

# cat cpuinfo procesor: 0 vendor_id: GenuineIntel rodzina procesorów: 6 model: 9 nazwa modelu: Intel (R) Pentium (R) M Procesor 1400MHz Stepping: 5 cpu MHz: 1399.050 rozmiar pamięci podręcznej: 1024 KB fdiv_bug: nie hlt_bug: nie f00f_bug: nie coma_bug: nie fpu: tak fpu_exception: tak cpuid level: 2 wp: tak flagi: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est mtrr:

/ proc / urządzenia

Lista urządzeń.

# urządzenia cat Urządzenia znakowe: 1 mem 2 pty 3 ttyp 4 / dev / vc / 0 4 tty 4 ttyS 5 / dev / tty 5 / dev / console 5 / dev / ptmx 7 vcs 10 różne 13 input 14 dźwięk 21 sg 116 alsa 128 ptm 136 pts 171 ieee1394 180 usb 226 drm 254 pcmcia Urządzenia blokowe: 3 ide0 7 pętla 8 sd 11 sr 65 sd #

/ proc / dma

Korzystanie z kanałów DMA.

# kot Dma 4: kaskada #

/ proc / systemy plików

Lista obsługiwanych systemów plików.

# cat systemy plików nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts ext3 ext2 nodev ramfs msdos vfat iso9660 ntfs mbue nodev

/ proc / przerwania

Dystrybucja przerwań.

# cat przerywa CPU0 0: 850627 XT-PIC timer 1: 9691 XT-PIC i8042 2: 0 Kaskada XT-PIC 7: 2 XT-PIC parport0 8: 1 XT-PIC rtc 9: 6620 XT-PIC acpi 11: 238626 XT -PIC Intel 82801DB-ICH4, yenta, yenta, eth0, eth1, ohci1394, ehci_hcd: usb1, uhci_hcd: usb2, uhci_hcd: usb3, uhci_hcd: usb4, [e-mail chroniony]: 0000: 01: 00.0 12: 65575 XT-PIC i8042 14: 11538 XT-PIC ide0 NMI: 0 LOC: 0 ERR: 0 MIS: 0 #

/ proc / moduły

Lista załadowanych modułów.

# moduły Cat irtty_sir 5248 0 - Live 0xf8a09000 sir_dev 13548 1 irtty_sir, występy 0xf8a1d000 IrDA 107768 1 sir_dev, występy 0xf8a3f000 crc_ccitt 1792 1 IrDA, występy 0xf8a04000 parport_pc 24324 0 - Live 0xf8a16000 parport 30920 1 parport_pc, Live 0xf8a0d000 uhci_hcd 30416 0 - Live 0xf89e7000 ehci_hcd 27656 0 - Wyniki 0xf897a000 usbcore 103740 3 uhci_hcd, ehci_hcd, występy 0xf8990000 ohci1394 31092 0 - Wyniki 0xf895e000 IEEE1394 86392 1 ohci1394, występy 0xf891e000 ipw2100 78204 0 - Wyniki 0xf8936000 ieee80211 18948 1 ipw2100, występy 0xf8918000 ieee80211_crypt 4488 1 ieee80211, występy 0xf88f8000 eepro100 26512 0 - Live 0xf8909000 pcmcia 30568 4 - Live 0xf8900000 firmware_class 7680 2 ipw2100, pcmcia, Live 0xf88f2000 yenta_socket 20748 4 - Live 0xf8879000 rsrc_nonstatic 11264 1 yenta_socket, Live 0xf88756 pcma_cent2

/ proc / wierzchowce

Zawiera listę zamontowanych systemów plików.

# cat montuje rootfs / rootfs rw 0 0 / dev / root / ext3 rw 0 0 proc / proc proc rw, nodiratime 0 0 sysfs / sys sysfs rw 0 0 none / dev ramfs rw 0 0 / dev / hda5 / usr ext3 rw 0 0 / dev / hda6 / home ext3 rw 0 0 / dev / hda1 / mnt / win ntfs ro, noatime, nodiratime, uid = 0, gid = 0, fmask = 0177, dmask = 077, nls = iso8859-1, błędy = kontynuuj, mft_zone_multiplier = 1 0 0 devpts / dev / pts devpts rw 0 0 usbfs / proc / bus / usb usbfs rw 0 0 #

/ proc / partycje

Zawiera listę partycji dla wszystkich podłączonych dysków.

# partycje kot główny drobny #nazwa bloków 3 0 58605120 hda 3 1 10485688 hda1 3 2 506520 hda2 3 3 9775080 hda3 3 4 1 hda4 3 5 9775048 hda5 3 6 28062688 hda6 #

/ proc / pci

Lista urządzeń wykrytych na magistrali PCI.

Ten plik może służyć do diagnozowania przyczyn, dla których niektóre urządzenia nie działają. Zwróć uwagę na przerwania: jeśli jest równe 0, oznacza to, że z jakiegoś powodu urządzeniu nie zostało przydzielone przerwanie. Nie podam pełnej zawartości tego pliku, jest on bardzo duży.

# Znaleziono urządzenia cat pci PCI: Bus 0, device 0, function 0: Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 3). Wstępnie pobierana 32-bitowa pamięć przy 0xd0000000. Magistrala 0, urządzenie 1, funkcja 0: mostek PCI: procesor Intel Corporation 82855PM do kontrolera AGP (rev 3). Zdolność mistrza. Opóźnienie = 96. Min Gnt = 12. Magistrala 0, urządzenie 29, funkcja 0: Kontroler USB: Intel Corporation 82801DB / DBL / DBM (ICH4 / ICH4-L / ICH4-M) Kontroler USB UHCI nr 1 (rew. 1). IRQ 11. I/O przy 0x1800. #

/ proc / swapy

Zawiera listę podłączonych plików wymiany i partycji.

# cat swaps Nazwa pliku Typ Rozmiar Użyty Priorytet / dev / hda2 partycja 506512 0 -1 #

/ proc / wersja

Zawiera informacje o wersji systemu operacyjnego i jądra Linux.

# wersja cat Linux wersja 2.6.13-rc3-my ( [e-mail chroniony]) (gcc wersja 3.3.6) # 3 wt. lip 19 22:25:23 GMT + 3 2005 #

Przetwarzać informacje

Oprócz plików / proc zawiera katalogi, które mają w nazwie numer. Każdy katalog opisuje proces, którego PID odpowiada nazwie katalogu. Pliki w tym katalogu opisują parametry procesu. Zawartość jednego z katalogów pokazana jest poniżej.

# ls / proc / 4624 auxv [e-mail chroniony] [e-mail chroniony] mapy montuje oom_score seccomp statm task / cmdline environ fd / mem oom_adj [e-mail chroniony] status stat, który #

Tylko kilka plików w przykładzie zawiera informacje, które byłyby zrozumiałe bez wstępnego przetwarzania.

linia poleceń

Zawiera argumenty wiersza poleceń.

# kot cmdline -su #

otaczać

Zawiera wartości zmiennych środowiskowych procesu.

# cat environ HZ = 100TERM = xtermPATH = / usr / local / sbin: / usr / local / bin: / sbin: / usr / sbin: / bin: / usr / binHOME = / rootSHELL = / bin / bashUSER = rootLOGNAME = rootMAIL = / var / bufor / poczta / root #

status

Zawiera informacje o stanie procesu w formacie czytelnym dla człowieka.

# status kota Nazwa: bash Stan: S (śpiący) SleepAVG: 98% Tgid: 4510 Pid: 4510 PPid: 4498 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Grupy: 0 1 2 3 4 6 10 11 VmSize: 2832 kB VmLck: 0 kB VmRSS: 1724 kB VmData: 388 kB VmStk: 88 kB VmExe: 628 kB VmLib: 1628 kB VmPTE: 12 kB Wątki: 1 SigQ: 0/7168 SigPnd: 000000000000 0000Ign0000100000 : 0000000000384004 SigCgt: 000000004b813efb CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff #

Inne katalogi

W przecinku katalogów opisujących procesy systemowe mogą znajdować się inne katalogi w /proc. Poniżej znajduje się cel niektórych z nich:

  • idea- informacje o urządzeniach podłączonych do interfejsu ide.
  • irq- informacje o rozkładzie przerwań.
  • Internet- informacje o sieci. Zawartość tablicy arp i tablicy routingu. Statystyki dotyczące interfejsów sieciowych i protokołu. Itp.
  • scsi- informacje o urządzeniach SCSI.
  • system- zawiera zmienne parametry systemu.

/ proc / sys

System plików / proc / sys to osobny duży temat. Korzystając z plików w tym katalogu, możesz zmieniać parametry systemu w locie. Wystarczy wpisać żądaną wartość do konkretnego pliku. Nie będę opisywał /proc/sys, jest za dużo informacji i trzeba za dużo wiedzieć, żeby zrozumieć, do czego służą pliki. Dlatego powiem Ci, gdzie znaleźć dokumentację i opis tego systemu plików:

Sysfs jest używany przez udev do dynamicznego tworzenia plików urządzeń.

Witam czytelnicy mojej strony, o której chciałem Wam opowiedzieć istniejący oraz nowe systemy plików, a także pomóż jej poprawnie wybierać... W końcu wybór zależy od szybkości pracy, komfortu i zdrowia. jak komputer zawiesza się zwalnia to chyba Ci się to nie podoba i poprawnie wpływa to na Twoje nerwy 🙂

Co to jest system plików i do czego służy?

W uproszczeniu jest to system służący do przechowywania plików i folderów na dysku twardym lub innym nośniku, pendrive, telefonie, aparacie itp. A także do organizowania plików i folderów: przenoszenia ich, kopiowania, zmiany nazwy. Więc ten system jest odpowiedzialny za wszystkie twoje pliki, dlatego jest tak ważny.

Jeśli wybierzesz niewłaściwy system plików, komputer może działać nieprawidłowo, zawiesić się, zawiesić, informacje mogą przepływać wolno, a co gorsza, możliwe jest uszkodzenie danych. To dobrze, jeśli nie systemowo, ale się pojawi. A najważniejsze jest to, że jeśli z tego powodu twój komputer zwalnia, żadne czyszczenie śmieci nie pomoże!

Rodzaje systemów plików?

Wiele systemów plików należy już do przeszłości, a niektóre są na ostatnich nogach, tk. nowoczesne technologie rosną i rosną każdego dnia, a teraz na drodze jest zupełnie nowy system plików file przyszły! Zobaczmy, gdzie to wszystko się zaczęło.

Tłuszcz 12

Tłuszcz - tabela alokacji plików w tłumaczeniu tabela alokacji plików... Początkowo system plików był 12-bitowy i wykorzystywał maksymalnie 4096 klastrów. Został opracowany bardzo dawno temu, w czasach DOS-u i był używany do dyskietek i małych dysków o rozmiarze do 16 MB. Został jednak zastąpiony bardziej zaawansowanym tłuszczem16.

Tłuszcz 16

Ten system plików zawierał już 65525 i obsługiwał dyski o rozmiarze 4,2 GB, w tamtym czasie był to luksus i dlatego radził sobie wtedy dobrze. Ale rozmiar pliku nie mógł przekroczyć 2 GB, a pod względem ekonomicznym nie jest to najlepsza opcja, im większy rozmiar pliku, tym więcej miejsca zajmuje klaster. Dlatego nie opłaca się używać objętości większej niż 512 MB. Tabela pokazuje, ile zajmuje rozmiar sektora w zależności od rozmiaru nośnika.

Chociaż system radził sobie w tamtym czasie, w przyszłości pojawiło się szereg niedociągnięć:

1. Nie możesz pracować z dyskami twardymi powyżej 8 GB.

2. Nie możesz tworzyć plików większych niż 2 GB.

3. Folder główny nie może zawierać więcej niż 512 pozycji.

4. Brak możliwości pracy z partycjami większymi niż 2 GB.

Tłuszcz 32

Nowoczesne technologie nie stoją w miejscu i z biegiem czasu gruby system 16 nie wystarczył i przyszedł zastąpić tłuszcz 32... System ten był już w stanie obsługiwać dyski do 2 terabajtów (2048 gigabajtów) i już teraz ekonomicznie wykorzystywać przestrzeń dyskową ze względu na mniejsze klastry. Kolejnym plusem jest to, że nie ma ograniczeń w korzystaniu z plików w folderze głównym i jest bardziej niezawodny w porównaniu z poprzednimi wersjami. Ale największą wadą w chwili obecnej jest to, że pliki mogą ulec uszkodzeniu i dobrze, że nie doprowadzi to do tego. A drugą główną wadą jest to, że teraz pliki przekraczają rozmiar ponad 4 GB, a system nie obsługuje większej objętości jednego pliku. Że często użytkownicy mają pytania, dlaczego nie mogę pobrać filmu o pojemności 7 GB, chociaż na dysku jest 100 GB wolnego miejsca, to cały problem.

W związku z tym Cons i oto wystarczy:

1. Pliki większe niż 4 GB nie są obsługiwane przez system.

2. System jest podatny na fragmentację plików, co powoduje spowolnienie systemu.

3. Dotknięte uszkodzeniem pliku.

4. W tej chwili istnieje już ponad 2 TB dysków.

NTFS

A teraz przyszło na wymianę nowy system ntfs(System plików nowej technologii) co jest tłumaczone system plików Nowa technologia, w którym usunięto szereg wad, ale jest też wystarczająco dużo wad. Ten system jest ostatnim zatwierdzonym, poza nowym, który omówię poniżej. System pojawił się w latach 90., został zatwierdzony w 2001 roku wraz z wydaniem Windows XP i jest używany do dziś. obsługuje dyski do 18TB, fajnie co? A gdy pliki są pofragmentowane, prędkość nie jest tak zauważalnie tracona. Bezpieczeństwo osiągnęło już dobre wyżyny, w przypadku awarii uszkodzenie informacji jest mało prawdopodobne.

Minusy a tu będzie:

1. Zużycie pamięci RAM, jeśli masz mniej niż 64 MB pamięci RAM, nie zaleca się jej ustawiania.

2. Przy pozostałych 10% wolnego miejsca na dysku twardym system zaczyna zauważalnie zwalniać.

3. Praca z małą pojemnością pamięci może być trudna.

Nowy system FS

Całkiem nowy system plików ReFS ( Resilient File System) w tłumaczeniu odporny na awarie system plików opracowany dla nowego systemu operacyjnego Windows, za którym może znajdować się przyszły! Według twórców system powinien być wyjątkowo niezawodny i wkrótce po zakończeniu będzie wspierany na innych systemach operacyjnych. Oto tabela różnic:

Jak widać, nowy system obsługuje duże ilości miejsca na dysku oraz więcej znaków w ścieżce i nazwie pliku. System zapowiada się na bezpieczniejszy, w którym powinno być minimum zakłóceń ze względu na nową architekturę i inny sposób rejestrowania dziennika. Dopóki możesz zobaczyć tylko jeden plusy, ale na ile to prawda, nie wiadomo jeszcze. Po pełnej akceptacji możliwe, że pojawi się seria Cons... Ale jak dotąd pozostaje to tajemnicą. Miejmy nadzieję, że nowy system plików przyniesie nam same pozytywne odczucia.

Jaki system plików wybrać?

Lepiej zainstalować na sprawnym komputerze NTFS do tych celów będzie bardziej produktywny i bezpieczniejszy. Nie zaleca się instalacji na komputerach z dyskiem twardym mniejszym niż 32 GB i pamięcią RAM 64 MB. I stara kobieta tłuszcz32 możesz postawić na pendrive o małej pojemności, ponieważ wydajność może być wyższa. I jeszcze jedno, że po sformatowaniu dysku flash USB do telefonu, aparatu cyfrowego i innych urządzeń elektronicznych w formacie ntfs mogą wystąpić błędy. niektóre urządzenia mogą nie obsługiwać ntfs lub mogą działać wolno i ulegać awarii. Dlatego przed formatowaniem upewnij się, który system plików jest najlepszy dla Twojego urządzenia.

Istnieją inne typy systemów plików, na przykład dla Linuksa XFS, ReiserFS (Reiser3), JFS (dziennikowany system plików), ext (rozszerzony system plików), ext2 (drugi rozszerzony system plików), ext3 (trzeci rozszerzony system plików), Reiser4, wew4, Btrfs (B-drzewo FS lub Butter FS), Tux2, Tux3, Xiafs, ZFS (system plików Zettabyte), ale to już zupełnie inna historia...

Dlaczego smartfon nie może uruchamiać programów z karty pamięci? Czym różni się ext4 od ext3? Dlaczego dysk flash będzie działał dłużej, jeśli zostanie sformatowany w systemie plików NTFS, a nie FAT? Jaki jest główny problem z F2FS? Odpowiedzi leżą w osobliwościach struktury systemów plików. Porozmawiamy o nich.

Wstęp

Systemy plików określają sposób przechowywania danych. Określają, jakie ograniczenia napotka użytkownik, jak szybkie będą operacje odczytu i zapisu oraz jak długo dysk będzie działał bezawaryjnie. Dotyczy to zwłaszcza budżetowych dysków SSD i ich młodszych braci - dysków flash. Znając te funkcje, możesz wycisnąć maksimum z dowolnego systemu i zoptymalizować jego wykorzystanie do określonych zadań.

Musisz wybrać typ i parametry systemu plików za każdym razem, gdy musisz zrobić coś nietrywialnego. Na przykład chcesz przyspieszyć najczęstsze operacje na plikach. Na poziomie systemu plików można to osiągnąć na wiele sposobów: indeksowanie zapewni szybkie wyszukiwanie, a wstępna rezerwacja wolnych bloków ułatwi nadpisywanie często zmieniających się plików. Wcześniejsza optymalizacja danych w pamięci RAM zmniejszy ilość wymaganych we/wy.

Funkcje nowoczesnych systemów plików, takie jak leniwe pisanie, deduplikacja i inne zaawansowane algorytmy, pomagają wydłużyć czas pracy bez przestojów. Są one szczególnie istotne w przypadku tanich dysków SSD z układami pamięci TLC, dyskami flash i kartami pamięci.

Istnieją oddzielne optymalizacje dla macierzy dyskowych różnych warstw: na przykład system plików może obsługiwać lekkie dublowanie woluminów, migawki lub dynamiczne skalowanie bez przełączania woluminu w tryb offline.

Czarna skrzynka

Użytkownicy domyślnie pracują głównie z systemem plików oferowanym przez system operacyjny. Rzadko tworzą nowe partycje dyskowe, a jeszcze rzadziej zastanawiają się nad ich ustawieniami – po prostu korzystają z zalecanych parametrów lub nawet kupują wstępnie sformatowane nośniki.

Dla fanów Windows wszystko jest proste: NTFS na wszystkich partycjach dyskowych i FAT32 (lub ten sam NTFS) na dyskach flash. Jeśli istnieje NAS i używany jest w nim inny system plików, dla większości pozostaje to poza zasięgiem percepcji. Po prostu łączą się z nim przez sieć i pobierają pliki, jak z czarnej skrzynki.

W gadżetach mobilnych z Androidem ext4 najczęściej znajduje się w pamięci wewnętrznej, a FAT32 na kartach microSD. Dla Apple nie ma znaczenia, jaki mają system plików: HFS+, HFSX, APFS, WTFS… dla nich są tylko piękne ikony folderów i plików narysowane przez najlepszych projektantów. Użytkownicy Linuksa mają najbogatszy wybór, ale możesz dodać obsługę systemów plików, które nie są natywne dla systemu operacyjnego Windows i macOS – więcej o tym później.

Wspólne korzenie

Stworzono ponad sto różnych systemów plików, ale niewiele ponad tuzin można nazwać odpowiednimi. Chociaż wszystkie zostały zaprojektowane z myślą o konkretnych zastosowaniach, wiele z nich było powiązanych koncepcyjnie. Są one podobne, ponieważ używają tego samego typu struktury prezentacji (meta) danych - B-drzewa ("bi-drzewa").

Jak w każdym systemie hierarchicznym, B-drzewo zaczyna się od rekordu głównego i dalej rozgałęzia się do końcowych elementów - pojedynczych rekordów o plikach i ich atrybutach, czyli "liściach". Głównym celem stworzenia takiej struktury logicznej było przyspieszenie wyszukiwania obiektów systemu plików na dużych tablicach dynamicznych - takich jak kilkuterabajtowe dyski twarde lub jeszcze bardziej imponujące macierze RAID.

B-drzewa wymagają znacznie mniej dostępów do dysku niż inne typy B-drzewa podczas wykonywania tych samych operacji. Osiąga się to dzięki temu, że końcowe obiekty w B-drzewa są hierarchicznie rozmieszczone na tej samej wysokości, a szybkość wszystkich operacji jest wprost proporcjonalna do wysokości drzewa.

Podobnie jak inne zrównoważone drzewa, B-drzewa mają tę samą długość ścieżki od korzenia do dowolnego liścia. Zamiast dorastać, rozgałęziają się coraz bardziej i rozszerzają: wszystkie punkty rozgałęzień w B-drzewie przechowują wiele odniesień do obiektów podrzędnych, dzięki czemu można je łatwo znaleźć w mniejszej liczbie wywołań. Duża liczba wskaźników zmniejsza liczbę najdłuższych operacji dyskowych - pozycjonowanie głowicy podczas odczytu dowolnych bloków.

Koncepcja B-drzewa została sformułowana w latach siedemdziesiątych i od tego czasu przechodziła różne ulepszenia. Jest zaimplementowany w takiej czy innej formie w NTFS, BFS, XFS, JFS, ReiserFS i wielu DBMS. Wszyscy są kuzynami w zakresie podstawowych zasad organizacji danych. Różnice dotyczą szczegółów, które często są dość istotne. Wada powiązanych systemów plików jest również powszechna: wszystkie zostały stworzone do pracy z dyskami jeszcze przed pojawieniem się dysków SSD.

Pamięć flash jako motor postępu

Dyski półprzewodnikowe stopniowo zastępują dyski twarde, ale jak dotąd zmuszone są do korzystania z systemów plików, które są im obce, dziedziczone. Zbudowane są na macierzach pamięci flash, których zasady różnią się od zasad urządzeń dyskowych. W szczególności pamięć flash musi zostać skasowana przed zapisem, a tej operacji w układach NAND nie można wykonać na poziomie poszczególnych komórek. Jest to możliwe tylko dla dużych bloków jako całości.

Ograniczenie to wynika z faktu, że w pamięci NAND wszystkie komórki są połączone w bloki, z których każdy ma tylko jedno wspólne połączenie z magistralą sterującą. Nie będziemy wchodzić w szczegóły organizacji stronicowania i malować pełnej hierarchii. Ważna jest sama zasada operacji grupowych na komórkach oraz fakt, że rozmiary bloków pamięci flash są zwykle większe niż bloki adresowane w dowolnym systemie plików. Dlatego wszystkie adresy i polecenia dla dysków z pamięcią flash NAND muszą być tłumaczone przez warstwę abstrakcji FTL (Flash Translation Layer).

Kontrolery pamięci flash zapewniają zgodność z logiką urządzeń dyskowych oraz obsługę poleceń z ich natywnych interfejsów. Zwykle FTL jest zaimplementowany w ich oprogramowaniu, ale może (częściowo) działać na hoście – na przykład Plextor pisze sterowniki dla swoich dysków SSD, które przyspieszają zapis.

W ogóle nie można obejść się bez FTL, ponieważ nawet zapisanie jednego bitu do konkretnej komórki prowadzi do uruchomienia całej serii operacji: sterownik wyszukuje blok zawierający wymaganą komórkę; blok jest odczytywany w całości, zapisywany w pamięci podręcznej lub na wolnym miejscu, a następnie całkowicie usuwany, po czym jest ponownie zapisywany z niezbędnymi zmianami.

Takie podejście przypomina codzienność w wojsku: aby wydać rozkaz jednemu żołnierzowi, sierżant tworzy szyk generalny, wzywa biedaka do porządku, a pozostałym nakazuje rozejść się. W rzadkiej obecnie pamięci NOR organizacja była specnazem: każda komórka była kontrolowana niezależnie (każdy tranzystor miał indywidualny kontakt).

Kontrolery mają coraz więcej zadań, ponieważ z każdą generacją pamięci flash proces techniczny jej wytwarzania zmniejsza się w celu zwiększenia gęstości i obniżenia kosztów przechowywania danych. Wraz ze standardami technologicznymi skraca się również szacowana żywotność chipów.

Moduły z jednopoziomowymi komórkami SLC miały deklarowany zasób 100 tys. cykli przepisywania, a nawet więcej. Wiele z nich nadal działa w starych pendrive'ach i kartach CF. MLC klasy korporacyjnej (eMLC) twierdził, że zasób mieści się w przedziale od 10 do 20 tys., podczas gdy w zwykłym MLC klasy konsumenckiej szacowany jest na 3-5 tys. Pamięć tego typu jest aktywnie wciskana przez jeszcze tańszą TLC, której zasób sięga ledwie tysiąca cykli. Utrzymanie żywotności pamięci flash na akceptowalnym poziomie musi odbywać się poprzez poprawki oprogramowania, a nowe systemy plików stają się jednym z nich.

Początkowo producenci zakładali, że system plików jest nieistotny. Sam kontroler musi utrzymywać krótkotrwałą tablicę komórek pamięci dowolnego typu, rozkładając obciążenie między nimi w optymalny sposób. W przypadku sterownika systemu plików symuluje zwykły dysk i sam przeprowadza optymalizacje niskiego poziomu przy każdym dostępie. Jednak w praktyce optymalizacja dla różnych urządzeń różni się od magicznej do fałszywej.

W korporacyjnych dyskach SSD wbudowanym kontrolerem jest mały komputer. Posiada ogromny bufor pamięci (pół giga i więcej) i obsługuje wiele metod poprawiających wydajność pracy z danymi, co pozwala uniknąć niepotrzebnych cykli przepisywania. Układ porządkuje wszystkie bloki w pamięci podręcznej, wykonuje leniwe zapisy, wykonuje deduplikację w locie, rezerwuje niektóre bloki i czyści inne w tle. Cała ta magia dzieje się całkowicie niezauważona przez system operacyjny, programy i użytkownika. Z takim dyskiem SSD, jaki system plików jest używany, naprawdę nie ma znaczenia. Optymalizacje wewnętrzne mają znacznie większy wpływ na wydajność i zasoby niż te zewnętrzne.

Budżetowe dyski SSD (a tym bardziej – pendrive’y) są wyposażone w znacznie mniej inteligentne kontrolery. Pamięć podręczna w nich jest obcięta lub nieobecna, a zaawansowane technologie serwerowe w ogóle nie są wykorzystywane. W kartach pamięci kontrolery są tak prymitywne, że często twierdzi się, że w ogóle ich nie ma. Dlatego w przypadku tanich urządzeń z pamięcią flash, zewnętrzne metody równoważenia obciążenia pozostają aktualne - przede wszystkim przy użyciu wyspecjalizowanych systemów plików.

JFFS do F2FS

Jedną z pierwszych prób napisania systemu plików uwzględniającego zasady organizacji pamięci flash było JFFS - Journaling Flash File System. Początkowo to opracowanie szwedzkiej firmy Axis Communications koncentrowało się na poprawie wydajności pamięci urządzeń sieciowych, które firma Axis wyprodukowała w latach dziewięćdziesiątych. Pierwsza wersja JFFS obsługiwała tylko pamięć NOR, ale już w drugiej wersji zaprzyjaźniła się z NAND.

JFFS2 ma teraz ograniczone zastosowanie. Przeważnie jest nadal używany w dystrybucjach Linuksa dla systemów wbudowanych. Można go znaleźć w routerach, kamerach IP, NAS i innych stałych bywalców Internetu Rzeczy. Ogólnie wszędzie tam, gdzie wymagana jest niewielka ilość niezawodnej pamięci.

Kolejnym wysiłkiem rozwojowym dla JFFS2 był LogFS, który przechowywał i-węzły w osobnym pliku. Autorami tego pomysłu są pracownik niemieckiego oddziału IBM Jörn Engel oraz wykładowca Uniwersytetu Osnabrück Robert Mertens. Kod źródłowy LogFS jest dostępny na GitHub. Sądząc po tym, że ostatnia zmiana w nim została dokonana cztery lata temu, LogFS nie zyskał popularności.

Ale te próby spowodowały pojawienie się innego wyspecjalizowanego systemu plików - F2FS. Został opracowany przez firmę Samsung Corporation, która odpowiada za dużą część pamięci flash produkowanych na świecie. Samsung produkuje chipy NAND Flash dla własnych urządzeń i dla innych firm, a także opracowuje dyski SSD z całkowicie nowymi interfejsami zamiast starszych dysków. Stworzenie wyspecjalizowanego systemu plików zoptymalizowanego pod kątem pamięci flash było od dawna koniecznością z punktu widzenia Samsunga.

Cztery lata temu, w 2012 roku, Samsung stworzył F2FS (Flash Friendly File System). Pomysł jest dobry, ale realizacja okazała się wilgotna. Kluczowe zadanie podczas tworzenia F2FS było proste: zmniejszyć liczbę operacji przepisywania komórek i rozłożyć na nich obciążenie tak równomiernie, jak to możliwe. Wymaga to wykonywania operacji na kilku komórkach w tym samym bloku w tym samym czasie, a nie gwałcenia ich jedna po drugiej. Oznacza to, że nie potrzebujemy natychmiastowego przepisywania istniejących bloków na pierwsze żądanie systemu operacyjnego, ale buforowanie poleceń i danych, dodawanie nowych bloków do wolnego miejsca i opóźnione usuwanie komórek.

Dziś obsługa F2FS jest już oficjalnie zaimplementowana w Linuksie (a co za tym idzie w Androidzie), ale w praktyce nie daje żadnych specjalnych korzyści. Główna cecha tego systemu plików (odroczone nadpisywanie) doprowadziła do przedwczesnych wniosków na temat jego skuteczności. Stara sztuczka z buforowaniem oszukała nawet wczesne wersje testów porównawczych, w których F2FS wykazywał wyraźną przewagę nie o kilka procent (zgodnie z oczekiwaniami) lub nawet kilka razy, ale o rzędy wielkości. Tyle, że sterownik F2FS zgłosił wykonanie operacji, którą kontroler właśnie planował wykonać. Jeśli jednak rzeczywisty wzrost wydajności w F2FS jest niewielki, zużycie komórek będzie zdecydowanie mniejsze niż w przypadku korzystania z tego samego ext4. Te optymalizacje, których nie może wykonać tani kontroler, zostaną wykonane na poziomie samego systemu plików.

Zasięgi i mapy bitowe

Podczas gdy F2FS jest postrzegany jako egzotyczny dla geeków. Nawet własne smartfony Samsunga nadal używają ext4. Wielu uważa, że ​​jest to dalszy rozwój ext3, ale nie jest to do końca prawdą. To bardziej rewolucja niż przełamanie bariery 2 TB na plik i po prostu zwiększenie innych wskaźników.

Kiedy komputery były duże, a pliki małe, adresowanie było łatwe. Każdemu plikowi przydzielono określoną liczbę bloków, których adresy wpisano do tabeli korespondencji. Tak działał system plików ext3, który jest nadal używany. Ale w ext4 pojawił się zupełnie inny sposób adresowania - ekstensje.

Rozszerzenia można traktować jako rozszerzenia i-węzłów jako dyskretne zestawy bloków, które są adresowane w całości jako ciągłe sekwencje. Jeden ekstent może zawierać cały plik średniej wielkości, a dla dużych plików wystarczy przydzielić kilkanaście lub dwa ekstenty. Jest to znacznie bardziej wydajne niż adresowanie setek tysięcy małych bloków po cztery kilobajty.

W ext4 zmienił się sam mechanizm pisania. Teraz dystrybucja bloków następuje natychmiast w jednym żądaniu. I to nie z góry, ale tuż przed zapisaniem danych na dysku. Opóźniona alokacja wieloblokowa pozwala pozbyć się niepotrzebnych operacji, które zgrzeszył ext3: w nim bloki dla nowego pliku były przydzielane natychmiast, nawet jeśli całkowicie mieścił się w pamięci podręcznej i miał zostać usunięty jako tymczasowy.


Dieta o ograniczonej zawartości tłuszczu

Oprócz zrównoważonych drzew i ich modyfikacji istnieją inne popularne struktury logiczne. Istnieją systemy plików o zasadniczo innym typie organizacji — na przykład liniowe. Prawdopodobnie często używasz przynajmniej jednego z nich.

Tajemnica

Odgadnij zagadkę: w wieku dwunastu lat zaczęła przybierać na wadze, w wieku szesnastu lat była głupią grubą kobietą, a w wieku trzydziestu dwóch lat stała się gruba i pozostała prostakiem. Kim ona jest?

Zgadza się, to opowieść o systemie plików FAT. Wymagania dotyczące kompatybilności dały jej złe dziedzictwo. Na dyskietkach było to 12-bitowe, na twardych dyskach - początkowo 16-bitowe, a do dziś jest już 32-bitowe. W każdej kolejnej wersji zwiększała się liczba bloków adresowalnych, ale w istocie nic się nie zmieniło.

Wciąż popularny system plików FAT32 pojawił się dwadzieścia lat temu. Dziś jest nadal prymitywna i nie obsługuje list ACL, limitów dyskowych, kompresji w tle ani innych nowoczesnych technologii optymalizacji danych.

Dlaczego FAT32 jest obecnie potrzebny? Wszystko to tylko dla celów kompatybilności. Producenci słusznie uważają, że każdy system operacyjny może odczytać partycję FAT32. Dlatego tworzą go na zewnętrznych dyskach twardych, USB Flash i kartach pamięci.

Jak zwolnić pamięć flash w smartfonie

Karty MicroSD (HC) używane w smartfonach są domyślnie sformatowane do FAT32. Jest to główna przeszkoda w instalowaniu na nich aplikacji i przenoszeniu danych z pamięci wewnętrznej. Aby to przezwyciężyć, musisz utworzyć na karcie partycję ext3 lub ext4. Wszystkie atrybuty pliku (w tym prawa właściciela i prawa dostępu) mogą zostać do niego przeniesione, dzięki czemu każda aplikacja może działać tak, jakby została uruchomiona z pamięci wewnętrznej.

System Windows nie może utworzyć więcej niż jednej partycji na dyskach flash, ale w tym celu można uruchomić system Linux (przynajmniej na maszynie wirtualnej) lub zaawansowane narzędzie do pracy z partycjami logicznymi - na przykład MiniTool Partition Wizard Free. Po znalezieniu na karcie dodatkowej partycji podstawowej z ext3/ext4 aplikacja Link2SD i podobne będą oferować znacznie więcej opcji niż w przypadku pojedynczej partycji FAT32.


Kolejnym argumentem przemawiającym za wyborem FAT32 jest często przytaczany brak księgowania, co oznacza szybsze zapisy i mniejsze zużycie komórek pamięci NAND Flash. W praktyce stosowanie FAT32 prowadzi do czegoś przeciwnego i rodzi wiele innych problemów.

Dyski flash i karty pamięci po prostu szybko umierają, ponieważ każda zmiana w systemie FAT32 powoduje nadpisanie tych samych sektorów, w których znajdują się dwa łańcuchy tabel plików. Zapisałem całą stronę internetową i przepisano ją sto razy - z każdym dodawaniem kolejnego małego GIF-a na pendrive'a. Uruchomiłeś przenośne oprogramowanie? Tworzył pliki tymczasowe i ciągle je zmienia w trakcie pracy. Dlatego znacznie lepiej jest używać NTFS na dyskach flash z odporną na uszkodzenia tabelą $ MFT. Małe pliki można przechowywać bezpośrednio w głównej tabeli plików, a jej rozszerzenia i kopie są zapisywane w różnych obszarach pamięci flash. Ponadto indeksowanie NTFS przyspiesza wyszukiwanie.

INFORMACJE

W przypadku FAT32 i NTFS teoretyczne limity poziomu zagnieżdżenia nie są określone, ale w praktyce są takie same: w katalogu pierwszego poziomu można utworzyć tylko 7707 podkatalogów. Miłośnicy gniazdujących lalek to docenią.

Innym problemem, z którym boryka się większość użytkowników, jest to, że nie można zapisać pliku większego niż 4 GB na partycji FAT32. Powodem jest to, że w FAT32 rozmiar pliku jest opisany przez 32 bity w tabeli alokacji plików, a 2 ^ 32 (minus jeden, żeby być precyzyjnym) daje po prostu cztery gigi. Okazuje się, że ani filmu w normalnej jakości, ani obrazu DVD nie da się nagrać na świeżo zakupiony pendrive.

Kopiowanie dużych plików to wciąż połowa problemu: kiedy próbujesz to zrobić, błąd jest przynajmniej od razu widoczny. W innych sytuacjach FAT32 działa jak bomba zegarowa. Na przykład skopiowałeś przenośne oprogramowanie na dysk flash USB i na początku możesz z niego korzystać bez żadnych problemów. Po dłuższym czasie jeden z programów (na przykład księgowy lub pocztowy) ma nadętą bazę danych i… po prostu przestaje się aktualizować. Nie można zastąpić pliku, ponieważ osiągnął limit 4 GB.

Mniej oczywistym problemem jest to, że w systemie FAT32 datę utworzenia pliku lub katalogu można określić z dokładnością do dwóch sekund. To nie wystarcza dla wielu aplikacji kryptograficznych, które używają znaczników czasu. Niska precyzja atrybutu date jest kolejnym powodem, dla którego FAT32 nie jest uważany za kompletny system plików z punktu widzenia bezpieczeństwa. Jednak jego słabości można wykorzystać do własnych celów. Na przykład, jeśli skopiujesz jakiekolwiek pliki z partycji NTFS na wolumin FAT32, zostaną one usunięte ze wszystkich metadanych, a także odziedziczonych i specjalnie ustawionych uprawnień. FAT po prostu ich nie wspiera.

exFAT

W przeciwieństwie do FAT12/16/32, exFAT został zaprojektowany specjalnie dla pamięci flash USB i dużych (≥ 32 GB) kart pamięci. Rozszerzony FAT eliminuje wspomnianą wadę FAT32 - nadpisywanie tych samych sektorów przy każdej zmianie. Jako system 64-bitowy praktycznie nie ma znaczących ograniczeń rozmiaru pojedynczego pliku. Teoretycznie może mieć długość 2^64 bajtów (16 EB), a karty tej wielkości nie pojawią się wkrótce.

Inną ważną różnicą w exFAT jest obsługa list kontroli dostępu (ACL). To nie ten sam prostak z lat dziewięćdziesiątych, ale zamknięty format utrudnia implementację exFAT. Obsługa ExFAT jest w pełni i legalnie zaimplementowana tylko w Windows (od XP SP2) i OS X (od 10.6.5). W systemach Linux i *BSD jest obsługiwana z ograniczeniami lub nie do końca legalnie. Microsoft wymaga licencji na używanie exFAT i istnieje wiele sporów prawnych w tej dziedzinie.

Btrfs

Innym ważnym przykładem systemów plików B-drzewa jest Btrfs. Ten FS pojawił się w 2007 roku i został pierwotnie stworzony w Oracle z myślą o pracy z dyskami SSD i RAID. Na przykład można go dynamicznie skalować: tworzyć nowe i-węzły w systemie aktywnym lub dzielić wolumin na podwolumy bez przydzielania im wolnego miejsca.

Mechanizm copy-on-write zaimplementowany w Btrfs oraz pełna integracja z modułem jądra Device mapper pozwalają na tworzenie niemal natychmiastowych migawek za pośrednictwem wirtualnych urządzeń blokowych. Prekompresja danych (zlib lub lzo) i deduplikacja przyspieszają podstawowe operacje, jednocześnie wydłużając żywotność pamięci flash. Jest to szczególnie widoczne podczas pracy z bazami danych (kompresja jest osiągana 2–4 ​​razy) i małymi plikami (są one zapisywane w uporządkowanych dużych blokach i mogą być przechowywane bezpośrednio w „liściach”).

Btrfs obsługuje również pełne księgowanie (dane i metadane), sprawdzanie woluminów bez odmontowywania i wiele innych nowoczesnych funkcji. Kod Btrfs jest publikowany na licencji GPL. Ten system plików jest utrzymywany jako stabilny w Linuksie od jądra 4.3.1.

Dzienniki lotów

Prawie wszystkie mniej lub bardziej nowoczesne systemy plików (ext3 / ext4, NTFS, HFSX, Btrfs i inne) należą do ogólnej grupy systemów z dziennikiem, ponieważ przechowują zapisy zmian dokonanych w osobnym dzienniku (dzienniku) i sprawdzają go w przypadku awarii podczas operacji dyskowych... Jednak poziom szczegółowości i odporności na błędy tych systemów plików jest inny.

Ext3 obsługuje trzy tryby rejestrowania: sprzężenie zwrotne, sekwencyjne i pełne rejestrowanie. Pierwszy tryb zakłada rejestrowanie tylko ogólnych zmian (metadanych), dokonywanych asynchronicznie w odniesieniu do zmian samych danych. W drugim trybie wykonywana jest rejestracja tych samych metadanych, ale ściśle przed wprowadzeniem jakichkolwiek zmian. Trzeci tryb odpowiada pełnemu logowaniu (zmiany zarówno metadanych, jak i samych plików).

Tylko ta druga opcja zapewnia integralność danych. Pozostałe dwa tylko przyspieszają identyfikację błędów podczas sprawdzania i gwarantują przywrócenie integralności samego systemu plików, ale nie zawartości plików.

Rejestrowanie NTFS jest podobne do drugiego trybu rejestrowania ext3. W dzienniku zapisywane są tylko zmiany metadanych, a same dane mogą zostać utracone w przypadku awarii. Ta metoda dziennika NTFS nie została pomyślana jako sposób na osiągnięcie maksymalnej niezawodności, a jedynie jako kompromis między wydajnością a odpornością na błędy. Dlatego ludzie przyzwyczajeni do pracy z systemami z pełnym księgowaniem uważają NTFS za pseudo-dziennikowanie.

Podejście NTFS jest nieco lepsze niż domyślne w ext3. W systemie NTFS punkty kontrolne są dodatkowo tworzone okresowo, aby zapewnić zakończenie wszystkich wcześniej oczekujących operacji dyskowych. Punkty kontrolne nie mają nic wspólnego z punktami przywracania w \ Informacje o woluminie systemowym \. To są tylko wpisy w dzienniku.

Praktyka pokazuje, że takie częściowe kronikowanie NTFS w większości przypadków wystarcza do bezproblemowego działania. W końcu nawet przy ostrej przerwie w zasilaniu urządzenia dyskowe nie wyłączają się natychmiast. Zasilacz i liczne kondensatory w samych napędach zapewniają właśnie minimalną rezerwę energii, która wystarcza do zakończenia bieżącej operacji zapisu. Nowoczesne dyski SSD, z ich szybkością i oszczędnością, zwykle wystarczają na wykonanie operacji oczekujących na wykonanie tej samej ilości energii. Próba przełączenia się na pełne rejestrowanie kilkukrotnie zmniejszyłaby szybkość większości operacji.

Łączymy systemy plików innych firm w systemie Windows

Korzystanie z systemów plików jest ograniczone przez ich obsługę na poziomie systemu operacyjnego. Na przykład Windows nie rozumie ext2 / 3/4 i HFS +, ale czasami trzeba ich użyć. Można to zrobić, dodając odpowiedni sterownik.

OSTRZEŻENIE

Większość sterowników i wtyczek do obsługi systemów plików innych firm ma swoje ograniczenia i nie zawsze działa stabilnie. Mogą zakłócać działanie innych sterowników, programów antywirusowych i wirtualizacyjnych.

Otwarty sterownik do odczytu i zapisu partycji ext2/3 z częściową obsługą ext4. Najnowsza wersja obsługuje ekstenty i partycje do 16 TB. LVM, ACL i rozszerzone atrybuty nie są obsługiwane.


Jest darmowa wtyczka do Total Commandera. Obsługuje odczyt partycji ext2 / 3/4.


coLinux to otwarty i darmowy port jądra Linux. Wraz z 32-bitowym sterownikiem umożliwia uruchamianie systemu Linux w systemie Windows 2000 do 7 bez korzystania z technologii wirtualizacji. Obsługuje tylko wersje 32-bitowe. Rozwój modyfikacji 64-bitowej został anulowany. coLinux umożliwia między innymi organizowanie dostępu z Windows do partycji ext2 / 3/4. Wsparcie projektu zostało zawieszone w 2014 roku.

Windows 10 może już mieć natywną obsługę systemów plików specyficznych dla systemu Linux, jest po prostu ukryty. Te myśli są sugerowane przez sterownik poziomu jądra Lxcore.sys i usługę LxssManager, która jest ładowana jako biblioteka przez proces Svchost.exe. Aby uzyskać więcej informacji, zobacz wykład Alexa Ionescu „The Linux Kernel Hidden Inside Windows 10”, który zaprezentował na Black Hat 2016.


ExtFS dla Windows to płatny sterownik wydany przez firmę Paragon. Działa w systemie Windows 7 do 10, obsługuje dostęp do odczytu / zapisu woluminów ext2 / 3/4. Zapewnia prawie pełną obsługę ext4 w systemie Windows.

HFS + dla Windows 10 to kolejny zastrzeżony sterownik firmy Paragon Software. Wbrew nazwie działa we wszystkich wersjach systemu Windows począwszy od XP. Zapewnia pełny dostęp do systemów plików HFS+/HFSX na dyskach z dowolną partycją (MBR/GPT).

WinBtrfs to wczesna wersja sterownika Btrfs dla systemu Windows. Już w wersji 0.6 obsługuje zarówno dostęp do odczytu, jak i zapisu do woluminów Btrfs. Obsługuje dowiązania twarde i symboliczne, obsługuje alternatywne strumienie danych, ACL, dwa rodzaje kompresji oraz asynchroniczny tryb odczytu/zapisu. Jak dotąd WinBtrfs nie może używać mkfs.btrfs, btrfs-balance i innych narzędzi do obsługi tego systemu plików.

Możliwości i ograniczenia systemu plików: tabela przestawna

System plików Mac-si-mal-ny wolumen-rozmiar Pre-del rozmiar jednego pliku Długość według własnej nazwy pliku Długość pełnej nazwy pliku (łącznie ze ścieżką od katalogu głównego) Liczba plików i/lub katalogów przed demontażem Dokładność określenia daty pliku/katalogu Prawa dos-tu-pa Twarde linki Łącza bez karty SIM Migawki Kompresowanie danych w tle Szyfrowanie danych w tle Dziadek-plik-ka-cja danych
FAT16 2 GB w 512-bajtowych sektorach lub 4 GB w klastrach 64 KB 2 GB 255 bajtów z LFN - - - - - - - - - -
FAT32 8 TB w sektorach 2 KB 4 GB (2 ^ 32 - 1 bajt) 255 bajtów z LFN do 32 podkatalogów z CDS 65460 10ms (tworzenie) / 2s (zmiana) Nie Nie Nie Nie Nie Nie Nie
exFAT ≈ 128 PB (2 ^ 32-1 klastry po 2 ^ 25-1 bajtów) teoretycznie / 512 TB ze względu na ograniczenia stron trzecich 16 EB (2 ^ 64 - 1 bajt) 2796202 w katalogu 10 ms ACL Nie Nie Nie Nie Nie Nie
NTFS 256 TB w klastrach 64 KB lub 16 TB w klastrach 4K 16 TB (wygrana 7) / 256 TB (wygrana 8) 255 znaków Unicode (UTF-16) 32 760 znaków Unicode, ale nie więcej niż 255 znaków na element 2^32-1 100 ns ACL TAk TAk TAk TAk TAk TAk
HFS + 8 EB (2 ^ 63 bajtów) 8 EB 255 znaków Unicode (UTF-16) nie ograniczone osobno 2^32-1 1 sekunda Unix, ACL TAk TAk Nie TAk TAk Nie
APFS 8 EB (2 ^ 63 bajtów) 8 EB 255 znaków Unicode (UTF-16) nie ograniczone osobno 2^63 1 ns Unix, ACL TAk TAk TAk TAk TAk TAk
Ext3 32 TB (teoretycznie) / 16 TB w klastrach 4K (ze względu na ograniczenia programów e2fs) 2 TB (teoretycznie) / 16 GB dla starszych programów 255 znaków Unicode (UTF-16) nie ograniczone osobno - 1 sekunda Unix, ACL TAk TAk Nie Nie Nie Nie
Ext4 1 EB (teoretycznie) / 16 TB w klastrach 4K (ze względu na ograniczenia programów e2fs) 16 TB 255 znaków Unicode (UTF-16) nie ograniczone osobno 4 miliardy 1 ns POSIX TAk TAk Nie Nie TAk Nie
F2FS 16 TB 3,94 TB 255 bajtów nie ograniczone osobno - 1 ns POSIX ACL TAk TAk Nie Nie TAk Nie
BTRFS 16 EB (2 ^ 64 - 1 bajt) 16 EB 255 znaków ASCII 2 ^ 17 bajtów - 1 ns POSIX ACL TAk TAk TAk TAk TAk TAk

(2010) z pewnymi uzupełnieniami i wyjaśnieniami.

Dziennikarstwo

Zanim zaczniemy mówić o systemach plików – rzućmy okiem na koncepcję „ Logowanie«.

Dziennikarstwo jest używany w takiej czy innej formie w prawie wszystkich nowoczesnych systemach plików.

Logowanie jest używane tylko do operacji zapisu na dysk i jest rodzajem bufora dla wszystkich takich operacji. Takie podejście pomaga rozwiązać problemy pojawiające się podczas operacji zapisu na dysku, w której komputer wyłącza się, na przykład z powodu przerwy w dostawie prądu. Bez kronikowania w takich przypadkach niemożliwe jest ustalenie, które pliki zostały napisane, a które nie lub zostały zapisane częściowo.

Podczas korzystania z rejestrowania plik jest najpierw zapisywany w dzienniku (lub „dzienniku”). Następnie plik jest zapisywany na dysku twardym, a następnie usuwany z dziennika, po czym operacja zapisu jest uważana za zakończoną. Jeśli zasilanie zostanie wyłączone podczas nagrywania, to po włączeniu systemu system plików może sprawdzić dziennik i znaleźć niezakończone operacje.

Największym problemem związanym z używaniem logowania jest to, że do jego wykorzystania potrzebne są dodatkowe zasoby systemowe. Aby zmniejszyć ten narzut, systemy plików z dziennikiem nie zapisują do dziennika całego pliku, ale tylko niektóre metadane.

Zewnętrzne systemy plików

Zewn

Znaczy " Rozszerzony„(Rozszerzony) system plików i był pierwszym zaprojektowanym specjalnie dla Linux-systemy. Obecnie istnieją łącznie 4 systemy plików. Zewn... Pierwszy jest po prostu Zewn- była główną aktualizacją FS OS Minix.

Charakterystyka Zewn:

  • maksymalny rozmiar pliku: 2GB;
  • maksymalny rozmiar partycji: 2GB;

Deweloper jest, a pierwsza wersja pojawiła się w 1992 roku.

Nie rozważymy tego, ponieważ najprawdopodobniej nigdy go nie spotkasz.

Ext2

- system plików bez dziennika, wydany w 1993 roku, którego głównym zadaniem była obsługa urządzeń o rozmiarze do 2 terabajtów. Bo w Ext2 brak kronikowania - wykonuje znacznie mniej zapisów na dysku, co wpływa na wydajność i jej zakres.

Charakterystyka:

  • maksymalny rozmiar pliku: 16GB - 2TB;
  • maksymalny rozmiar partycji: 2 - 32 TB;
  • maksymalny rozmiar nazwy to 255 znaków.
  • ze względu na małą liczbę operacji zapisu-usuwania idealnie nadaje się do różnych dysków flash;
  • jednocześnie nowoczesny SSD-dyski posiadają ulepszone wskaźniki ich cyklu życia (odporność na zużycie elementów napędowych) oraz kilka innych cech neutralizujących niedociągnięcia Ext2 jako niezalogowany FS.

Ext3

- ukazał się w 2001 roku wraz z wydaniem Jądro Linuksa 2.4.15. W rzeczywistości jest taki sam Ext2 ale z obsługą logowania. Główny cel Ext3 istniała możliwość jego wstecznej kompatybilności z Ext2 bez konieczności ponownego formatowania przegród. Do zalet można zaliczyć fakt, że większość testów, poprawki błędów itp. dla Ext3 był taki sam jak w Ext2 co zrobił? Ext3 bardziej stabilny i szybszy FS.

Charakterystyka:

  • maksymalny rozmiar pliku: 16GB - 2TB (w zależności od wielkości bloku);
  • maksymalny rozmiar partycji: 2 - 32 TB (w zależności od rozmiaru bloku);
  • odpowiednie, jeśli używasz Ext2 i chcesz korzystać z rejestrowania;
  • ze względu na swoją wydajność i stabilność prawdopodobnie będzie to najbardziej odpowiedni FS dla serwerów bazodanowych;
  • Prawdopodobnie nie najlepszy wybór dla serwerów. nie obsługuje tworzenia migawek ( zgrabny) FS i trudności z odzyskaniem usuniętych plików.

Ext4

- lubić Ext3 ma kompatybilność wsteczną z poprzednimi wersjami FS. Właściwie można zamontować Ext2 lub Ext3 Jak Ext4 oraz, pod pewnymi warunkami, osiągnąć większą produktywność. Możesz również zamontować Ext4 Jak Ext3 bez żadnych skutków ubocznych.

Ext4- stabilna wersja została wydana w 2008 roku. Jest pierwszym FS z „rodziny” Zewn za pomocą mechanizmu " „, co pozwala na mniejszą fragmentację plików i zwiększa ogólną wydajność systemu plików. Poza tym, w Ext4 zaimplementowany mechanizm opóźnionego zapisu ( ), co również zmniejsza fragmentację dysku i wykorzystanie procesora. Z drugiej strony, chociaż mechanizm leniwego zapisu jest wykorzystywany w wielu systemach plików, to ze względu na złożoność jego implementacji zwiększa prawdopodobieństwo utraty danych. Zobacz więcej szczegółów.

Charakterystyka:

  • maksymalny rozmiar pliku: 16 TB;
  • maksymalny rozmiar nazwy pliku: 255 znaków.
  • najlepszy wybór dla SSD;
  • najlepsza wydajność w porównaniu do poprzednich Etx-systemy;
  • świetnie sprawdza się również jako system plików dla serwerów bazodanowych, chociaż sam system jest młodszy Ext3.

BtrFS

- opracowany przez firmę Wyrocznia w 2007. Jego schemat jest podobny do ReiserFS, główną zasadą jego pracy jest tzw. ... BtrFS pozwala na dynamiczne przydzielanie i-węzłów, tworzenie migawek FS podczas jego działania, przeprowadzanie przezroczystej kompresji plików i defragmentację w trybie pracy.

Chociaż stabilna wersja BtrFS jeszcze nie zawarte w większości dystrybucji Linux(na dzień dzisiejszy, sądząc po poczcie - tylko SUSE oraz Oracle Linux) - może dobrze zastąpić Zewn3 / 4 w dającej się przewidzieć przyszłości i już zapewnia opcje konwersji Zewn3 / 4 w BtrFS... Warto też wspomnieć, że jeden z deweloperów Zewn, powiedział to " BtrFS To krok w przyszłość.”

Charakterystyka:

  • maksymalny rozmiar partycji: 16 EB;
  • maksymalny rozmiar nazwy pliku: 255 znaków.
  • ze względu na wydajność, migawki i inne funkcje - BtrFS to doskonały system plików dla serwera;
  • Wyrocznia opracowuje również zamiennik dla NFS oraz CIFS, który jest nazywany CRFS i który ma na celu poprawę wydajności przechowywania plików z BtrFS;
  • testy wydajności wykazały opóźnienia BtrFS z Ext4 na nośnikach półprzewodnikowych, takich jak SSD a dla operacji ze stosunkowo małymi plikami:

ReizerFS

- wprowadzony w 2001 roku, zrealizował wiele możliwości, których nigdy nie można zrealizować w Zewn*. W 2004 do wymiany ReizerFS FS został wydany Reizer4.

W tym samym czasie - rozwój Reizer4 postępuje bardzo wolno i nadal ma ograniczone wsparcie (?) w jądrze Linux... Obecnie tylko ReiserFS .

Charakterystyka:

  • maksymalny rozmiar pliku: 1 EB ();
  • maksymalny rozmiar partycji: 16 TB;
  • maksymalny rozmiar nazwy pliku: 4032 bajty, ale ograniczony do 255 znaków.
  • doskonała wydajność podczas pracy z małymi plikami, takimi jak pliki dziennika, i doskonale nadaje się do serwerów baz danych lub serwerów pocztowych;
  • ReiserFS dobrze nadaje się do zwiększania rozmiaru woluminu - ale nie obsługuje jego redukcji i szyfrowania na poziomie FS;
  • przyszły Reiser4 jest nadal kwestionowana i na razie BtrFS pozostaje preferowanym (?) wyborem między tymi dwoma FS.

ZFS

- warto tu wspomnieć, tk. został również opracowany przez firmę Wyrocznia i ma możliwości zbliżone do BtrFS oraz ReizerFS... Stała się również dość sławna po firmie jabłko zamiar użycia go jako domyślnego systemu plików. Pierwsze wydanie ZFS miało miejsce w 2005 roku.

Ze względu na ograniczenia licencyjne - ZFS nie może być zawarty w jądrze Linux, ale jego obsługa jest możliwa za pomocą mechanizmu Linux (BEZPIECZNIK).

Charakterystyka:

  • maksymalny rozmiar pliku: 16 EB ();
  • maksymalny rozmiar partycji: 256 ZiB (Zebibyte);
  • maksymalny rozmiar nazwy pliku: 255 bajtów.
  • wykazuje doskonałą wydajność podczas pracy z dużymi macierzami dyskowymi;
  • obsługuje możliwość łączenia dysków w macierze, tworzenia migawek FS i pracy z „wyświetlaniem warstwowym” ( ) dane;
  • możliwe trudności podczas próby instalacji i użytkowania w Linux-systemy, ze względu na konieczność użytkowania BEZPIECZNIK.

Zamiana

Zamiana- w ogóle nie jest systemem plików. Plik lub sekcja z zamiana-th jest używane przez system pamięci wirtualnej jądra i nie ma w ogóle struktury systemu plików. Nie możesz go zamontować i odczytać z niego danych, ponieważ zamiana używane wyłącznie przez jądro Linux do zapisywania stron pamięci, a nie dysku. Zazwyczaj - zamiana jest używany tylko wtedy, gdy system operacyjny nie ma wolnej pamięci RAM i „opróżnia” część danych z pamięci do zamiana o jej uwolnienie.