udf

UDF – расплата за бездумность

крис касперски ака мыщъх

udf_image_0.jpg

Как-то раз, когда записывающие приводы только-только входили в моду, робко осваивая необъятные просторы российского рынка, в одной компьютерной фирме раздался звонок Очень Взбешенного Покупателя: «Мужики! Что за дела?! Какого хрена вы мне подсунули неработающий рекордер!» Продавец: «А какую программу вы используйте для записи?» Покупатель: «Нортон, естественно, и нечего держать меня за дурака!».

Сейчас этот анекдот уже не вызывает улыбки. Современные оптические носители поумнели настолько, что позволяют записывать себя хоть из Проводника Windows, хоть из FAR'а, хоть из того же Нортона, пускай это удобство и обходится дорогой ценой – снижением надежности, уменьшением емкости, тормозами операционной системы и прочими глюками, выскакивающим из под мышиного коврика в самый неожиданный момент.

Ох и непросто же начинающему юзеру со всей этой кухней разобраться! Информация, почерпнутая с форумов, достаточно противоречива, а технические спецификации слишком сложны. Как быть? Что делать? Ну конечно же почитать свой любимый «Хакер»!

Механизм «прозрачной» записи на CD/DVD, прочно ассоциирующийся у большинства с торговой маркой DirectCD, базируется на двух взаимодополняющих технологиях: пакетной записи (packetwriting) и динамичной файловой системе, роль которой, как правило, играет UDF (UniversalDiskFormat – Универсальный Дисковый Формат). Эти два понятия очень часто путают, хотя они стоят на разных ступенях иерархии.

Пакетная запись – это режим прожига, аппаратно поддерживаемый приводом. Помимо него существуют и другие режимы: SAO (SessionAtOnce – сессия за раз), DAO (DiskAtOnce – диск за раз) и TAO (TrackAtOnce – трек за раз). Не в даваясь в технические подробности отметим, что режим определяет размер порции данных, записываемых рекордером за один раз (т. е. без остановки лазера).

Самый «расточительный» из всех DAO – выжигает весь образ диска целиком от первого до последнего сектора и не допускает «дозаписи». Более экономичный SAO позволяет дописывать диск многократно, по одной сессии за раз, но каждая сессия занимает по меньшей мере 15 Мбайт дискового пространства, что ощутимо бьет по карману. Потрековый TAO, «съедающий» всего лишь 300 Кбайт служебных данных на каждый трек, к сожалению применим лишь к аудиодискам, т. к. ни одной существующей файловой системой он не поддерживается (энтузиасты, ау!). К тому же, все три режима не позволяют стирать ранее записанные данные, поскольку они проектировались исключительно для однократно записываемых болванок типа CD-R. В лучшем случае обеспечивается лишь имитация стирания, осуществляемая путем удаления ссылок из каталога, но сами данные физически остаются не тронутыми, да и свободного места не прибавляется.

Всех этих недостатков лишен пакетный режим, сокращающий «аппетит» бюрократического аппарата до 14 Кб на пакет, при этом сама запись ведется блоками постоянного или переменного размера от 2 Кб до 2 Мб (предельно допустимый размер пакетов определяется конструктивными особенностями привода и варьируется от одной модели к другой, но должен составлять по меньшей мере 64 Кбайта, иначе это будет неправильный привод, идущий в разрез со стандартом). Пакетики последовательно заполняют диск, двигаясь от его внешней кромки к центру. Нельзя записать пакет в середину диска, оставив за собой хотя бы один не прожженный сектор (см. рис. ниже), но ранее записанные пакеты могут перезаписываться многократно, за счет чего собственно говоря, возможность удаления файлов и обеспечивается.

Рисунок 1 оптические диски это не устройства произвольной записи! спиральная дорожка должна быть непрерывна на всем своем протяжении и не может скакать по поверхности блохой! природа оптических дисков такова, что информация как бы размазывается вдоль спиральной дорожки, перемащивая биты различных секторов, что обеспечивает лучшую восстанавливающую способность в борьбе с радиальными царапинами и локальными дефектами, поэтому записать один единственный сектор за раз невозможно в принципе!

