Доклад на тему файловая система: works.doklad.ru — Учебные материалы

Содержание

Реферат на тему: «Файл и файловая система»

Введение

  1. Что такое файловая система …………………………………..2

  2. Определение файловой системы .……………………….……3

  3. Распространенные файловые системы ………………..……3

  4. Файловая система FAT …………………………..……….…..4

  5. Обзор файловой системы FAT………………………………..4

  6. Имена файлов в FAT…………………………………………….5

  7. Преимущества FAT…………………………….………………5

  8. Недостатки файловой системы FAT …………………………6

  9. Файловая система FAT 32 ………………………………….….6

  10. Файловая система HPFS ………………………………………….8

  11. Обзор файловой системы HPFS …………………………………8

  12. Суперблок.………………………….…..……………………………10

  13. Запасной блок …………………….…………………….…………10

  14. Преимущества HPFS ……………………….……………..……..11

  15. Недостатки HPFS …………………………………………………11

  16. Файловая система NTFS .…………………………..………..…11

  17. Обзор файловой системы NTFS .……………………………….11

  18. Надежность .……………………………………………….…….12

  19. Дополнительные функции …………………………..………… 12

  20. Устранение ограничений …………………..…….………….. 13

  21. Преимущества FAT.…………………………………………… 13

  22. Недостатки …………………………………..…………………. 14

  23. Соглашение именований в NTFS ………..…….………….…. 14

Заключение

Список литературы

Введение

В настоящее время на одном диске в среднем записывается несколько десятков тысяч файлов. Как разобраться во всем этом многообразии с тем, чтобы точно адресоваться к файлу? Назначение файловой системы – эффективное решение, указанной задачи.

Файловая система с точки зрения пользователя — это «пространство», в котором размещаются файлы. А как научный термин — это способ хранения и организации доступа к данным на информационном носителе или его разделе. Наличие файловой системы позволяет определить, как называется файл, где он находится. Поскольку на IBM PC – совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим четыре файловые системы – FAT, FAT 32, HPFS, NTFS.

При написании работы я пользовалась книгами В.Э. Фигурнова «IBM PC для пользователя», М. Гук «Аппаратные средства IBM PC », в которых дается определение, описание, использование и подробная характеристика

Информация на файловых систем.

  1. Что такое файловая система

дисках записывается в секторах фиксированной длины, и каждый сектор и расположение каждой физической записи (сектора) на диске однозначно определяется тремя числами: номерами поверхности диска, цилиндра и сектора на дорожке. И контроллер диска работает с диском именно в этих терминах. А пользователь желает использовать не сектора, цилиндры и поверхности, а файлы и каталоги. Поэтому кто-то (операционная система или другая программа) должен при операциях с файлами и каталогами на дисках перевести это в понятные контроллеру действия: чтение и запись определенных секторов диска. А для этого необходимо установить правила, по которым выполняется этот перевод, то есть, прежде всего, определить, как должна храниться и организовываться информация на дисках. Набор этих правил и называется файловой системой.

  1. Определение файловой системы

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

Файловая система определяет:

— как хранятся файлы и каталоги на диске;

— какие сведения хранятся о файлах и каталогах;

— как можно узнать, какие участки диска свободны, а какие – нет;

— формат каталогов и другой служебной информации на диске.

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

  1. Распространенные файловые системы

Поскольку на IBM PC – совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим четыре файловые системы – FAT, FAT 32, HPFS, NTFS.

  1. Файловая система FAT

  1. ОБЗОР ФАЙЛОВОЙ СИСТЕМЫ FAT

FAT является наиболее простой из поддерживаемых Windows NT файловых систем. Основой файловой системы FAT является таблица размещения файлов, которая помещена в самом начале тома. На случай повреждения на диске хранятся две копии этой таблицы. Кроме того, таблица размещения файлов и корневой каталог должны храниться в определенном месте на диске (для правильного определения места расположения файлов загрузки).

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

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

Каталог FAT не имеет определенной структуры, и файлы записываются в первом обнаруженном свободном месте на диске. Кроме того, файловая система FAT поддерживает только четыре файловых атрибута: «Системный», «Скрытый», «Только чтение» и «Архивный».

  1. Имена файлов в FAT

В файловой системе FAT использован традиционный формат имен 8.3, имена файлов должны состоять из символов ASCII. Имя файла или каталога должно состоять не более чем из 8 символов, затем следует разделитель «.» (точка) и расширение длиной до 3 символов. Первым символом имени должна быть буква или цифра. При определении имени можно использовать все символы за исключением перечисленных ниже.

. » / \ [ ] : ; | = ,

Использование этих символов может привести к получению неожиданных результатов. Имя не должно содержать пробелов. Указанные ниже имена зарезервированы.

CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL

Все символы образуются в верхний регистр.

  1. Преимущества файловой системы FAT

На компьютере под управлением Windows NT в любой из поддерживаемых файловых систем нельзя отменить удаление. Программа отмены удаления пытается напрямую обратиться к оборудованию, что невозможно при использовании Windows NT. Однако если файл находился в FAT-разделе, то, запустив компьютер в режиме MS-DOS, удаление файла можно отменить. Файловая система FAT лучше всего подходит для использования на дисках и разделах размером до 200 МБ, потому что она запускается с минимальными накладными расходами.

  1. Недостатки файловой системы FAT

Как правило, не стоит использовать файловую систему FAT для дисков и разделов, чей размер больше 200 МБ. Это объясняется тем, что по мере увеличения размера тома производительность файловой системы FAT быстро падает. Для файлов, расположенных в разделах FAT, невозможно установить разрешения.

Разделы FAT имеют ограничение по размеру: 4 ГБ под Windows NT и 2 ГБ под MS-DOS.

  1. Файловая система FAT32

Для работы с большими дисками была разработана новая файловая система FAT32. Microsoft впервые представляет файловую систему FAT32 в операционной системе Windows 95 OSR2. В этой ФС, как следует из названия разрядность указателя на кластер увеличивается до 32 бит, что значительно увеличивает количество поддерживаемых кластеров, и, следовательно, позволяет уменьшить их размер. Вы видите, что разрядность указателя составляет 32 бита и, даже используя кластер 512 байт, эта файловая система может поддерживать диски в 127,9 Гбайт. А при использовании кластера 32 Кбайт она может поддерживать диски до 2 Тбайт.

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

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

Быстродействие системы FAT32 можно повысить, увеличив размер кластера. Увеличивая кластер в два раза, мы сокращаем область FAT тоже в два раза. В FAT32 это очень важная для быстродействия область занимает несколько Мбайт. Сокращение области FAT в несколько раз даст заметное увеличение быстродействия, так как объем системных данных файловой системы сильно сократится — уменьшится и время, затрачиваемое на чтение данных о расположении файлов. Обратная сторона – существенно возрастают потери дискового пространства.

Получается замкнутый круг: чем больше размер кластера, тем выше быстродействие, но возрастают и потери дискового пространства; чем меньше размер кластера, тем более экономно расходуется дисковое пространство, но катастрофически падает быстродействие. Поэтому минимальный кластер в FAT32 был выбран размером 4 Кбайта, как компромисс между эффективностью хранения данных и производительностью.

Поскольку эта файловая система предназначалась для работы с большими дисками, давайте рассмотрим ее с этой стороны.

Большие диски нужны для хранения больших объемов данных. С увеличением числа файлов будет расти и размер таблицы их размещения. Поскольку просмотр таблицы линейный, то в какой-то момент быстродействие дисковых операций значительно упадет. А это уже очень неприятный момент.

В Windows XP/2000 максимальный размер раздела, который можно отформатировать с помощью FAT32, равен 32 Гбайт, не смотря на теоретический предел в 4 Тбайт. Видимо, Microsoft нашла ту точку, дальше которой идти не имеет смысла. Несмотря на это, вы можете работать с разделами FAT32 более 32 Гбайт, если они были отформатированы с помощью другой ОС.

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

Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге.

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

  1. Файловая система HPFS

  2. ОБЗОР ФАЙЛОВОЙ СИСТЕМЫ HPFS

Файловая система HPFS впервые была использована для операционной системы OS/2 1.2, чтобы обеспечить доступ к появлявшимся в то время на рынке дискам большого размера. Кроме того, назрела необходимость расширения существующей системы имен, улучшения организации и безопасности для удовлетворения растущих потребностей рынка сетевых серверов. В файловой системе HPFS поддерживается структура каталогов FAT и добавлена сортировка файлов по именам. Имя файла может содержать до 254 двухбайтовых символов. Файл состоит из «данных» и специальных атрибутов, что создает дополнительные возможности для поддержки других типов имен файлов и повышению уровня безопасности. Кроме того, наименьший блок для хранения данных теперь равен размеру физического сектора (512 байт), что позволяет снизить потери дискового пространства.

Записи в каталоге файловой системы HPFS содержат больше сведений, чем в FAT. Наряду с атрибутами файла здесь хранятся сведения о создании и внесении изменений, а также дата и время доступа. Записи в каталоге файловой системы HPFS указывают не на первый кластер файла, а на FNODE. FNODE может содержать данные файла, указатели на данные файла или другие структуры, указывающие на данные файла.

HPFS старается по возможности располагать данные файла в смежных секторах. Это приводит к повышению скорости последовательной обработки файла.

HPFS делит диск на блоки по 8 МБ каждый и всегда пытается записать файл в пределах одного блока. Для каждого блока 2 КБ зарезервировано под таблицу распределения, в которой содержится информация о записанных и свободных секторах в пределах блока. Разбиение на блоки приводит к повышению производительности, так как головка диска для определения места для сохранения файла должна возвращаться не к логическому началу диска (как правило, это нулевой цилиндр), а к таблице распределения ближайшего блока.

Кроме того, файловая система HPFS содержит два уникальных объекта данных.

  1. Суперблок

Суперблок располагается в логическом секторе 16 и содержит указатель на FNODE корневого каталога. В этом кроется главная опасность использования HPFS: если сектор суперблока помечен как поврежденный, это приводит к потере всех данных раздела даже на неповрежденных участках диска. Для восстановления данных их необходимо скопировать на другой диск с неповрежденным сектором 16 и воссоздать суперблок. Это очень сложная задача.

  1. Запасной блок

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

Если используется технология экстренного исправления, то при обнаружении поврежденного сектора данные переносятся в другой сектор, а исходный помечается как дефектный. Эти действия выполняются открыто для любого приложения, которое выполняет дисковые операции ввода/вывода (то есть на работе приложения проблемы с жестким диском не сказываются). Сообщения об ошибке, которые появляются при обнаружении поврежденного сектора (например, «FAT «Abort, Retry, or Fail?»»), в файловой системе, поддерживающей экстренные исправления, отсутствуют.

Примечание. Версия файловой системы HPFS, которая входит в состав Windows NT, не поддерживает технологию экстренного исправления.

  1. Преимущества файловой системы HPFS

HPFS – оптимальный вариант файловой системы для использования с дисками размером 200–400 МБ.

  1. Недостатки файловой системы HPFS

Дополнительные накладные расходы, связанные с использованием HPFS, снижают эффективность ее применения на дисках размером меньше 200 МБ. Кроме того, производительность также снижается при использовании дисков размером больше 400 МБ. При использовании HPFS под Windows NT нельзя установить параметры безопасности.

Файловая система HPFS поддерживается только операционной системой Windows NT версий 3.1, 3.5 и 3.51. Нельзя получить доступ к разделу HPFS с помощью Windows NT 4.0.

  1. Файловая система NTFS

  2. ОБЗОР ФАЙЛОВОЙ СИСТЕМЫ NTFS

С точки зрения пользователя файловая система NTFS организует файлы по каталогам и сортирует их так же, как и HPFS. Однако в отличие от FAT и HPFS на диске нет специальных объектов и отсутствует зависимость от особенностей установленного оборудования (например, сектор размером 512 байт). Кроме того, на диске отсутствуют специальные хранилища данных (таблицы FAT и суперблоки HPFS).

  1. Надежность

Для обеспечения надежности файловой системы NTFS особое внимание было уделено трем основным вопросам: способности к восстановлению, устранению неустранимых ошибок одного сектора и экстренному исправлению.

Для обеспечения способности к восстановлению NTFS отслеживает все транзакции в отношении файловой системы. Выполнение команды CHKDSK в файловой системе FAT или HPFS служит для проверки последовательности указателей в пределах каталога, размещения и таблицы файлов. Файловая система NTFS хранит журнал операций с этими компонентами. Таким образом, для восстановления связности системы необходимо с помощью команды CHKDSK выполнить «откат» транзакций до последней точки фиксации.

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

Подобно версиям HPFS для OS/2, NTFS поддерживает экстренное исправление.

  1. Дополнительные функции

Основное предназначение конфигурации операционной системы Windows NT на любом уровне является обеспечение платформы, которую можно использовать в качестве модуля при построении других систем, и NTFS не является исключением. Эта файловая система представляет собой гибкую платформу с широкими функциональными возможностями, которую могут использовать другие файловые системы.64 байт (16 экзабайт или 18 446 744 073 709 551 616 байт) – увеличен допустимый раздел файлов и томов. В NTFS для решения проблемы фиксированного размера сектора снова применена концепция кластеров, ранее использованная в файловой системе FAT. Это было сделано для улучшения аппаратной независимости операционной системы Windows NT при ее использовании с жесткими дисками, изготовленными по другой технологии. Таким образом, была принята точка зрения, что деление диска на секторы размером 512 не всегда является оптимальным. Размер кластера определяется кратным числом единичных блоков жесткого диска. Кроме того, для задания имен файлов используется кодировка Юникод и наряду с длинными именами обеспечена поддержка формата 8.3.

  1. Преимущества файловой системы FAT

NTFS лучше всего подходит для использования с томами размером более 400 МБ. С увеличением размера тома производительность файловой системы NTFS не падает, как у FAT.

Благодаря способности к восстановлению в NTFS отсутствует необходимость использования каких-либо программ восстановления диска.

  1. Недостатки файловой системы NTFS

Из-за дополнительного расхода дискового пространства файловую систему NTFS не рекомендуется использовать с томами размером менее 400 МБ. Такой расход объясняется необходимостью хранения системных файлов NTFS (в разделе размером 100 МБ для этого требуется около 4 МБ).

В настоящее время NTFS не имеет встроенного шифрования файлов.

Следовательно, можно загрузить MS-DOS (или другую операционную

систему) и воспользоваться низкоуровневой программой редактирования диска для просмотра хранящихся в томе NTFS данных.

С помощью файловой системы NTFS нельзя форматировать дискеты. Windows NT форматирует дискеты с помощью FAT, так как объем служебной информации, необходимой для функционирования NTFS, не помещается на дискете.

  1. Соглашения именования в NTFS

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

? » / \ < > * | :

В настоящее время из командной строки можно задать имя файла длиной не более 253 символов.

Примечание. Особенности установленного оборудования могут наложить дополнительные требования на размер раздела в любой файловой системе. В частности, размер загрузочного раздела не может быть больше 7,8 ГБ, а таблица раздела ограничена

2 терабайтами.

Заключение

Cегодня в Windows применяются файловые системы: FAT, FAT32, HPFS и NTFS.

Преимущества FAT – низкие накладные расходы на хранение данных и тотальная совместимость с огромным количеством операционных систем и аппаратных платформ. Этой файловой системой по-прежнему пользуются для форматирования дискет, где большой объем раздела, поддерживаемый другими файловыми системами, не играет роли, а низкие накладные расходы позволяют экономно использовать малый объем дискеты (NTFS требует для хранения данных больше места, что совершенно не приемлемо для дискет).

Область применения FAT32 на самом деле гораздо уже – эту файловую систему стоит применять, если Вы собираетесь получать доступ к разделам и с помощью Windows 9x и с помощью Windows 2000/XP. Но так как актуальность Windows 9x сегодня практически сошла на нет, то и использование этой файловой системы не представляет особого интереса.

Некоторые из возможностей, обеспечиваемых на сегодняшний день только файловой системой NTFS, перечислены ниже:

1). NTFS обеспечивает широкий диапазон разрешений, в отличие от FAT, что дает возможность индивидуальной установки разрешений для конкретных файлов и каталогов. Это позволяет указать, какие пользователи и группы имеют доступ к файлу или папке и указать тип доступа.

2). Встроенные средства восстановления данных; поэтому ситуации, когда пользователь должен запускать на томе NTFS программу восстановления диска, достаточно редки. Даже в случае краха системы NTFS имеет возможность автоматически восстановить непротиворечивость файловой системы, используя журнал транзакций и информацию контрольных точек.

3). Реализованная в виде бинарного-дерева структура папок файловой системы NTFS позволяет существенно ускорить доступ к файлам в папках большого объема по сравнению со скоростью доступа к папкам такого же объема на томах FAT.

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

