Лінус Торвальдс та файлова система OS X


28

Ще в 2008 році Лінус Торвальдс чудово заявив в інтерв'ю, що "OS X певним чином гірша, ніж Windows для програмування. Їх файлова система є повною і сумарною, що страшно". Я шукав більш детальну інформацію про те, чому він так ставиться до файлової системи OS X (імовірно, HFS +), але мені нічого не вдалося знайти.

Лінус, безумовно, не любить базову модель файлової системи Unix, і я сумніваюся, що він ненавидить HFS + за те, що він не враховує регістр. І незважаючи на те, як провокаційно його коментар висловлюється, я сумніваюся, що це абсолютно без сумнівів. Оскільки коментар був у контексті програмування для OS X, я підозрюю, що його думка, можливо, ґрунтувалася на продуктивності, надійності, інтерфейсі операційної системи або чомусь подібному. Хтось знає, які скарги на Лінус у 2008 році могли бути з HFS + епохи 2008 року?


2
Він був відомий тим, що має по-справжньому сильні думки щодо деяких речей, наприклад, коли він говорив про git @ google, він провів значну частину розмов, перебираючи інші системи. Тож я б сказав, що він, мабуть, має підстави вірити тому, що думає, але він також дуже перебільшена людина, хоча він і геній. youtube.com/watch?v=4XpnKHJAok8
El Developer

3
Якщо ви не отримаєте тут відповіді на це запитання, на яке ви сподівалися, ви можете також розглянути можливість пошуку (а також, можливо, також запитання) або в Unix & Linux, або в Super User . (Так багато сайтів , доступних в даний час іноді важко зрозуміти , що місце , щоб поставити запитання Принаймні , имхо :) ..
ірраціональне John

Я схильний стикувати голови з HFS + більше, ніж будь-яка інша файлова система, з якою я зазвичай стикаюся. У наші дні в більшості систем я не відчуваю, що зазвичай навіть помічаю або хвилююсь, яку файлову систему вона використовує, але HFS + завжди щось придумує. Як і сьогодні, я виявив, що мене накручує відсутність роздільної здатності для другої секунди. Був також час, коли я знайшов два рядки коду С, які могли спричинити тупик у файловій системі, збивши всю машину. Це навіть не було встановлено станом на 10.5. Не впевнений у останніх версіях.
Ігуананавт

Відповіді:


21

Стенограма сесії «Q & A» , в якому Лінус зробив коментар доступний, але він , здається , не було запропоновано розробити. Я не впевнений, чи більш глибокий аналіз його думки щодо HFS + був записаний десь ще.

Щоб дізнатися про чужий аналіз цього питання, ви можете подивитися на огляди Mac OS X Джона Сіракузи. Зокрема, для Mac OS X Lion, який має розділ « Що не так з HFS +» . Я думаю, що найпомітнішим бітом є (акцент мій):

Паралельність, метадані, записані у правильному порядку байтів, точність дати другої дати, підтримка великих розмірів гучності та розріджена підтримка файлів - все загальні риси файлових систем Unix. Mac OS X, звичайно, побудований на фундаменті Unix. Коли HFS + переносився з класичної Mac OS на Mac OS X, його потрібно було розширити, щоб підтримувати деякий мінімальний набір функцій, які очікуються від файлових систем Unix .

Деякі з цих функцій легко підходили, але інші дуже важко було додати до файлової системи, не порушуючи зворотної сумісності. Один особливо страшний приклад - реалізація жорстких посилань на HFS +. Щоб відслідковувати жорсткі посилання, HFS + створює окремий файл для кожного жорсткого посилання всередині прихованого каталогу на кореневому рівні обсягу. Приховані каталоги начебто жахливі, але справжнє лякання виникає, коли ви пам’ятаєте, що Time Machine реалізований за допомогою жорстких посилань, щоб уникнути зайвого дублювання даних.

Важливим моментом тут є те, що Mac OS X використовує файлову систему, яка навіть не була розроблена для системи Unix, вона була розроблена для класичної Mac OS та була виправлена ​​для реалізації функцій Mac OS X 10.0, зберігаючи зворотну сумісність. Згодом Apple впровадила додаткові функції, які вона має зараз у Mac OS X 10.7 (журнал, метадані, події файлової системи ...), використовуючи той самий підхід для виправлення, а не підхід "дизайн з нуля". Я не знаю, як це пояснити технічно, але ви можете сказати, що всі ці додаткові функції опираються на класичну основу Mac OS, яка ніколи не була розроблена для їх підтримки. Це означає, що рішення не так добре, як могло б бути. Приклад, який Сіракуза продовжує обговорювати, - це те, що рішення, яке Apple довелося використовувати для жорстких посилань, працюючи в межах обмежень HFS +, є надто чутливим до апаратних збоїв, що посилюється тим, що HFS + також ніколи не був розроблений, щоб стосуватися даних цілісність. Звичайно, підтримка сумісності з класичною Mac OS була бажаним обмеженням у Mac OS X 10.0, але насправді це вже не в Mac OS X 10.7.