Одного лишь механизма пакетной записи для осуществления задуманного явно недостаточно и к нему еще требуется подобрать адекватную файловую систему. Стандартные файловые системы ISO-9660 и Джульета, разработанные специально для CD-ROM и ничего не знающие о фрагментации, при размещении файла на диске ожидают увидеть непрерывный блок свободного дискового пространства, который обнаруживается далеко не всегда.

Файловая система UDF – детище OpticalStorageTechnologyAssociation –проектировалась с оглядкой на DVD и была далека от мыслей о мировом господстве. Однако, разработка оказалась настолько удачной, что ее без труда удалось присобачить к CD-RW носителям, с учетом всех их особенностей строения. UDF оперирует не с физической, а с логической разметкой диска и поэтому ей совершенно все равно на каком носителе располагаться.

Таким образом, диск, записанный в UDF-формате, не обязательно должен быть записан в пакетном режиме, равно как и наоборот – не всякий пакетный режим пользуется услугами файловой системы UDF. Возможность выборочной записи/удаления отдельных файлов на аппаратном уровне обеспечивается режимом пакетной записи, а на программном – специальной драйверной оснасткой. UDF лишь сокращает издержки накладных расходов до разумного минимума, но не более того!

Существует несколько спецификацией UDF, самыми устойчивыми из которых являются три следующих релиза:

  1. 1.02 описывает размещение данных (в том числе и видео) на DVD-ROM, поддерживает фрагментацию и ряд других полезных фич;
  2. 1.50 включает менеджер управления дефектами, препятствующий размещению данных на некачественных участках носителя, добавлена работа с CD-RW/CD-R;
  3. 2.00 поддерживает потоковые файлы, списки управления доступом, калибровку лазера и прочие второстепенные фичи;
  4. 2.01 поддерживает реал-тайм файлы, гарантирующие сохранение заданной скорости считывания на всем протяжении диска;

Windows 98 поддерживает UDF 1.02, Windows 2000 – 1.01, а Windows XP – 1.02, 1.50 и 2.01. Для работы с остальными требуется установка соответствующего драйвера, точнее даже драйверов, ибо последующие спецификации не включают в себя предыдущие. Что же касается LINUIX-подобных операционных систем, здесь поддержка UDF представляет собой одну большую проблему, зачастую требующую не только установки специального драйвера, но и обновления ядра!

Для полноценной работы с дисками, размеченными в формате UDF, нам необходимо иметь:

  1. рекордер, поддерживающий режим пакетной записи, причем поддерживающий его не абы как (ради галочки в прайсе), а спроектированный и реализованный с учетом всей жесткости требований пакетного режима. обычно тестовые лаборатории различных журналов приводят более или менее полную информацию о характере наиболее ходовых приводов, так что выбрать приличную модель не составит никакого труда;
  2. UDF-драйвер, переводящий язык служебных структур UDF на язык операционной системы и обычно называемый UDF-reader'ом;
  3. UDF-монитор, перехватывающий все обращения с CD и обеспечивающий прозрачную запись и форматирование диска. монитор обычно представляет собой целую иерархию драйверов, в которой можно выделить по меньшей мере два уровня – драйвера абстракции от конструктивных особенностей конкретного оборудования и драйвера, относящиеся непосредственно к самой оси. добавьте сюда еще программу-индикатор, отображающую состояние привода в трее и вы получите настоящую «кровавую мэри», от которую даже видавшую виды Windows блевать тянет;
  4. если вы не планируете «прожигать» диски из FAR'а, но хотите использовать режим пакетной записи для минимализации накладных расходов прожигателя, без UDF-монитора можно и обойтись, заменив его автономной программой записи, например, AheadNero.

Первый сексуальный опыт полового гиганта лучше всего начать с приобретения коробочного (retail) привода, в комплект поставки которого входит все необходимое программное обеспечение, автоматически устанавливаемое инсталлятором. В противном случае проблемы совместимости вам гарантированы. Только проследите, чтобы программа пакетной записи (а точнее – ее системный драйвер) поддерживал последнюю ревизию UDF'а. Большинство вполне современных рекордеров, выпускаемых солидными фирмами, комплектуется каким-то отстоем, поддерживающим только UDF v1.5, но не выше (эта информация содержится в спецификации на программное обеспечение выбранного вами привода, которое можно свободно найти в Интернете).

