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?
źródło
Odpowiedzi:
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):
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.
źródło
bswap
Instrukcja 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.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 !!!)
źródło
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.
źródło