Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_Лекции_гот.DOC
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
5.99 Mб
Скачать

Лекция 7. Иерархическая структура жесткого диска

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

Существует большое количество файловых систем, созданных для разных уст­ройств внешней памяти и разных операционных систем. В них используются, соответственно, разные принципы размещения данных на носителе. Это системы fat, fat32 и ntfs. Знание основных принципов их построения необходимо не только специалисту в области вычислительной техники, но и обыч­ному пользователю. Особенно актуальными становятся знания возможностей файловой системы ntfs, которая сегодня получает все большее распростране­ние.

Функции файловой системы и иерархия данных

Напомним, что под файлом обычно понимают именованный набор данных, орга­низованных в виде совокупности записей одинаковой структуры. Для управления этими данными создаются соответствующие файловые системы. Файловая систе­ма предоставляет возможность иметь дело с логическим уровнем структуры дан­ных и операций, выполняемых над данными в процессе их обработки. Именно файловая система определяет способ организации данных на диске или на каком-нибудь ином носителе. Специальное системное программное обеспечение, реали­зующее работу с файлами по принятым спецификациям файловой системы, часто называют системой управления файлами. Именно системы управления файлами отвечают за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управление ресурсами, которые используются файлами. Назначение системы управления файлами — предоставление более удобного доступа к данным, орга­низованным как файлы, то есть вместо низкоуровневого доступа к данным с ука­занием конкретных физических адресов нужной нам записи используется логи­ческий доступ с указанием имени файла и записи в нем.

Благодаря системам управления файлами пользователям предоставляются следу­ющие возможности:

  1. Создание, удаление, переименование (и другие операции) именованных набо­ров данных (файлов) из своих программ или посредством специальных управ­ляющих программ, реализующих функции интерфейса пользователя с его дан­ными и активно использующих систему управления файлами;

  2. Работа с недисковыми периферийными устройствами как с файлами;

  3. Обмен данными между файлами, между устройствами, между файлом и уст­ройством (и наоборот);

  4. Работа с файлами путем обращений к программным модулям системы управ­ления файлами (часть api ориентирована именно на работу с файлами);

  5. Защита файлов от несанкционированного доступа.

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

Очевидно, что система управления файлами, будучи компонентом операционной системы, не является независимой от нее, поскольку активно использует соответ­ствующие вызовы api. С другой стороны, системы управления файлами сами до­полняют api новыми вызовами.

Есть версия системы управления файлами с принципами fat и для windows 95/98, есть реализация для win­dows nt и т. Д. Другими словами, для работы с файлами, организованными в соот­ветствии с некоторой файловой системой, для каждой операционной системы должна быть разработана соответствующая система управления файлами. И эта система управления файлами будет работать только в той операционной системе, для которой создана, но при этом обеспечит доступ к файлам, созданным с помо­щью системы управления файлами другой операционной системы, но работаю­щей по тем же основным принципам файловой системы.

Таким образом, файло­вая система — это множество именованных наборов данных, организованное по принятым спецификациям, которые определяют способы получения адресной информации, необходимой для доступа к этим файлам.

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

Информация, с которой работает человек, обычно структурирована. Это, прежде всего, позволяет более эффективно организовать хранение данных, облегчает их поиск, предоставляет дополнительные возможности в именовании. Аналогично, и при работе с файлами желательно ввести механизмы структурирования. Проще всего организовать иерархические отношения. Для этого достаточно ввести поня­тие каталога (directory). Каталог содержит информацию о данных, организован­ных в виде файлов. Другими словами, в каталоге должны содержаться дескрипто­ры файлов. Если файлы организованы на блочном устройстве, то именно с помощью каталога система управления файлами будет находить адреса тех блоков, в кото­рых размещены искомые данные. Причем очевидно, что каталогом может быть не только специальная системная информационная структура, которую часто назы­вают корневым каталогом, но и сам файл. Такой файл-каталог должен иметь спе­циальное системное значение; система управления файлами должна его выделять на фоне обычных файлов. Файл-каталог часто называют подкаталогом (subdi­rectory). Если файл-каталог содержит информацию о других файлах, то посколь­ку среди них также могут быть файлы-каталоги, мы получаем возможность стро­ить почти ничем не ограниченную иерархию.