Конечно, старую версию можно всегда обновить (например, через тот же Интернет), но тут все не так просто. Во-первых, далеко не всегда такое обновление бывает бесплатным, а, во-вторых, вероятность встречи с глюками при этом становится чрезвычайно велика. Задумайтесь – если бы процедура обновления действительно была бы такой простой, то почему сами производители не сделали это? Ответ – они не хотят менять апробированное и протестированное программное обеспечение на невесть на что.

Естественно, гнаться за последними версиями драйверов совершенно необязательно, т. к. диски, размеченные в формате UDFv.2.x в подавляющем большинстве случаев читаются и драйверами от UDF v.1.5, пускай и с ограниченными возможностями (так, списков управления доступом вы не получите, а при архивировании каталога Documents And Setting в многопользовательских системах без этого никуда).

Какие программы пакетной записи существуют? Хитрый вопрос и толковать его можно двояко. Программ пакетной записи, включающих в себя драйверную оснастку (UDF-reader и UDF-монитор) не так уж и много, т. к. их разработка требует высокой инженерной культуры и доступна далеко не всем. Большинство производителей записывающего софта, предпочитают не заморачиваться с драйверами. Вместо этого они рисуют красивый пользовательский интерфейс, а пишущий движок лицензируют у высокотехнологичных корпораций.

Пальма первенства несомненно принадлежит пакету DirectCD, выношенному в недрах компании Adaptec, основным лицензиатом которого является Roxio с ее EasyCDCreator'ом, и потому часто называемого RoxioDirectCD, что неверно. Краткая характеристика программы: глючная, в высшей степени самостийная и неуживчивая, конфликтующая как с оборудованием, так и с программной средой, вероломно нарушающая стандартные спецификации на UDF и вносящая в них собственные расширения, затрудняющие чтение записанных дисков на других системах (особенно, linux). Активно использует нестандартные конструктивные особенности оборудования, поэтому весьма привередлива к версии и прошивке последнего. Бракует многие приводы как несовместимые. В общем, мрак полный, но зато какая яркая реклама! Если вы все еще хотите использовать это говно, то оно лежит тут: http://www.adaptec.com/. UDF-reader распространяется бесплатно, за все остальное приходится платить.

PacketCD от CeQuadrat отличается менее амбициозным поведением и меньшим охватом растопыренных пальцев, к тому же он поддерживает прозрачное сжатие данных, несколько увеличивающее эффективную емкость диска, однако, приводящее к проблемам совместимости и потому никем реально неиспользуемое. В последнее время наблюдается ярко выраженная тенденция бегства производителей железа с корабля на бал – нынешнее рекордеры все чаще комплектуются DirectCD, захватывающим территории некогда принадлежащие PacketCD'у. Печально. Если хотите прибрести этот пакет отдельно, то сходите на http://www.cequadrat.com/ (правда, у меня этот сайт почему-то упорно не отрывается, так что не обессудьте, если что не так).

InCD от Ahead – функциональность на уровне слабого подобия левой руки, зато корректно уживается с Нероном, сжигающим Рим. Работу с CD-R дисками не поддерживает в принципе. Некоторые считают это крупным недостатком, некоторые – нет. Лично меня невозможность записи CD-R дисков в пакетном режиме сильно коробит, что опускает InCD моих глазах ниже плинтуса.

FloppyCD от GutenbergSystems – единственная программа, поддерживающая пакетную запись в формате ISO-9660 и Джульеты, т. е. созданный ей диски читаются всеми операционными системами без каких либо дополнительных драйверов, правда, за это приходится расплачиваться отсутствием фрагментации и как следствие – неэффективным использованием дискового пространства при беспорядочном копировании/удалении большого количества файлов разного размера.

Windows XP поддерживает UDF изначально и никаких поползновений для пакетной записи не требует. Устанавливать дополнительное программное обеспечение не нужно, т. к. все оно глючное и неправильное. Хотя… вкусы бывают разные.

