Systemy plików a partycje vs katalogi

30

Jestem nowy w Linuksie, więc wybacz mi ewentualne zamieszanie, jakie możesz napotkać w tym pytaniu.

Z tego co rozumiem, systemu plików określa sposób przechowuje działowe / zarządza Plik z normami, takimi jak: ext2, ext3, reiserfs, XFS itp Czasami widzę, ludzie wydają się odnosić do siebie „ directory” jako

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

Dlaczego mielibyśmy tak się nazywać filesystems?

Jeśli każda z nich jest partycją, to mnie dezorientuje, ponieważ, o ile wiem, /usri /usr/binzwykle są w tej samej partycji, ale widziałem, że ludzie odnoszą się zarówno do, jak /usr filesystemi do /usr/bin filesystem.

Jeśli filesystemtutaj jest odpowiednik systemu Windows directory, nie jest dla mnie jasne, ponieważ najwyraźniej system plików to coś więcej niż tylko katalogi. Ponadto, o ile mi wiadomo, Linux nie ma directorykoncepcji; wszystkie są plikami.

Kenny
źródło
Nigdy nie widziałem wystąpienia „systemu plików / root”. Niezależnie od systemu plików zamontowanego w „/” jest „główny system plików”. Niektóre inne prawdopodobne punkty montowania we współczesnej dystrybucji Linuksa to „/ boot”, „/ home” i „/ mnt / xx” lub „/ media / xx” dla różnych wartości „xx”. Dystrybucje jądra 2.x + (?) Będą miały „/ proc” i „/ sys”, Systemd ma punkty montowania „/ var / run / nnnn” dla różnych numerycznych identyfikatorów UID nnnn. Starsze instalacje uniksowe mogą montować „/ usr” przez NFS, ale jest to mało prawdopodobne na osobistej dystrybucji Linuksa. „/ bin” i „/ usr / bin” zwykle nie byłyby oddzielnymi punktami montowania.
David
Jest / root , prawda? Czy to znaczy, że nigdy nie pozostaje w osobnym systemie plików?
Kenny,
Dobrze. „/ root” to standardowy katalog domowy użytkownika „root”, ale zazwyczaj jest to po prostu inny katalog w głównym systemie plików.
David
Temat ten został obszernie omówiony na Ask Ubuntu , które, IMNSHO, jest głupie, ponieważ, AFAIK, koncepcje nie różnią się na Ubuntu, że są w jakiejkolwiek innej formie Uniksa lub Linuksa. Na przykład, co to jest „mount”? został zapytany zaledwie kilka dni temu.
Scott,
Jestem pod wrażeniem pytań. Biorąc pod uwagę niewielką wiedzę, którą w tej chwili mogłeś zrozumieć, i że nie zauważyłeś wniosku, że „/ root system plików” może odnosić się do systemu plików, w którym zamontowana jest partycja /root, myślę, że jest to możliwe do odrzucenia, biorąc pod uwagę złożoność sytuacja.
erikbwork

Odpowiedzi:

14

Jak napisałem w https://superuser.com/a/293160/38062 :

Problemem jest tutaj słowo „system plików”. W światach POSIX / Unix / Linux oznacza kilka różnych rzeczy.

  1. „System plików” jest czasem całym systemem plików, zrootowanym /i przedstawionym oprogramowaniu aplikacji przez jądro systemu operacyjnego. W tym znaczeniu ludzie mówią na przykład o systemach operacyjnych POSIX posiadających „pojedyncze drzewo systemów plików ”.
  2. „System plików” jest czasem jednym (lub więcej) wycinkiem jednego (lub kilku) DASD (-ów) - jeden lub więcej zbiorów sąsiednich sektorów dysku sformatowanych jako pojedynczy wolumin o danym formacie - co jest określone przez niektóre partycjonowanie dysku schemat. W tym znaczeniu ludzie mówią o „formatowaniu mojego /usrsystemu plików ”. „ /usr” tutaj jest (oczekiwany) punkt montowania woluminu lub (w niektórych schematach partycjonowania) jego etykieta identyfikacyjna.
  3. „System plików” to czasami abstrakcyjne drzewo plików i katalogów, które można połączyć, prezentowane przez sterownik systemu plików (tj. Warstwę VFS) pozostałej części systemu. Z tym rozumieniu, ludzie mówią o, powiedzmy, „montowania systemu plików proc na /proc” lub „za pomocą tmpfs plików za /tmp”.

Widzisz znaczenie nr 1, gdy widzisz „ /usr/binsystem plików”. Jest to drzewo systemu plików zrootowane w katalogu /usr/bin. Tak, Linux bardzo nie mają pojęcia katalogów.