Более того, введение таких файловых объектов, как файлы-каталоги, позволяет не только структурировать файловую систему, но и решить проблему ограниченного количества элементов в корневом каталоге. Ограничений на количество элемен­тов в файле-каталоге нет, поэтому можно создавать каталоги чрезвычайно боль­шого размера.

Файловая система fat

Файловая система fat (file allocation table — таблица размещения файлов) по­лучила свое название благодаря простой таблице, в которой указываются:

  • Непосредственно адресуемые участки логического диска, отведенные для раз­мещения в них файлов или их фрагментов;

  • Свободные области дискового пространства;

  • Дефектные области диска (эти области содержат дефектные участки и не га­рантируют чтение и запись данных без ошибок).

В файловой системе fat дисковое пространство любого логического диска де­лится на две области (рис. 7.1): системную область и область данных.

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

Рис. 7.1. Структура логического диска в fat

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

  1. загрузочной записи (boot record, br);

  2. зарезервированных секторов (reserved sectors, ressec);

  3. таблицы размещения файлов (file allocation table, fat);

  4. корневого каталога (root directory, rdir).

Таблица размещения файлов

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

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

Файловые системы vfat и fat32

Одной из важнейших характеристик исходной файловой системы fat было ис­пользование имен файлов формата 8.3. К стандартной системе fat (имеется в виду прежде всего реализация fat16) добавились еще две разновидности, используемые в широко распространенных ос от microsoft (конкретно — в windows 95 и windows nt): vfat (виртуальная система fat) и система fat32, используе­мая в одной из редакций ос windows 95 и windows 98. Ныне файловая система fat32 поддерживается и такими последними системами, как windows millennium edition, windows 2000 и windows xp. Имеются реализации fat32 и для windows nt, и для linux.

Основными недостатками файловых систем fat и vfat, которые привели к разработке новой реализации файловой системы, основанной на той же идее (таб­лице размещения файлов), являются большие потери на кластеризацию при боль­ших размерах логического диска и ограничения на сам размер логического дис­ка. Поэтому в microsoft windows 95 oem service release 2 на смену системе vfat пришла файловая система fat32, которая является полностью самостоя­тельной 32-разрядной файловой системой и содержит многочисленные усовер­шенствования и дополнения по сравнению с предыдущими реализациями fat. Самое принципиальное отличие заключается в том, что fat32 намного эффек­тивнее расходует дисковое пространство.

Файловая система hpfs

Файловая система hpfs (high performance file system — высокопроизводитель­ная файловая система) впервые появилась в операционных системах os/2 1.2 и lan manager. Она была разработана совместными усилиями лучших специалис­тов компаний ibm и microsoft на основе опыта ibm по созданию файловых сис­тем mvs, vm/cms и виртуального метода доступа. Архитектура hpfs начала создаваться как файловая система для многозадачного режима и была призвана обеспечить высокую производительность при работе с файлами на дисках боль­шого размера.

Принципы размещения файлов на диске, положенные в основу hpfs, увеличива­ют как производительность файловой системы, так и ее надежность и отказо­устойчивость. Для достижения этих целей предложено несколько идей:

  • Размещение каталогов в середине дискового пространства;

  • Использование методов бинарных сбалансированных деревьев для ускорения поиска информации о файле;

  • Рассредоточение информации о местоположении файловых записей по всему диску, при том что записи каждого конкретного файла размещаются (по возмож­ности) в смежных секторах и поблизости от данных об их местоположении.

Файловая система ntfs

В название файловой системы ntfs (new technology file system — файловая система новой технологии) входят слова «новая технология». Действительно, файловая система ntfs по сравнению с широко известной fat16 (и даже fat32) содержит ряд значительных усовершенствований и изменений. С точки зрения пользователей файлы по-прежнему хранятся в каталогах, ныне при работе в среде windows часто называемых папками (folders). Однако в ней появилось много но­вых особенностей и возможностей.

