четверг, 26 августа 2010 г.

Апокрифичная история туннелинга файловой системы

Это перевод The apocryphal history of file system tunnelling. Автор: Реймонд Чен.

Одной из возможностей файловой системы, которая может вас изумить, является туннелинг - это когда дата-время создания файла и его короткие/длинные имена берутся из файла, который существовал в этой папке раньше. Другими словами, если вы удалите какой-то файл "File with long name.txt", а потом создадите новый файл с тем же именем, то новый файл будет иметь те же дату создания и короткое имя, что и уже удалённый первый файл. Вы можете прочитать эту статью KB, чтобы узнать, какие операции чувствительны к туннельному эффекту.

Почему туннелинг вообще существует?

Когда вы используете любую программу, чтобы отредактировать файл - вы ожидаете, что сохранение изменений в файле не изменит имя файла и дату его создания - потому что вы редактируете файл, а не создаёте новый. Но в реальной жизни многие программы сохраняют изменения в файле просто комбинацией сохранения, удаления и переименования (операции перечислены в статье по ссылке выше) - и без туннелинга дата-время создания файла изменялась бы при сохранении файла, хотя с точки зрения пользователя нового файла создано не было.

Другой пример важности туннельного эффекта: представьте, что есть файл с именем "File with long name.txt", чьё короткое имя, скажем, "FILEWI~1.TXT". Вы загружаете этот файл в программу, которая не поддерживает длинные имена, затем вы сохраняете файл. Программа удаляет старый файл "FILEWI~1.TXT" и создаёт новый с тем же именеи. Без туннелирования ассоциированное длинное имя файла было бы утеряно. Вместо дружелюбного длинного имени файл теперь назывался бы как-то уродливо. Не хорошо.

Но откуда пришёл термин "туннелирование"?

Из квантовой механики.

Рассмотрим такую аналогию: у вас в земле есть две ямы и частица в левой лунке (A), у которой не хватает энергии, чтобы выбраться из ямы. У неё есть энергия только чтобы добраться до пунктирной линии, но не выше.

         
  A   B  

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

В случае туннелирования на файловой системе: информация, кажется, нарушает правила классической механики. Она уничтожается (удалением или переименованием файла), но при этом как-то умудряется восстановить себя по другую сторону временного барьера.

Разработчик, который отвечал за реализацию туннелирования в Windows 95, немного перебрал с аналогиями из квантовой механики: фрагменты информации о недавно удалённых или переименованных файлах хранятся в структурах данных, называемых "кварками".

2 комментария:

  1. Огромное спасибо за переводы.
    Очень качественный и познавательный материал!

    ОтветитьУдалить
  2. В свое время нарвался: удалял файл ориентируясь на дату создания и создавал новый...

    Спасибо за переводы, очень интересно и полезно.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.

Примечание. Отправлять комментарии могут только участники этого блога.