Linus Torvalds i system plików OS X.

28

W 2008 roku Linus Torvalds powiedział w jednym z wywiadów, że „OS X jest pod pewnymi względami gorszy niż Windows do zaprogramowania. Ich system plików jest kompletny i całkowicie bzdura, co jest przerażające”. Szukałem więcej szczegółów na temat tego, co on tak myśli o systemie plików OS X (prawdopodobnie HFS +), ale niczego nie znalazłem.

Linus z pewnością nie lubi podstawowego modelu systemu plików Uniksa i wątpię, żeby nienawidził HFS + za to, że nie rozróżnia wielkości liter. I pomimo tego, jak prowokująco sformułowany jest jego komentarz, wątpię, aby był całkowicie bezzasadny. Ponieważ komentarz był w kontekście programowania dla OS X, podejrzewam, że jego opinia mogła być oparta na wydajności, niezawodności, interfejsie systemu operacyjnego lub czymś podobnym. Czy ktoś wie, jakie skargi Linus z ery 2008 mógł mieć z HFS + z 2008 roku?

Kenster
źródło
2
Znany jest z tego, że ma bardzo mocne opinie na temat niektórych rzeczy, na przykład, kiedy mówił o git @ google, spędził dużą część rozmowy na niszczeniu innych systemów. Powiedziałbym więc, że prawdopodobnie ma powód, by wierzyć w to, co myśli, ale jest też bardzo przesadzoną osobą, mimo że jest geniuszem. youtube.com/watch?v=4XpnKHJAok8
El Developer
3
Jeśli nie uzyskasz odpowiedzi na to pytanie, na którą liczyłeś, możesz również rozważyć wyszukiwanie (i ewentualnie także zadawanie pytań) na Unix i Linux lub Super User . (Przy tak wielu miejscach dostępnych obecnie czasami trudno jest wiedzieć, co jest miejsce zadać pytanie Co najmniej IMHO :)..
irracjonalny John
Mam tendencję do czołgania się w HFS + bardziej niż w jakimkolwiek innym systemie plików, z którym zwykle się spotykam. Obecnie na większości systemów nie czuję, że zwykle nawet zauważam lub troszczę się o to, jakiego systemu plików używa, ale HFS + zawsze coś wymyśla. Tak jak dzisiaj odkryłem, że mnie wkręca brak jego podsekundowej rozdzielczości dla modtów. Był też czas, kiedy znalazłem dwie linie kodu C, które mogą spowodować impas w systemie plików, co może doprowadzić do awarii całego komputera. Nie zostało to nawet naprawione od 10.5. Nie jestem pewien co do nowszych wersji.
Iguananaut

Odpowiedzi:

21

Zapis „Q & A”, w którym Linus sesji wykonanej komentarz jest dostępny, ale wydaje się, że nie został poproszony o opracowanie. Nie jestem pewien, czy bardziej szczegółowa analiza jego opinii na temat HFS + została zapisana gdzie indziej.

Aby dokonać analizy sprawy przez kogoś innego, możesz przejrzeć recenzje systemu Mac OS X autorstwa Johna Siracusa. W szczególności ten dla Mac OS X Lion, który ma sekcję zatytułowaną „ Co jest nie tak z HFS + ”. Myślę, że najbardziej znaczącym bitem jest (wyróżnienie moje):

Współbieżność, metadane zapisane w prawidłowej kolejności bajtów, precyzja w sekundach, obsługa ogromnych rozmiarów woluminów i obsługa plików rzadkich to wszystkie wspólne cechy systemów plików Unix. Mac OS X jest oczywiście oparty na systemie Unix. Kiedy HFS + został przeniesiony z klasycznego systemu Mac OS na Mac OS X, trzeba go było rozszerzyć, aby obsługiwał minimalny zestaw funkcji oczekiwanych od systemów plików Unix .

Niektóre z tych funkcji były łatwe do dopasowania, ale inne bardzo trudno było dodać do systemu plików bez naruszenia kompatybilności wstecznej. Jednym szczególnie przerażającym przykładem jest implementacja twardych linków w HFS +. Aby śledzić twarde łącza, HFS + tworzy osobny plik dla każdego twardego łącza w ukrytym katalogu na poziomie głównym woluminu. Ukryte katalogi są na początku trochę przerażające, ale prawdziwy strach pojawia się, gdy pamiętasz, że Time Machine jest implementowany za pomocą twardych łączy, aby uniknąć niepotrzebnego powielania danych.

Ważną kwestią jest to, że Mac OS X używa systemu plików, który nie został nawet zaprojektowany dla systemu Unix, został zaprojektowany dla klasycznego Mac OS i załatany w celu wdrożenia funkcji Mac OS X 10.0 przy jednoczesnym zachowaniu kompatybilności wstecznej. Apple wdrożyło następnie dodatkowe funkcje, które ma teraz w Mac OS X 10.7 (kronikowanie, metadane, zdarzenia w systemie plików ...), stosując to samo podejście do łatania, a nie podejście „od zera”. Nie jestem pewien, jak wyjaśnić to nietechnicznie, ale można powiedzieć, że wszystkie te dodatkowe funkcje opierają się na klasycznym fundamencie Mac OS, który nigdy nie został zaprojektowany do ich obsługi. Oznacza to, że rozwiązanie nie jest tak dobre, jak mogłoby być. Przykładem, o którym Siracusa dyskutuje dalej, jest to, że rozwiązanie, które Apple musiał zastosować do twardych łączy podczas pracy w ramach ograniczeń HFS +, jest zbyt wrażliwe na awarie sprzętu, co dodatkowo komplikuje fakt, że HFS + nigdy nie został zaprojektowany tak, aby zajmować się danymi integralność. Oczywiście utrzymanie zgodności z klasycznym Mac OS było pożądanym ograniczeniem w Mac OS X 10.0, ale tak naprawdę nie jest już w Mac OS X 10.7.