Znaczenie # 2 i znaczenie # 3 są tym, co źle je czytasz. Ludzie nie mówią o /usr/binzestawie danych na dysku, wyznaczonym przez dzielenie / dzielenie dysku. Nie mówią też o /usr/binkonkretnym typie sterownika systemu plików lub o określonym formacie woluminu płyty.

Dalsza lektura

  • Ramesh Bangia (2010). "system plików". Słownik technologii informatycznych . Laxmi Publications, Ltd. ISBN 9789380298153. str. 224
  • System plików . „Definicje podstawowe”. Specyfikacje podstawowe grupy otwartej . Wydanie 7 IEEE 1003.1. Grupa otwarta. 2013.
  • Binh Nguyen (16.08.2004). "system plików". Słownik Linux . Wersja 0.16. p. 616.
JdeBP
źródło
8

Oczywiście Linux używa koncepcji katalogów. Pojęcie katalogów jest takie samo jak w systemie Windows.

Pojęcie systemów plików jest również bardzo podobne do tego, co jest używane w systemie Windows. Windows zwykle używa NTFS lub FAT - Linux zwykle używa ext2, ext3, ext4 i tak dalej, to cała różnica.

Różnica polega na tym, że w systemie Linux pliki / katalogi ze wszystkich dostępnych partycji są zorganizowane w jednym drzewie. W systemie Windows do różnych partycji używa się litery, np. „A:”, „c:”, w systemie Linux pełna ścieżka do dowolnego dostępnego pliku zaczyna się od „/” - katalogu głównego. Na przykład na dysku twardym znajduje się osobna partycja z plikami potrzebnymi do uruchomienia systemu: uruchamiasz komendę „mount” z odpowiednimi argumentami, a zawartość tej partycji staje się dostępna na ścieżce „/ boot /”. Tak więc ścieżki „/ boot” i „/ home” mogą odnosić się do danych na różnych partycjach, partycje te mogą mieć różne systemy plików. Prawdopodobnie spowodował twoje nieporozumienie.

Katalogi znajdujące się fizycznie na tej samej partycji zawsze miałyby „ten sam system plików”. Kiedy ktoś mówi o systemie plików jakiegoś katalogu, tak naprawdę chodzi o system plików partycji, na której ten katalog się znajduje.

(Drobna i prawdopodobnie nieistotna korekta: czasami system plików jest wirtualny i nie ma odpowiedniej partycji. Na przykład „/ proc” zawiera coś, co wygląda bardzo podobnie do plików, ale te „pliki” są wirtualne, nie rezydują na dowolny dysk twardy i zawierają informacje o uruchomionych procesach. Istnieje również specjalny system plików „procfs”, który zapewnia zwykły interfejs plików podobny do tych danych)

lesnik
źródło
Wspomniałeś o „systemie plików katalogu”, czy kaskadowo przechodzi do wszystkich swoich podkatalogów. Czy jest możliwe, aby jeden katalog i jego podkatalogi miały inny system plików? Przykładowo / a a / a / b , a / b jest między podsystemami z własnego systemu plików F2 zamontowany jest o systemie plików F1?
Kenny,
Co do tego, czy katalogi znajdujące się na tej samej partycji są w rzeczywistości częścią tego samego systemu plików, mogą być nieco rozmyte w przypadku niektórych bardzo nowoczesnych systemów plików, takich jak ZFS lub btrfs; możesz mieć wolumin ZFS z kilkoma systemami plików, które go współużytkują, z własnymi całkowicie odrębnymi punktami montowania.
Charles Duffy,
@ Kenny Tak, masz rację. Przykład na żywo: wkładam dysk kompaktowy do napędu CD. Mój Linux instaluje CD na „/ mount / cdrom”. Katalog „/ mount” (i wszystkie tworzone w nim pliki) znajduje się na moim dysku twardym. Ale zawartość „/ mount / cdrom” jest już na płycie CD.
lesnik
6

Dysk jest podzielony na jedną lub więcej partycji . W systemie Windows zwykle jest tylko jedna, może z ukrytą gdzieś partycją odzyskiwania. Partycja to logicznie ciągły obszar dysku, np. „Sektory od 1 do 10 000 000”.

Na partycji można zbudować system plików. W przypadku systemu Windows jest to NTFS lub FAT; w przypadku systemu Linux jest to jedna z extwersji lub różnych innych opcji.

Wewnątrz systemu plików są pliki i katalogi. Linux ma katalogi, nie mam pojęcia, skąd pomysł, że nie.

W jaki sposób system operacyjny przedstawia użytkownikowi wiele partycji na wielu dyskach? W systemie Windows, to odbywa się z liter dysków : C:, D:itd. W systemie Linux nie ma litery dysków i wszystko jest zrobione z punktów montowania : w określonym katalogu, przekierowywania dostępu do innego systemu plików (+) Często Po włożeniu płyty CD. lub pamięć USB pojawi się gdzieś pod /medialub /mnt.