Основные возможности файловой системы ntfs

При проектировании ntfs особое внимание было уделено надежности, механиз­мам ограничения доступа к файлам и каталогам, расширенной функциональнос­ти, поддержке дисков большого объема и пр. Начала разрабатываться эта система в рамках проекта os/2 v.3, поэтому она переняла многие интересные особенности файловой системы hpfs.

Надежность

Высокопроизводительные компьютеры и системы совместного использования должны обладать повышенной надежностью, которая является ключевым элемен­том структуры и функционирования ntfs. Система ntfs обладает определен­ными средствами самовосстановления. Она поддерживает различные механизмы проверки целостности системы, включая ведение журналов транзакций, позволя­ющих воспроизвести файловые операции записи по специальному системному журналу. При протоколировании файловых операций система управления фай­лами фиксирует в специальном служебном файле (журнале) происходящие изме­нения. В начале операции, связанной с изменением файловой структуры, делается соответствующая пометка. Если во время файловых операций происходит какой-нибудь сбой, то из-за упомянутой отметки операция остается помеченной как не­завершенная. При выполнении процедуры проверки целостности файловой сис­темы после перезагрузки машины эти незавершенные операции отменяются, и файлы возвращаются в исходное состояние. Если же операция изменения данных в файлах завершается нормальным образом, то в файле журнала эта операция от­мечается как завершенная.

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

Ограничения доступа к файлам и каталогам

Файловая система ntfs поддерживает объектную модель безопасности операци­онной системы windows nt и рассматривает все тома, каталоги и файлы как само­стоятельные объекты. Система ntfs обеспечивает безопасность на уровне фай­лов и каталогов. Это означает, что разрешения доступа к томам, каталогам и файлам могут зависеть от учетной записи пользователя и тех групп, к которым он принад­лежит. Каждый раз, когда пользователь обращается к объекту файловой системы,

Его разрешения на доступ проверяются по уже упоминавшемуся списку управле­ния доступом (acl) для данного объекта. Если пользователь обладает необходи­мым уровнем разрешений, его запрос удовлетворяется; в противном случае запрос отклоняется. Эта модель безопасности (см. Подраздел «модель безопасности win­dows nt/2000/xp» в главе 11) применяется как при локальной регистрации поль­зователей на компьютерах с windows nt, так и при удаленных сетевых запросах.

Расширенная функциональность

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

Наконец, в системах windows 2000/xp в случае использования файловой систе­мы ntfs можно включить квотирование, при котором пользователи могут хра­нить свои файлы только в пределах отведенной им квоты на дисковое простран­ство.

Поддержка дисков большого объема

Система ntfs создавалась с расчетом на работу с большими дисками. Она уже достаточно хорошо проявляет себя при работе с томами объемом 300-400 мбайт и выше. Чем больше объем диска и чем больше на нем файлов, тем больший выигрыш мы получаем, используя ntfs вместо fat16 или fat32.

Разрешения ntfs

