русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-27; просмотров: 948; Нарушение авторских прав


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

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

Linux VFS спроектирована по объектно-ориентированным принципам и использует набор определений, задающий структуру файлов. Системные структуры inode-objectи file-objectпредставляют отдельные файлы. Объект file system objectпредставляет файловую систему в целом. Существует уровень абстракции для манипулирования этими объектами.

Файловая система Ext2fs– основная файловая системы Linux. Она использует механизм, сходный с UNIX BSD Fast File System (ffs)для поиска блоков данных, принадлежащих некоторому файлу.

Основные различия между ext2fsи ffsкасаются их политик распределения дисковой памяти.

В системе ffsдиск делится на файлы, состоящие из блоков по 8Kb, а блоки разбиваются на фрагменты по 1Kb для хранения маленьких файлов или частично заполненных блоков в конце файла.

Система Ext2fs не использует фрагменты; она распределяет память более мелкими единицами. Размер блока по умолчанию в ext2fs-1Kb, хотя блоки в 2Kb и 4Kb также поддерживаются.

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

Структурная схема системы файлов Ext2fs показана в таблица 2.

Таблица 2. Структурная схема системы файлов Ext2fs в Linux
Суперблок (Superblock)
Описани группы блоков (Group Descriptors)
Битовая карта блоков (Block Bitmap)
Битовая карта индексных дескрипторов (Inode Bitmap)
Таблица индексных дескрипторов (Inode Table)
Данные (Data)

Группы блоков в Ext2fs.Все блоки ext2 разделяются на группы блоков. Для каждой группы блоков создается отдельная запись в глобальной дескрипторной таблице, в этой записи хранятся основные параметры:



  • номер блока битовый карты блоков
  • номер блока битовой карты inode
  • номер блока таблицы inode
  • число свободных блоков в группе
  • число inode, содержащих каталоги.

Битовая карта блоков— это структура, каждый бит которой показывает, отведён ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Аналогичную функцию выполняет битовая карта индексных дескрипторов, показывая какие именно индексные дескрипторы заняты, а какие нет. Ядро Linux, используя число inode, содержащих каталоги, пытается равномерно распределить inode каталогов по группам, а inode файлов помещает, если это возможно, в группу с родительским каталогом.

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

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

Файловая система ext2 использует следующую схему адресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байтов.

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

Таким образом, 13-й элемент адреса используется для косвенной адресации. При максимальном размере блока, равном 4096 байтов, 13-й элемент может содержать до 1024 номеров следующих кластеров данных файла. Если размер файла превышает 12+1024 блоков, то используется 14-е поле, в котором находится номер блока, содержащего 1024 номеров блоков, каждый из которых хранят 1024 номеров блоков данных файла. Здесь применяется уже двойная косвенная адресация. И, наконец, если файл включает более 12+1024+1048576 = 1049612 блоков, то используется последнее 15-е поле для тройной косвенной адресации.

Таким образом, описанная выше система адресации, позволяет при максимальном размере блока 4 Кб иметь файлы размера до 2 терабайт или больше.

Схема адресации файлов в системе Ext2fs изображена на рис. 1.3.

 

Рис. 1.3. Адресация файлов в системе Ext2fs.

Принципы размещения блоков в системе Ext2fs иллюстрируются на рис. 1.4.

 

Рис. 1.4. Принципы размещения блоков в системе Ext2fs.

Файловая система Linux Proc.Файловая система procне хранит данные; вместо этого, их содержимое вычисляется по требованию, в соответствии с пользовательскими запросами на ввод-вывод.

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

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



<== предыдущая лекция | следующая лекция ==>
Исполнение и загрузка пользовательских программ в Linux | Ввод и вывод в Linux


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.233 сек.