Введение

Время MAC — это элементы метаданных файловой системы, которые фиксируют время последнего возникновения определенных событий, связанных с компьютерным файлом. Эти события обычно описываются как "изменение" (данные в файле были изменены), "доступ" (какая-либо часть файла была прочитана) и "изменение метаданных" (были изменены разрешения или владелец файла), хотя эта аббревиатура происходит от структур "mtime", "atime" и "ctime", поддерживаемых файловыми системами Unix. Файловые системы Windows не обновляют "ctime" при изменении метаданных файла, а используют это поле для записи времени первоначального создания файла, известного как "время создания" или "время рождения". Некоторые другие системы также фиксируют время рождения файлов, но единого стандарта для этих метаданных нет; например, ZFS хранит время рождения в поле под названием "crtime". Время MAC широко используется в компьютерной криминалистике. Название "Mactime" впервые предложил Дэн Фармер, автор инструмента с таким же названием.

Время модификации (мвремя)

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

Время доступа (в то время)

Время доступа к файлу указывает, когда файл был открыт для чтения в последний раз. Время доступа обычно обновляется, даже если просматривается лишь небольшая часть большого файла. Работающая программа может удерживать файл "открытым" в течение некоторого времени, поэтому момент открытия файла может отличаться от момента последнего чтения данных из него. Поскольку некоторые компьютерные конфигурации значительно быстрее читают данные, чем записывают, обновление времени доступа после каждой операции чтения может быть весьма затратным. Некоторые системы снижают эту стоимость, сохраняя время доступа с меньшей точностью, чем другие типы времени; например, округляя время доступа до ближайшего часа или дня, файл, который многократно читается за короткий промежуток времени, будет обновляться лишь один раз. В Windows эта проблема решается путем ожидания до часа перед записью обновленных дат доступа на диск. Некоторые системы также предоставляют возможность полностью отключить обновление времени доступа. В Windows, начиная с Vista, обновление времени доступа к файлам отключено по умолчанию.

Проблемы с метаданными

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