5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ

5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ

Уайнбергером было введено понятие «тип файловой системы» для объяснения механизма работы принадлежавшей ему сетевой файловой системы (см. краткое описание этого механизма в [Killian 84]) и в позднейшей версии системы V поддерживаются основополагающие принципы его схемы. Наличие типа файловой системы дает ядру возможность поддерживать одновременно множество файловых систем, таких как сетевые файловые системы (глава 13) или даже файловые системы из других операционных систем. Процессы пользуются для обращения к файлам обычными функциями системы UNIX, а ядро устанавливает соответствие между общим набором файловых операций и операциями, специфичными для каждого типа файловой системы.

Рисунок 5.34. Индексы для файловых систем различных типов

Индекс выступает интерфейсом между абстрактной файловой системой и отдельной файловой системой. Общая копия индекса в памяти содержит информацию, не зависящую от отдельной файловой системы, а также указатель на частный индекс файловой системы, который уже содержит информацию, специфичную для нее. Частный индекс файловой системы содержит такую информацию, как права доступа и расположение блоков, а общий индекс содержит номер устройства, номер индекса на диске, тип файла, размер, информацию о владельце и счетчик ссылок. Другая частная информация, описывающая отдельную файловую систему, содержится в суперблоке и структуре каталогов. На Рисунке 5.34 изображены таблица общих индексов в памяти и две таблицы частных индексов отдельных файловых систем, одна для структур файловой системы версии V, а другая для индекса удаленной (сетевой) системы. Предполагается, что последний индекс содержит достаточно информации для того, чтобы идентифицировать файл, находящийся в удаленной системе. У файловой системы может отсутствовать структура, подобная индексу; но исходный текст программ отдельной файловой системы позволяет создать объектный код, удовлетворяющий семантическим требованиям файловой системы UNIX и назначающий свой «индекс», который соответствует общему индексу, назначаемому ядром.

Файловая система каждого типа имеет некую структуру, в которой хранятся адреса функций, реализующих абстрактные действия. Когда ядру нужно обратиться к файлу, оно вызывает косвенную функцию в зависимости от типа файловой системы и абстрактного действия (см. Рисунок 5.34). Примерами абстрактных действий являются: открытие и закрытие файла, чтение и запись данных, возвращение индекса для компоненты имени файла (подобно namei и iget), освобождение индекса (подобно iput), коррекция индекса, проверка прав доступа, установка атрибутов файла (прав доступа к нему), а также монтирование и демонтирование файловых систем. В главе 13 будет проиллюстрировано использование системных абстракций при рассмотрении распределенной файловой системы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Настройка доступа к файловым ресурсам

Из книги Домашние и офисные сети под Vista и XP автора Ватаманюк Александр Иванович

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


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

Из книги Человеческий фактор в программировании автора Константин Ларри Л

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


Настройка доступа к файловым ресурсам

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


44 Абстрактные объекты

Из книги Идиомы и стили С++ автора Makhmutov Albert

44 Абстрактные объекты В фантастическом фильме «Темная звезда», являющемся классикой андеграунда, смелый лейтенант Дулитл пытается прочитать лекцию по феноменологии умной бомбе, готовой разнести себя вместе с кораблем. «Вселенная — это абстракция, — поспешно


5.2.7. Unix-соглашения по текстовым файловым форматам

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

5.2.7. Unix-соглашения по текстовым файловым форматам Существуют давние традиции Unix, определяющие вид текстовых форматов данных. Большинство из них происходит от одного или нескольких описанных выше стандартных метаформатов Unix. Разумно следовать данным соглашениям, если


1. Обработка обращения к NULL.

Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

1. Обработка обращения к NULL. Заменяем реализацию оператора -› на:T* operator-›() { if (!tObj) {  cerr ‹‹ "NULL";  tObj = new T; } return tObj;}илиT* operator-›() { if (!tObj) throw CError; return tObj;};Здесь CError класс исключения. Или втыкаем статический экземпляр-шпион.private: T* tObj; // Это было; static T* spy; // Это добавленоНу и сам


5.2.7. Unix-соглашения по текстовым файловым форматам

Из книги Цифровой журнал «Компьютерра» № 190 автора Журнал «Компьютерра»

5.2.7. Unix-соглашения по текстовым файловым форматам Существуют давние традиции Unix, определяющие вид текстовых форматов данных. Большинство из них происходит от одного или нескольких описанных выше стандартных метаформатов Unix. Разумно следовать данным соглашениям, если


Основные требования к системам туннелирования

Из книги Цифровой журнал «Компьютерра» № 191 автора Журнал «Компьютерра»

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


Банки и Сети: бурное распространение интернет-банкинга в России и растущие требования к информационным системам Михаил Ваннах

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Банки и Сети: бурное распространение интернет-банкинга в России и растущие требования к информационным системам Михаил Ваннах Опубликовано 09 сентября 2013 Четвёртым по значимости изобретением великого итальянского народа — после пасты,


Смартфоны в медицине: от справочников к диагностическим системам Андрей Васильков

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

Смартфоны в медицине: от справочников к диагностическим системам Андрей Васильков Опубликовано 16 сентября 2013 Получить квалифицированную медицинскую помощь зачастую трудно из-за необходимости посетить кабинет врача, сдать анализы и пройти


Создание команд для запроса к поисковым системам

Из книги Взрыв обучения: Девять правил эффективного виртуального класса автора Мердок Мэттью

Создание команд для запроса к поисковым системам И еще несколько слов об адресной строке. Вы часто пользуетесь такими поисковыми системами, как Rambler, Google или Yandex? И при этом вы сначала заходите на стартовую страницу поисковой системы, а потом уже указываете запрос для


Два простых правила обращения с цифровой камерой

Из книги Разработка ядра Linux автора Лав Роберт

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


Общий интерфейс к файловым системам

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

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


Абстрактные методы

Из книги автора

Абстрактные методы Методы, предназначенные для переопределения в подклассах, объявляются с ключевым словом abstract и называются абстрактными. Данные методы являются виртуальными, но ключевое слово virtual использовать не нужно. Например: type Shape = class private x,y: integer; public