8783

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

Доклад

Информатика, кибернетика и программирование

Файловая система UNIX. Одними из базовых принципов UNIX являются: представление всех объектов, включая устройства, как файлов взаимодействие с файловыми системами разных типов, в том числе NFS. Сетевая файловая система NF...

Русский

2013-02-17

57.5 KB

3 чел.

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

Одними из базовых принципов UNIX являются [6, с. 652-660]:

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

Сетевая файловая система NFS (Network File System) и соответствующий протокол были разработаны компанией Sun Microsystems для использования дискового пространства в сетевой среде. Отличительной особенностью действия NFS является отсутствие сохранения состояния, т.е. любое взаимодействие между клиентом и сервером не использует информацию о предыдущих сеансах. Компания Sun опубликовала (в Internet) спецификацию NFS, что позволило устранить конфликты монтирования в другие файловые системы, в том числе и UFS.

Файловая система UFS (UNIX File System) произошла от s5 – файловой системы SVr4 и имеет иерархическую древовидную структуру, содержащую файлы следующих типов:

«d» – директории (каталоги, справочники)  «-» - обычные файлы

«|» - символьные связи (каналы)    «b» - блочные файлы (конвеер “.bat”)

«с» - специальные символьные файла (устройства)

Важным в UFS являются понятия корневого, рабочего и текущего директориев. Корневой директорий обозначается «/» и является корнем перевёрнутого дерева UFS. Текущий директорий обозначается «.» и используется для относительной адресации в запущенных из него программах. Выше лежащий каталог (родительский) обозначается «..». Для каждого пользователя устанавливается его личный каталог, называемый рабочим.

Любая файловая система может быть встроена (смонтирована) в любое место дерева UFS. Например, как это показано на рис.

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

В дискрипторе хранится:

  •  Тип файла
  •  Идентификатор владельца и его группы
  •  Список прав доступа, которым относится: «-» - отсутствие каких-либо прав, «r» - право на чтение, «w» - право на запись, «х» - право на выполнение (запуск). Права определяются: для владельца файла, группы владельца и всех прочих.
  •  Время создания, время последних обновления и доступа к файлу
  •  Счётчик ссылок на узел
  •  Адреса блоков файла, адреса списков блоков файла в других дискрипторах (косвенно заданные блоки), адреса косвенно заданных блоков файла в других дискрипторах (дважды косвенно заданные блоки), трижды косвенно заданные блоки и т.д.

Например, полная информация о директории bin, выведенная командой ls, выглядит как -

d rwx  --x    r–x 3 admin admins 96 Oct 27 08:16 bin

│ │ │       │  │ │ │    │    │    │ └→ имя

дире-й┘ │ │       │  │ │ │    │    │    └→ время последнего изменения/создания

права вл.┘ │       │  │ │ │    │    └→ дата последнего изменения/создания

права гр. вл.  ┘       │  │ │ │    └→ размер в байтах

         │  │ │ └→ группа владельца

         │  │ └→ имя владельца

         │  └→ число связей (количество поддиректориев + 2)

         └→ права всех прочих пользователей

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

Интерес представляет организация данных на жестком диске. Все данные хранятся блоками, состоящими из слов по 64 байта каждое.

Блок 0 Boot

Блок 1 Суперблок

Блоки с 2 по N

Дискрипторы

Блоки с N+1

Данные

Суперблок

Загрузочный блок 0 (boot) содержит загрузочную информацию и, строго говоря, не относится к файловой системе.

Суперблок 1 хранит служебную информацию –

  •  Размер блока в 64 байтовых словах
  •  Общее число блоков
  •  Количество свободных блоков
  •  Список свободных блоков с их физическими адресами
  •  Общее число блоков дискрипторов (N-2)
  •  Количество свободных блоков дискрипторов
  •  Список свободных блоков дискрипторов
  •  Флаги для синхронизации доступа к свободным блокам

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

В блоках данных (с N+1) хранится как само содержимое файлов, так и списки свободных для записи блоков.


 

А также другие работы, которые могут Вас заинтересовать

4824. Создание первой программы на языке Turbo Pascal 184 KB
  Создание первой программы. Цель: Показать студентам пример создания программы. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимательности. Пл...
4825. Создание первой программы в языке Turbo Pascal 94.5 KB
  Создание первой программы. Цель: Показать студентам управление программой при помощи меню. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимат...
4826. Отладка программ на языке Pascal 185 KB
  Отладка программ Цель: Дать студентам понятие ошибки, причины их возникновения. Задачи: Воспитательная: любая программа несовершенна, всегда находятся ошибки, исправить которые требует время. Учебная: обнаруживать ошибки и вовремя исправлять их. Раз...
4827. Управляющие структуры Object Pascal 273.5 KB
  Управляющие структуры ObjectPascal. Цель: Повторение со студентами управляющих структур Pascal. Задачи: Воспитательная: необходимость повторения. Учебная: повторение управляющих структур и их применение в среде разработки ObjectPascal. Р...
4828. Символы и строки в среде разработки Object Pascal 80 KB
  Символы и строки. Цель: Повторение со студентами записи символов и строк. Задачи: Воспитательная: необходимость повторения. Учебная: повторение записи символов и строк в среде разработки ObjectPascal. Развивающая: развитие внимательности. План...
4829. Консольное приложение. Создание приложения под DOS 87.5 KB
  Консольное приложение. Цель: Создание консольного приложения. Задачи: Воспитательная: необходимость повторения. Учебная: создание приложения под DOS. Развивающая: развитие внимательности. План занятия. Организационный момент. Изучение но...
4830. Массивы. И работа с ними в языке Pascal 446.5 KB
  Массивы. Цель: Научить студентов использовать массивы при написании программы. Задачи: Воспитательная: необходимость повторения. Учебная: создание приложений для работы с массивами. Развивающая: развитие внимательности. План занятия. Организац...
4831. Процедуры и функции в программировании на языке Pascal 151 KB
  Процедуры и функции. Цель: Научить студентов избегать дублирования кода в программе. Задачи: Воспитательная: работа над собой. Учебная: создание приложений. Развивающая: развитие внимательности. План занятия. Организационный момент. Изуч...
4832. Создание приложений позволяющих сохранять результат в файле 160 KB
  Файлы. Цель: Научить студентов создавать приложения, позволяющие сохранять результаты работы в файле. Задачи: Воспитательная: работа над собой. Учебная: создание приложений. Развивающая: развитие внимательности. План занятия. Организационный м...