16 Поиск файла в NTFS.
В отличие от FAT, здесь чем больше список
файлов, тем больше скорость поиска. Предположим на нужно найти на диске С в директиве Т файл аbсd. Логика поиска заключается в следующем: у нас
существует загрузочный кластер, где содержится информация о томе. В частности
там есть информация о том, где начинается главная файловая таблица. Если есть
такая информация, то в соответствии со структурой главной файловой таблицы у
нас есть метафайл, у него есть имя _____, и номер записи, в которой он
находится вот такой _____. Следовательно, ОС когда она
приступает к поиску файла, она после того, как просмотрела информацию из
загрузочного кластера обращается в
главную файловую таблицу и знает где там расположена пятая запись. Обращается к
этой пятой записи. Там нас интересует имя - $. И поскольку эта запись содержит
информацию о каталоге, то там есть соответствующий атрибут IR. Для определенности мы предполагаем, что все каталоги
и все файлы в памяти. В этом атрибуте есть пара записей, которая содержит имя и
номер записи главной файловой таблицы. В данном случае нас интересует имя
нашего каталога и номер записи, в которой содержится информация об этом
каталоге: Т-101. Здесь еще и другие атрибуты. Итак, ОС попала в пятую запись,
посмотрев список файлов в атрибуте, определяет, что информация о данном
каталоге находится в 101 записи главной файловой таблицы. Адрес известен и ОС отправляется в 101 запись и там существует атрибут с именем T. И поскольку это информация о каталоге, то
присутствует атрибут IR, который содержит информацию о
файлах входящих в этот каталог. А каждый элемент этой информации это пара - имя
файла и номер записи. Т.е. здесь у нас есть такая пара abcd и номер записи 143. ОС отправляется в 143 запись, там
также есть атрибут (в данном случае он содержит имя abcd). Мы предположили, что файл у нас маленький, и вся
информация файла находится в атрибуте data. ОС
считывает всю эту информацию.