Файловые системы Mac OS X. NTFS – это целая история.

Продолжаю начатое – краткое обозревание поддерживаемых Mac OS X файловых систем. Небольшое уточнение – поддерживаемых “из коробки” (то есть изначально, без установки каких-либо дополнительных драйверов плагинов и заплаток) файловых систем.

NTFS (Windows NT Filesystem или Windows New Technology File System — «файловая система новой технологии»  для Windows) – стандартная файловая система для операционных систем Windows корпорации Microsoft начиная с Windows NT (~1993 год). До Windows NT стандартной файловой системой Windows была MS-DOS FAT разных типов; Windows 95, 98 и 98 Millennium по-прежнему использовали FAT. А широким массам NTFS стала доступной с выходом Windows 2000.

Разработка корпорации Майкрософт – файловая система NTFS – это, несомненно, большой прорыв в плане характеристик отказоустойчивости, скорости и надёжности среди файловых систем. По крайней мере того времени. Однако не стоит приписывать разработку NTFS сугубо лишь одной M$. Как известно, в своё время Microsoft и IBM плотно сотрудничали, в частности над созданием общей операционной системы высокого класса – OS/2 (читается как “ОС на два” или “ОС пополам”). Именно разработка OS/2, а точнее разработка файловой системы HPFS (High Performance File System) для этой ОС, заложила фундамент будущей NTFS. Потом Майкрософт успешно закрыла разработки “кинув” IBM, допилила HPFS и выпустила своё детище – Windows NT. Но это уже другая история. Вернёмся к NTFS.

Файловая система NTFS выглядит и по сей день достаточно выгодно, хоть и не так, как 20 с лишним лет тому. О её внедрении в качестве основной ФС подумывала даже Apple, но в итоге отказалась от данной затеи и выпустила свою собственную файловую систему HFS+ с очень схожими характеристиками. Почему же NTFS была такой желанной и одновременно недоступной? – Желанной она была потому, что уже в то время NTFS поддерживала такие “плюшки” как журналируемость, разграничение прав доступа, аудит и квотирование, сжатие и шифрование данных. Прибавить к этому высокую производительность, поддержку разделов до 2 ТБ (на MBR) или до 9 ЗБ (на GPT), поддержку файлов до 16 ТБ… Разве такие показателя не являются желанными? Но… Файловая система NTFS и по сей день является недоступной ввиду своей закрытости. Майкрософт просто-напросто не раскрывает всех нюансов и секретов работы NTFS, посему любая сторонняя разработка для поддержки чтения/записи NTFS вне Windows является продуктом дизассемблирования (реверс-инженирингом). Естественно, воссоздать, не имея исходных кодов и спецификаций, абсолютно повторяющий работу оригинального, драйвер NTFS невозможно! Как же тогда с драйверами NTFS-3g, TUXERA NTFS, Paragon NTFS? – Всё так же ребята, всё так же 😉 Поэтому рядом с любым пособием по активации режима “чтение/запись” на NTFS я пишу следующее предупреждение:

Не используйте файловую систему NTFS для хранения важных файлов при работе в Mac OS X! Не полагайтесь на сторонние решения, такие как Tuxera NTFS, Paragon NTFS или NTFS-3G. Используйте функцию записи на NTFS только для обмена файлами, потеря которых не критична, или если имеется их резервная копия.

Вот мы и подошли к вопросу NTFS в Mac OS X. Начиная с версии Mac OS X Panther (обновление 10.3.9), поддержка файловой системы NTFS имеется в “яблочной” операционной системе изначально, но только на чтение. В версии Mac OS X Snow Leopard (10.6) появилась новая версия NTFS драйвера которая работала с NTFS так же только на чтение, но… Не знаю кем именно впервые была найдена эта недокументированная лазейка, позволившая активировать работу стандартного NTFS драйвера не только на чтение, но и на запись, но впервые упоминание о ней я нашёл на форуме MacRumors. В операционках начиная с OS X Lion (10.7) NTFS драйвер снова обновили вырезав из него поддержку записи “при корню”, но это не помешало мне на основе предыдущего выпустить системных хак для хактивации записи NTFS и в OS X Lion, и в OS X Mountain Lion. Что же это были такие за “качели” с NTFS в Mac OS X? – То, по-видимому, хотели добавить нативную запись NTFS, то потом снова вырезали… Копаясь в исходниках NTFS драйвера для Mac OS X в заголовках каждого файла я заметил интересненький такой копирайт:

В недрах исходников NTFS драйвера для Mac OS X

