Linus Torvalds dan OS X Filesystem

28

Kembali pada 2008, Linus Torvalds terkenal mengatakan dalam sebuah wawancara bahwa "OS X dalam beberapa hal sebenarnya lebih buruk daripada Windows untuk diprogram. Sistem file mereka lengkap dan omong kosong, yang menakutkan." Saya telah mencari rincian lebih lanjut tentang mengapa dia merasa seperti ini tentang sistem file OS X (HFS + mungkin) tetapi saya belum dapat menemukan apa pun.

Linus jelas tidak menyukai model filesystem Unix dasar, dan saya ragu dia membenci HFS + karena case-insensitive. Dan terlepas dari seberapa provokatif komentarnya diungkapkan, saya ragu bahwa itu sama sekali tidak pantas. Karena komentar itu dalam konteks pemrograman untuk OS X, saya menduga pendapatnya mungkin didasarkan pada kinerja, kekokohan, antarmuka sistem operasi, atau sesuatu seperti itu. Adakah yang tahu keluhan apa yang mungkin dimiliki Linus era 2008 dengan HFS + era 2008?

Kenster
sumber
2
Dia telah dikenal memiliki pendapat yang sangat kuat tentang beberapa hal, misalnya ketika dia memberi ceramah tentang git @ google, dia menghabiskan sebagian besar pembicaraan untuk menghancurkan sistem lain. Jadi saya akan mengatakan bahwa dia mungkin memiliki alasan untuk percaya apa yang dia pikirkan tetapi dia juga orang yang sangat berlebihan, meskipun dia jenius. youtube.com/watch?v=4XpnKHJAok8
El Pengembang
3
Jika Anda tidak mendapatkan jawaban atas pertanyaan ini di sini yang Anda harapkan maka Anda mungkin juga mempertimbangkan untuk mencari (dan mungkin juga bertanya) di Unix & Linux atau Super User . (Dengan begitu banyak situs yang tersedia sekarang kadang-kadang sulit untuk mengetahui yang merupakan satu tempat untuk mengajukan pertanyaan Setidaknya IMHO :)..
irasional John
Saya cenderung membenturkan kepala dengan HFS + lebih dari sistem file lain yang biasanya saya temui. Hari-hari ini pada kebanyakan sistem saya tidak merasa seperti saya biasanya bahkan memperhatikan atau peduli apa filesystem yang digunakannya, tetapi HFS + selalu muncul dengan sesuatu. Seperti baru hari ini saya menemukan saya sedang kacau oleh kurangnya resolusi sub-detik untuk modtimes. Ada juga saat saya menemukan dua baris kode C yang dapat menyebabkan kebuntuan di filesystem cukup banyak menjatuhkan seluruh mesin. Itu bahkan belum diperbaiki pada 10.5. Tidak yakin tentang versi yang lebih baru.
Iguananaut

Jawaban:

21

Sebuah transkrip dari “Q & A” sesi di mana Linus membuat komentar tersedia, tetapi tampaknya dia tidak diminta untuk menguraikan. Saya tidak yakin apakah analisis yang lebih mendalam tentang pendapatnya tentang HFS + telah ditulis di tempat lain.

Untuk analisis orang lain tentang masalah ini, Anda dapat melihat ulasan John OS Mac X Siracusa. Khususnya untuk Mac OS X Lion yang memiliki bagian berjudul " Apa yang salah dengan HFS + ." Saya pikir bit yang paling menonjol adalah (penekanan milik saya):

Konkurensi, metadata yang ditulis dalam urutan byte yang benar, ketepatan tanggal kedua, dukungan untuk ukuran volume besar, dan dukungan file jarang adalah semua fitur umum dari sistem file Unix. Mac OS X, tentu saja, dibangun di atas fondasi Unix. Ketika HFS + porting dari Mac OS klasik ke Mac OS X, itu perlu diperluas untuk mendukung beberapa set fitur minimum yang diharapkan dari sistem file Unix .

Beberapa fitur tersebut sangat mudah digunakan, tetapi yang lain sangat sulit untuk ditambahkan ke sistem file tanpa merusak kompatibilitas. Salah satu contoh yang menakutkan adalah implementasi tautan keras pada HFS +. Untuk melacak tautan keras, HFS + membuat file terpisah untuk setiap tautan keras di dalam direktori tersembunyi di tingkat akar volume. Direktori tersembunyi agak menyeramkan, tetapi ketakutan yang sebenarnya muncul ketika Anda ingat bahwa Time Machine diimplementasikan menggunakan tautan keras untuk menghindari duplikasi data yang tidak perlu.

Poin penting di sini adalah bahwa Mac OS X menggunakan sistem file yang bahkan tidak dirancang untuk sistem Unix, itu dirancang untuk Mac OS klasik dan ditambal untuk mengimplementasikan fitur-fitur Mac OS X 10.0 sambil mempertahankan kompatibilitas ke belakang. Apple kemudian mengimplementasikan fitur tambahan yang sekarang ada di Mac OS X 10.7 (penjurnalan, metadata, peristiwa sistem file ...) menggunakan pendekatan patching yang sama daripada pendekatan "desain dari bawah ke atas". Saya tidak yakin bagaimana menjelaskan ini secara non-teknis, tetapi Anda bisa mengatakan bahwa semua fitur tambahan ini bersandar pada fondasi Mac OS klasik yang tidak pernah dirancang untuk mendukungnya. Ini berarti solusinya tidak sebagus yang seharusnya. Contoh yang Siracusa lanjutkan untuk membahas adalah bahwa solusi yang harus digunakan Apple untuk tautan keras saat bekerja dalam batasan HFS + terlalu sensitif terhadap kegagalan perangkat keras, yang diperparah oleh fakta bahwa HFS + juga tidak pernah dirancang untuk memusatkan perhatian pada data. integritas. Tentu saja, menjaga kompatibilitas dengan Mac OS klasik adalah batasan yang diinginkan di Mac OS X 10.0 tetapi sebenarnya tidak lagi di Mac OS X 10.7.