/usri /usr/binzwykle będzie w tym samym systemie plików, ale nie jest to wymagane. Ludzie mogą oznaczać „system plików, który zawiera /usr/binkatalog”, kiedy używają tego sformułowania.

(+) Możesz to zrobić również z punktami połączenia NTFS, ale ludzie rzadko to robią. Dopóki nie zabraknie liter napędu.

pjc50
źródło
Popraw mnie, jeśli się mylę: w systemie Linux 1 dysk fizyczny można podzielić na wiele partycji, z których każda ma własny system plików? Analogicznie do sposobu, w jaki dysk twardy w systemie Windows zawiera kilka partycji, jedna może być FAT, a druga NTFS?
Kenny,
1
Tak, masz rację: ale to nie jest analogiczne, to dokładnie ten sam podstawowy mechanizm. Maszyny z podwójnym uruchomieniem mogą mieć partycje NTFS i ext3 na tym samym dysku, a menedżer dysków każdego systemu operacyjnego widzi ten sam zestaw partycji. Po prostu system Windows nie widzi zamontowania partycji ext3, aby zobaczyć pliki.
pjc50,
3

Możliwe jest utrzymanie całego systemu Linux na jednej partycji, przy czym wszystkie podkatalogi są na jednym systemie plików.

Możliwe jest także rozłożenie go na kilka partycji, przy czym niektóre poddrzewa katalogów znajdują się w różnych systemach plików. Na przykład, często można umieścić /home, /tmp, /usr, i /varna oddzielnych systemach plików. Aby odpowiedzieć na jedno z twoich pytań, czasami /usr/binbędzie też na własnym systemie plików.

Ten system ma zalety. Na przykład, jeśli /varzapełni się dużą ilością e-maili, nie wpłynie to na resztę systemu. Podobnie, jeśli jeden system plików jest uszkodzony z powodu awarii lub czegoś innego, inne systemy plików są nadal dobre i łatwiej jest odzyskać system.

Podczas uruchamiania systemu początkowo dostępny jest tylko główny system plików. Programy tam przechowywane są uruchamiane podczas procesu rozruchu. Jeden z tych programów mountjest uruchamiany kilka razy przy użyciu danych z pliku /etc/fstab, tabeli systemów plików. Na przykład: pierwotnie /homejest to zwykły katalog w głównym systemie plików. Następnie uruchamiamy to polecenie jako root:

mount /dev/sda7 /home

Mówi to systemowi, że system plików na partycji /dev/sda7 powinien zostać zamontowany w katalogu /home. Więc teraz wszystko w tym systemie plików jest uważane za poniżej /home.

Możesz zobaczyć, co jest obecnie zamontowane, uruchamiając df.

Tom Zych
źródło
3

Czasami określamy je jako filesystems, ponieważ czasami te katalogi są punktami montowania. Tyle o jedynym zadanym pytaniu ...

filesystem mogą odnosić się do dwóch różnych rzeczy ... lub dwóch różnych aspektów tej samej rzeczy:

  1. Logiczna struktura używana do organizowania danych na nośniku pamięci.
  2. Metodologia stosowana przez system operacyjny w celu zapewnienia procesom ujednoliconego dostępu do danych.

Pojęcie plików i katalogów jest metaforą. Na komputerze są tylko dane, a wszystkie media to nic innego jak urządzenia, które mogą przechowywać dane. Niektóre urządzenia pozwalają na odczyt i zapis danych (np. HDD), inne umożliwiają tylko odczyt danych (np. CD-ROM), a są nawet urządzenia, które pozwalają tylko na zapis danych (np. Drukarka). Używamy metafory plików i katalogów do strukturyzowania danych, abyśmy mogli uzyskać dostęp do małych porcji danych, a nie wszystkiego jednocześnie.

Systemy plików, które umieszczamy na nośnikach pamięci, np. Ext4, xfs, fat, odgrywają rolę w tworzeniu struktury. Używamy ich do umieszczania etykiet na fragmentach danych (plikach) i do uzyskania spójnej uporządkowanej listy wszystkich etykiet (katalogów). Struktura listy jest w rzeczywistości drzewem. Najważniejszym aspektem jest to, że drzewo ma dokładnie jeden początek, jego korzeń. Utrzymanie tej struktury i zapewnienie, że dane są i pozostają dostępne, jest dość zadaniem, dlatego nie ma tylko jednego smaku systemu plików.