Разрешения ntfs (ntfs permissions) - это набор специальных расширенных ат­рибутов файла или каталога (папки), заданных для ограничения доступа пользо­вателей к этим объектам. Они имеются только на томах, где установлена файловая система ntfs. Разрешения обеспечивают гибкую защиту, так как их можно при­менять и к каталогам, и к отдельным файлам; они распространяются как на ло­кальных пользователей (работающих на компьютерах, где находятся защищенные папки и файлы), так и на пользователей, подключающихся к ресурсам по сети. Не следует путать разрешения с правами. Это совершенно разные понятия; по­дробнее об этом написано в подразделе «модель безопасности windows nt/2000/ хр». К сожалению, в технической литературе да и в обиходе часто путают эти тер­мины. Истоком этого прежде всего являются ошибки перевода оригинальных анг­лоязычных материалов.Разрешения ntfs служат, прежде всего, для защиты ресурсов от локальных пользо­вателей, работающих за компьютером, на котором располагается ресурс. Однако их можно использовать и для удаленных пользователей, подключающихся к об­щей папке по сети. Очевидно, что в этом случае на пользователей действуют два механизма ограничения в доступе к ресурсам: сначала сетевой, а уже затем локаль­ный, файловый. Поэтому итоговые разрешения на доступ будут определяться как минимальные из сетевых и файловых разрешений. Здесь необходимо сказать, что итоговые сетевые разрешения на доступ к ресурсам, которыми будет обладать пользователь при работе в сети, вычисляются как максимум разрешений в списке разрешений доступа, поскольку пользователь может быть членом нескольких групп, которые упомянуты в списке. Аналогично и для разрешений ntfs: пользователь получает максимальные разрешения, перечисленные в списке управления досту­пом, и только разрешение no access (нет доступа) может перечеркнуть все осталь­ные разрешения. Разрешения ntfs обеспечивают высокую избирательность защиты: для каждого файла в папке можно установить свои разрешения. Например, одному пользо­вателю можно позволить считывать и изменять содержимое файла, другому толь­ко считывать, третьему вообще запретить доступ. Заметим, однако, что настоя­тельно рекомендуется устанавливать разрешения в списках acl, используя не учетные записи отдельных пользователей, а учетные записи групп пользовате­лей. Каждый файловый объект имеет так называемую маску доступа (access mask). Маска доступа включает стандартные (standard), специфичные (specific) и родо­вые (generic) права доступа. Стандартные права доступа определяют операци и, которые явля ются общи­ми для всех защищенных объектов.

Специфичные права доступа указывают основные права, характерные для файловых объектов. Так, например, специфичные права read_data, write_data и append_data позволяют прочитать данные, записать информацию и, соот­ветственно, добавить данные к файлу. Права read_attributes, write_attributes и read_ea, write_ea позволяют, соответственно, прочитать или записать ат­рибуты или расширенные атрибуты файла или каталога. Наконец, такое специфичное право доступа, как execute, позволяет запустить файл на вы­полнение. Родовые права доступа используются системой; они определяют комби­нации стандартных и специфичных прав. Например, родовое право досту­па generic_read, примененное к файлу, включает в себя следующие специ­фичные и стандартные права: read_control, file_read_data, file_read_attributes, file_read_ea, synchronize. Итак, разрешения ntfs по-разному представлены в операционных системах win­dows nt 4.0 и семействе систем windows 2000/хр. Отличия эти, прежде всего, касаются интерфейса, то есть программа проводник (explorer) по-разному ото­бражает те разрешения, которые на самом деле присвоены файловому объекту в виде разрешений доступа и обрабатываются на программном уровне. Разрешения в windows 2000/хр ближе к тем специфичным, стандартным и родовым правам доступа, о которых мы говорили выше, однако для управления доступом к файлам они не так удобны, как разрешения windows nt 4.0.

Разрешения ntfs в windows nt 4.0

В ntfs для windows nt 4.0 разрешения на доступ к файлам и каталогам бывают индивидуальными, стандартными и специальными. Индивидуальные разрешения. Под индивидуальными разрешениями понимают набор прав, позволяющий предоставлять пользователю доступ того или иного типа. В windows nt 4.0 этих разрешений всего шесть: read (чтение), write (запись), execute (выполнение), delete (удаление), change permissions (смена разрешений) и lake ownership (смена владельца). Стандартные разрешения. Для того чтобы не использовать каждый раз сочетания индивидуальных разрешений, введены так называемые стандартные разрешения ntfs, которыми все и пользуются в большинстве случаев. Они представляют со­бой наиболее применяемые (с точки зрения разработчиков microsoft) комбинации индивидуальных разрешений. Одновременное назначение нескольких индиви­дуальных разрешений для файла или каталога значительно упрощает админи­стрирование.

Разрешения ntfs в windows 2000/xp

Вместо описанных выше индивидуальных, стандартных и специальных разреше­ний windows nt 4.0 теперь в пользовательском интерфейсе имеется перечень из 13 разрешений, которые можно (по аналогии с предыдущей системой) назвать индивидуальными, хотя microsoft более этот термин не употребляет и называет их специальными разрешениями. Опишем кратко эти индивидуальные (специаль­ные) разрешения.