- •Введение
- •Понятие операционной системы. Типы операционных систем
- •Функции операционной системы
- •Структура операционной системы. Ос ms dos
- •Файлы и каталоги на дисках
- •Драйверы устройств
- •Базовая система ввода-вывода (bios)
- •Загрузчик операционной системы
- •Ядро ms dos
- •Командный процессор dos
- •Внешние команды dos
- •Файловая структура диска
- •Стартовый сектор
- •Каталоги
- •Область данных
- •Операционные системы Windows
- •Выбор платформы Windows
- •Термины
- •Архитектура Windows Режимы выполнения программного кода
- •Многозадачность
- •Управление памятью в Windows
- •Выполнение приложений
- •Интерфейс прикладного программирования Win32
- •Реестр Windows
- •Операционная система unix
- •Ядро и процессы unix
- •Диспетчер unix
- •Процессы unix
- •Дескриптор и контекст процесса
- •Иерархия процессов
- •Идентификаторы процесса
- •Группы процессов
- •Взаимодействие процессов
- •Процессы-«демоны»
- •Межпроцессные коммуникации unix
- •Сигналы
- •Сигналы unix по мере возрастания их значений:
- •Семафоры
- •Программные каналы (Pipes)
- •Очереди сообщений
- •Разделяемая память
- •Многопользовательская защита в unix
- •Идентификаторы пользователя и группы
- •Код защиты файла
- •Привилегированный пользователь
- •Эффективные и реальные идентификаторы
- •Свопинг и пейджинг в unix
- •Буфер кеш-памяти
- •Управление вводом/выводом
- •Специальные файлы
- •Взаимодействие драйверов с программной и аппаратной средой
- •Файловая система unix
- •Основные системные каталоги
- •Корневой каталог /
- •Каталог /var
- •Каталог /etc
- •Каталог /usr
- •Каталог /home (/export/home)
- •Каталог/opt (/opti, /opt2, ... /optn)
- •Команды управления swap
- •Команда mkfile
- •Специальные файлы
- •Класс устройства
- •Тип и номер
- •Связь физической и логической структур
- •Создание и монтирование файловой системы
- •Дисковые устройства в unix
- •Внутренняя структура файловой системы Распределение дискового пространства
- •Индексные дескрипторы
- •Системные вызовы unix для работы с файлами
- •Стандартные библиотечные функции ввода/вывода
- •Поточные функции ввода/вывода
- •Литература
- •Оглавление
-
Дисковые устройства в unix
Дисковые устройства в UNIX имеют несколько странные обозначения и иногда непонятны пользователям, воспитанным в мире MS DOS и Windows. Но дело в том, что в UNIX пользователь никогда не сталкивается с проблемой точного указания физического устройства, на котором располагается информация. Вместо этого пользователь имеет дело только с именем каталога, в котором находятся нужные ему файлы.
Существуют директории dsk и rdsk, которые содержат файлы, соответствующие дисковым устройствам. Обычно имена файлов в этих директориях одинаковы, и единственная разница между нимив том, что директория rdsk содержит дисковые устройства со специальным доступом (raw), который используют некоторые устройства системы для более быстрого доступа к диску.
$ls/dev/dsk – просмотр содержимого директории.
В системе UNIX дисковые устройства логически разделены на секции, подобно тому как в MS DOS могут существовать логические диски.
Файлы 0s0, 0s1, 0s2 и т. д. соответствуют секциям одна, две, три и т. д. диска с номером 0. Файлы 1s0, 1s1, 1s2 и т. д. соответствуют секциям одна, две, три и т. д. диска с номером 1.
Если система имеет больше дисков, секции будут пронумерованы ns0, ns2 и т.д. для каждого диска с номером n. Системы с большим количеством дисковых устройств придерживаются следующей системы нумерации:
с controller d disk s section
где controller - номер контроллера диска; disk - номер диска; section - номер секции диска. Так, 0s0 обычно эквивалентно c0t0d0s0, 0s1 - c0t0d0s1, и трехсимвольные имена секций - это просто сокращение для дискового контроллера с номером 0.
Файлы, чьи имена начинаются с f, определяют различные виды флоппи-дисковых устройств: f0, f03d, f03dt, f03h, f03ht, f05ht, f1, f13d и т.д. Каталог rmt содержит файлы на устройствах типа магнитной ленты:
$ Is /dev/rmt
c0s0 с1s0 c3s0 ntape ntape1 tape tape1
Файлы c0s0, с1s0, c2s0 и c3s0 определяют 4 кассетных ленточных запоминающих устройства. Файлы tape и tape1 определяют магнитные запоминающие устройства с двумя бобинами. Файлы, чьи имена начинаются с n, относятся к тем же устройствам, только лента не перематывается после использования, в то время как использование других файлов заставляет ленту перематываться после окончания работы программы.
В некоторых системах UNIX эти файлы имеют другие названия, однако важно то, что все они всегда находятся в /dev и словарь, который обычно приходит с системой, содержит подробное описание устройств и связанных с ними файлов.
-
Внутренняя структура файловой системы Распределение дискового пространства
Рассмотрим структуру файловой системы на диске. Первый блок файловой системы - это блок начальной загрузки. Если носитель допускает начальную загрузку, то этот блок содержит короткую рограмму-загрузчик. С помощью средств загрузчика ядро ОС размещается памяти и получает управление.
Например, для машин серии 300/400 Hewlett Packard область загрузки занимает 8 Кбайт и содержит следующую информацию:
Volume Header 256 bytes
Unused 256 bytes
Volume Directory lnformation 256 bytes
Bootstrap Program 7.25 Kbytes
Volume directory information содержит 3 имени: SYSHPUX, SYSBCKUP и SYSDEBUG. SYSHPUX соответствует файлу /hp-ux, который, собственно, и есть ядро. SYSBCKUP соответствует /sysbckup, который используется при сохранении системы. SYSDEBUG соответствует файлу /sysdebug, который используется при написании драйверов.
Последние 7,25 Кбайт области загрузки содержат так называемый вторичный загрузчик (secondary loader). Boot ROM загружает и передает управление вторичному загрузчику, который по желанию пользователя может загрузить любой из трех перечисленных файлов, содержащих ядро ОС.
Второй блок или, лучше сказать, область на диске, также длиной в 8 Кбайт, занимает суперблок, который содержит заголовок файловой системы и основную информацию о ней, включающую размер, число свободных блоков, число индексных дескрипторов и другую информацию. При монтировании файловой системы по команде mount в таблице смонтированных систем, расположенной в ядре, формируется соответствующий элемент, а суперблок записывается в один из больших внутренних буферов ядра. Система работает с суперблоком для поиска и обновления списка свободных и занятых блоков на диске.
Далее дисковое пространство, отведенное под файловую систему, занимают блоки, объединенные в так называемый i-список (i-nodes), или список индексных дескрипторов.