
- •Введение
- •Что такое файл?
- •Метки даты и времени
- •Доступ к файлам
- •Регулярные файлы и каталоги Регулярные файлы
- •Каталоги
- •Операции с каталогами
- •Чтение элементов каталога
- •Экстенты
- •Где хранятся экстенты
- •Увеличение файлов
- •Связи и индексные дескрипторы (inodes)
- •Удаление связей
- •Связи каталога
- •Символические связи
- •Программные каналы (pipes) и fifo Программные каналы (pipes)
- •Производительность Менеджера файловой системы
- •Лифтовый поиск
- •Многопотоковая обработка
- •Клиент-управляемый приоритет
- •Временные файлы
- •Псевдодиски
- •Надежность файловой системы
- •Восстановление файловой системы
- •Работа с дисками
- •Диски и дисковые подсистемы
- •Разделы ос
- •Определение блок-ориентированный файлов
- •Монтирование файловой системы
- •Битовая карта
- •Корневой каталог
- •Менеджер файловой системы dos
- •Файловая система cd-rom
- •Файловая система флэш
- •Ограничения
- •Восстановление свободного пространства
- •Сжатие и распаковка
- •Доступ к файлам
- •Монтирование
- •Доступ на низком уровне
- •Файловая система nfs
- •Файловая система smb
- •Менеджер устройств
- •Введение
- •Обслуживание устройств
- •Режим редактируемого ввода
- •Режим необрабатываемого ввода
- •Драйверы устройств
- •Управление устройствами
- •Консоль qnx
- •Функции, специфичные для консоли
- •Последовательные устройства
- •Параллельные устройства
- •Производительность подсистемы устройств
- •Менеджер сети
- •Введение
- •Обязанности Менеджера сети
- •Независимый модуль
- •Интерфейс Микроядро/Менеджер сети
- •Посылка сообщения на удаленный узел
- •Получение сообщения с удаленного узла
- •Сетевые драйверы
- •Идентификаторы узла и сети
- •Физический id узла
- •Логический id узла
- •Логический id сети
- •Выбор сети
- •Распределение нагрузки
- •Отказоустойчивость
- •Мосты между сетями qnx
- •Сеть tcp/ip
- •Менеджер tcp/ip
- •Сокет api
- •Возможность взаимодействия сетей
- •Оконная система Photon microGui
- •Графическое микроядро
- •Пространство событий Photon
- •Регионы
- •События
- •Графические драйверы
- •Несколько графических драйверов
- •Цветовая модель
- •Масштабируемые шрифты
- •Наборы шрифтов Основной латинский набор
- •Расширенный латинский набор
- •Поддерживаемые языки
- •Дополнительные языковые пакеты
- •Многоязычная поддержка Unicode
- •Поддержка анимации
- •Поддержка печати
- •Менеджер окон Photon
- •Библиотека виджетов
- •Виджет Панель (PtPane)
- •Виджет Группа (PtGroup)
- •Виджет Область прокрутки (PtScrollArea)
- •Виджет Дерево (PtTree)
- •Виджеты Терминал (PtTty, PtTerminal)
- •Виджет Делитель (PtDivider)
Определение блок-ориентированный файлов
Имена всех блок-ориентированных файлов помещаются в дерево префиксов того компьютера, на котором расположены блок-ориентированные файлы (дерево префиксов рассматривается в главе "Пространство имен ввода/вывода"). Когда запускается драйвер контроллера дисков, Менеджер файловой системы автоматически регистрирует префиксы, которые определяют блок-ориентированный файл для каждого физического диска, подключенного к контроллеру. Утилита mount используется для того, чтобы зарегистрировать префикс для блок-ориентированного файла для каждого раздела на диске.
Пусть, например, у вас имеется стандартный контроллер Western Digital, к которому подключены два диска. На одном диске вы хотите смонтировать раздел DOS, раздел QNX и раздел UNIX. На другом диске вы хотите смонтировать раздел DOS и раздел QNX.
Менеджер файловой системы определит блок-ориентированные файлы /dev/hd0 и /dev/hd1 для двух дисков, подключенных к контроллеру.
Затем вы используете утилиту mount, чтобы определить блок-ориентированный файл для каждого раздела. Например:
mount -p /dev/hd0 -p /dev/hd1
определит следующие блок-ориентированные файлы:
Раздел ОС: |
Блок-ориентированный файл |
Раздел DOS на диске hd0 |
/dev/hd0t4 |
Раздел QNX на диске hd0 |
/dev/hd0t77 |
Раздел UNIX на диске hd0 |
/dev/hd0t99 |
Раздел DOS на диске hd1 |
/dev/hd1t4 |
Раздел QNX на диске hd1 |
/dev/hd1t77 |
Заметьте, что обозначение tn используется для обозначения разделов на диске, используемых определенными операционными системами. Например, раздел DOS обозначается t4, раздел UNIX - это t99 и т.д.
Монтирование файловой системы
Обычно файловая система QNX монтируется на блок-ориентированном файле. Для этого вы снова используете утилиту mount - она позволяет задать префикс, который идентифицирует файловую систему. Например:
mount /dev/hd0t77 /
монтирует файловую систему с префиксом / на разделе, который определен блок-ориентированным файлом с именем hd0t77.
|
Если диск разбит на разделы, то вы должны смонтировать блок-ориентированный файл для раздела QNX 4.x (например /dev/hd0t77), а не основной блок-ориентированный файл, который определяет весь диск (например, /dev/hd0). Если вы попытаетесь смонтировать основной блок-ориентированный файл для всего диска, то при попытке доступа к файловой системе получите сообщение "corrupt filesystem" (поврежденная файловая система). |
Демонтирование файловой системы
Чтобы демонтировать файловую систему, используйте утилиту umount. Так, например, следующая команда демонтирует файловую систему на первичном разделе QNX:
umount /dev/hd0t77
После того, как файловая система демонтирована, файлы в этом разделе уже не доступны.
Ключевые компоненты раздела QNX
В начале каждого раздела QNX располагаются следующие ключевые компоненты:
блок загрузчика;
корневой блок;
битовая карта;
корневой каталог.
Эти структуры создаются при инициализации файловой системы утилитой dinit.
Структура файловой системы QNX внутри раздела диска
Блок загрузчика
Это первый физический блок раздела диска. Этот блок содержит код, который загружается и затем исполняется BIOS компьютера для загрузки операционной системы из раздела. Если диск не разбит на разделы (например, гибкий диск), этот блок является первым физическим блоком на диске.
Корневой блок
Корневой блок имеет ту же структуру, что и обычный каталог. Он содержит информацию о четырех особых файлах:
корневой каталог файловой системы (/)
файл /.inodes
файл /.boot
файл /.altboot
Файлы /.boot и /.altboot содержат образы операционной системы, которые загружаются программой начальной загрузки QNX.
Обычно загрузчик QNX загружает образ ОС, хранящийся в файле /.boot. Но если файл /.altboot не пуст, то вам будет предложена опция загрузки образа, хранящегося в файле /.altboot.