1
Чудове посилання; що охоплює багато важливих речей. Відсутність розрідженої підтримки файлів - дуже гарна. Linux ext2 робив розріджені файли навіть з простим розподілом на основі блоку-бітової карти, як, наприклад, HFS +. Я думаю, що він робить занадто велику угоду щодо зберігання метаданих у big-endian. bswapІнструкція x86 дуже швидка. Це робить код більшим і біднішим, але підтримка сумісності на диску - це велика справа. Linux XFS все ще зберігає всі метадані big-endian (за винятком native-endian у журналі), завдяки їх походженню в SGI на процесорах MIPS. Це не ідеальна ситуація, але XFS не стримується.
Пітер Кордес

7

Хоча я не фахівець з операційної системи, і я тільки почав використовувати OSX після приходу з Windows, я вважаю себе PowerUser в Windows і досить компетентний в Linux. Виходячи з цього фону, я здивувався, що в досить сучасній ОС, на зразок OSX, у файловій системі є химерності, такі як спосіб "ігнорувати імена файлів".

Я розумію, що проблеми Лінуса з HFS + походять з тієї ж точки: з того, що я виявив, досліджуючи проблему, HFS + зберігає імена файлів за допомогою Unicode, але коли для файлу використовуються символи "розширеного" або NON-ASCII (наприклад, á, é, í, ó, ú, - з іспанської мови або такі речі, як ü в німецькій мові), для яких Unicode надає 2 способи кодування імені, OSX мовчки «нормалізує» кодування під час зберігання… Не справжня проблема, коли файл був створений і використовується в OSX, але коли ви обмінюєтесь інформацією з користувачами інших ОС, той факт, що ім'я файлу змінюється, викликає всілякі дивні поведінки ...

Справа в суті: Я відслідковував свої роботи "артефакти" (файли, документи тощо) в Subversion протягом останніх 8 років. Під час переходу на Mac я отримав клієнт SVN для Mac, і, зробивши Checkout моїх відповідних каталогів, я виявив, що всі файли, що мають наголоси, здаються відсутніми, і новий файл з такою ж назвою з'являється як неверсійний. Уникаючи в ньому, проблеми полягають у тому, що файл IN-файлової системи кодується яблуком, тоді як дані в сховищі використовують інше (цілком дійсне і законне) кодування Unicode ...

Я думаю, це грубе "маніпулювання" моїми даними. Apple НЕ розуміє обох форматів кодування імені файлів (доступ до спільного доступу до Windows або використання USB-накопичувача у Windows показує правильні назви файлів тощо), але під час створення файлу було вирішено "він знає краще" та просто перейменував файли. ..

Знову ж таки, не те, що більшість користувачів помітять - доки вони не зроблять копію файлу або перейменують його, і повернуть його туди, де був оригінал, і в кінцевому підсумку з двома файлами, які, мабуть, однакові !!!)


1
Це лише один момент, і справжнє питання полягає в тому, що різні ОС просто нормалізують рядки різними способами, а крос-платформні додатки цим не займаються. Не нормалізація імен, ймовірно, буде гіршою (у вас може бути два різних файли з іменами, які нормалізуються в один рядок, на OS X).
Blaisorblade

4

Джон Сіракуза та Ден Бенджамін обговорюють деякі недоліки HFS + у Hypercritical # 56 .

Вони стосуються корупції даних у HFS + та розглядають деякі особливості ZFS.


9
Чи є якийсь спосіб ви надати короткий виклад їх обговорення у своїй відповіді? Потік звуку (на даний момент у нашій сучасній технології) не піддається пошуку та дуже тривалий. Не кажучи вже про те, що він знаходиться на іншому сайті, тому його чутливим є посилання на гниль. Це було б набагато кращою відповіддю, якби вона містила конкретні деталі щодо їх обговорення.
Ян Ч.

1
Розмова файлової системи починається через 23 хвилини.
neoneye

1
Більшість інформації, доступної у подкасті, можна знайти також у статті Ars Technica Джона Сіракузи (одного з двох чоловіків у подкасті.)
TML
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.