Rinzwind
źródło
1
Świetny link; który obejmuje wiele ważnych rzeczy. Brak rzadkiej obsługi plików jest dość szalony. Linux ext2 robił rzadkie pliki nawet przy prostym przydziale opartym na bitmapach, tak jak w przypadku HFS +. Myślę jednak, że zbytnio interesuje się przechowywaniem metadanych w big-endianie. bswapInstrukcja x86 jest bardzo szybka. To sprawia, że ​​kod jest większy i brzydszy, ale utrzymanie zgodności na dysku to wielka sprawa. Linux XFS nadal przechowuje wszystkie metadane big-endian (z wyjątkiem native-endian w czasopiśmie), ze względu na swoje pochodzenie w SGI na procesorach MIPS. Nie jest to idealna sytuacja, ale nie powstrzymuje XFS.
Peter Cordes,
7

Chociaż nie jestem ekspertem od systemów operacyjnych i zacząłem używać OSX po pochodzeniu z Windows, uważam się za PowerUser w Windows i dość kompetentny w Linux. Wychodząc z tego tła, byłem zaskoczony, że w dość nowoczesnym systemie operacyjnym, takim jak OSX, system plików ma dziwactwa, takie jak sposób „munglowania” nazw plików.

Rozumiem, że problemy Linusa z HFS + wynikają z tego samego punktu: z tego, co znalazłem badając problem, HFS + przechowuje nazwy plików przy użyciu Unicode, ale gdy plik używa znaków „rozszerzonych” lub NIE-ASCII (takich jak á, é, í, ó, ú, ñ z hiszpańskiego lub rzeczy takie jak ü w języku niemieckim), dla których Unicode zapewnia 2 sposoby kodowania nazwy, OSX cicho „normalizuje” kodowanie w czasie przechowywania ... Nie jest to prawdziwy problem, gdy plik został utworzony i zużyty w OSX, ale gdy udostępniasz informacje użytkownikom innych systemów operacyjnych, fakt, że nazwa pliku się zmienia, powoduje różne dziwne zachowania ...

Przykład: śledzę swoje „artefakty” (pliki, dokumenty itp.) W Subversion przez ostatnie 8 lat. Przeprowadzając się do Maca, dostałem klienta SVN dla Maca i po przejściu do moich odpowiednich katalogów, stwierdziłem, że brakuje wszystkich plików z akcentami, a nowy plik o tej samej nazwie pojawia się jako nie wersjonowany. Wnikając w to, problem polega na tym, że plik W systemie plików jest zakodowany w formacie Apple, podczas gdy dane w repozytorium używają innego (doskonale poprawnego i legalnego) kodowania Unicode ...

To, jak sądzę, jest rażącym „poplątaniem” moich danych. Apple rozumie oba formaty kodowania nazw plików (uzyskiwanie dostępu do udziału w systemie Windows lub używanie pamięci USB z systemu Windows pokazuje prawidłowe nazwy plików itp.), Ale w momencie tworzenia pliku zdecydowano, że „wie lepiej” i po prostu zmienił nazwę plików. ..

Znów, nic nie zauważy większość użytkowników - dopóki nie zrobią kopii pliku lub nie zmienią jego nazwy, i nie odłożą go tam, gdzie był oryginalny, i nie otrzymają dwóch plików, które najwyraźniej są takie same !!!)

JJarava
źródło
1
To tylko jeden punkt, a prawdziwy problem polega na tym, że różne systemy operacyjne po prostu normalizują łańcuchy na różne sposoby, a aplikacje między platformami nie radzą sobie z tym. Brak normalizacji nazw prawdopodobnie byłby gorszy (możesz mieć dwa różne pliki o nazwach normalizujących do tego samego ciągu, w systemie OS X).
Blaisorblade,
4

John Siracusa i Dan Benjamin omawiają niektóre wady HFS + w Hypercritical # 56 .

Rozwiązują problem uszkodzenia danych w HFS + i uwzględniają niektóre funkcje ZFS.

badams
źródło
9
Czy w swojej odpowiedzi możesz podać streszczenie dyskusji? Strumień audio jest (w tym momencie w naszej obecnej technologii) niemożliwy do przeszukiwania i bardzo długi. Nie wspominając o tym, że znajduje się na innej stronie, więc podatne jest na zgniliznę linków. Byłaby to znacznie lepsza odpowiedź, gdyby zawierała szczegółowe informacje na temat ich dyskusji.
Ian C.
1
Dyskusja na temat systemu plików zaczyna się za 23 minuty.
neoneye
1
Większość informacji dostępnych w podcastu można również znaleźć w artykule Ars Technica autorstwa Johna Siracusa (jednego z dwóch mężczyzn w podcastie)
TML