Список литературы

1. Гук М. Аппаратные средства IBM PC: Бестселлер — 2-е изд.: Питер, 2005.

2. В.Э. Фигурнов «IBM PC для пользователя» — 7е изд., перераб. и доп. – М. ИНФА-М, 1998.

3. Обзор файловых систем FAT, HPFS и NTFS [Электронный ресурс] – Режим доступа: http://support.microsoft.com/kb/100108 — Заголовок с экрана

Файловая система для операционной системы Windows (Доклад)

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ И ФИНАНСОВ»

КАФЕДРА ИНФОРМАТИКИ

Доклад на тему:

«Файловая система для операционной системы Windows »

Выполнила

Аристархова Светлана

Студентка группы № 246

Санкт-Петербург

2010

Определение файловой системы

Фа́йловая систе́ма (англ. file system) — регламент, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флеш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

С точки зрения операционной системы, весь диск представляет из себя набор кластеров размером от 512 байт и выше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.

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

Классификация файловых систем

По предназначению файловые системы можно классифицировать на следующие категории:

  • Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в разы медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах. Reiser4 не применяет журналирование, все операции в ней атомарны.

  • Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

  • Для оптических носителей — CD и DVD: ISO9660, ISO9690, HFS, UDF и др.

  • Виртуальные файловые системы: AEFS и др.

  • Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

  • Для флэш-памяти: YAFFS, ExtremeFFS.

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

Задачи файловой системы

Основные функции любой файловой системы нацелены на решение следующих задач:

  • именование файлов;

  • программный интерфейс работы с файлами для приложений;

  • отображения логической модели файловой системы на физическую организацию хранилища данных;

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

  • содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.)

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

Твердотельные носители, такие, как флеш-диски, своим интерфейсом данных похожи на обычные жёсткие диски, но имеют свои проблемы и недостатки. Когда проходит время поиска они нуждаются в особой обработке такими алгоритмами как, Wear leveling и Error detection and correction.

  • FAT — исходно дисковая файловая система — теперь часто используется на флеш-дисках. Имеет ограничение на размер файла в 4 гигабайта.

  • exFAT — Расширенная версия FAT, используемая для флеш-дисков. Запатентована Microsoft, часто называется как FAT64 — ограничение 264 байт (16 эксабайт).

  • FFS2 — Продолжение файловой системы FFS1, Одна из ранних файловых систем для флеш-карт. Разработана и запатентована Microsoft в начале 1990х годов. U.S. Patent 5392427 (англ.)

  • TFAT — Транзакционная версия FAT файловой системы.

  • JFFS — Оригинальная лог-структурированная Linux файловая система для NOR-флеш-носителей.

  • JFFS2 — Продолжение JFFS для NAND- и NOR-флеш-носителей.

  • LogFS — Предназначена для замены JFFS2, лучшая расширяемость. Находится на ранней стадии разработки.

  • Non-Volatile File System — файловая система для флеш-дисков, разработанная Palm, Inc..

  • YAFFS — Лог структурированная файловая система, предназначенная для NAND-флеш, но может использоваться в NOR-флеш-дисках.

exFAT

exFAT (от англ. Extended FAT — «расширенная FAT») — проприетарная файловая система, предназначенная главным образом для флэш-накопителей. Впервые представленная Microsoft для встроенных устройств в Windows Embedded CE 6.0.

Используется в операционных системах от Microsoft в тех случаях, когда использование других поддерживаемых ими файловых систем (FAT и NTFS) нецелесообразно.

Основными преимуществами перед всеми текущими версиями FAT является:

  • Теоретический лимит на размер файла 264 байт (16 эксбибайт).

  • Максимальный размер кластера увеличен до 225 байт (32 мебибайта).

  • Улучшено распределение свободного места за счёт введения бит-карты свободного места, что уменьшает фрагментацию диска.

  • Устранён лимит на количество файлов в одной директории.

  • Введена поддержка списка прав доступа.

  • Введена поддержка транзакций (опциональная возможность, должна поддерживаться устройством).

Поддержка exFAT имеется в Windows XP с Service Pack 2 и 3 с обновлением KB955704, Windows Vista с Service Pack 1, Windows Server 2008, Windows 7.

Технология ReadyBoost в Windows Vista не совместима с устройствами с файловой системой exFAT.

Существует свободный драйвер exFAT в виде патча для ядра Linux, поддерживающий только чтение этой файловой системы.

Лицензионный статус не ясен. Однако известно, что Microsoft успешно запатентовала файловую систему FAT, и в феврале 2009 года подала в суд на компанию TomTom, обвиняя её в их нарушении.

Существует также сторонняя реализация exFAT для Windows XP/ Windows Server 2003, однако она предназначена для непосредственной интеграции в дистрибутив продукта без возможности ручной установки драйвера. Данный порт выполнен на базе драйвера Windows Vista.

В декабре 2009 года Microsoft начала лицензировать файловую систему exFAT для сторонних производителей.

Файловая система. Основные понятия (Реферат)

Содержание:

  1. Концепция файлов
  2. Типы файлов
  3. Логическая организация файла
  4. Физическая организация и адрес файла
  5. Общая модель файловой системы
  6. Заключение
Предмет:Информатика
Тип работы:Реферат
Язык:Русский
Дата добавления:15.06.2019

 

 

 

 

 

  • Данный тип работы не является научным трудом, не является готовой работой!
  • Данный тип работы представляет собой готовый результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала для самостоятельной подготовки учебной работы.

Если вам тяжело разобраться в данной теме напишите мне в whatsapp разберём вашу тему, согласуем сроки и я вам помогу!

 

По этой ссылке вы сможете найти рефераты по информатике на любые темы и посмотреть как они написаны:

 

 

Посмотрите похожие темы возможно они вам могут быть полезны:

 

 

Введение:

В настоящее время в среднем несколько десятков тысяч файлов записываются на один диск. Как понять все это разнообразие, чтобы точно адресовать файл? Назначение файловой системы — эффективное решение этой проблемы.

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

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

Эволюция файловой системы была напрямую связана с развитием технологий реляционных баз данных. В файловой системе использованы последние достижения, разработанные для использования в СУБД: механизмы транзакций, защита данных, система самовосстановления в результате сбоя.

Развитие файловых систем привело к изменению концепции «файла» от его первоначального толкования как упорядоченной последовательности логических записей к концепции файла как объекта, который имеет набор атрибутов, характеризующих его имя, его псевдоним, время создания и сами данные реализовано в NTFS.

За свою 20-летнюю историю файловая система превратилась из простой системы, которая перешла на функции управления файлами, в систему, представляющую собой полноценную СУБД с интегрированным механизмом ведения журналов и восстановления данных.

В отличие от попыток ввести стандарт для протокола, который описывает правила доступа к удаленным файловым системам (CIFS, NFS), не следует ожидать появления такого стандарта, который описывает файловые системы для жестких дисков. Это можно объяснить тем фактом, что файловая система жестких дисков по-прежнему остается одной из основных частей операционной системы, которая влияет на ее производительность. Поэтому каждый производитель операционных систем будет стремиться использовать файловую систему «родной» для своей ОС.

Дальнейшая эволюция файловых систем пойдет по пути совершенствования механизмов хранения данных, оптимизации хранения мультимедийных данных, использования новых технологий, используемых в базах данных.

 

Концепция файлов

 

Файлы идентифицируются по именам. Пользователи присваивают файлам символические имена, принимая во внимание ограничения ОС как для используемых символов, так и для длины имени. До недавнего времени эти границы были очень узкими. Таким образом, в популярной файловой системе FAT длина имени ограничена известной схемой 8.3 (8 символов — само имя, 3 символа — расширение имени), а в UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу поистине мнемоническое имя, благодаря которому даже через достаточно длительный период времени вы можете вспомнить, что содержит этот файл. Поэтому современные файловые системы имеют тенденцию поддерживать длинные символические имена файлов. Например, Windows NT в своей новой файловой системе NTFS утверждает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

 

 

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

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

 

Типы файлов

 

Файлы могут быть разных типов: обычные файлы, специальные файлы, файлы каталогов.

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

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

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

В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:

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

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

Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть — если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX’е — сетевую. Как и любой другой файл, каталог имеет символическое имя и уникально идентифицируется составным именем, содержащим цепочку символических имен всех каталогов, через которые проходит путь от корня до этого каталога.

 

Логическая организация файла

 

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

Для идентификации записи можно использовать специальное поле записи, называемое ключом. В файловых системах UNIX и MS-DOS файл имеет простую логическую структуру — последовательность однобайтовых записей.

 

Физическая организация и адрес файла

 

Физическая организация файла описывает правила расположения файла на внешнем запоминающем устройстве, в частности на диске. Файл состоит из физических записей — блоков. Блок — это наименьшая единица данных, которую внешнее устройство обменивается с ОЗУ. Непрерывное размещение — это простейшая версия физической организации, в которой файл снабжен последовательностью блоков диска, которые образуют единый непрерывный раздел дисковой памяти. Чтобы указать адрес файла в этом случае, достаточно указать только номер начального блока.

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

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

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

Популярный метод, используемый, например, в файловой системе FAT операционной системы MS-DOS, заключается в использовании связанного списка индексов. Каждый блок связан с некоторым элементом — индексом. Индексы расположены в отдельной области диска (в MS-DOS это таблица FAT). Если какой-то блок выделен какому-либо файлу, то индекс этого блока содержит номер следующего блока этого файла. При такой физической организации все преимущества предыдущего метода сохраняются, но оба отмеченных недостатка устраняются: во-первых, для доступа к произвольному местоположению файла достаточно прочитать только индексный блок, сосчитать необходимое количество файловых блоков в цепочке и определяют номер нужного блока, а во-вторых, данные файла занимают весь блок, что означает, что они имеют объем, равный степени двойки.

Общая модель файловой системы

 

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

Задача уровня символа состоит в том, чтобы определить по символическому имени файла его уникальное имя. В файловых системах, в которых каждый файл может иметь только одно символическое имя (например, MS-DOS), этот уровень отсутствует, поскольку символическое имя, присвоенное файлу пользователем, является уникальным и может использоваться операционной системой.

В других файловых системах, в которых один и тот же файл может иметь несколько символических имен, цепочка каталогов сканируется на этом уровне, чтобы определить уникальное имя файла. Например, в файловой системе UNIX уникальным именем является номер инода файла.

На следующем базовом уровне уникальное имя файла определяет его характеристики: права доступа, адрес, размер и другие. Как уже упоминалось, характеристики файла могут быть частью каталога или храниться в отдельных таблицах. Когда файл открывается, его характеристики передаются с диска в оперативную память, чтобы сократить среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками первые несколько блоков файла, содержащего данные, перемещаются в ОЗУ.

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