Нашумевшая технология MountRainer, вызывающая ожесточенные споры по поводу свой половой принадлежности, в действительности является не более чем маркетинговой уткой, реально не сулящей ничего принципиально нового. Но все по порядку. Чтотакое Mount Rainier? Это организация, названная в честь живописного национального парка (www.nps.gov/mora) и курирующая вопросы взаимодействия операционных систем с оптическими накопителями, в которую входят практически все сливки общества: Philips, Microsoft Compaq Computer, Sony и т. д.

MountRainerWriter (сокращенно MRW), возносимый некоторыми оголтелыми журналистами, чуть ли не до промышленного стандарта пакетной записи, в действительности представляет собой… обычную пакетную запись плюс UDF 2.0.1. От программного обеспечения требуется умение форматировать диск в фоновом режиме и корректно обрабатывать прерывание последнего по нажатию EJECT (после вставки диска форматирование будет продолжено).

Восторженный визг по поводу того, «…что технология Mount Rainer обеспечивает увеличение емкости и количества возможных циклов перезаписи дисков CD-RW, совместимость записанных носителей со всеми современными приводами и операционными системами, оптимизированную скорость передачи данных с дополнительной коррекцией ошибок приводами» не совсем соответствует действительности. Увеличение циклов перезаписи за счет внедрения в файловую систему дефективного менеджера появилась еще в UDFv.1.5, которой нынче трудно кого либо удивить. Совместимости с всеми операционными системами у MountRainer-дисков нет и без соответствующего драйвера они не читаются. Конечно, это неправильные операционные системы, не поддерживающие MRW, а «правильность» – это прерогатива XP, ради продвижения которой вся эта шумиха собственного говоря и затевалась. Только непонятно почему ее родимую называют во множественном числе!

Короче говоря, никакой необходимости в наличии логотипа MountRainerComputable на коробке покупаемого привода нет! Живите спокойно! Туже самую функциональность можно обеспечить и за меньшие деньги!

При установке чистого CD-RW диска в привод, UDF-монитор автоматически предлагает его отформатировать. CD-R диски чаще всего игнорируются как непотребные (порочные) и форматировать их приходится вручную, что в зависимости от специфики драйверной оснастки осуществляется либо через стандартное контекстное меню проводника Windows (свойства диска  форматирование), либо через интерфейс самой программы записи.

В зависимости от скорости и конструктивных особенностей привода форматирование может занять до двадцати минут, до одного часа (в режиме MountRainer форматирование осуществляется в фоновом режиме и возможность записи файлов доступна уже через несколько секунд после его начала). Эффективная емкость отформатированного диска составляет порядка 550 Мбайт, остальные мегабайты заняты служебными данными, так что если вы не обнажите их на своем диске не пугайтесь – все идет по плану.

Теперь, используя мышь или FAR, попробуйте перетащить на CD-R/CD-RW диск несколько файлов и они послушно скопируются, а свободный объем скачкообразно уменьшится на величину существенно превышающую суммарный размер записываемых файлов. Что ж, пакетная технология берет свою мзду!

Так же будьте готовы к тому, что при попытке просмотра диска в системе без UDF-драйверов (обычная свежеустановленная Windows 9x/Windows 2000) диск либо откажется читаться совсем, либо (что более вероятно) обнаружит в своей директории один-единсвенный исполняемый файл, который вы туда не заливали. Успокоитесь! Это отнюдь не вирус, сожравший все ваши файлы. Это – UDF-reader или по-русски говоря читалка. Естественно под вынь, и естественно требующая после установки перезагрузки (а под Windows 2000 еще и прав администратора) и не так-то просто удаляющаяся из системы. Подумайте – а захочет ли владелец того компьютера устанавливать на него всякую срань? Возьмет и пошлет вас с этим диском куда подальше!

Правда, при закрытии сессии на родной машине, UDF-монитор обычно формирует файловую систему ISO 9660 – стандартную для всех осей и читающуюся безо всяких драйверов, но дальнейшая запись файлов на этот диск уже становиться невозможной вплоть до его очистки.

Рисунок 2 под капотом у пакетов: user-data – пользовательская информация, все остальное служебные данные (области вбега/выбега, предзазора/посзазора и т.д.). как видно, служебные данные сжирают ощутимый процент дискового пространства и в ряде случаев эта дань оказывается непомерно велика (попробуйте записать в режиме пакетной записи полноценный видеофильм!)