На скриншоте плохо видно, но я хочу обратить внимание на вот эти строки: * Copyright (c) 2006-2008 Anton Altaparmakov. All Rights Reserved.
* Portions Copyright (c) 2006-2008 Apple Inc. All Rights Reserved.
Да, да, я клоню вот сюда: Anton Altaparmakov. Простите меня, дорогие читатели, но с этого момента в статье образовывается ещё один виток событий 🙂

Далёкий 1995 год. Два года как файловая система NTFS доступна пользователям Windows NT. Хакер по прозвищу Мартин фон Льюис (Martin von Loewis) – основатель проекта Linux-NTFS Project и человек объединивший в нём целую армию именитых кодокопателей, спустя два долгих года напряжённых реверс-инжениринговых работ группы над расшифровкой базовых структур данных NTFS, публикует первую стабильную версию NTFS драйвера для Linux. Овации сопутствовали группе аж до конца 90-х, когда та внезапно распалась. Причиной распада послужила незначительная ошибка в драйвере, вылившаяся в значительные проблемы. Причина была очень простой: в NTFS драйвере для Linux не было проверки версий NTFS так как в то время других версий NTFS, кроме уже имеющейся, просто не существовало! К выходу Windows 2000 Майкрософт подготовила пакостный сюрприз в виде новой версии NTFS: в базовые структуры данных было добавлено пару новых полей, смещения всех остальных, соответственно, изменились. Драйвер NTFS для Linux, естественно, об этом ничего не знал, и при первой же попытке записи делал из файловой системы ололо. Это не очень положительно сказалось на репутации Linux-NTFS Project и они вскорости распались. Но наработки никуда не делись, и в 2002 году новый состав разработчиков, в который входили такие личности, как Якоб Кеми (Jakob Kemi) и Ричард Рассон (Richard Russon) – создатели загружаемого модуля ядра; Павел Кот (Pawel Kot) – человек, который портировал новый драйвер в ядро; и Антон Альтапармаков (Anton Altaparmakov) – лидер новой группы, создатель драйвера и служебных NTFS-утилит; выпускают новую, практически полностью переписанную с нуля, версию NTFS драйвера для Linux.

2005 год. Apple делает решительный шаг по переходу с PowerPC-архитектуры и, соответственно, процессоров PowerPC, на архитектуру x86 и процессоры Intel. Это открывает “двери” к невиданной ранее возможности – запуска на одной Mac-машине и конкурирующей Windows, и родной Mac OS X. Целая армия новых пользователей, реально заинтересованных в работе с NTFS, породила спрос, и Антон Альтапармаков (Anton Altaparmakov) перенес открытый NTFS-драйвер с Linux на Mac OS X. Таким образом появился ещё один проект под названием NTFS-3G project, и продукт NTFS-3G, который в настоящее время поддерживает операционные системы Mac OS X, BeOS, FreeBSD, NetBSD и Haiku. Сейчас Антон Альтапармаков является частью команды разработчиков компании TUXERA – лидера в разработке, поддержке и внедрению файловых систем NTFS и ExFAT в различное оборудование.

Вернёмся к Mac OS X 10.6, в которой, если вы помните, драйвер NTFS недокументированно научился записывать на NTFS. Заслуги сегодняшнего коммерческого драйвера TUXERA NTFS перед своим бесплатным собратом – NTFS-3G – это приличная скорость дисковых операций чтение/запись (NTFS-3G записывает на NTFS как черепаха). Судя по скорости чтения/записи стандартного NTFS драйвера в Mac OS X, которая при моих личных тестах ограничивалась лишь пропускной способностью USB 2.0, я могу предположить, что в Mac OS X используются (или по крайней мере использовались) наработки TUXERA. Почему с выходом OS X Lion разработки в направлении усовершенствования работы нативного NTFS драйвера прекратились? – Можно только гадать. Ясно только одно – если бы они продолжились, мы получили бы очень приятный встроенный функционал 🙂 Но сказка закончилась печально, хотя так хорошо начиналась…

Читайте так же:

В статье использованы материалы Википедии и журнала Хакер № 08/07 (104).

Share this article
0
Share
Prev Post

Обзор игры World Of Blocks для iOS.

Next Post

Методы автозагрузки приложений в Mac OS X. «Классический» или «простой» способ.

Comments 2
  1. Начиная с версии Mac OS X Leopard (10.5), поддержка файловой системы NTFS имеется в «яблочной» операционной системе изначально, но только на чтение.

    ORLY? O_o
    Как же у меня это работало в 10.3 и 10.4?
    Вероятно, у меня был какой-то особый Джобс, special for Russia.

    1. Моя ошибка, благодарю, поправим. В своё время Tiger обошёл меня немного стороной (в то время я только начал “хакинтошничать”), поэтому не вдавался в подобные детали, а стоило бы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read next