На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть необходимо определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. В то же время они абстрагируются от физического расположения файла; это представлено как непрерывная последовательность байтов. Алгоритм этого уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-я логическая запись имеет смещение l ((n-1) байтов. Чтобы определить координаты логической записи в файле с индексом — последовательная организация, читается таблица индексов (ключей), в которой непосредственно указывается адрес логической записи.

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

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

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

 

Заключение

 

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

В широком смысле термин «файловая система» включает в себя:

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

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

Читать реферат по Отсутствует: «Файловые системы FAT, FAT16, FAT32» Страница 1

(Назад) (Cкачать работу)

Функция «чтения» служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!


СодержаниеВведение

1. История создания и общая характеристика файловой системы FAT

2. Характеристика файловых систем FAT16 и FAT32 и их сравнение

2.1 Система FAT16

2.2 Система FAT32

2.3 Сравнение FAT16 и FAT32

3. Альтернативная файловая система NTFS и её сравнение с FAT32

3.1 Система NTFS

3.2 Сравнение NTFS и FAT32

Заключение

Список литературы

Введение В настоящее время на одном диске в среднем записывается несколько десятков тысяч файлов. Как разобраться во всем этом многообразии с тем, чтобы точно адресоваться к файлу? Назначение файловой системы — эффективное решение, указанной задачи.

Файловая система с точки зрения пользователя — это «пространство», в котором размещаются файлы. А как научный термин — это способ хранения и организации доступа к данным на информационном носителе или его разделе. Наличие файловой системы позволяет определить, как называется файл, где он находится. Поскольку на IBM PC — совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим файловую систему FAT.

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

1. История создания и общая характеристика файловой системы FAT

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков.*?

длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.

регистр символов в именах файлов не различается и не сохраняется.

Структура раздела FAT изображена на табл 1.1 В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (табл.1.2). Кластер представляет собой минимальное пространство, которое может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую. В состав операционной системы входят различные утилиты (DoubleSpace, DriveSpace), предназначенные для уплотнения данных на диске.

Табл. 1.1 — Структура раздела FAT

Загрузочный сектор Блок параметров BIOS (BPB)

FAT

FAT (копия)

Корневой каталог

Область файлов

Свое название FAT получила от одноименной таблицы размещения файлов. В таблице размещения файлов хранится

Файловая система Windows реферат по программированию и компьютерам

1. Файловая система семейства Windows. Файловая система (file system) – функциональная часть операционной системы, которая отвечает за обмен данными с внешними запоминающими устройствами. Операционными системами Windows используется, разработанная еще для DOS файловая система FAT, в которой для каждого раздели и тома DOS имеется загрузочный сектор, а каждый раздел DOS содержит две копии таблицы размещения файлов (file allocation table – FAT). FAT представляет собой матрицу, которая устанавливает соотношение между файлами и папками раздела и их физическим местоположением на жестком диске. Перед каждым разделом жесткого диска последовательно расположены две копии FAT. Подобно загрузочным секторам, FAT располагается за пределами области диска, видимой для файловой системы. При записи на диск файлы не обязательно занимают пространство, эквивалентное их размеру. Обычно файлы разбиваются на кластеры определенного размера, которые могут быть разбросаны по всему разделу. В результате таблица FAT представляет собой не список файлов и их местоположения, а список кластеров раздела и их содержимого, а в конце каждого описания содержится ссылка на следующий занимаемый файлом кластер. Элементы таблицы FAT представляют собой 12-, 16- и 32-битовые шестнадцатьричные числа, размер которых определяется программой FDISK, а значение непосредственно создается программой FORMAT. Все гибкие диски, а также жесткие диски размером до 16 Мбайт используют в FAT 12-битовые элементы. Жесткие и съемные диски, имеющие размер от 16 Мбайт и более, обычно используют 16-битовые элементы. В Windows98 для дисков объемом более 512 Мбайт может использоваться файловая система FAT32 с 32-битовым элементами таблицы FAT. Очевидно, чем меньше размер кластеров раздела, тем больше их будет содержаться в этом разделе и тем больше размер таблицы размещения файлов FAT, а, значит, дольше а ней выполняется поиск информации, необходимой для доступа к файлу. Зачем же тогда необходимо уменьшать размер кластера? Дело в том, что размер файла может быть произвольным, однако, при записи на диск, Windows разбивает файл на несколько кластеров. В итоге последний кластер почти никогда не бывает заполнен до конца. Оставшееся пустое пространство, называемое люфтом, существует до тех пор, пока файл находится на диске. Таким образом, размер потерянного пространства зависит от размера кластера. Помимо поддержки больших разделов и меньших кластеров FAT32 иначе использует саму таблицу размещения файлов. В FAT использовались две идентичные таблицы, одна из которых служила основной, вторая при выполнении обычных процедур постоянно обновлялась, заполняясь при этом возможными ошибками первой копии. FAT32, при невозможном считывании данных из основной таблицы, обращается ко второй копии, которая и становится основной. Основным недостатком FAT32 является несовместимость с более ранними файловыми системами, а также системой NTFS, применяемой в Windows NT. Когда Windows NT впервые вышла в свет, в ней была предусмотрена поддержка трех файловых систем. Это таблица размещения файлов (FAT), обеспечивавшая совместимость с MS-DOS, файловая система повышенной производительности (HPFS), обеспечивавшая совместимость с LAN Manager, и новая файловая система, носившая название Файловой системы новых технологий (NTFS). NTFS обладала рядом преимуществ в сравнении с использовавшимися на тот момент для большинства файловых серверов файловыми системами. Для обеспечения целостности данных в NTFS имеется журнал транзакций. Подобный подход не исключает вероятности утраты информации, однако,

Реферат — Файловая система — Рефераты на referat.store

Министерство образования Российской федерации

Хабаровский государственный педагогический университет

Кафедра математического анализа и информатики

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

( Методическое пособие )

Выполнила студентка 251 гр.

Авраменко А.А.

Хабаровск, 2000г.

Содержание.

От автора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

§ 1 Понятие файловой системы . . . . . . . . . . . . . . . . . . . . . . . . . .4

§ 2 Файловая система MS-DOS . . . . . . . . . . . . . . . . . . . . . . . . . .5

§ 3 Файловая система Windows 95 . . . . . . . . . . . . . . . . . . . . . . . 9

§ 4 Файловая система Windows NT . . . . . . . . . . . . . . . . . . . . . .12

Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

От автора .

В методическом пособии раскрыта сущность понятия “файловая система”, которое является одним из важнейших понятий в курсе “Програмное обеспечение ЭВМ”, а также представлена структура файловых систем таких операционных систем, как MS-DOS, Windows 95, Windows NT.

Цель пособия – помочь студентам 5 курса систематизировать свои знания по данной теме и успешно подготовиться к государственному экзамену по дисциплине “ Информатика ”.

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

§ 1 Понятие файловой системы.

1.1. Определение файловой системы.

Файл (по английски File) — папка,скоросшиватель.

Файл — это поименованная область памяти на каком-либо физическом

носителе, предназначенная для хранения информации.

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

Файловая система (file system) – функциональная часть операционной системы, которая отвечает за обмен данными с внешними запоминающими устройствами.

1.2. Файловая система FAT.

Операционными системами Windows используется, разработанная еще для DOS файловая система FAT, в которой для каждого раздела и тома DOS имеется загрузочный сектор, а каждый раздел DOS содержит две копии таблицы размещения файлов (file allocation table – FAT).

FAT представляет собой матрицу, которая устанавливает соотношение между файлами и папками раздела и их физическим местоположением на жестком диске.

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

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

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

Элементы таблицы FAT представляют собой 12-, 16- и 32-битовые шестнадцатьричные числа, размер которых определяется программой FDISK, а значение непосредственно создается программой FORMAT.

Все гибкие диски, а также жесткие диски размером до 16 Мбайт используют в FAT 12-битовые элементы. Жесткие и съемные диски, имеющие размер от 16 Мбайт и более, обычно используют 16-битовые элементы.

Файловая система FAT использовалась во всех версиях MS-DOS и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имел собственный FAT, который выполнял две функции: содержал информацию распределения для каждого файла в томе в форме списка связей модулей распределения (кластеров) и указывал, какие модули распределения свободны.

Когда таблица FAT была изобретена, это было превосходное решение для управления дисковым пространством, главным образом потому что гибкие диски, на которых она использовалась, редко были размером более, чем несколько Mb.

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

Когда FAT была применена на жестких дисках, она стала слишком большой для резидентного нахождения в памяти и ухудшала производительность системы.

Кроме того, так как информация относительно свободного дискового пространства рассредотачивалась «поперек» большого количества секторов FAT, она была непрактична при распределении файлового пространства, и фрагментация файлов оказалась препятствием высокой эффективности.

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

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

§ 2 Файловая система операционной системы MS-DOS.

Одно из понятий файловой системы MS DOS — логический диск.

Логические диски :

В некотором приближении можно считать, что, «с точки зрения» MS-DOS, каждый логический диск это отдельный магнитный диск. Каждый логический диск имеет свое уникальное имя. В качестве имени логического диска используются буквы английского алфавита от A до Z (включительно). Количество логических дисков, таким образом, не более 26.

Буквы A и B — отведены строго под имеющиеся в IBM PC флоппи-диски ( FDD ).

Начиная с буквы C именуются логические диски(разделы) HDD ( винчестер).

На рисунках дано изображение логического диска.

В случае, если данный IBM PC имеет только один FDD, буква B

пропускается (рис.2)


Только логические диски A и C могут быть системными.

Файловая структура логического диска :

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

MS DOS избавляет пользователя от такой работы и ведет ее сама. Для обеспечения доступа к файлам — файловая система MS DOS организует и поддерживает на логическом диске определенную файловую структуру.

Элементы файловой структуры :

— стартовый сектор(сектор начальной загрузки, Boot-сектор),

таблица размещения файлов (FAT — File Allocation Table),

корневой каталог(Root-Directory),

область данных(оставшееся свободным дисковое пространство)

Эти элементы создаются специальными программами (в среде MS DOS) в процессе инициализации диска.

Рис. 5

Стартовый сектор(сектор начальной загрузки,Boot-сектор) :

Здесь записана информация, необходимая MS DOS для работы с диском :

идентификатор OS(если диск системный),

размер сектора диска,

количество секторов в кластере,

— количество резервных секторов в начале диска,

— количество копий FAT на диске(стандарт — две),

— количество элементов в каталоге,

— количество секторов на диске,

— тип формата диска,

— количество секторов в FAT,

— количество секторов на дорожку,

— количество поверхностей,

— блок начальной загрузки OS,

За стартовым сектором располагается FAT.

FAT(таблица размещения файлов) :

Область данных диска(см.выше) представлена в MS DOS как последо-

вательность пронумерованных кластеров.

FAT — это массив элементов, адресующих кластеры области данных диска.

Каждому кластеру области данных соответствует один элемент FAT.

Элементы FAT служат в качестве цепочки ссылок на кластеры файла в области данных.

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

Корневой каталог :

Это определенная область диска,создаваемая в процессе инициализации

(форматировании) диска, где содержится информация о файлах и каталогах, хранящихся на диске.

Корневой Каталог всегда существует на отформатированном диске. На одном диске всегда бывает только один корневой каталог. Размер корневого каталога для данного диска — величина фиксированная, поэтому максимальное количество «привязанных» к нему файлов и других (дочерних) каталогов (Подкаталогов) — строго определенное.

Итак, подытоживая все выше сказанное, можно сделать вывод :

MS-DOS — 16-разрядная операционная система, рабо­тающая в реальном режиме процессора.

§ 4 Файловая система операционной системы Windows 95.

4.1. Предыстория создания FAT 32.

В сфере персональных компьютеров в 1987 г. возник кризис. Возможности файловой системы FAT, разработанной фирмой Microsoft за десять лет до этого для интерпретатора Standalone Disk Basic и позднее приспособленной для операционной системы DOS, были исчерпаны. FAT предназначалась для жестких дисков емкостью не свыше 32 Мбайт, а новые НЖМД большей емкости оказывались совершенно бесполезными для пользователей PC. Некоторые независимые поставщики предлагали собственные способы решения этой проблемы, однако лишь с появлением DOS 4.0 этот кризис был преодолен — на некоторое время.

Значительные изменения структуры файловой системы в DOS 4.0 позволили операционной системе работать с дисками емкостью до 128 Мбайт; с внесением в последующем незначительных дополнений этот предел был поднят до 2 Гбайт. В то время казалось, что такой объем памяти превышает любые мыслимые потребности. Однако если история персональных компьютеров чему-то и научила, то именно тому, что емкость, «превышающа любые мыслимые потребности», очень быстро становитс «почти недостаточной для серьезных работ». Действительно, в настоящее время в продаже имеютс жесткие диски емкостью, как правило, 2,5 Гбайт и выше, а когда-то очень высокий и избавивший нас от ограничений потолок в 2 Гбайт превратился в еще одно препятствие, которое предстоит преодолеть.

4.2. Описание FAT 32.

Для систем Windows 95 фирма Microsoft разработала новое расширение системы FAT — FAT32, без каких-либо громких заявлений предусмотренное в пакете OEM Service Pack 2.

Система FAT32 устанавливается только в новых PC, и не рассчитывайте получить ее при переходе к новой версии Windows 95, хотя, по утверждению Microsoft, это расширение станет составной частью основного пакета для модернизации Windows

4.2.1. Области диска

Эта файловая система предусматривает ряд специальных областей на диске, выделенных для организации пространства диска в процессе его форматирования — головную запись загрузки, таблицу разбиения диска, запись загрузки, таблицу размещения файлов (от которой система FAT и получила свое название) и корневой каталог.

На физическом уровне пространство диска разбивается на 512-байт области, называемые секторами. В системе FAT место для файлов выделяется блоками, которые состоят из целого числа секторов и именуются кластерами. Число секторов в кластере должно быть кратно степени двойки. В Microsoft называют эти кластеры единицами выделения памяти (allocation unit), а в отчете SCANDISK указывается их размер, например «16 384 байт в каждой единице выделения памяти».

4.2.2. Цепочка FAT

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

  • кластер свободен, т.е. не использован ни одним файлом ;

  • кластер содержит один или несколько секторов с физическими дефектами и не должен использоваться ;

  • данный кластер — последний кластер файла .

Для любого используемого файлом, но не последнего кластера элемент FAT содержит номер следующего кластера, занятого файлом.

Каждый каталог — независимо корневой или подкаталог — также представляет собой базу данных. В каталоге DOS для каждого файла предусмотрена одна главная запись (В среде Windows 95 для длинных имен файлов введены дополнительные записи). В отличие от FAT, где каждый элемент состоит из единственного поля, записи для файла в каталоге состоят из нескольких полей . Некоторые поля — имя, расширение, размер, дата и время — могут быть выведены на экран по команде DIR. Но в системе FAT предусмотрено поле, которое не отображаетс командой DIR, — поле с номером первого кластера, отведенного под файл.

Когда программа отправляет запрос к операционной системе с требованием предоставить ей содержимое какого-то файла ОС просматривает запись каталога дл него, чтобы найти первый кластер этого файла. Затем она обращается к элементу FAT для данного кластера, чтобы найти следующий кластер в цепочке. Повторяя этот процесс, пока не обнаружит последний кластер файла, ОС точно определяет, какие кластеры принадлежат данному файлу и в какой последования. Таким путем система может предоставить программе любую часть запрашиваемого ею файла. Такой способ организации файла носит название цепочки FAT.

В системе FAT файлам всегда выделяется целое число кластеров. На 1,2-Гбайт жестком диске с 32-Кбайт кластерами в каталоге может быть указано, что размер текстового файла, содержащего слова «hello, world», составляет всего 12 байт, но на самом деле этот файл занимает 32 Кбайт дискового пространства. Неиспользованная часть кластера называется потерянным местом (slack). В небольших файлах почти весь кластер может быть потерянным местом, а в среднем потери составляют половину размера кластера.

На 850-Мбайт жестком диске с 16-Кбайт кластерами при среднем размере файлов порядка 50 Кбайт около 16% отведенного под файлы дискового пространства будет потеряно на неиспользуемые, но выделенные файлам области.

Один из способов высвобождения пространства на диске — с помощью программ сжатия диска, например DriveSpace, которая выделяет «потерянные места» для использования другими файлами.

4.2.3. Другие изменения в FAT32

Чтобы обеспечить возможность работы с возросшим числом кластеров, в записи каталога для каждого файла должно выделяться 4 байт для начального кластера файла (вместо 2 байт в системе FAT16). Традиционно кажда запись в каталоге состоит из 32 байт (рис. 1). В середине этой записи 10 байт не используются (байты с 12-го по 21-й), которые Microsoft зарезервировала дл своих собственных нужд в будущем. Два из них теперь отводятся как дополнительные байты, необходимые дл указания начального кластера в системе FAT32.

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

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

Из всего выше сказанного можно сделать вывод :

MS-DOS была чисто 16-разрядной операционной системой и рабо­тала в реальном режиме процессора. В версиях Windows 3.1 часть кода была 16-разрядной, а часть — 32-разрядной. Windows 3.0 под­держивала реальный режим работы процессора, при разработке версии 3.1 было решено отказаться от его поддержки.

Windows 95 является 32 -разрядной операционной системой, которая работает только в защищенном режиме процессора. Ядро, включающее уп­равление памятью и диспетчеризацию процессов, содержит только 32-разрядный код. Это уменьшает издержки и ускоряет работу. Только некоторые модули имеют 16-разрядный код для совмести­мости с режимом MS-DOS. Windows 95 32-разрядный код используется везде, где только возможно, что позволяет обеспечить повышенную надежность и отказоустойчивость системы. Помимо этого, для совместимости с устаревшими приложениями и драйверами используется и 16-разрядный код.

§ 5 Файловая система операционной системы Windows NT.

5.1. Краткое описание операционной системы Windows NT.

На данный момент мировая компьютерная индустрия развивается очень стремительно .Производительность систем возрастает ,а следовательно возрастают возможности обработки больших объёмов данных .

Операционные системы класса MS-DOS уже не справляются с таким потоком данных и не могут целиком использовать ресурсы современных компьютеров. Поэтому в последнее время происходит переход на более мощные и наиболее совершенные операционные системы класса UNIX , примером которых и является Windows NT, выпущенная корпорацией Microsoft

Когда пользователь впервые видит операционную систему Microsoft

Windows NT, ему в глаза бросается отчётливое внешнее сходство с полюбившимся интерфейсом системы Windows 3.+ .Однако это видимое сходство является лишь незначительной частью Windows NT .

Windows NT является 32-ух разрядной операционной системой с приоритетной многозадачностью . В качестве фундаментальных компонентов в состав операционной системы входят средства обеспечения безопасности и

развитый сетевой сервис.

Windows NT также обеспечивает совместимость со многими другими операционными и файловыми системами , а также с сетями.

Как показано на следующем рисунке ,Windows NT представляет из себя

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

Основными модулями Windows NT являются (перечислены в порядке следования от нижнего уровня архитектуры к верхнему ) : уровень аппаратных абстракций HAL (Hardware Abstraction Layer ), ядро (Kernel ) , исполняющая система (Executive), защищенные подсистемы (protected subsystems) и подсистемы среды (environment subsystems ).

Модульная структура Windows NT


5.2. Файловая система Windows NT.

Когда Windows NT впервые вышла в свет, в ней была предусмотрена поддержка трех файловых систем. Это таблица размещения файлов (FAT), обеспечивавшая совместимость с MS-DOS, файловая система повышенной производительности (HPFS), обеспечивавшая совместимость с LAN Manager, и новая файловая система, носившая название Файловой системы новых технологий (NTFS).

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

Одним из основных преимуществ NTFS является безопасность. NTFS предоставляет возможность вносить записи контроля доступа (Access Control Entries, ACE) в список контроля доступа (Access Control List, ACL). ACE содержит идентификационное имя группы или пользователя и маркер доступа, который может быть использован для ограничения доступа к определенному каталогу или файлу. Этот доступ может предполагать возможность чтения, записи, удаления, выполнения и даже владения файлами.

С другой стороны, ACL представляет собой контейнер, содержащий одну или более записей ACE. Это позволяет ограничить доступ отдельных пользователей или групп пользователей к определенным каталогам или файлам в сети.

Кроме того NTFS поддерживает работу с длинными именами, имеющими длину до 255 символов и содержащими заглавные и строчные буквы в любой последовательности. Одной из главных характеристик NTFS является автоматическое создание эквивалентных имен, совместимых с MS-DOS.

Также NTFS имеет функцию сжатия, впервые появившуюся в NT версии 3.51. Она обеспечивает возможность сжатия любого файла, каталога или диска NTFS. В отличии от программ сжатия MS-DOS, создающих виртуальный диск, имеющий вид скрытого файла и подвергающий сжатию все данные на этом диске, Windows NT использует дополнительный уровень файловой подсистемы для сжатия и разуплотнения требуемых файлов без создания виртуального диска. Это оказывается полезным при сжатии либо определенной части диска (например, пользовательского каталога), либо файлов, имеющих определенный тип (например, графических файлов). Единственным недостатком сжатия NTFS является невысокий, в сравнении со схемами сжатия MS-DOS, уровень компрессии. Зато NTFS отличается более высокой надежностью и производительностью.

Итак, из всего вышесказанного можно сделать вывод :

Чтобы быть совместной с различными операционными системами, Windows NT содержит файловую систему FAT 32. Кроме этого, Windows NT содержит свою собственную файловую систему NTFS, которая не совместима с FAT 16. Данная файловая система имеет ряд преимуществ по сравнению с FAT, а также отличается более высокой надежностью и производительностью.

Заключение .

MS-DOS — 16-разрядная операционная система, рабо­тает в реальном режиме процессора. В версиях Windows 3.1 часть кода — 16-разрядная, а часть — 32-разрядная. Windows 3.0 под­держивала реальный режим работы процессора, при разработке версии 3.1 было решено отказаться от его поддержки.

Windows 95 является 32-разрядной операционной системой, которая работает только в защищенном режиме процессора. Ядро, включающее уп­равление памятью и диспетчеризацию процессов, содержит только 32-разрядный код. Это уменьшает издержки и ускоряет работу. Только некоторые модули имеют 16-разрядный код для совмести­мости с режимом MS-DOS. В Windows 95 32-разрядный код используется везде, где только возможно, что позволяет обеспечить повышенную надежность и отказоустойчивость системы. Помимо этого, для совместимости с устаревшими приложениями и драйверами используется и 16-разрядный код.

Система Windows NT не является дальнейшим развитием ранее существовавших продуктов . Её архитектура создавалась с нуля с учётом предъявляемых к современной операционной системе требований . Стремясь обеспечить совместимость (compatible) новой операционной системы, разработчики Windows NT сохранили привычный интерфеис Windows и реализовали поддержку существующих файловых систем (таких, как FAT ) и различных приложений (написанных для MS — Dos , Windows 3.x). Разработчики также включили в состав Windows NT средства работы с различными сетевыми средствами .

Надёжность и отказоустойчивость (reliability and robustness) обеспечивают архитектурными особенностями, которые защищают прикладные программы от повреждения друг другом и операционной системой. Windows NT использует отказоустойчивую структурированную обработку особых ситуаций на всех архитектурных уровнях, которая включает восстанавливаемую файловую систему NTFS и обеспечивает защиту с помощью встроенной системы безопасности и усовершенствованных методов управления памятью .

1 Введение 2

1.1 История развития файловой системы 2

2 Логическая структура диска 3

2.1 Таблица разделов и логические диски 3

2.2 Главная загрузочная запись 3

2.3 Таблица разделов диска 3

2.4 Загрузочная запись 4

2.5 Загрузка операционной системы 4

2.6 Первичный и расширенный раздел 4

3 Файловые системы Windows 5

3.1 FAT12, FAT16 5

3.1.1 Структура FAT 5

3.1.2 Файлы и каталоги 5

3.1.3 Использование FAT в Windows 6

3.1.3.1 Длинные имена 6

3.1.3.2 Генерация короткого имени файла 6

3.2 FAT32 6

3.2.1 Проблемы FAT16 6

3.2.2 Устранение потерь 7

3.2.3 Изменения архитектуры FAT 7

3.3 HPFS 7

3.3.1 Архитектура файловой системы HPFS 7

3.3.2 Особенности использования HPFS с Windows NT 3.5x 8

3.4 NTFS 8

3.4.1 Возможности NTFS 8

3.4.2 Архитектура файловой системы NTFS 8

3.4.2.1 Главная файловая таблица 8

3.4.2.2 Атрибуты файла NTFS 9

3.4.2.3 Системные файлы NTFS 10

3.4.3 Защита целостности данных 10

3.4.3.1 Горячая фиксация 10

3.4.3.2 Механизм транзакций 10

3.4.3.3 Ленивая передача 11

3.4.3.4 Контрольные точки файла регистрации 11

3.5 Сравнение возможностей FAT, HPFS и NTFS 11

  1. Введение

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

В широком смысле понятие «файловая система» включает:

  • совокупность всех файлов на диске,

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

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

    1. История развития файловой системы

В 1981 году фирма IBM представила первый персональный компьютер, который работал под управлением новой операционной системы MS-DOS, разработанной Microsoft. Этот компьютер содержал 16-разрядный процессор Intel8088 и два дисковода для гибких дисков низкой плотности. Файловая система MS-DOS, названная по её таблице размещения файлов FAT, предоставляла значительно больше возможностей, чем это требовалось для существующих тогда маленьких дисковых объёмов и управления иерархическими структурами файлов и каталогов. Эта файловая система продолжала удовлетворять потребности пользователей персональных компьютеров и в течение многих последующих лет, когда мощность аппаратных средств непрерывно возрастала. Однако поиск файлов и данных на сравнительно больших жёстких дисках стал производиться значительно менее эффективно по сравнению с гибкими дисками небольшой ёмкости первых персоналок.

Но в 1987 году возможности файловой системы FAT, разработанной за десять лет до этого фирмой Microsoft для интерпретатора Standalone Basic и позднее приспособленной для операционной системы MS-DOS, были исчерпаны. FAT предназначалась для дисков размером не более 32 мегабайт, и новые жёсткие диски большей ёмкости оказывались бесполезными для пользователей PC. Некоторые независимые поставщики предлагали свои способы решения этой проблемы, однако лишь с появлением MS-DOS 4.0 этот кризис был преодолён — на некоторое время. Значительные изменения структуры файловой системы в MS-DOS 4.0 позволили операционной системе работать с дисками ёмкостью до 128 Мбайт; с внесением в последующем небольших изменений этот предел был поднят до 2 Гбайт.

В 1990 году была создана высокоэффективная файловая система HPFS (High Performance File System), которая являлась частью операционной системы OS/2 версии 1.х. Эта файловая система разрабатывалась для больших жёстких дисков PC. Вслед за HPFS появилась HPFS386, которая являлась частью Microsoft LAN Manager и была рассчитана на использование преимуществ 32-разрядных процессоров.

В июле 1993 года появились первые операционные системы семейства NT (New Technology), Windows NT 3.1 и Windows NT Advanced Server 3.1, в которые была включена новая файловая система NTFS, нацеленная на эффективную работу с большими дисками, а так же на обеспечение целостности данных (защиту целостности данных при сбоях в системе).

Несмотря на появление технически более совершенных файловых систем, FAT не потеряла своей популярности из за отсутствия поддержки более продвинутых файловых систем в популярных OS Windows 9x, и из за завышенных системных требований операционных систем семейства Windows NT. Но когда-то очень высокий потолок в 2Гбайта превратился в серьёзное препятствие. В 1997 году фирма Microsoft разработала новое расширение FAT — FAT32. FAT32 позволяет использовать диски ёмкостью до 2 Тбайт и обеспечивает более эффективное использование жёстких дисков различного объёма (в том числе и <2 Гбайт).

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

Конспект лекции для CS 140
Зима 2012
Джон Остерхаут

  • Чтения по этой теме из Концепции операционных систем : Разделы 10.1-10.2, Разделы 11.1-11.2, Разделы 11.4-11.6, Раздел 12.4.
  • Проблемы, которые решают современные файловые системы:
    • Управление дисками:
      • Быстрый доступ к файлам (минимизация обращений)
      • Совместное использование пространства между пользователями
      • Эффективное использование дискового пространства
    • Именование: как пользователи выбирают файлы?
    • Защита: изоляция между пользователями, контролируемое совместное использование.
    • Надежность: информация должна храниться безопасно в течение длительного времени времени.
  • Файл: именованный набор байтов, хранящийся в долговременном хранилище, например на диске.
  • Шаблоны доступа к файлам:
    • Последовательный: информация обрабатывается по порядку, один байт после другого.
    • Произвольный доступ: можно адресовать любой байт в файле напрямую не пройдя через своих предшественников. Например. набор данных для подкачки по запросу, а также для баз данных.
    • Keyed: поиск блоков с определенными значениями, например хеш-таблица, ассоциативная база данных, словарь. Обычно предоставляется базами данных, а не операционной системой.

Дескрипторы файлов

  • Как следует использовать сектора диска для представления байтов файла?
  • Дескриптор файла : структура данных, описывающая файл; хранится на диске вместе с данными файла. Информация в дескрипторе файла:
    • Секторы, занятые файлом
    • Размер файла
    • Время доступа (последнее чтение, последняя запись)
    • Информация о защите (идентификатор владельца, идентификатор группы и т. Д.)
  • Вопросы для рассмотрения:
    • Большинство файлов имеют небольшой размер (несколько килобайт или меньше).
    • Большая часть дискового пространства занята большими файлами.
    • Многие операции ввода-вывода предназначены для больших файлов.
    Таким образом, стоимость файла должна быть низкой, но большие файлы должны иметь хорошее качество. представление.
  • Непрерывное распределение (также называемое «на основе экстентов»): распределять файлы как сегментированная память. Хранить свободный список неиспользуемых областей диска.При создании файла заставить пользователя указать его длину, выделить все пространство сразу. Дескриптор содержит расположение и размер.
    • Преимущества:
      • Простой доступ, как последовательный, так и произвольный
      • Простой
      • Мало ищущих
    • Недостатки:
      • Фрагментация затрудняет использование дискового пространства эффективно; большие файлы могут быть невозможны
      • Трудно предсказать потребности во время создания файла
    Пример: IBM OS / 360.
  • Связанные файлы : ведите связанный список всех свободных блоков. В дескрипторе файла просто сохраните указатель на первый блок. Каждый блок файла содержит указатель на следующий блок.
    • Преимущества?
    • Недостатки? Примеры (более-менее): TOPS-10, Xerox Alto.
  • Windows FAT:
    • Как связанное размещение, за исключением того, что ссылки не сохраняются в сами блоки.
    • Хранить ссылки для всех файлов в одной таблице с именем Таблица размещения файлов
      • Каждая запись FAT — это номер сектора диска следующего блока в файле
      • Специальные значения для «последний блок в файле», «свободный блок»
    • Изначально каждая запись FAT состояла из 16 бит.
    • FAT32 поддерживает диски большего размера:
      • Каждая запись имеет 28 бит номера сектора
      • Адреса дисков относятся к кластерам : группы смежных секторов.
      • Размер кластера 2 — 32 КБайт; исправлено для любого конкретного раздел диска.
  • Индексированные файлы : хранить массив указателей блоков для каждого файла.
    • Максимальная длина должна быть указана для файла, когда он создан.
    • Выделить массив для хранения указателей на все блоки, но не выделяйте блоки.
    • Заполняет указатели динамически по мере записи файла.
    • Преимущества?
    • Недостатки?
  • Многоуровневые индексы (4.3 BSD Unix):
    • Дескриптор файла = 14 указателей блоков, изначально 0 («без блока»).
    • Первые 12 указывают на блоки данных.
    • Следующая точка входа в косвенный блок (содержит 1024 Указатели на 4-байтовые блоки).
    • Последний вход указывает на двунаправленный блок.
    • Максимальная длина файла фиксированная, но большая.
    • Косвенные блоки не выделяются до тех пор, пока они не понадобятся.

Буферный кэш

  • Использовать часть основной памяти для хранения диска, к которому недавно осуществлялся доступ блоки.
  • Блоки, на которые часто ссылаются (например, косвенные блоки для больших файлов) обычно находятся в кеше.
  • Это решает проблему медленного доступа к большим файлам.
  • Изначально буферные кеши имели фиксированный размер.
  • По мере увеличения объема памяти увеличиваются и буферные кеши.
  • Многие системы теперь унифицируют буферный кеш и виртуальную машину пул страниц: любая страница может использоваться для любого, в зависимости от Доступ к LRU.
  • Что происходит при изменении блока в кэше?
    • Синхронная запись : немедленная запись на диск.
      • Сейф: данные не будут потеряны, если машина выйдет из строя
      • Медленно: процесс не может продолжаться, пока дисковый ввод-вывод не завершится
      • Может быть ненужным:
        • Много мелких записей в один и тот же блок
        • Файл скоро будет удален (напр.g., временные файлы)
    • Отложенная запись : не пишите немедленно диск:
      • Подождите немного (30 секунд?), Если есть другие записи в блок или блок удален
      • Быстро: пишет возврат немедленно
      • Опасно: может потерять данные после сбоя системы

Управление свободным пространством

  • Управление свободным пространством на диске: многие ранние системы просто использовали связанный список бесплатных блоков.
    • Вначале свободный список отсортирован, поэтому блоки в файл размещаются непрерывно.
    • Свободный список быстро зашифровывается, поэтому файлы распространяются по всему диску.
  • 4.3 BSD подход к свободному пространству: битовая карта :
    • Хранить массив битов, по одному на блок.
    • 1 означает, что блок свободен, 0 означает, что блок используется
    • Во время выделения найдите битовую карту для блока, который рядом с предыдущим блоком файла.
    • Если диск не заполнен, это обычно работает нормально.
    • Если диск почти заполнен, это становится очень дорогим и не производит много места.
    • Решение: не позволяйте диску переполняться!
      • Притворный диск имеет на 10% меньше емкости, чем на самом деле
      • Если диск заполнен на 90%, сообщите пользователю, что он заполнен и не позволять больше записывать данные.

Размеры блока

  • Многие ранние файловые системы (например,грамм. Unix) использовал размер блока 512 байт. (один сектор).
    • Неэффективный ввод-вывод: более четкие передачи, следовательно, больше запросов.
    • Более объемные файловые дескрипторы: всего 128 указателей в косвенном блокировать.
  • Увеличить размер блока (например, кластеры 2 КБ в FAT32)?
  • Решение 4.3BSD: блоки разных размеров
    • Большие блоки по 4 КБайт; большинство блоков большие
    • Фрагменты кратны 512 байтам, подходит в одном большом блоке
    • Последний блок в файле может быть фрагментом.
    • Битовая карта для свободных блоков основана на фрагментах.
    • Один большой блок может содержать фрагменты из нескольких файлов.

Планирование дисков

  • Если есть несколько дисковых операций ввода-вывода, ожидающих выполнения, в каком порядке лучше всего их выполнять?
    • Цель — минимизировать время поиска.
  • В порядке очереди (FCFS, FIFO): простой, но ничего не делает для оптимизации ищет.
  • Самое короткое время первого поиска (SSTF):
    • Выберите следующий запрос, максимально приближенный к предыдущий.
    • Подходит для минимизации поисков, но может привести к голодание по некоторым просьбам.
  • Сканирование («алгоритм лифта»).
    • То же, что и SSTF, за исключением того, что головки продолжают двигаться в одном направлении через диск.
    • Когда будет достигнут край диска, ищите самый дальний квартал и начните снова.
Заметки к лекциям по операционным системам

Лекция 13 Реализация файловой системы

Операционные системы Заметки к лекциям Лекция 13 Реализация файловой системы

Мартин К.Ринард

  • Обсудите несколько стратегий реализации файловой системы.
  • Первая стратегия внедрения: непрерывное выделение. Просто разместить файл в непрерывных дисковых блоках. Используется в ВМ / CMS — старая интерактивная система IBM. Преимущества:
    • Быстрый и простой расчет данных о блоке — просто смещение от начала файла!
    • Для последовательного доступа практически не требуется поисков.
    • Даже прямой доступ быстрый — просто ищите и читайте. Доступ только к одному диску.
    Недостатки:
    • Где лучше всего положить новый файл?
    • Проблемы при увеличении файла — возможно, придется переместить весь файл !!
    • Внешняя фрагментация.
    • Может потребоваться уплотнение, и это может быть очень дорого.
  • Следующая стратегия: связанное присвоение. Все файлы хранятся в фиксированной размер блоков. Связывайте соседние блоки, как связанный список. Преимущества:
    • Больше нет проблем с размещением файлов переменного размера.Все происходит в кусках фиксированного размера, что делает выделение памяти намного проще.
    • Больше никакой внешней фрагментации.
    • Нет необходимости сжимать или перемещать файлы.
    Недостатки:
    • Потенциально ужасная производительность для файлов с прямым доступом — должны следовать указателям от одного блока диска к другому!
    • Даже последовательный доступ менее эффективен, чем для смежные файлы, потому что могут генерировать длительные поиски между блоки.
    • Надежность — потеря одного указателя — большие проблемы.
  • Распределение FAT. Вместо того, чтобы хранить указатель на следующий файл в Каждый блок имеет таблицу следующих указателей, проиндексированных дисковым блоком. По-прежнему нужно линейно перемещаться по следующим указателям, но, по крайней мере, не нужно переходить на диск для каждого из них. Можно просто кэшировать FAT и все в памяти. MS / DOS и OS / 2 используют эта схема.
  • Указатель таблицы последнего блока в файле имеет значение указателя EOF. У свободных блоков указатель таблицы равен 0. Распределение свободных блоков по схеме FAT несложно.Просто найдите первый блок с нулевым указателем таблицы.
  • Индексированные схемы. Дайте каждому файлу индексную таблицу. Каждый запись индекса указывает на блоки диска, содержащие фактические данные файла. Поддерживает быстрый прямой доступ к файлам и неплохо для последовательного доступа.
  • Вопрос: как разместить индексную таблицу? Должен храниться на диске как и все остальное в файловой системе. Есть в основном те же альтернативы, что и для самого файла! Смежный, связанный и многоуровневый индекс. На практике некоторые Обычно используется комбинированная схема.Вся эта дискуссия напоминает пейджинговые дискуссии.
  • Теперь обсудим, как традиционный Unix представляет файловую систему.
  • Первые 8КБ — этикетка + загрузочный блок. Следующие 8 КБ — суперблок плюс свободный индексный дескриптор и кеш дискового блока.
  • Следующие 64 КБ — inodes. Каждый индексный дескриптор соответствует одному файлу.
  • До конца файловой системы — дисковые блоки. Каждый дисковый блок состоит из номера последовательных секторов.
  • Что находится в inode — информация о файле. Каждый индекс соответствует одному файлу.Важные поля:
    • Режим. Сюда входит информация о защите и тип файла. Тип файла может быть обычным файлом (-), каталогом (d), символической ссылкой (l).
    • Владелец
    • Количество ссылок — количество записей каталога, которые указывают на этот индекс.
    • Длина — длина файла в байтах.
    • Nblocks — количество блоков на диске, которое занимает файл.
    • Массив из 10 прямых указателей блоков. Это первые 10 блоков файла.
    • Один косвенный указатель блока.Указывает на блок, полный указателей на дисковые блоки.
    • Один двунаправленный указатель блока. Указывает на блок, полный указатели на блоки, заполненные указателями на дисковые блоки.
    • Один тройной косвенный указатель блока. (В настоящее время не используется).
    Итак, файл состоит из индексного дескриптора и дисковых блоков, которые он указывает на.
  • Nblocks и Length не содержат избыточной информации — могут иметь дыры в файлах. Отверстие отображается как указатели на блоки, которые указывает на блок 0 — т.е. ничего в этом блоке.
  • Предположим, что размер блока составляет 512 байт (т. Е. Один сектор). Чтобы получить доступ любой из первых 512 * 10 байт файла, можно просто перейти прямо из индексный дескриптор. Чтобы получить доступ к данным дальше, необходимо пройти косвенно через хотя бы один уровень косвенного обращения.
  • Как выглядит каталог? Это файл, состоящий из список пар (имя, номер inode). В ранних системах Unix имя был длиной не более 14 символов, а номер inode был 2 байта. Более поздние версии Unix удалили это ограничение, и каждая запись в каталоге была переменной длины, а также включала длину имени файла.
  • Почему inodes не содержат имен? Потому что хотел бы файл иметь возможность иметь несколько имен.
  • Как Unix реализует каталоги. а также ..? Они это просто имена в каталоге. . указывает на индекс каталог, а .. указывает на индексный дескриптор родительского каталога каталога. Итак, в структуре файловой системы есть некоторые нюансы.
  • Пользователь может ссылаться на файлы одним из двух способов: относительно текущий каталог или относительно корневого каталога.Где начинается поиск root? По соглашению, индексный дескриптор номер 2 — это индексный дескриптор для верхнего каталога. Если имя начинается с /, поиск начинается с файла для индексного дескриптора номер 2.
  • Как система преобразует имя в индексный дескриптор? Есть рутина называется namei, который делает это.
  • Сделайте простой пример файловой системы, извлеките индексные дескрипторы и диск блоки и т. д. Включите количество, длину и т. д.
  • А как насчет символьных ссылок? Символьная ссылка — это файл, содержащий имя файла. Всякий раз, когда операция Unix имеет имя символическая ссылка как компонент имени файла, макрос заменяет имя в файле на компонент.
  • Какой доступ к диску происходит при перечислении каталога, cd в каталог, cat файл? Есть ли разница между ls и ls -F?
  • Как насчет использования команды Unix rm? Это всегда удалить файл? НЕТ — уменьшает счетчик ссылок. Если count равен 0, тогда он освобождает место. Работает ли этот алгоритм для справочников? НЕТ — каталог имеет ссылку на себя (.). Используйте другую команду.
  • При записи файла может потребоваться выделить больше inodes и дисковые блоки.Суперблок отслеживает данные, которые помогают этот процесс продолжается. Суперблок содержит:
    • размер файловой системы
    • количество свободных блоков в файловой системе
    • список свободных блоков, доступных в файловой системе
    • индекс следующего свободного блока в списке свободных блоков
    • размер списка inode
    • количество свободных индексных дескрипторов в файловой системе
    • кеш свободных индексных дескрипторов
    • индекс следующего свободного inode в кэше inode
    Ядро поддерживает суперблок в памяти и периодически записывает его обратно на диск.Суперблок также содержит важные информация, поэтому она реплицируется на диск в случае, если часть диска терпит неудачу.
  • Когда ОС хочет выделить индексный дескриптор, она сначала смотрит в кеше inode. Кеш inode — это стопка свободных inode, индекс указывает на вершину стека. Когда ОС выделяет индексный дескриптор, он просто уменьшает индекс. Если кеш inode пуст, он выполняет линейный поиск в списке индексных дескрипторов на диске в поисках свободных индексных дескрипторов. Inode является бесплатным, если его поле типа равно 0. Итак, когда переходите к поиску список inode для бесплатных inodes, продолжайте искать, пока не оберните или не заполните Кеш inode в суперблоке.Следите за тем, где перестали смотреть — в следующий раз начну искать там.
  • Чтобы освободить индексный дескриптор, поместите его в кэш индексного дескриптора суперблока если есть место. Если нет, ничего особо не делайте. Только проверить против числа, на котором ОС перестала искать inodes, последний раз он заполнил кеш. Сделайте это число минимальным из освобожденный номер инода и номер уже есть.
  • ОС хранит список свободных дисковых блоков следующим образом. Список состоит из последовательности дисковых блоков. Каждый дисковый блок в этом sequence хранит последовательность номеров свободных блоков на диске.Первое число в каждом блоке диска — это номер следующего блока диска в этой последовательности. Остальные числа — это числа свободных дисковых блоков. (Сделайте снимок) Суперблок имеет первый дисковый блок в этой последовательности.
  • Чтобы выделить дисковый блок, проверьте блок суперблока свободные дисковые блоки. Если есть хотя бы два числа, возьмите один вверху и уменьшает индекс следующего свободного блока. Если осталось только одно число, оно содержит индекс следующий блок в последовательности блоков диска.Скопируйте этот дисковый блок в список блоков свободного диска суперблока и использовать его как свободный дисковый блок.
  • Чтобы освободить дисковый блок, сделайте обратное. Если есть место в блоке диска суперблока, вставьте его туда. Если нет, записать дисковый блок суперблока в свободный блок, затем поместите индекс нового свободного дискового блока в качестве первого числа в дисковый блок суперблока.
  • Обратите внимание, что ОС поддерживает список свободных дисковых блоков, но только кеш свободных индексных дескрипторов. Почему это?
    • Ядро может определить, свободен ли индексный дескриптор или нет, просто глядя на это.Но не может с дисковым блоком — любой битовый шаблон подходит для дисковых блоков.
    • Легко хранить множество номеров свободных блоков на диске в одном дисковый блок. Но inodes недостаточно велики, чтобы хранить много номеров inode.
    • Пользователи потребляют блоки диска быстрее, чем inodes. Так, паузы для поиска inodes не так плохи, как поиск для дисковых блоков было бы.
    • Inodes достаточно малы, чтобы их можно было читать партиями за одну дисковую операцию. Итак, сканирование списков inodes не так уж и плохо.
  • Синхронизация доступа к нескольким файлам.Что следует исправить семантика для одновременного чтения и записи в один и тот же файл? Чтение и запись должны быть атомарными:
    • Если чтение выполняется одновременно, чтение должно писать полностью или ничего не писать.
    • Чтения могут выполняться одновременно без ограничений атомарности.
  • Как реализовать эти ограничения атомарности? Осуществлять блокировка чтения-записи для каждого открытого файла. Вот некоторые операции:
    • Получение блокировки чтения: блокируется до тех пор, пока ни один из других процессов не получит запись lock, затем увеличивает счетчик блокировок чтения и возвращается.
    • Снять блокировку чтения: уменьшает счетчик блокировок чтения.
    • Получение блокировки записи: блокируется до тех пор, пока ни один другой процесс не получит блокировка записи или чтения, затем устанавливает флаг блокировки записи и возвращается.
    • Снять блокировку записи: снимает флаг блокировки записи.
  • Получить блокировки чтения или записи внутри обработчика системных вызовов ядра. При системном вызове Read получить блокировку чтения, выполнить все файловые операции требуется для чтения в соответствующей части файла, затем отпустите чтение блокировка и возврат.При системном вызове Write сделайте что-то подобное, кроме получения записывать блокировки.
  • Как насчет создания, открытия, закрытия и удаления вызовов? Если несколько процессов открыть файл, и процесс вызывает Delete для этого файла, все процессы должен закрыть файл до его фактического удаления. Еще одна форма синхронизации не требуется.
  • Как организовать синхронизацию? Есть глобальная файловая таблица в дополнение к локальным файловым таблицам. Что делает каждая файловая таблица?
    • Глобальная таблица файлов: индексируется некоторым глобальным идентификатором файла — например, индекс inode будет работать.В каждой записи блокировка чтения / записи, подсчет количества процессов, у которых открыт файл, и немного, говорит, следует ли удалять файл, когда последний процесс, файл открыт закрывает его. Могут быть другие данные в зависимости от того, что другие функции, поддерживаемые файловой системой.
    • Таблица локальных файлов: индексируется по идентификатору открытого файла для этого процесса. Имеет указатель на текущую позицию в открытом файле для запуска чтение или запись для операций записи и чтения.
  • Для ваших заданий начос не обязательно реализовывать блокировки чтения / записи — можно просто использовать простую блокировку взаимного исключения.
  • Каковы источники неэффективности этой файловой системы? Двое виды — зря потраченное время и потраченное впустую пространство.
  • Потраченное время происходит из-за ожидания доступа к диску. Базовый проблема с системой, описанной выше: она разбрасывает связанные предметы по всему диску.
    • Inodes, отделенные от файлов.
    • Inodes в одном каталоге могут быть разбросаны по всему в пространстве inode.
    • Дисковые блоки, в которых хранится один файл, разбросаны по всему диск.
    Таким образом, система может тратить все свое время на перемещение головок дисков. и ждем, пока диск вращается.
  • Первоначальный макет пытается минимизировать эти явления с помощью настройка списков свободных мест, чтобы они выделяли последовательные блоки диска для новых файлов. Итак, файлы имеют тенденцию располагаться на диске последовательно. Но, как использовать файловую систему, макет будет зашифрован. Таким образом, порядок бесплатного списка становится все более рандомизированы, и дисковые блоки для файлов распространяются по всему диску.
  • Насколько это плохо? Ну, в традиционном Unix дисковый блок size равнялся размеру сектора, который составлял 512 байт. Когда они перешел с 3BSD на 4.0BSD они вдвое увеличили размер блока на диске. Это больше чем удвоили производительность диска. Два фактора:
    • При каждом доступе к блоку извлекается вдвое больше данных, поэтому амортизируется накладные расходы диска на поиск дополнительных данных.
    • Файловые блоки были больше, поэтому в прямую раздел индекса inode.
    Но все равно очень плохо. Когда файловая система впервые была создана, получил передачу скорость до 175 Кбайт в секунду. Через несколько недель ухудшилось до 30 Кбайт в секунду. Что еще хуже, это только о 4 процента (!!!!) максимальной пропускной способности диска.Итак, очевидное исправление состоит в том, чтобы увеличить размер блока.
  • Пустая площадь исходит от внутренняя фрагментация. Каждый файл с чем-нибудь в нем (даже маленькие) занимают хотя бы один дисковый блок. Итак, если файл размер не кратен размеру блока диска, будет потраченное впустую пространство с конца последнего блока диска в файле. А также, поскольку большинство файлов маленькие, полного диска может не хватить блоки в середине файлов.
  • Насколько это плохо? Ситуация ухудшается для блоков большего размера.(так что, возможно, увеличив размер блока, чтобы получить больше передачи с диска оценка не такая уж хорошая идея …). Сделал некоторые измерения в файле система в Беркли, чтобы рассчитать размер и процент отходов в зависимости от размера блока диска. Вот некоторые цифры:
    Используемое пространство (Мбайт) Процент отходов Организация
    775,2 0,0 Только данные, без разделения файлов
    828,7 6,9 Данные + inodes, блок 512 байт
    866.5 11,8 Данные + индексы, блок 1024 байта
    948,5 22,4 Данные + иноды, блок 2048 байтов
    1128,3 45,6 Данные + иноды, блок 4096 байт
  • Обратите внимание, что проблема в том, что наличие маленькие файлы убивают производительность больших файлов. Если бы были только большие файлы, сделал бы большой размер блока и амортизировать накладные расходы на поиск до некоторой очень небольшое количество.Но небольшие файлы занимают полный дисковый блок а большие дисковые блоки тратят впустую пространство.
  • В 4.2BSD они попытались исправить некоторые из этих проблем.
  • Представлена ​​концепция группы цилиндров. Группа цилиндров представляет собой набор смежных цилиндров. Файловая система состоит из набор групп цилиндров.
  • Каждая группа цилиндров имеет дублирующую копию суперблока, место для inodes и битовая карта, описывающая доступные блоки в группе цилиндров. Политика по умолчанию: выделить 1 inode на 2048 байт пространства в группа цилиндров.
  • Основная идея групп цилиндров: поместим соответствующую информацию вместе в одной группе цилиндров и несвязанная информация отдельно в разных группах цилиндров. Используйте набор эвристик.
  • Попытайтесь поместить все inodes для данного каталога в один и тот же группа цилиндров.
  • Также попробуйте поставить блоки для одного файла рядом в группа цилиндров. Растровое изображение как устройство хранения упрощает найти соседние группы блоков. Перенаправление для длинных файлов блоки в новую группу цилиндров каждый мегабайт.Это распространяется заполнять диск с достаточно большой степенью детализации, чтобы амортизируйте время поиска.
  • Важный момент для правильной работы этой схемы — сохраните резерв свободного места (от 5 до 10 процентов). Однажды выше этого резерв, только супервизор может выделять дисковые блоки. Если диск почти полностью заполнен, схема распределения не может хранить связанные данные вместе и схема распределения вырождается в случайную.
  • Увеличен размер блока. Минимальный размер блока теперь составляет 4096 байт. Помогает пропускная способность чтения и записи для больших файлов.Но не тратить много места на небольшие файлы? Решение: представить концепцию фрагмента дискового блока.
  • Каждый дисковый блок можно разрезать на 2, 4 или 8 фрагментов. Каждый файл содержит не более одного фрагмента, который содержит последнюю часть данных в файле. Итак, если у вас 8 маленьких файлов вместе они занимают только один дисковый блок. Также можно выделить более крупный фрагменты, если конец файла больше одной восьмой дисковый блок. Битовая карта представлена ​​с точностью до фрагменты.
  • При увеличении размера файла может потребоваться скопировать последний фрагмент, если размер становится слишком большим.Итак, можно скопировать файл многократно по мере роста. Утилиты Unix стараются этого избежать проблема с увеличением файлов на дисковый блок за раз.
  • Итог: это очень помогло — пропускная способность чтения до 43 процентов пикового диска скорость передачи больших файлов.
  • Еще один стандартный механизм, который реально может помочь дисковой производительность — кэш блока диска. ОС поддерживает кеш дисковые блоки в основной памяти. Когда приходит запрос, он может удовлетворить запрос локально, если данные находятся в кеше. Это часть практически любой системы ввода-вывода на современной машине и может действительно помогает производительность.
  • Как работает алгоритм кеширования? Посвятить часть основной памяти кэшированные данные. При чтении файла помещается в кеш блока диска. До читая файл, проверьте, есть ли в кэше соответствующие блоки диска.
  • Как насчет политики замены? Есть много таких же вариантов, что и для алгоритмы подкачки. Может использовать LRU, FIFO со вторым шансом и т. Д.
  • Насколько легко реализовать LRU для дисковых блоков? Довольно просто — ОС получает контроль каждый раз при обращении к блоку диска. Так что можно реализовать точный Алгоритм LRU легко.
  • Насколько легко было реализовать точный алгоритм LRU для страницы виртуальной памяти? Насколько легко было реализовать приблизительную Алгоритм LRU для страниц виртуальной памяти?
  • Итог: другой контекст делает различную замену кеша политики, подходящие для кэшей дисковых блоков.
  • Что плохого для всех алгоритмов LRU? Последовательные обращения. Что обычно бывает с доступом к файлам? Последовательные обращения. Как исправить это? Используйте free-behind для больших файлов с последовательным доступом — как только когда закончите чтение одного блока диска и перейдите к следующему, сначала извлеките блок диска из кеша.
  • Итак, какую политику замены кеша вы используете? Лучший выбор зависит от того, как осуществляется доступ к файлу. Итак, выбор политики сложен потому что может не знать.
  • Может использовать упреждающее чтение для повышения производительности файловой системы. Самый файлы, доступ к которым осуществляется последовательно, поэтому можно оптимистично выполнить предварительную выборку дисковые блоки опережают тот, который читается.
  • Предварительная загрузка это общий метод, используемый для повышения производительности получение данных с устройств с большой задержкой. Можно попытаться скрыть задержку запустив что-то еще одновременно с fetch.
  • При кэшировании блоков диска физическая память служит кеш-памятью для файлы, хранящиеся на диске. С виртуальной памятью, физической памятью служит кешем для процессов, хранящихся на диске. Итак, имейте одно физическое ресурс, разделяемый двумя частями системы.
  • Какая часть каждого ресурса должна файлового кеша и виртуальной памяти получать?
    • Фиксированное размещение. Каждый получает фиксированную сумму. Проблема — не гибкий хватит на все ситуации.
    • Adaptive — если запущено приложение, использующее много файлов, освободить место для файлового кеша.Если запускать приложения, которым нужно больше память, отдайте больше подсистеме виртуальной памяти. Sun OS делает это.
  • Как обрабатывать записи. Можно ли избежать попадания на диск при записи? Возможные ответы:
    • Нет — пользователю нужны данные в стабильном хранилище, поэтому он написал это в файл.
    • Да — хранится в памяти ненадолго, может увеличиться улучшения производительности. Возможно, файл удален, поэтому никогда нужно вообще использовать диск. Особенно полезно для файлов / tmp. Или можете объединить множество небольших записей в большую запись, или может дать планировщику дисков больше гибкости.
    В общем, зависит от потребностей системы.
  • Еще один вопрос — сохраняете ли вы данные, записанные обратно на диск в файловом кеше? Наверное — можно будет прочитать в ближайшее время, поэтому следует держать его на месте.
  • Одна из распространенных проблем с файловыми кешами — при использовании файловой системы в качестве резервное хранилище, может столкнуться с двойным кешированием. Извлеките страницу, и она записывается обратно в файл. Но дисковые блоки из недавно записанных файлы могут кэшироваться в памяти в файловом кеше. По сути, файл кэширование влияет на производительность системы виртуальной памяти.Исправьте это, не кэшируя файлы резервного хранилища.
  • Важной проблемой для файловых систем является восстановление после сбоя. На диске должно храниться достаточно информации для восстановления после вылетает. Таким образом, модификации должны быть тщательно упорядочены, чтобы всегда оставлять диск в состоянии восстановления.

Разрешается копировать и распространять это материал только для образовательных целей при условии, что включена следующая кредитная линия: «Операционные системы Лекционные заметки, Copyright 1997 Мартин К.Ринард «. Разрешается изменять и распространять этот материал при условии что включена следующая кредитная линия: «Адаптировано из операционных систем Лекционные заметки, Copyright 1997 Мартин К. Ринард «.




Мартин Ринард, [email protected], www.cag.lcs.mit.edu/~rinard
22.08.1998

Файловые системы — Конспекты лекций 10-12 — Файловые системы Файловая система (FS) = механизм организации данных

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

Файловая система (ФС) = механизм организации хранения данных в файлах и папках.Есть много разных файловых систем, которые может использовать ОС, но пользователь увидит только иерархическая система хранения данных.

ОС

управляет подчеркиванием деталей с помощью драйверов для связи с устройствами хранения.

  1. Схема диска o Дисковые накопители (диски) разбиты на разделы. o Содержат файловые системы, которые также могут быть разными (например, у вас может быть
      Windows и Linux на двух разделах)  
    o Сектор 0 является главной загрузочной записью o Делится на:
       Дисковые блоки по 4 КБ (= минимальное чтение с диска)
     Логические секторы 512b-4KB.Файлы занимают место в несколько секторов
       размер.  

РЕАЛИЗАЦИЯ — Как файлы выкладывать?

 Непрерывное размещение Самый простой способ — это последовательность непрерывных блоков:  Легко  Быстро = нам нужно только начальное местоположение (адрес) и количество блоков занимает

—- & gt; недостатки — & amp; gt;  если вы стираете файлы, они оставляют пробелы в последовательности  Растущие файлы необходимо перемещать на большее место (оставляя зазор)

 Связанные списки Каждый блок файла имеет ссылку (указатель) на следующий блок. Легко  Нет необходимости хранить компоненты файлов вместе

—- & gt; недостатки — & amp; gt;  Фрагментация преувеличена  Растущие файлы необходимо перемещать на большее пространство (оставляя зазор)  Сложно читать из случайного места в файле (= произвольный доступ) = ссылки нужно следовать с самого начала, поэтому нам нужно прочитать все предшествующие байты — & amp; gt; неэффективный

 Таблица размещения файлов (FAT) Чтобы создать его, вы извлекаете ссылки и помещаете их в таблицу. Находится в первых блоках, отдельно от файлов  Также содержит имя файла, дату создания, длину блоков после ссылки и т. Д.  Устраняет проблему произвольного доступа  Работает хорошо, пока он не станет слишком длинным = слишком большим, чтобы поместиться в памяти для быстрого доступ

 индексов Используется в системах * nix. В них содержатся:  Адреса некоторых блоков данных  Косвенные ссылки на другие блоки данных Не содержит имени файла. Он указан в каталоге & amp; quot; files & amp; quot ;.Файловая система, разработанная для Linux, — ext2fs

.

NTFS (файловая система новой технологии) Сложная FS  Высокий уровень безопасности и контроля  Сжатие диска и очень большие файлы (16 ТБ)  Длинные имена файлов и имена в Юникоде = имена файлов могут состоять из 255 символов в разных языки  Впервые он появился в Windows 3.1 (1993) и теперь является стандартом для Windows

.

Как это работает?  Каждый файл имеет 48-битный номер  Каждый файл и подкаталог имеет запись в главной таблице файлов (MFT), которая содержит имена, атрибуты и указатели на данные файла  Он также содержит указатели на другие специализированные файлы (например,грамм. загрузочный файл и файлы журнала)  NTFS поддерживает размер сектора от 512 до 4 КБ: меньший сектор будет использовать диск лучше, но диск все равно будет читать минимум 4 КБ  NTFS — это файловая система с журналированием, в отличие от FAT: в случае сбоя системы она должна быть в состоянии восстановить

МОНТАЖ И КАРТИРОВАНИЕ = процесс присоединения раздела диска к месту, доступному для пользователей и приложений  Linux = раздел представлен в имени файла, который можно смонтировать на каталог  Windows = сопоставление выполняется через графический интерфейс с буквой диска

  1. Сетевые файловые системы

10-е изд.Глава 14

  • Intro

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

  • 14.0 Цели
    • Описать детали реализации локальных файловых систем. и структуры каталогов.
    • Обсудить распределение блоков и алгоритмы свободных блоков и компромиссы.
    • Изучение проблем с эффективностью и производительностью файловой системы
    • Посмотреть восстановление после сбоев файловой системы
    • Опишите файловую систему WAFL в качестве конкретного примера.

  • 14.1 Структура файловой системы
    • Из соображений эффективности Операции ввода-вывода между диском и первичная память выполняется в единицах блоков. Блок — объем данных в N секторов, где N> = 1 — (фиксированная) малая положительное число.
    • Дизайнеры должны выбрать логическое представление, которое получат пользователи. файловая система — какие типы файлов будут, какие у них будут атрибуты, какова будет структура каталогов, и какие средства будут у пользователей для организации файлов.
    • Дизайнеры также должны определиться с алгоритмами и структурами данных. который будет использоваться для реализации желаемого логического представления файловая система. Рисунок 14.1: Многоуровневая файловая система
    • Часто файловые системы имеют многоуровневую структуру.Рисунок выше представляет собой пример многослойного дизайна.
    • На самом низком уровне (над оборудованием) файл реализация системы состоит из контроллер ввода / вывода — драйверы устройств и обработчики прерываний, реализующие такие команды, как «получить блок 123».
    • Далее над уровнем управления вводом / выводом находится базовая файловая система , которая выдает команды на уровень управления вводом / выводом на доступ к файловым блокам, заданным логическим адресом блока.Базовая файловая система также планирует запросы ввода / вывода и управляет буферизацией памяти и кэширование файловых данных и метаданных. Типичные метаданные состоят из справочной информации и атрибутов.
    • Следующий уровень модуль организации файлов , который связаны с отслеживанием логических блоков файлов, а также управление свободным пространством.
    • Далее идет логическая файловая система который управляет метаданными, как каталоги, и структуры блоков управления файлом для каждого файла которые содержат атрибуты файла. Этот слой также отвечает для защиты.
    • Операционная система может поддерживать множество различных файловых систем, и обычно несколько файловых систем могут использовать один и тот же модуль управления вводом-выводом.Возможно несколько файловых систем также могут иметь большие части общих модулей их основных файловых систем Такое совместное использование и предотвращение дублирования кода является преимуществом многослойного дизайна. тем не мение накладные расходы, вносимые на каждом уровне, могут повлиять на файловую систему эффективность отрицательно, что вызывает серьезную озабоченность из-за того, что задержки вызвали по доступу к вторичному хранилищу часто серьезное узкое место в вычислительной системе.

  • 14.2 Операции файловых систем
    • 14.2.1 Обзор
      • Различный структуры метаданных во вторичной памяти используются для реализации файловых систем. Здесь Примеры:
        • на блок управления загрузкой объема — обычно первый блок на томе.На загрузочный том, в котором есть информация, которую использует компьютер для загрузки ОС с тома. (примеры: загрузка UFS блок и загрузочный сектор раздела NTFS)
        • блок регулировки громкости — информация как количество блоков на томе, блок размер, количество свободных блоков, указатели на освобождение блоков, счетчика свободных FCB и указателей на освобождение FCB (примеры: суперблок UFS и главный файл NTFS стол)
        • структура каталогов
        • Файловый блок управления файлом (FCB)

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

      • Для создания файла ОС должна выделить FCB и добавить запись в соответствующий каталог. Рисунок 14.2: Типичный блок управления файлами
    • 14.2.2 Использование
      • Когда процесс открывает файл, ОС добавляет запись в таблицу открытых файлов для каждого процесса. Если нет процесса файл уже открыт, ОС также создает новая запись в общесистемной таблице открытых файлов. В каждой записи общесистемного таблица открытых файлов для отслеживания количества процессов открыть файл.Системный вызов, открывающий файл возвращает указатель на соответствующую запись в таблица открытых файлов для каждого процесса. (примеры: файл unix дескриптор и дескриптор файла Windows)
      • Когда процесс закрывает файл, ОС удаляет запись в таблице файлов для каждого процесса и уменьшает счетчик в соответствующей записи в общесистемной таблица открытых файлов. Если счетчик обнуляется, ОС удаляет запись в общесистемной таблице после копирования любые измененные метаданные возвращаются на диск.
      • Общесистемная таблица открытых файлов также может использоваться для управление объектами с файловыми интерфейсами, такими как устройства и сетевые подключения.
      • Кэширование метаданных файловой системы очень важно, так как это помогает значительно сократить задержки, вызванные за счет взаимодействия с файловой системой, что является основным узким местом в большинстве вычислительных систем.
      • На рисунке ниже показаны некоторые структуры файловой системы. обсуждается в разделах 14.2.1 и 14.2.2 выше.
      Рисунок 14.3: Структуры файловой системы в памяти. (а) Файл открыт. (b) Файл читать

  • 14.3 Реализация Справочника

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

    • 14.3.1 Линейный список
      • Простейший вариант реализации каталога для код будет линейным списком (имя файла, указатель на место на диске) пары.
      • Однако такая структура не очень хорошо поддерживает полный набор таблицы символов операции. Человек вынужден довольствоваться либо последовательный поиск или большие объемы данных движение во время вставок и удалений. Сбалансированное двоичное дерево поиска с потоковой передачей поддерживать в порядке и другие общие порядки обхода были бы хороши для каталоги большего размера, но не стоит накладных расходов на каталоги меньшего размера.

    • 14.3.2 Хеш-таблица
      • Одним из компромиссов является хеш-таблица, в которой используется цепочка для разрешение столкновений. Это дает хорошую производительность для поиск, вставка и удаление. Использование цепочки устраняет проблемы, связанные с фиксированным размером хеш-таблица.
      • Конечно, структура хеш-таблицы не дает хороших результатов поддержка перемещения по каталогу в порядке именования файлов.

  • 14.4 Методы распределения

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

    • 14.4.1 Непрерывное размещение Рисунок 14.4: Непрерывное выделение дискового пространства
      • Непрерывное выделение требует, чтобы блоки вторичной памяти выделяются для каждого файла.
      • Основным преимуществом является то, что все блоки файла могут быть доступны с минимальным количеством поисков и с минимальное время поиска.
      • Чтобы отслеживать, какие блоки выделены файлу, ОС должна хранить только два номера в каталоге или FCB, адрес B первого блока и номер N блоков в файле.
      • При доступе к файлу просто вычислить физический адрес файлового блока от его логического адреса. Обычно номера логических блоков — это просто диапазон вида 0 .. N-1, и номер физического блока логического блока K это сумма B + K номера физического блока базового блока и номер логического блока.
      • Поскольку существует быстрый метод постоянного времени для расчета физическое местоположение, соответствующее любому логическому блоку адрес, непрерывное выделение легко поддерживает как последовательные и прямой доступ к файлам.
      • К сожалению, при непрерывном распределении очень серьезный недостаток. Проблема выделения непрерывное хранилище во вторичной памяти — это экземпляр уже знакомого проблема распределения динамической памяти который означает, что очень значительный объем хранилища может стать непригодным для использования внешняя фрагментация .
      • Уплотнение жестких дисков может занять несколько часов.
      • Еще проблема определиться, сколько места должно быть выделенный для файла. Часто не знаешь, насколько велик данный файл должен будет увеличиваться. Добавление более смежных пространство для существующего файла может быть редко. Прилегающего свободного места может не быть.
      • Когда пользователи создают файлы, они должны указать, сколько смежные блоки для размещения.Они могут значительно переоценить в попытке зарезервировать место для роста. Это скорее всего привести к чрезмерной внутренней фрагментации.
      • Если мы разместим файл как связанный список непрерывных экстентов, это может смягчить некоторые проблемы, но такие реализации не поддерживают прямой доступ.
      • Ограничения непрерывного распределения мотивируют усилия использовать формы связанного или индексированного размещения.

    • 14.4.2 Связанное размещение Рисунок 14.5: Связанное выделение дискового пространства
      • При связанном выделении, каждый файл представляет собой связанный список файловых блоков.
      • Связанное размещение не страдает внешней фрагментацией вообще. Любой блок в любом месте тома можно использовать в любом файл в любое время. Легко добавить больше блоков в файл в любое время.Уплотнение не требуется.
      • Каталог или FCB содержит указатели на первый и последние блоки файла.
      • Один из способов реализации остальных указателей заключается в размещении в каждом блоке данных указателя на следующий блок.
      • Основная проблема связанного распределения заключается в том, что он поддерживает прямой доступ крайне плохо. В целом, чтобы получить доступ к K-му блоку файла, необходимо необходимо следовать за указателями K, начиная с указателя на первый блок.
      • Кроме того, поскольку каждый файловый блок может находиться в любом месте на томе, среднее время поиска, необходимое для каждого доступа к блоку, может быть намного больше, чем в случае с непрерывным распределением.
      • Если мы связываем непрерывные кластеры блоков вместо блоков будет меньше указателей, и пропорция места на диске, используемого указателями, будет меньше. На С другой стороны, средняя величина внутренней фрагментации будет увеличиваться.
      • Надежность — проблема, так как последствия утерянного или поврежденный указатель потенциально велики.
      • Концепция размещения файлов таблица (FAT) — полезный вариант связанного распределение. FAT — это таблица, хранящаяся в начале тома, имея запись для каждого физического блока. Это в силе массив, индексированный по физическому номеру блока.Указатели, используемые для связывания файлов, сохраняются. в FAT, а не в блоках данных файла.
      • В качестве примера использования FAT предположим, что мы хотим доступ к логическому блоку 2 файла X. Сначала мы обращаемся к X запись в каталоге или FCB, чтобы узнать номер физического блока первого логического блока X, блока 0. Допустим, что физический номер блока — 123. Затем мы исследуем содержимое записи 123 в FAT.Допустим, там хранится 876 штук. Это означает, что 876 — это номер физического блока X логический блок 1. Затем мы переходим к записи 876 FAT, и найти там физический адрес логического блока X 2. Допустим, это число 546. Все, что нам нужно сделать сейчас, это физический блок запроса 546.
      • Помещая специальное контрольное значение в записи свободных блоков, ОС может реализовать список свободных блоков в FAT.
      • Использование FAT для прямого доступа, как правило, требует меньшего количества поисков. чем при обычном связанном распределении, потому что все указатели относительно близки друг другу. Если FAT достаточно мал, чтобы хранить его в первичном памяти, то для обхода FAT никаких поисков не потребуется. (FAT для терабайтного накопителя с блоками 4 КБ будет использовать около гигабайт первичной памяти.) Дизайн может повысить надежность указателей. путем создания резервных копий FAT.

      Рисунок 14.6: Таблица размещения файлов
    • 14.4.3 Индексированное размещение Рисунок 14.7: Индексированное выделение дискового пространства
      • Индексированное выделение использует таблицу для каждого файла где все физические адреса блоков данных файл хранятся.
      • Эта таблица, как и FAT, в основном представляет собой массив номеров физических блоков. Однако индексы в массив логических блоков с номерами . (Индексы в FAT: физических номера блоков .)
      • Чтобы найти k-й логический блок файла, мы просто сверьтесь с k-й записью в таблице и прочтите физический адрес блока.
      • Таблица обычно называется «индексом»
      • Директория или FCB будет содержать адрес индекса.
      • Схема индексации работает примерно так же, как подкачка работает в управлении первичной памятью. (Жир схема представляет собой что-то вроде перевернутой таблицы страниц, но эта аналогия слабее.)
      • При индексированном распределении есть нет внешней фрагментации, и ОС может поддерживать как последовательный, так и прямой доступ с приемлемым эффективность.
      • Внутренняя фрагментация происходит в последнем блоке данных файлов и в неиспользуемых частях индексных блоков.
      • Если это простой одноуровневый индекс, возможно, можно будет кэшировать весь индекс файла в основной памяти. Если да, то найти физический адрес любого блока в файле, достаточно взглянуть на один запись индекса. Напротив, вполне вероятно, что не хватит памяти для кеширования всего FAT, и в среднем приходится проверять половину файла Записи FAT для поиска одного из блоков данных файла.
      • При использовании индексированного размещения каждый блок файла может быть в любом месте на томе, поэтому может быть долгое время среднее время поиска, необходимое для доступа серия блоков файла, будь то последовательно или случайно.

        При непрерывном распределении блоки файла закрываются вместе, поэтому при доступе к серии блоков средний время поиска, как правило, короче, чем в случае с любым связанное размещение или индексированное размещение.

      • Для размещения больших файлов система может прибегнуть к использованию связанный список индексных блоков или многоуровневый индекс, в котором один главный индекс указывает на несколько блоков индекса второго уровня которые указывают на блоки данных файла.
      • В индексном дескрипторе unix используется вариант многоуровневого индексирования. Первые 12 указателей в индексном дескрипторе указывают на блоки данных файла. Одна запись inode указывает на единственный косвенный блок , который представляет собой блок указателей на блоки файлов.Другая запись индексного дескриптора указывает на двойной косвенный блок — блок указатели на отдельные косвенные блоки. Третья запись inode указывает на тройной косвенный блок , который является блоком указателей удвоить косвенные блоки. «Согласно этому методу количество блоков, которые могут быть выделены файлу, превышает количество адресуемое пространство 4-байтовыми указателями, используемыми многими операционных систем »(4 ГБ).
      Рисунок 14.8: Inode unix
    • 14.4.4 Производительность
      • Связанное размещение подходит для файлов, которые будут доступ последовательно, но не для файлов, к которым нужно получить доступ напрямую.
      • Непрерывное распределение хорошо работает, поддерживая оба прямой доступ и последовательный доступ, но без увеличения размер файла, а также контроль внешней фрагментации.
      • Производительность индексированного размещения зависит от детали реализации — обычно несколько лучше чем производительность связанного распределения, но не так же быстро, как и при непрерывном выделении.
      • Некоторые системы используют более одного метода распределения и пытаются чтобы метод размещения соответствовал размеру файлов и / или способы использования файлов.
      • Для устройства с энергонезависимой памятью (NVM), у которых нет движущиеся части.

  • 14.5 Управление свободным пространством
    • Для отслеживания какие блоки файлов выделены, а какие свободны.
    • 14.5.1 Битовый вектор
      • Битовая карта или битовый вектор — это последовательность битов. i-й бит представляет i-й физический блок. Если i-й физический блок свободен, i-й бит в векторе равно 1, иначе это 0.
      • Реализовать битовые векторы и разрабатывать алгоритмы просто. для поиска свободных блоков и серий смежных свободных блоков. Инструкции, которые могут быть использованы: «ISZERO» и битовый сдвиг.
      • Однако битовые векторы неэффективны в использовании, если они не полностью кэшируются в основной памяти. Это довольно часто в наши дни (2019 год) для портативного компьютера иметь терабайтный диск и 16 ГБ основной памяти.Если на диске 4 КБ блоков или кластеров, для битового вектора потребуется около 32 МБ физической памяти, что составляет около 0,2% от 16 ГБ.

    • 14.5.2 Связанный список Рисунок 14.9: Связанный список свободного места на диске
      • Если непрерывные блоки не нужны, просто сохранение ссылки на другой свободный блок в каждом свободном block — разумный подход.

    • 14.5.3 Группировка
      • В этом варианте связывания первый блок в свободном структура списка содержит n-1 указателей на свободные блоки, и наконец, один указатель на другой блок, такой как он сам, который указывает на еще n-1 свободных блоков и еще один блок, например сам и так далее.
      • Эта структура позволяет найти большое количество бесплатные блоки быстро.

    • 14.5.4 Подсчет
      • Составьте список непрерывных пробегов свободных блоков по хранение пар формы (базовый адрес, количество блоков)
      • Список будет компактным, если большинство серий длиннее, чем 1 блок.
      • Сохраните эти записи в сбалансированном дереве для эффективного поиск, вставка и удаление.

    • 14.5.5 Космические карты
      • ZFS использует схему, которая делит том на области с отдельные бесплатные списки.
      • ZFS регистрирует операции выделения и освобождения, а затем использует журнал для обновления копий свободных списков в памяти с партии изменений.

    • 14.5.6 Обрезка неиспользуемых блоков
      • В отличие от жестких дисков, устройствам хранения на основе флэш-памяти NVM требуется освободившееся пространство. стираться блоками, состоящими из страниц, прежде чем можно будет переписать носитель.Стирание может занять относительно много времени.
      • Необходим механизм, с помощью которого файловая система может информировать запоминающее устройство, когда все страницы в блоке свободны, что это точка, с которой может начаться стирание блока. Для Приводы с подключением через ATA механизм TRIM, а для накопителей на базе NVMe хранилище, есть команда unallocate. Это сохраняет место для хранения, доступное для записи.

  • 14.6 Эффективность и производительность

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

    • 14.6.1 КПД
      • Оптимизация unix заключается в распределении индексных дескрипторов по файловой системе. и попытаться найти блоки данных каждого файла закрыть в индекс файла. Цель состоит в том, чтобы сократить время поиска когда файловая система обращается к inode, чтобы найти блок данных, и сразу же получить доступ к блоку данных.
      • Также unix использует кластеры переменного размера для уменьшения внутреннего фрагментация. Кластеры большего размера предназначены для файлов большего размера. Меньшие кластеры предназначены для небольших файлов или последнего кластера файла.
      • «Обычно каждый элемент данных, связанный с файлом, должен его влияние на эффективность и производительность «.

    • 14.6.2 Производительность Рисунок 14.10: Ввод-вывод без унифицированного буферного кэша Рисунок 14.11: Ввод-вывод с использованием унифицированного буферного кеша
      • Унифицированный буферный кеш (страницы процессов и данные файлов) повышает производительность, используя методы виртуальной памяти, и избежание двойного кэширования.
      • Выделение кадров должно быть сбалансировано, чтобы процессы нельзя убрать слишком много кадров, необходимых для кеширование файлов или наоборот.
      • При синхронной записи в блоки файлов процессы должны подождите, пока данные будут сброшены во вторичное хранилище, прежде чем продолжение.
      • С другой стороны, когда процессы пишут асинхронно, задержки, как правило, короткие — часто значительно короче чем задержки на чтение, так как ОС может вернуть управление к процессу сразу после кеширования данных записи в первичной памяти.
      • Когда к файлу обращаются последовательно, это часто идея использовать бесплатно и с упреждающим чтением .
      • Свободно позади : после обращения к буферам страниц они должен быть освобожден почти сразу потому что к ним, вероятно, больше не будет доступа. Это в отличие от LRU, но имеет смысл в данном контексте.
      • Чтение вперед : Аналогично при чтении блок в буферы из файла, который доступ последовательно, несколько из блоков, которые следуют в файле, также должны быть перенесены с диска, потому что они, вероятно, будут доступны очень скоро и это экономит время доступа к диску, чтобы группировать их таким образом.

  • 14.7 Восстановление
  • 14.8 Пример: файловая система WAFL
    • Оптимизирована файловая система Write Anywhere File Layout (WAFL). для произвольной записи и предназначен для серверов, экспортирующих файлы в сетевой файловой системе (NFS) или общей файловой системе Интернета (CIFS).
    • WAFL похожа на файловую систему Berkely Fast File, но со многими различия.
    • Все метаданные хранятся в обычных файлах. Рисунок 14.12: Макет файла WAFL
    • WAFL никогда не записывает поверх блоков и может предоставлять моментальные снимки предыдущие состояния файловой системы с использованием копий старых корневых узлов. В дальнейшем изменения в файловой системе записываются в режиме копирования при записи. мода. Рисунок 14.13: Снимки в WAFL
    • Запись всегда может происходить в свободный блок, ближайший к текущему. расположение головы.

  • 14.9 Резюме
  • CS 111 / Лекция 12 / Реализация файловой системы

    Писатели: Гэри Йента Куанг Хуа Чен и Эрик Кай Ян

    Содержание

    1. Множественные файловые системы
    2. Иерархия
    3. Умышленное создание неверных данных

    Несколько файловых систем

    • Boot, usr, home и т. Д.все индивидуальные файловые системы. Своп предназначен для жизненной памяти.


    Иерархия

    Уровни файловой системы Unix (от самого низкого до самого высокого уровня):

    секторов

    Блоки

    Разделы

    • Каждый раздел может иметь различное назначение

    • Можно разбивать на разделы как им нравится

    • Множество разделов или каталогов файловой системы на домашнем ноутбуке или настольном компьютере, потому что это ограничивает ущерб, вызванный заполнением файловой системы

    Файловые системы и крепления

    • mount ("/ etc / foo", "/ dev / rst / 03")

    • Ниже приведены примеры иерархии между файловыми системами:

    Inodes

    • Использование объектно-ориентированного программирования для поддержки файловых систем

    • API для файловых систем код

    • Файловые системы — объект

    • Уровень

      VFS — это объектно-ориентированная реализация на C

      .
    • Типы файлов

        обозначение типа  
       каталог d 
       Обычный файл - 
       Символическая ссылка l 
       Файл p 
       Специальный символ c 
       Блок специальный б 
       непрерывный файл C 

    Компоненты имени файла

    • Разрешение имени файла

    • открытый ("abc / def / ghi")

    • Файл Loopover имеет текущий каталог + компонент имени файла

    • Текущий каталог = номер inode для этого файла

    • Если файлы multipile => текущий каталог имеет номер устройства, а также номер inode

    • Если «def» отсутствует => ошибка = ENOENT

    • Если нет разрешения => ошибка EPERM

    • Корневой каталог

      • холир

      • chroot

        • Что, если chroot может выполняться пользователями без полномочий root? Корневой каталог может быть атакован следующим способом:

          $ chroot / home / eggert / манеж
          $ su
          Пароль: eggert
          #

        • chroot («/.. «) = chroot (» / «) = noop

        • Делает текущий каталог корневым, чтобы ничто не могло выйти за его пределы

        • Может сделать файлы невидимыми, что проблематично

        • «хромированная тюрьма»

          • Root может создавать coprod (содержит apache)

          • Apache полон дыр.Если мы поместим его в chrooted jail, то мы сможем ограничить масштаб ущерба.

    Имена файлов

    Символические ссылки

    • Кто угодно может читать символическую ссылку, никто не может писать в символическую ссылку

    • Плюсов:

    • Минусы:

    • dev / null

      • Все файловые системы должны иметь это

      • Если он не существует, файловая система не может отбрасывать нежелательные выходные данные процессов

    • dev / полный

    • дев / ноль

    • Жесткие ссылки (по сравнению с символическими ссылками)

      • Жесткие ссылки не сопоставляются с несуществующими файлами.

      • Жесткие ссылки не могут зацикливаться.

      • Жесткие ссылки усложнят пользовательскую модель.

      • Нет необходимости в записях каталога.

    • lstat ("foo", & st)
      stat ("foo", & st)
      readlink ("b", buf, bufsize)

      • Если foo является символической ссылкой, lstat заполнит st информацией о символической ссылке.Lstat не следует символическим ссылкам.

        Stat похож на lstat. Lstat вернет информацию о файле, на который ссылается ссылка.

        Readlink считывает значение символической ссылки.


    Умышленное создание неверных данных

    Если мы хотим предотвратить доступ злоумышленника к конфиденциальным данным, мы можем:

    Операционные системы: Лекция 21: Распределенные файловые системы

    Операционные системы: Лекция 21: Распределенные файловые системы

    Лекция 21: РАСПРЕДЕЛЕННЫЕ ФАЙЛОВЫЕ СИСТЕМЫ
    CHRIS STAFF

    Dept.информатики и искусственного интеллекта
    Мальтийский университет
    Следующая лекция: Распределенные операционные системы: пример из практики: Амеба

    Краткое содержание лекции

    Цели и задачи
    Введение
    Проектирование распределенной файловой системы
    Реализация распределенной файловой системы
    Пример: сетевая файловая система Sun


    Цели и задачи
    • Введение
    • Проектирование распределенной файловой системы
    • Реализация распределенной файловой системы
    • Сетевой файл Sun Система

    Введение
    • Файловая служба vs.Файловый сервер

      Файловая служба: спецификация того, что файловая система предлагает своим клиентам

      Файловый сервер: процесс, который выполняется на одной или нескольких машинах и помогает реализовать файловая служба

      В системе может быть несколько файловых серверов, предлагающих разные файловые службы (например, UNIX и DOS)

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


    Проектирование распределенной файловой системы
    • Две части: файловая служба (операции с файлами — чтение, запись, добавление) и служба каталогов (mkdir, rmdir, создание и удаление файлов)

    Интерфейс файловой службы

    • Свойства файла

      Последовательность байтов vs.структура данных

      Атрибуты (владелец, дата создания / изменения, размер, права доступа)

      Неизменяемые и изменяемые

      Защита с помощью возможностей и защита с помощью списков управления доступом

    • Модели файловых служб

      Загрузить / скачать

      Удаленный доступ

    Интерфейс сервера каталогов

    • Независимо от модели файловой службы
    • Определяет, как могут быть составлены имена файлов с атрибутами пользователя.
    • Как процессы и машины могут иметь одно и то же «представление» иерархии каталогов, е.g., удаленный монтаж, в распределенной файловой системе
    • Naming Transparency

      Прозрачность местоположения

      • Нет сведений о том, где находится сервер

      Независимость расположения

      • Файлы можно перемещать без изменения их имен
    • Двухуровневое именование

      Символьные имена и двоичные имена

      Поиск символьного имени и получение списка двоичных имен — относится на оригинал и все резервные копии, копии и т. д.- Обеспечивает отказоустойчивость

    • Семантика общего доступа к файлам

      Что происходит, когда два пользователя одновременно читают / изменяют один и тот же файл?

      Семантика UNIX — имитирует однопроцессорную систему

      • READ после WRITE возвращает записанные данные
      • 2 WRITES, за которыми следует READ дает последнюю WRITE
      • Предполагает абсолютный временной порядок событий

      Семантика UNIX может быть достигнута в распределенных системах, пока файлы не кешируется — но это приводит к плохому обслуживанию

      Альтернативный — немедленно записывать изменения в кешированные файлы на сервер.Неэффективно (например, временные файлы)

      Сематика сеансов

      Ослабьте семантику UNIX. «Изменения в открытом файле видны только процессу который изменил файл «

      Но как насчет файла, который изменяется двумя или более процессами? Что получает написано последним?

      А как насчет другого процесса, который пытается прочитать файл, пока он модифицированный? — не получит последнюю версию

      Возможные решения

      • Все файлы неизменяемы — только создание и чтение
      • Если файл перезаписывается, чтение другими не выполняется
      • Использование атомарных транзакций

    Реализация распределенной файловой системы
    • Проблемы при определении того, что реализовать

      Насколько велики в среднем файлы?

      Какая средняя продолжительность жизни файла?

      Есть ли тенденция к совместному использованию файлов?

    Вопросы, касающиеся внутренней организации файловых серверов и каталогов серверы

    Преимущества серверов без сохранения состояния Преимущества серверов с отслеживанием состояния
    Устойчивость к сбоям Более короткие сообщения с запросами
    Нет необходимости в вызовах OPEN / CLOSE Лучшая производительность
    На серверах не тратится место на таблицах
  • 82

    5

    5 Нет ограничений на количество открытых файлов

  • Идемпотентность проще
    Нет проблем в случае сбоя клиента Возможна блокировка файлов

    Кэширование

    • 4 потенциальных места для хранения файлов

    • Диск сервера

      + все файлы доступны всем клиентам

      + много места

      + нет проблем с согласованностью

      — сетевые передачи / производительность

    • Кэш сервера

      + быстрее, чем доступ к диску

      — сетевой перевод

      — запись может отсутствовать в кеше

    • Диск клиента

      + нет передачи по сети

      — низкая производительность

      — согласованность файлов

    • Кеш клиента

      + нет передачи по сети, если файл / запись находится в кеше

      + читать вперед

      — согласованность файлов

      Самый популярный вариант

    Согласованность кэша

    • Алгоритмы сквозной записи
    • Алгоритмы записи при закрытии

    Пример: сетевая файловая система Sun
    • NFS поддерживает гетерогенные системы, например.г., клиенты MS-DOS и серверы UNIX

    Архитектура NFS

    • NFS позволяет одному и тому же компьютеру быть и клиентом, и сервером
    • Нет ограничений по географическому расположению серверов и клиентов
    • Серверы NFS экспортируют деревьев каталогов
    • Клиент получает доступ к экспортированным каталогам при монтировании их
    • Два клиента, монтирующие один и тот же каталог, могут обмениваться данными через него

    Протоколы NFS

    • Каталоги монтирования

      Клиент отправляет запрос на разрешение монтировать имя пути

      Если запрос удовлетворен, сервер возвращает дескриптор файла

    • Доступ к каталогу и файлу

      NFS не имеет состояния


    Следующая лекция…

    Распределенные операционные системы: пример: Amoeba

    Сведения о файловой системе

    macOS предоставляет три схемы безопасности файловой системы: разрешения UNIX (BSD), списки управления доступом POSIX (ACL) и права песочницы. Кроме того, уровень BSD предоставляет несколько флагов для каждого файла, которые переопределяют разрешения UNIX. Эти схемы описаны в следующих разделах.

    Кроме того, macOS позволяет администраторам отключать проверку прав собственности и разрешений для съемных томов для каждого тома, выбрав «Получить информацию» о томе в Finder, а затем установив флажок «Игнорировать владение этим томом».

    ACL POSIX

    Начиная с macOS 10.4, политики разрешений Mach и BSD дополняются поддержкой в ​​ядре ACL (списков управления доступом), которые представляют собой структуры данных, которые обеспечивают гораздо более подробный контроль над разрешениями, чем BSD. Например, списки ACL позволяют системному администратору указать, что конкретный пользователь может удалить файл, но не может писать в него. ACL также обеспечивают совместимость с Active Directory и сетями SMB / CIFS, используемыми операционной системой Windows.Дополнительные сведения о поддержке ACL в macOS для различных сетевых файловых систем см. В разделе Сетевые файловые системы.

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

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

    Политика контроля доступа к файловой системе

    Вы можете использовать ACL файловой системы для реализации более подробных и сложных политик контроля доступа, чем это возможно при использовании только разрешений BSD. Они делают это, используя намного больше битов разрешений, чем три, используемых BSD, и реализуя ассоциации разрешения и запрета для каждого разрешения для каждого пользователя или группы. В таблице B-2 показаны биты разрешений, используемые списками ACL. Сравните их с битами разрешения BSD, показанными в таблице B-3.

    9162 935

    чтение

    9162 9000 Открыть каталог

    содержимое

    по каталогу доступ к файлам или каталогам в нем)

    изменение разрешений само контролируется разрешением.

    ACL и идентификаторы пользователей

    Одной из основных причин внедрения ACL в macOS является поддержка сетевых файловых систем, таких как SMB / CIFS (см. SMB / CIFS). Чтобы иметь возможность идентифицировать пользователей и группы по всей сети, каждый файл или каталог должен иметь универсальные уникальные идентификаторы (UUID) в дополнение к локально уникальным UID и GID, используемым BSD. Таким образом, каждый файл или каталог, связанный с ACL, имеет четыре связанных идентификатора: два для поддержки BSD и два для поддержки ACL:

    • User ID (UID)

    • Group ID (GID)

    • Owner UUID

    • UUID группы

    В отличие от BSD, которая определяет три разрешения для каждого файла (одно для владельца файла, одно для членов группы файла и одно для всех остальных), ACL может указывать разные разрешения для каждого файла. ТУЗ.Другое отличие между ACL и BSD состоит в том, что, в то время как в BSD владельцем файла должно быть физическое лицо, в схеме разрешений ACL владельцем файла может быть либо пользователь, либо группа. Если файл принадлежит группе, его GID (используемый BSD) и UUID группы всегда согласованы (то есть между ними всегда существует простое сопоставление 1: 1). Однако, поскольку BSD не поддерживает концепцию группы как владельца файла, в этом случае система назначает специальный UID, который идентифицирует файл как принадлежащий «не пользователю», а UUID владельца представляет группу.Если файл принадлежит одному человеку, его UID и UUID владельца согласованы.

    Владелец файла, использующего ACL, имеет определенные безотзывные разрешения (права на чтение и запись) независимо от содержимого ACL. Если файл принадлежит физическому лицу, UUID группы связывает группу с объектом файловой системы и влияет на наследование определенных ACE (см. Наследование разрешений), но не предоставляет никаких специальных разрешений группе.

    Оценка списков управления доступом

    Каждый ACE в ACL либо разрешает, либо запрещает некоторый набор разрешений.Очень важно понимать, что запрещающий ACE — это не то же самое, что отсутствие разрешающего ACE. Скорее, система оценивает ACE последовательно до тех пор, пока не будут разрешены все запрошенные разрешения или не будет отклонено любое запрошенное разрешение. Запрос на авторизацию включает учетные данные (которые идентифицируют запрашивающий объект) и разрешения, необходимые для операции. macOS 10.4 и более поздних версий оценивает разрешения, используя следующий алгоритм (также см. Наследование разрешений для обсуждения унаследованных разрешений):

    1. Если запрошенные разрешения изменят объект, и файловая система доступна только для чтения или объект помечен как неизменяемый, операция отклоняется.

    2. Если объект, отправляющий запрос, является пользователем root, операция разрешена.

    3. Если сущность, отправляющая запрос, является владельцем объекта, запрашивающей стороне предоставляются права доступа на чтение и запись. Если этого достаточно для удовлетворения запроса, операция разрешена.

    4. Если у объекта есть ACL, ACE сканируются по порядку. (Те, у кого есть отрицательные ассоциации, обычно помещаются перед теми, у кого есть разрешающие ассоциации.) Каждый ACE оценивается в соответствии со следующими критериями, пока не будет отказано в требуемом разрешении, будут разрешены все требуемые разрешения или пока не будет достигнут конец ACL:

      1. ACE проверяется на применимость. ACE не считается применимым, если он не относится ни к одному из запрошенных разрешений. Кроме того, запрашивающий объект должен быть таким же, как объект, указанный в ACE, или запрашивающий должен быть членом группы, указанной в ACE. (Группы могут быть вложенными, и для разрешения членства в группах может использоваться внешняя служба каталогов.) Неприменимые ACE игнорируются.

      2. Если ACE отклоняет любое из запрошенных разрешений, запрос отклоняется. (Обратите внимание, что разрешения на чтение и запись предоставляются владельцу объекта, независимо от того, разрешены они или запрещены ACE.)

      3. Если ACE разрешает любое из запрошенных разрешений, система добавляет это разрешение в список предоставленных разрешений. . Если предоставленные разрешения включают все запрошенные разрешения, запрос разрешается, и процесс останавливается.Если список не полный, система переходит к проверке следующего ACE.

    5. Если достигается конец ACL без нахождения всех необходимых разрешений, и если объект также имеет разрешения BSD, то система проверяет неудовлетворенные разрешения на соответствие разрешениям BSD. Если их достаточно для предоставления всех необходимых разрешений, запрос разрешен. Если запрошенное разрешение не имеет эквивалента BSD (например, «принять владение»), то оно считается все еще невыполненным, и запрос отклоняется.

    6. Если объект файловой системы не имеет ACL, то разрешения оцениваются в соответствии с политиками безопасности BSD, как описано в разделе «Разрешения UNIX» и «Флаги файлов BSD».

    Учетные данные запрашивающего объекта эквивалентны эффективному UID (то есть EUID) программы, пытающейся открыть или выполнить файл. EUID обычно совпадает с UID пользователя или процесса, который выполняет процесс., Но он может отличаться в особых обстоятельствах (включая бит setuid), как описано в Политике безопасности владельца или root.

    Наследование разрешений

    Разрешения BSD назначаются только для каждого файла, поэтому разрешения, назначенные каталогу, не влияют на разрешения нового файла или подкаталога, созданного в этом каталоге. Хотя вы можете применить разрешения каталога к вложенным элементам, это будет разовая операция. Никакие вновь созданные файлы или подкаталоги не затрагиваются — они создаются с разрешениями по умолчанию.

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

    • Inherited (этот ACE был унаследован)

    • File Inherit (этот ACE должен наследоваться файлами, созданными в этом каталоге)

    • Directory Inherit (этот ACE должен наследоваться каталогами, созданными в этом каталоге)

    • Inherit Only (этот ACE не должен проверяться во время авторизации)

    • No Propagate Inherit (этот ACE должен наследоваться только прямыми дочерними элементами; то есть , ACE должен потерять все биты наследования каталога или файла при наследовании)

    Когда он создает новый файл, ядро ​​просматривает весь список управления доступом родительского каталога и копирует в ACL файла все отмеченные ACE для наследования файлов.Точно так же, когда он создает новый подкаталог, ядро ​​копирует в ACL подкаталога любые ACE, отмеченные для наследования каталога.

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

    В BSD применение разрешений каталога к вложенным файлам и подкаталогам полностью заменяет разрешения вложенных объектов.С ACL, напротив, унаследованные ACE добавляются к другим ACE, уже находящимся в файле или каталоге.

    Порядок, в котором ACE помещаются в ACL — и, следовательно, порядок, в котором они оцениваются для определения разрешений — следующий:

    1. Явно указанные ассоциации запрета

    2. Явно указанные разрешающие ассоциации

    3. Унаследованные ассоциации в том же порядке, в котором они появились в родительском

    Таким образом, любые явно указанные ACE имеют приоритет над всеми унаследованными ACE.Дополнительные сведения о том, как оцениваются записи ACE, см. В разделе Оценка списков управления доступом.

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

    Для программистов приложений автоматическое наследование ACE значительно упрощает работу с правами доступа к файлам. Вам не нужно создавать ACL каждый раз, когда вы создаете новый файл. Вам также не нужно поддерживать унаследованные ACE при сохранении файлов. Вместо этого ядро ​​автоматически создает ACL для каждого нового файла, используя унаследованные ACE.

    Обратите внимание, что ACL не влияют на назначение и наследование разрешений BSD. Если ACL не поддерживаются, используются разрешения BSD. Для получения дополнительной информации о способе оценки разрешений, когда установлены и ACL, и разрешения BSD, см. Схемы безопасности.

    В macOS Server 10.4 администратор сервера может выполнять следующие операции:

    • Копировать права доступа из родительского каталога ко всем файлам и каталогам ниже него в иерархии. Это делает разрешения единообразными в дереве каталогов и должно использоваться только для разрешений BSD.

    • Распространить разрешения из родительского каталога на все файлы и каталоги ниже него в иерархии. В этом случае явно указанные ACE не изменяются, а ACE, унаследованные от них, не меняются. Файлы и подкаталоги наследуют ACE, как если бы они были вновь созданы на месте в каталогах, в которых явно указаны ACE, как показано на рисунке B-1.

    • Применить наследование от родительского каталога к определенному каталогу или файлу.

    • Сделать унаследованные ACE в каталогах явными.

    • Удалите все ACE из каталогов и файлов.

    • Включение или отключение списков ACL для тома.

    Графический интерфейс сервера не может напрямую управлять ACE файлов. В Finder нет графического интерфейса для установки или изменения ACE. ACE можно читать и устанавливать как на сервере, так и на клиенте с помощью инструментов командной строки ls и chmod .

    Рисунок B-1 Распространение разрешений: начальное состояние Рисунок B-2 Распространение разрешений: распространение изменений
    Разрешения UNIX

    Каждый объект файловой системы имеет набор разрешений UNIX, определяемых тремя атрибутами:

    • UID, short для идентификатора пользователя.Обычно именуется владельцем файла .

    • GID, сокращение от идентификатора группы.

    • Флаги, которые включают биты разрешений и другие связанные атрибуты.

    Флаги для файла или каталога представляют собой 16-битное значение, которое часто представляется в виде трех- или четырехзначного восьмеричного числа (с отброшенными верхними четырьмя или семью битами):

    • Биты 12– 15: Флаги, указывающие тип файла. Эти биты неизменяемы и опускаются при представлении разрешений.

    • Биты 9–11: Биты специальных разрешений, описанные в таблице B-4. Обычно 0; может быть опущен, если не установлен.

    • Биты 6–8: биты прав владельца. Эти биты ограничивают доступ для любого процесса, чей эффективный идентификатор пользователя (EUID) равен UID файла или каталога).

      Эти биты имеют наивысший приоритет.

    • Биты 3–5: Групповые биты прав. Эти биты ограничивают доступ для любого процесса с эффективным идентификатором группы (EGID), совпадающим с GID файла или каталога.

      Эти права , а не , применяются к любому процессу, EUID которого совпадает с UID файла или каталога. Эти биты имеют более низкий приоритет, чем права владельца, но более высокий приоритет, чем другие права.

    • Биты 0–2: другие биты прав. Эти биты применяются к любому процессу, который не соответствует ни UID, ни GID файла или каталога.

    Наборы битов «Владелец», «Группа» и «Другой» содержат три бита: чтение, запись, выполнение (для краткости rwx ).Действие этих битов различается для файлов и каталогов, как показано в Таблице B-3.

    Таблица B-2 Биты прав доступа к файлам с использованием списков контроля доступа

    Бит

    Файл

    Директория

    чтение

    запись

    Открыть файл для записи

    Добавить запись файла в каталог

    выполнить

    Выполнить файл

    удалить

    Удалить файл

    Удалить каталог

    добавить

    Добавить в каталог

    удалить дочерний 900 05

    Удалить запись файла или подкаталога из каталога

    Атрибуты чтения

    Чтение базовых атрибутов

    Чтение базовых атрибутов

    Запись базовых атрибутов

    Запись базовых атрибутов

    Расширенное чтение

    Расширенное чтение (именованных) атрибутов

    Расширенное чтение (именованных) атрибутов

    Запись расширенных (именованных) атрибутов

    Запись расширенных (именованных) атрибутов

    разрешений на чтение

    Разрешения на чтение файлов (ACL)

    Разрешения на чтение каталога (ACL)
    05

    разрешение на запись sions

    Разрешения на запись файла (ACL)

    Разрешения на запись в каталог (ACL)

    стать владельцем

    Стать владельцем

    Получить право собственности
    05

    Может обрабатывать файл как программу для запуска

    Таблица B-3 Биты прав доступа к файлам в BSD

    Бит

    Файл

    Каталог

    чтение

    Можно открыть файл для чтения

    Может открыть файл

    список содержимого каталога

    запись

    Может открывать файл для записи

    Может изменять содержимое каталога (перемещать, переименовывать или удалять вложенные файлы или каталоги)

    выполнить

    Может выполнять поиск в каталоге (для доступа к файлам или каталогам внутри него)

    В дополнение к r , w и x бит, каждый Объект файловой системы также имеет три вспомогательных бита разрешения: setuid , setgid и sticky .

    для
    Таблица B-4 Биты специальных разрешений файловой системы

    Бит

    Файл

    Каталог

    setuid

    при выполнении EUID результирующего процесса устанавливается на UID файла вместо EUID родительского процесса.

    RUID результирующего процесса по-прежнему устанавливается равным EUID родительского процесса, как обычно.

    Этот флаг не действует для интерпретируемых сценариев или неисполняемых файлов.

    UID любого файла или каталога, созданного в каталоге, устанавливается равным UID каталога.

    setgid

    Для двоичного исполняемого файла при выполнении EGID результирующего процесса устанавливается на GID файла вместо EGID родительского процесса.

    RGID результирующего процесса по-прежнему устанавливается равным EGID родительского процесса, как обычно.

    Этот флаг не действует для интерпретируемых сценариев или неисполняемых файлов.

    GID любого файла или каталога, созданного в каталоге, устанавливается равным GID каталога.

    липкий

    Не работает в macOS.

    Для переносимости вам следует избегать установки этого бита, поскольку он действует в других вариантах UNIX.

    Ограничивает удаление вложенных файлов или каталогов следующими тремя пользователями:

    Например, если владельцем двоичного исполняемого файла является пользователь root и установлен бит setuid, программа всегда запускается с EUID 0.Поскольку такая программа запускается с привилегиями root при запуске кем-то, кроме root , она может создать уязвимость в системе безопасности. Поэтому важно ограничить создание и использование программ setuid и setgid.

    Пользователь может изменять права доступа только к файлам, принадлежащим этому пользователю.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *