Krótkie pytanie, ale dlaczego tak wiele systemów plików wciąż konkuruje i jest w użyciu? (NTFS, FAT32, EXT3 (FFS) itp.)
Wygląda na to, że projektanci systemów plików mogliby uzgodnić najlepsze aspekty każdego rodzaju systemu i wdrożyć „najlepszy” system plików, prawda? To tylko myśl, ponieważ te systemy plików istnieją już od jakiegoś czasu i powinno być przynajmniej nieco oczywiste, które z nich mają dobre cechy w stosunku do innych, i moglibyśmy po prostu połączyć w sobie dobre cechy i stworzyć ostateczny system, który jest znacznie lepszy
standards
file-systems
standardization
Mroczny Templariusz
źródło
źródło
Odpowiedzi:
Zastanówmy się przez chwilę nad szczegółami, korzystając z przytoczonych przykładów:
NTFS - Zastrzeżone przez Microsoft. Każdy, kto nie jest Microsoftem, nie może tego użyć, dlatego musiałby użyć / stworzyć coś innego. Teraz, jeśli jesteś Microsoftem, chcesz użyć tego w FAT ze względu na problemy z następnym punktem.
fat32 - Niewystarczająco nowoczesny. Maksymalny rozmiar pliku to 4 GB. Wyszukiwanie pozycji katalogu to O (n). Tabela alokacji jest listą połączoną, a nie czymś bardziej wydajnym, jak mapa bitowa alokacji (gdzie bardzo szybko można znaleźć ciągłe wolne miejsce). Nie obsługuje uprawnień. Nie obsługuje dowiązań twardych ani dowiązań symbolicznych. Nie obsługuje kronikowania.
ext3 - To było rozszerzenie ext2 głównie do obsługi kronikowania.
Wygląda więc na kilka powodów:
W wcześniejszym systemie plików czegoś brakuje. W przypadku FAT brakuje go bardzo: zarówno pod względem (1) funkcji, jak i (2) wydajności. W przypadku ext2 nie było w nim rejestrowanych aktualizacji, więc odzyskanie po awarii zajęło więcej czasu.
Prawdopodobnie wystarczyłby istniejący system plików, ale nie jest on twój. (np. NTFS, jeśli nie jesteś Microsoftem). W takim przypadku nie masz tak naprawdę dużego wyboru, jak wymyślić własny.
źródło
Krótka odpowiedź: jeden rozmiar nie pasuje do wszystkich.
Są kompromisy. Na przykład, jeśli chcesz kronikować FS, płacisz za to (wydajność, złożoność itp.), Ale coś z tego zyskujesz. Niektórzy nie czują potrzeby kronikowanego FS i nie chcą za to płacić, inni tak. To samo z innymi „funkcjami” FS.
źródło
Nigdy nie może być jednego „najlepszego” czegokolwiek, ponieważ istnieje tak wiele opinii na temat tego, co jest „najlepsze”. Decyzja zależy od potrzeb i ograniczeń użytkownika. Projekty zawsze opierają się na ich zdolności dopasowania do ograniczeń.
Podstawowy telefon komórkowy musi przechowywać kilkaset kontaktów, historię wiadomości tekstowych i kilka małych aplikacji. Czy jego system plików musi obsługiwać hierarchiczną strukturę katalogów na dyskach wielotabajtowych w konfiguracji RAID? Czy na urządzeniu jest wystarczająca ilość pamięci RAM, aby uruchomić taki system plików? Czy system plików potrzebuje skomplikowanych list ACL? Prawdopodobnie nie - na wszystkie te pytania - wystarczyłby prosty system plików pochłaniający zasoby.
Firmy będą również opracowywać różne produkty w celu utrzymania przewagi konkurencyjnej. Na przykład Apple zachwala zdolność swojego systemu plików HFS + do śledzenia, które pliki zmieniły się ostatnio, dzięki czemu kopie zapasowe są szybkie. Z drugiej strony sterowniki systemu plików dyskietki (FAT) mogą zmieścić się w zaledwie kilku KB pamięci.
źródło
Zbyt wiele zależy od tego, co chcesz zoptymalizować.
Zastanówmy się przez chwilę nad FAT: obsługa długich nazw plików jest kludgy (mówiąc ładnie), a przeszukiwanie plików w katalogu jest liniowe, więc spowalnia bardzo szybko, jeśli katalog zawiera dużo plików. Jednocześnie ma absolutnie minimum metadanych, dlatego surowa prędkość zapisu jest bardzo dobra, a ponieważ jest to tak proste, kod do implementacji może być dość mały.
Coś takiego jak ext2 lub ext3 dodaje wiele funkcji i możliwości, których po prostu nie ma w FAT. Wyszukiwanie plików jest również znacznie szybsze. Jednocześnie szybkość zapisu surowego jest prawdopodobnie nieco wolniejsza, a kod do wdrożenia systemu plików jest niewątpliwie znacznie większy.
źródło
Załóżmy, że nie było żadnych kompromisów, a projektanci systemów plików wdrożyli „najlepszy” system plików, wolny od problemów patentowych i wydany jako licencja BSD / GPL na dwie licencje, aby był możliwy do zaakceptowania zarówno przez MS, jak i Debiana. Co sprawia, że myślisz, że inne systemy plików zniknęłyby z dnia na dzień?
Nie sądzę, aby ktokolwiek używał FAT32 na nowym dysku twardym od 10 lat, ale nadal jest on de facto standardem formatowania dysków USB, kart SD itp. Producenci aparatów i telefonów komórkowych wypróbowali i przetestowali oprogramowanie wewnętrzne do jego używania. Hobbyści Arduino mają stabilne biblioteki do korzystania z niego. Wszyscy będą potrzebować wielkich zachęt do zmiany.
A potem masz problemy z kompatybilnością wsteczną ze starszymi systemami operacyjnymi (zwłaszcza Windows, którego użytkownicy nie będą chcieli instalować nowych sterowników systemu plików).
źródło
Jak to często bywa w obliczeniach, odpowiedź brzmi (a) z powodu okoliczności historycznych i potrzeby zachowania kompatybilności wstecznej oraz (b) ponieważ niektóre metody lepiej nadają się do niektórych zadań niż inne.
Na (a) musisz pamiętać, że „dysk Winchester” - jestem już wystarczająco duży, aby pamiętać, że tak się nazywają - (co reszta świata nazywa „dyskiem twardym”) istnieje już od około połowy czas obliczeń elektronicznych i nawet wtedy nie był dostępny dla większości użytkowników nawet tak długo ze względu na koszty. System plików FAT działał dobrze na dyskietkach, a także na oryginalnych małych dyskach twardych, ponieważ był dość wydajny i wymagał niewielkiego obciążenia. Gdy zaczęto go używać - a jego użycie rozprzestrzeniło się szeroko, ponieważ jest łatwe do wdrożenia - producenci nie mogli powiedzieć użytkownikom, że ich stare dane nagle stały się nieważne.
Podobnie, dla użytkowników Linuksa, powiedzmy, stabilny sterownik NTFS już dawno nadszedł, więc utrzymanie urządzeń sformatowanych w systemie FAT oznaczało, że można je czytać i zapisywać na wielu systemach.
Na (b) - pomyśl o różnicach między systemem, który, powiedzmy, przechowuje, miliardy tekstowych rekordów bazy danych a systemem, który przechowuje pliki multimedialne o długości DVD. W przypadku bazy danych każdy rekord może być bardzo mały - być może zaledwie 30 lub 40 bajtów, a na pewno system plików, który przydzielił cały „segment” (jakkolwiek chcesz to zdefiniować) dysku, prawdopodobnie marnuje miejsce na dysku. Nie jest tak w przypadku płyt DVD - większe „segmenty” (oczywiście w rozsądnych granicach) prawdopodobnie będą bardzo wydajne pod względem przestrzeni.
Różne systemy plików są zaprojektowane do różnych celów.
źródło
Kolejny przykład tego, dlaczego nigdy nie może istnieć idealny system plików dla wszystkich: dyski twarde i dyski SSD mają bardzo różne właściwości dostępu do odczytu / zapisu. System plików zoptymalizowany pod kątem SSD prawdopodobnie działałby najlepiej, dzieląc pliki jak szalone, ale z każdym fragmentem rozmiar strony samego dysku SSD; działałoby to strasznie na HDD. Zoptymalizowany pod kątem HDD system plików stara się utrzymywać pliki w jak największym stopniu niefragmentowane, a nawet umieszcza często używane pliki w „gorącym” obszarze szybszej wirującej zewnętrznej części talerza; cechy te w ogóle nie pomogłyby w odczytaniu prędkości dysków SSD i stanowią ogromne obciążenie dla sposobu ich zapisu.
źródło
Myślę, że brakuje bardzo ważnego faktu. Przez większość czasu programiści myślą, że ich sposób robienia czegoś jest lepszy od wszystkich innych sposobów, dlatego patrzą na projekt systemu plików i wymyślają problemy i rozwiązania, które wydają się bardziej ogólne, eleganckie, szybkie, właściwe… A jeśli to uczucie jest wystarczająco silne, mogą zbudować własny system plików.
To wiąże się z konkurencją, fragmentacją, konfliktem i mam nadzieję, że w końcu lepsze rozwiązania i więcej opcji wyboru pasującego rozwiązania dla Ciebie.
źródło
Oto kolejny konkretny przykład tego, dlaczego potrzebujesz osobnego systemu plików lub rozszerzenia funkcjonalności istniejącego FS.
źródło
Na liście wspominasz o starym systemie plików, ponieważ lepszy nie jest dostępny, ale jest szybki.
Istnieją inne systemy plików. Słyszałem, że system plików Google służy głównie do szybkiego powielania / redundancji, jeśli jeden dysk twardy lub serwer ulegnie awarii. Pamiętam, że słyszałem o innym systemie plików stworzonym dla wielu małych plików i używanym w systemie do wielu żądań dotyczących małych plików (miniatur).
Zasadniczo mają one różne cele i / lub mogą być odpowiednie w stosunku do open source.
źródło
Myślę, że ZFS (wykorzystanie przez Solaris w systemie Sun [teraz Oracle]) jest rozwiązaniem dla systemu plików.
Niestety Oracle zamyka OpenSolaris dla odkrywcy i testuje go.
ZFS jest oprogramowaniem typu open source, niektóre Linux próbuje go zintegrować, poszukaj więcej informacji w Wikipedii.
źródło