Innym aspektem systemów plików jest to, że zadaniem systemu operacyjnego jest udostępnienie danych przechowywanych na urządzeniach pamięci wszystkim programom. Osiągają to dwie rzeczy:

  1. System operacyjny oferuje dokładnie jeden (programujący) interfejs umożliwiający dostęp do plików i katalogów oraz interakcję z nimi. W przypadku programów / procesów nie ma znaczenia, czy system plików na urządzeniu pamięci masowej to ext2, xfs, fat, czy cokolwiek innego. Programy / procesy uzyskują dostęp do plików i katalogów w jednolity sposób.

  2. System operacyjny organizuje wszystkie nośniki pamięci, tj. Ich systemy plików, w jednej nadrzędnej strukturze. Programy uzyskują dostęp do plików i katalogów za pośrednictwem tej nadrzędnej struktury i nie muszą bezpośrednio wchodzić w interakcje z urządzeniami pamięci. W ten sposób programy nie muszą dbać o to, na którym urządzeniu faktycznie znajdują się dane. Ta nadrzędna struktura jest często nazywana „wirtualnym systemem plików” jądra.

Dodanie systemu plików urządzenia pamięci do wirtualnego systemu plików nazywa się „montowaniem” systemu plików. Podczas uruchamiania systemu Linux jądro tworzy wirtualny system plików (VFS). Zaraz po stworzeniu jest pusty i składa się tylko z punktu wejścia, czyli korzenia, transkrybowanego /. Następnie jądro montuje system plików w katalogu głównym VFS. Jest to albo ramdysk, albo natychmiast system plików na partycji na dysku twardym. Ponieważ jest dodawany w katalogu głównym VFS, ta partycja jest często określana jako główny system plików.

Teraz pojawia się część, w której linie rozmazują się i widzimy, że systemy plików na urządzeniach pamięci i VFS jądra są w rzeczywistości dwoma aspektami tego samego zadania systemu operacyjnego: Po zamontowaniu głównego systemu plików VFS zawiera wiele plików i katalogów, z których wszystkie istnieją na partycji głównej. Jednak każdy katalog może stać się „punktem instalacji”. Punkt podłączenia to miejsce, w którym VFS umieszcza punkt wejścia w systemie plików na urządzeniu pamięci masowej. Oznacza to, że za każdym razem, gdy montujemy system plików w katalogu, informujemy VFS, że zamiast uzyskiwać dostęp do danych przechowywanych w tym katalogu, wolelibyśmy uzyskać dostęp do danych na innym urządzeniu pamięci masowej. Punkty montowania są zwykle pustymi katalogami, dzięki czemu nie uniemożliwiamy dostępu do danych przez zamontowanie innych systemów plików na wierzchu.

Po zainstalowaniu systemu operacyjnego od Ciebie zależy, czy chcesz umieścić wszystkie dane w jednym systemie plików, który następnie stanie się głównym systemem plików, czy też chcesz podzielić dane na wiele systemów plików. Ten ostatni wymaga, aby Twój system operacyjny zamontował wszystkie poszczególne systemy plików, aby wszystkie dane były dostępne. To, w jaki sposób dzielisz rzeczy, jest kwestią projektowania twojego systemu. Dlatego czasami katalogi znane z instalacji są nazywane systemami plików.

W przypadku komputerów, które zwykle mamy w domu, dzielenie instalacji na wiele systemów plików nie jest już konieczne. Nadal mogą istnieć dobre powody, aby to zrobić, ale jest to poza zakresem tego postu.

Aby pozostała część tego postu była krótka: Partycje to kolejny sposób uporządkowania danych na urządzeniach pamięci. W przypadku partycji jedna z ciągłych przestrzeni dyskowych jest wydzielana z fizycznego urządzenia pamięci masowej i oferuje je jako indywidualne urządzenia pamięci masowej dla systemu operacyjnego (na którym można umieścić systemy plików do zamontowania w VFS). Jednym z powodów takiego stanu rzeczy może być to, że jeden ma tylko jeden dysk twardy, ale chce korzystać z wielu różnych systemów plików. Partycja, na której żyje główny system plików, jest często określana jako partycja główna.

Bananguin
źródło
1

Robisz trochę zamieszania. Filesystemwskazuje mechanizm, za pomocą którego pliki są zlokalizowane i zorganizowane na urządzeniu pamięci masowej lub w pamięci masowej, takiej jak dysk twardy lub CD-ROM, a w niektórych przypadkach także w pamięci RAM.

Nawet Windows używa systemów plików takich jak NTFSlub wcześniej FAT.

Twój przykład pokazuje powszechną praktykę w systemach Linux i Unix, aby mieć własny system złożony z różnych systemów plików zamontowanych w katalogach o nazwie mount point. Pozwala to, w przypadku problemów, ograniczyć szkody do jednego lub więcej, ale nie do wszystkich systemów plików.

Zatem FS nie jest równoważny katalogowi, a także w Linuksie istnieją katalogi, które są specjalnym rodzajem pliku

LilloX
źródło