Чтобы там ни говорили производители, раскручивающие нас на бабки, пакетная технология намного менее надежна, чем классическая запись всей сессии целиком. Многократные зажигания/гашения лазера образуют прерывистую цепочку, концы которой плохо склеиваются друг с другом и потому оптической головки стоит больших усилий не сбиться с дорожки и удержать битовую струю на плаву. В момент зажигания лазера его характеристики довольно сильно «пляшут», что ухудшает качество прожига. И, если в обычном режиме, у привода есть время стабилизироваться (т. к. прожиг начинается с записи вводной области, многократно дублирующей служебную информацию, первые несколько секторов которой по указанной причине практически всегда оказываются дефективными), то при пакетной записи лазеру приходится сразу же прыгать с места в карьер.

К тому же, сектора, хранящее файловую систему, работают в необычайно интенсивном режиме, перезаписываясь при каждой операции копирования/удаления. Как с этим ни борются, служебные структуры данных дохнут раньше всего, иногда даже после ~100 циклов перезаписи. Диск перестает читаться безо всякой надежны на его восстановление (разумеется, мы говорим о непрофессионалах).

Не забывайте и о механических повреждениях – UDF-диски к ним относятся весьма щепетильно и одна единственная царапина может угробить все ваши файлы. Рекламируемый механизм управления дефектами здесь не срабатывает, т. к. он не устраняет ошибки, а лишь препятствует использованию сбойных секторов!

Поэтому, никогда не при каких обстоятельствах не записывайте в пакетном режиме действительно ценные файлы, которые жалко потерять! А если и записываете, то в обязательном порядке продублируйте их на нескольких дисках. Перенос файлов между компьютерами – дело другое и UDF тут практически незаменим.

Кстати, о надежности. Производители оптических накопителей склонны преувеличивать срок их службы, зачастую давая пожизненную гарантию, которой навряд ли кому-то удастся воспользоваться, поскольку при попытке возврата дефектного диска на завод-изготовитель, все компании отвечают неизменным отказом, ссылаясь на нарушение условий хранения диска (у вас помещение кондиционируется? влажность, температура с какой точностью выдерживаются? так какого же хрена вам от нас надо?!). Реально (по собственному опыту и опыту своих друзей) могу сказать, что даже Verbatim спустя полтора-два года обнаруживает резкое ухудшение качества чтения за счет деградации активного слоя, поэтому хранить на CD-R/CR-RW дисках своих архивы могут только самоубийцы. Используйте стример, магнитооптику или умирающий, но все же неизменно надежный IomegaZIP 100MB.

Рисунок 3 структура файловой системы UDF, ключевым элементном которой является VAT (VirtualAllocationTable – виртуальная таблица размещений), свободно мигрирующая по всему диску и потому предотвращающая многократную перезапись одних и тех же участков

Для надежной работы в пакетном режиме и пишущий, и читающий приводы должны как минимум поддерживать режим Multi Read, о чем свидетельствует одноименной логотип на его лицевой панели. Разумеется, не всякому логотипу можно верить. Тщательное расследование, проведенное OSTA, показало, что качественных приводов на рынке единицы:

Рисунок 4 поддержка режима Multi Read различными производителями. Желтый кружочек обозначает полное соответствие продукции спецификациям, а голубой треугольник – юридические гарантии такого соответствия (читай: хрен тебе, а не гарантии)

…и все-таки, несмотря на все свои многочисленные недостатки, технология пакетной записи и файловая система UDF вызывает очарование. Это действительно прогрессивные технологии, активно проникающие своими щупальцами в будущее и подрывающие старые устои изнутри. Дайте ей время и эта технология разовьет такую мощь, что турбинам реактивных самолетов останется лишь завистливо крякнуть, смущенно пукнув от натуги.

Правда, на самолете с логотипом UDF (это компания по выпуску турбин такая) я бы ни за что не полетел, оставляя это место тем, кому UDF действительно необходима. Ну а мы – мыщъх'и лучше пешком постоим, да SAO/DAO поюзаем. Пешком оно поспокойнее путешествовать будет!

udf_image_6.jpg