Rinzwind
sumber
1
Tautan hebat; yang mencakup banyak hal penting. Kurangnya dukungan file jarang cukup gila. Linux ext2 memang jarang file bahkan dengan alokasi berbasis blok-bitmap sederhana, seperti menggunakan HFS +. Saya pikir dia membuat terlalu banyak masalah tentang menyimpan metadata di big-endian. bswapInstruksi x86 sangat cepat. Itu membuat kode lebih besar dan lebih buruk, tetapi menjaga kompatibilitas pada disk adalah masalah besar. Linux XFS masih menyimpan semua metadata big-endian (kecuali asli-endian dalam jurnal), karena asalnya di SGI pada CPU MIPS. Ini bukan situasi yang ideal, tetapi XFS tidak tertahan olehnya.
Peter Cordes
7

Meskipun saya bukan ahli Sistem Operasi, dan saya baru mulai menggunakan OSX setelah datang dari Windows, saya menganggap diri saya PowerUser di Windows, dan cukup kompeten di Linux. Berasal dari latar belakang itu, saya terkejut bahwa dalam OS yang cukup modern seperti OSX, filesystem memiliki kebiasaan seperti cara nama-nama file "mungled".

Saya mengerti bahwa masalah Linus dengan HFS + berasal dari titik yang sama: dari apa yang saya temukan meneliti masalah tersebut, HFS + menyimpan nama file menggunakan Unicode, tetapi ketika file menggunakan karakter "extended" atau NON-ASCII (seperti á, é, í, ó, ú, ñ dari Spanyol atau hal-hal seperti ü dalam bahasa Jerman), yang Unicode menyediakan 2 cara penyandian nama, OSX diam-diam "menormalkan" penyandian pada waktu penyimpanan ... Bukan masalah nyata ketika file telah dibuat dan dikonsumsi di OSX, tetapi ketika Anda berbagi informasi dengan pengguna OS lain, fakta bahwa nama file berubah, membuat untuk semua jenis perilaku aneh ...

Contoh kasus: Saya telah melacak "artefak" karya saya (file, dokumen, dll) di Subversion selama lebih dari 8 tahun terakhir. Ketika pindah ke Mac, saya mendapatkan klien SVN untuk Mac, dan setelah melakukan Checkout dari direktori saya yang relevan, saya menemukan bahwa semua file yang aksennya tampaknya hilang, dan file baru dengan nama yang sama muncul sebagai bukan versi. Menggali ke dalamnya, masalahnya adalah bahwa file DALAM sistem file dikodekan oleh apple, sedangkan data dalam repositori menggunakan yang lain (sempurna valid dan sah) pengkodean Unicode ...

Ini, saya pikir, adalah "kekacauan" data saya. Apple TIDAK memahami kedua format pengkodean nama file (mengakses bagian di Windows, atau menggunakan stik USB dari Windows menunjukkan nama file yang tepat, dll.) Tetapi pada saat pembuatan file, diputuskan "ia tahu lebih baik" dan hanya mengganti nama file. ..

Sekali lagi, bukan sesuatu yang akan dilihat sebagian besar pengguna - sampai mereka membuat salinan file, atau mengganti namanya, dan mengembalikannya ke tempat yang asli dan berakhir dengan dua file yang tampaknya sama !!!)

JJarava
sumber
1
Ini hanya satu poin, dan masalah sebenarnya adalah bahwa berbagai OS hanya menormalkan string dengan cara yang berbeda, dan aplikasi lintas platform tidak menghadapinya. Tidak menormalkan nama mungkin akan lebih buruk (Anda bisa memiliki dua file berbeda dengan nama yang dinormalisasi ke string yang sama, pada OS X).
Blaisorblade
4

John Siracusa & Dan Benjamin membahas beberapa kelemahan HFS + dalam Hypercritical # 56 .

Mereka menangani kerusakan data dalam HFS + dan mempertimbangkan beberapa fitur ZFS.

badams
sumber
9
Apakah ada cara Anda dapat memberikan ringkasan diskusi mereka dalam jawaban Anda? Aliran audio (pada titik ini dalam teknologi kami saat ini) tidak dapat dicari dan sangat panjang. Belum lagi itu di situs lain sehingga rentan terhadap tautan busuk. Ini akan menjadi jawaban yang jauh lebih baik jika berisi perincian khusus tentang diskusi mereka.
Ian C.
1
Pembicaraan filesystem dimulai 23 menit.
neoneye
1
Sebagian besar informasi yang tersedia di podcast juga dapat ditemukan di artikel Ars Technica oleh John Siracusa (salah satu dari dua pria di podcast.)
TML