Файл под микроскопом
10 августа 2017
Многие вещи, которые нас окружают, стали настолько привычными, что мы о них не задумываемся. Что может быть проще файла? Мы их открываем, закрываем, редактируем... Однако, копнув глубже, мы узнаем, что любой файл имеет свою структуру, позволяющую программам его обрабатывать.
Наберем в поисковике запрос «что такое файл»:
Файлом (от англ. File — цепочка) называется последовательный набор данных, хранящийся на каком-либо физическом носителе и имеющий собственные имя и расширение. Расширение файла предназначено для однозначной и исчерпывающей идентификации типа файлового объекта; оно записывается справа от имени файла и отделяется от него точкой.
Так было во времена операционной системы MS-DOS – файл был просто местом, размещенным в цепочке секторов дискеты или жесткого диска.
С тех пор все изменилось, но авторы учебников все так же переписывают древние определения.
В самом общем виде файл можно определить (хотя это – лишь мое скромное мнение) как некую последовательность байтов, идентифицируемую тем или иным образом.
Предложенное определение может быть применено к любой операционной системе.
Ну-ну. Возьмем, к примеру, современный офисный формат документов DOCX. Наверняка вы сталкиваетесь с ним ежедневно.
Проведите простой опыт. Создайте файл – скажем, test.docx, сохраните его и закройте. Теперь переименуйте его в test.zip (в принципе, это необязательно, но сделаем так на всякий случай, чтобы работало у всех), а затем откройте его архиватором.
Неожиданно, правда? Офисный документ – всего лишь архив. И вы можете, как вариант, взять и заменить все картинки в этом файле на собственные. Любой может это сделать.
Итак, это первый уровень анализа любого файла – разобрать его структуру и выделить компоненты (а в них – подкомпоненты и т. д. (см. выпуск «Бомбы и эволюция»).
Но и это еще не все! В Проводнике – лишь видимая часть айсберга. В зависимости от файловой системы, помимо нее может присутствовать информация, которую в обычном Проводнике не увидит никто. Интересующихся отсылаем к выпуску «"Фокусы" с файлами».
В фантастических произведениях часто встречается волшебный кошелек, в который можно поместить различные вещи, – и при этом ни размер, ни вес кошелька для его владельца не изменится. Файлы и директории в файловой системе NTFS, используемой в современных ОС Windows, и есть такие «волшебные кошельки».
Если вы думаете, что это очень сложные фокусы, то вы ошибаетесь.
Вот что, например, планировалось включить в Windows Server 2003 и Vista:
Win FS моделируется на базе файловой системы будущего SQL-сервера (Yukon), которая полностью построена на реляционной базе данных.
Новая файловая система предназначена для хранения файлов на основе критериев их содержания, то есть автора, содержания, имени, источника и последнего обратившегося пользователя. Структура папок, отображаемая в Windows Explorer, представляет собой просто виртуальную карту. Структура, конечно, помогает в навигации, но вовсе не отражает актуальную схему хранения файлов или способ их организации.
http://www.thg.ru/storage/20030618/winfs-06.html
С точки зрения пользователей, сущности снимают необходимость в использовании физического места расположения файлов. Вместо этого Windows организует данные, в зависимости от их содержания, в виртуальные папки. При поиске данных пользовательский критерий типа «Все фотографии из отпусков за последние два года» (атрибуты «тип файла», «откуда» и «за какой период времени») теперь заменяют информацию о формате файла, авторе и расположении.
Microsoft реализовала меняющуюся модель сущностей в WinFS. Разработчики могут сами определять их с помощью метаданных XML и указывать связи между ними. При этом существует возможность, скажем, вывода всех документов данного автора вместе с информацией о его адресе и связанных с ним фотографиях.
Также можно менять дизайн опций просмотра в Проводнике и команд, привязанных к определённым типам файлов. Разработчики могут оговаривать, к примеру, какие опции в контекстном меню будут появляться для определённых сущностей, и какие будут использовать значки. Поэтому файловый проводник в Seven может осуществлять полностью новый ассортимент задач. Например, во время поиска разработчик может дополнительно указать выполнение команд, привязанных к сущностям. Так, если пользователь осуществляет поиск по архиву электронной почты, то проводник может вызвать Outlook для подготовки и отсылки стандартного ответа — по щелчку мыши.
Вполне вероятно, можно ожидать связи между системой управления правами Microsoft и «безопасной компьютерной платформой следующего поколения» — Next Generation Secure Computer Base (NGSCB), которая уже присутствует в зачаточной форме в альфа-версии Seven. Возможно, в некоторый момент система будет способна классифицировать файлы по определённым критериям безопасности.
Файловая система как база данных. Вся информация, которая оказывается на компьютере, автоматически упорядочивается и выдается по необходимости. Фактически, нет отдельных файлов – есть автоматически упорядочивающаяся информация. Смело, но не получилось. Антивирусы вздохнули с облегчением.
А что будет, если скрестить бэкап и файловую систему?
ReFS (Resilient file system, предварительное название Protogon) — локальная файловая система, используемая в Windows Server 2012, Windows Server 2012 R2, бета-версиях Windows 8, Windows 8.1
Поддержка стратегии Copy-on-write (копирование при записи, выделение при записи) для метаданных, при которой любые транзакции файловой системы не перезаписывают старые метаданные, а записываются в новый блок и организуются в пачки.
Еще круче это реализовано в BeOS/Haiky:
Кроме имени файла, его размера и места располoжения, системе также известны многие другие данные.
Например, все предустанoвленные приложения здесь хранятся в каталоге /system/apps. Но для системы и Tracker это не просто файлы. Она знает, что это приложения для конкретной версии ОС, помнит версию пpограммы и имя автора. Вся эта информация записана в файловую систему и прикреплeна к файлу. С точки зрения системы список приложений в Deskbar и список файлов в Tracker абсолютно равнознaчны.
Еще одна интеpесная черта Tracker — это полное отсутствие концепции копирования и вставки. В кoнтекстном меню есть пункт «Копировать в» — если выбрать его, то появится подмeню со списком каталогов, с помощью которого можно выбpать место назначения. Как оказалось, это действительно очень быстрый и удобный способ копирования и перемещения файлов.
https://xakep.ru/2017/05/10/haiku
Рассмотрим такую распространенную задачу, как копирование аудиодиска на компьютер. Пользователи Windows не раз меня спрашивали: «Почему я скопировал(а) файлы с компакт-диска, а они не играются?» Скопированы, конечно, были только имена треков (файлы с расширением cda), и приходилось долго рассказывать про специализированный софт, предназначенный для «ограбления» музыкальных CD. Как обстоит дело в BeOS? Открываем аудиодиск, видим файлы с расширением wav и переносим их на жесткий диск. Все! Никаких других программ не нужно.
Крышесносная была ОС!
А еще есть Linux/Unix с концепцией «все есть файл». В виде файлов представлены устройства, доступные в системе, области оперативной памяти и многое другое.
Файл даже может оказаться вовсе не «цепочкой». В большинстве операционных систем файл – это действительно данные, записанные в последовательность секторов на диске или другом носителе. А ссылки на эти сектора хранятся в структуре носителя, индексирующей места расположения файлов на диске. Но это не всегда так – в некоторых файловых системах короткие файлы могут храниться непосредственно в вышеупомянутых структурах носителя, что повышает скорость их выборки.
#терминологияАнтивирусная правДА! рекомендует
Выше мы привели далеко не все «фокусы», позволяющие запрятать упорядоченную информацию, в просторечии именуемую файлом, в укромные места. Есть символические и жесткие ссылки, есть бесфайловые вирусы, сохраняющие свое тело в реестре. Много чего бывает. И антивирус терпеливо разбирает любые используемые в системе структуры – а вы этого даже не замечаете.


Нам важно ваше мнение
Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.
Комментарии пользователей
Денисенко Павел Андреевич
17:06:33 2018-08-03
Toma
17:42:20 2018-07-30
Неуёмный Обыватель
23:41:19 2018-06-28
vasvet
08:51:47 2018-04-04
сергей
18:49:37 2017-08-20
DrKV
21:13:44 2017-08-16
AxooxA
10:15:28 2017-08-11
Анатолий
09:12:37 2017-08-11
Марина
23:37:18 2017-08-10
aleks_ku
22:48:39 2017-08-10
vla_va
22:22:16 2017-08-10
В...а
21:07:07 2017-08-10
orw_mikle
20:49:03 2017-08-10
Marsn77
20:42:16 2017-08-10
Альфа
20:11:12 2017-08-10
sapfira
19:57:49 2017-08-10
eaglebuk
19:28:12 2017-08-10
Шалтай Александр Болтай
18:30:30 2017-08-10
Шалтай Александр Болтай
18:21:49 2017-08-10
marisha-san
17:51:45 2017-08-10
ek
17:43:08 2017-08-10
kva-kva
17:08:34 2017-08-10
mk.insta
16:38:31 2017-08-10
Sasha50
15:22:33 2017-08-10
Sasha50
15:20:08 2017-08-10
Littlefish
14:06:39 2017-08-10
Я абсолютно не подразумевал, что предложенными методами (осмотр структуры файлов) необходимо пользоваться каждый день и разумеется не совсем удобно, чтобы каждый раз при запуске любого файла открывалась его структура. Но знать, что файл имеет структуру и как посмотреть эту структуру - это не будет излишним.
Alexander
13:43:23 2017-08-10
Так что же это такое, имя которому Файл? Википедия "знает" многое. Но и она дает две разные формулировки, не исчерпывающие суть вопроса. С одной стороны, - "файл - именованная область данных на носителе информации". С другой стороны, - универсального определения, которое бы учитывало все особенности файлов, не сформулировано.
Конечно, ориентироваться в таком многообразии файлов, выискивать среди них разрушителей и шпионов, - задача очень не простая. Наличие Dr.Web Security Space дает уверенность, что профессионалы компании обеспечат мне спокойную работу с разными файлами.
user
13:28:14 2017-08-10
copy con text.txt - это команда записи файла.
copy text.txt > prn - это команда, чтобы распечатать файл на принтере.
Почему их оставили в системе неизвестно. Может как в поговорке - старый конь борозды не портит.
Татьяна
12:24:18 2017-08-10
@user, а почему нельзя назвать файл именем prn ?
Mefch
12:12:33 2017-08-10
Dvakota
11:16:33 2017-08-10
Natalya_2017
10:49:27 2017-08-10
a13x
09:22:51 2017-08-10
a13x
09:19:55 2017-08-10
Littlefish
08:55:19 2017-08-10
Пожалуйста не забывайте тематику "фокусов", обязательно пишите ещё, ведь сколько ещё много других интересных скрытых свойств есть в ОС. И конечно можно также рассказывать про "фокусы" не только Виндовс, но и Линукс и Андроид :-)
dyadya_Sasha
08:53:31 2017-08-10
+++
Когда теорию практикой закрепить можно.
dyadya_Sasha
08:50:00 2017-08-10
И это Правильно. Правильно, что разбирает не заметно и потому комфортно для пользователя. Правильно, что разбирает любые структуры системы, а как иначе, безопасность нынче штука не простая, легко не дается. А за Правильность бонусы - доверие и благодарность пользователей. Спасибо!
Littlefish
08:48:47 2017-08-10
SGES
08:27:16 2017-08-10
ka_s
08:16:44 2017-08-10
user
08:00:08 2017-08-10
Раш КХ
07:48:29 2017-08-10
GREII
07:47:05 2017-08-10
A1037
07:33:43 2017-08-10
Пaвeл
07:28:49 2017-08-10
marisha-san
06:45:16 2017-08-10
Любитель пляжного футбола
06:09:46 2017-08-10
cruise
05:32:45 2017-08-10
duduka
05:29:37 2017-08-10
Morpheus
05:12:46 2017-08-10