Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба1-Solaris.doc
Скачиваний:
5
Добавлен:
22.05.2015
Размер:
77.82 Кб
Скачать

Файлы устройств в Solaris

Каждому физическому устройству в Solaris обязательно соответствует файл устройства. Файл устройства по сути – это указатель на область кода ядра, в которой находится драйвер устройства. Файлы устройств располагаются в каталоге /dev и его подкаталогах. Такое расположение является стандартным для всех систем UNIX. Однако на самом деле в Solaris все файлы в каталоге /dev являются символьными ссылками на "настоящие" файлы устройств, которые располагаются в подкаталогах каталога /devices. Там эти файлы сгруппированы по отношению к своему месту в конфигурации компьютера.

Файлы устройств имеют специальные типы:

  • файл символьного устройства;

  • файл блочного устройства.

Вывод программы ls иллюстрирует это:

ls -l /devices/pseudo/
...
crw-rw-rw- 1 root sys 26, 0 Мар 17 10:56 ptsl@0:ttyp0
crw-rw-rw- 1 root sys 26, 1 Мар 17 10:56 ptsl@0:ttyp1
crw-rw-rw- 1 root sys 26, 2 Мар 17 10:56 ptsl@0:ttyp2
crw-rw-rw- 1 root sys 26, 3 Мар 17 10:56 ptsl@0:ttyp3
...
ls -l /devices/pci@0,0/pci-ide@7,1/ide@0
...
brw-r----- 1 root sys 102, 0 Мар 17 10:56 cmdk@0,0:a
crw-r----- 1 root sys 102, 0 Мар 17 10:56 cmdk@0,0:a,raw
brw-r----- 1 root sys 102, 1 Мар 24 21:19 cmdk@0,0:b
crw-r----- 1 root sys 102, 1 Мар 17 10:56 cmdk@0,0:b,raw
...

Файл устройства является псевдофайлом, он не размещен на диске, о нем есть только запись, которая используется при доступе к устройству. Первое число, которое стоит в поле длины файла в выводе программы ls для файлов устройств – это major номер, а второе, после запятой – minor номер. Первый из них означает номер типа устройств и одновременно – позицию в ядре, в которой следует искать драйвер устройства. Второй – номер экземпляра устройства данного типа. Поэтому файлы однотипных устройств в вышеприведенном выводе ls имеют одинаковые major номера.

Устройство каждого типа имеет свой major номер. Major номера назначаются автоматически программой add_drv. Соответствие имени драйвера и major номера определяется в файле /etc/name_to_major.

В Solaris все устройства имеют три имени разных типов: логическое имя, физическое имя и экземплярное имя.

Логические имена – это имена файлов устройств, которые хранятся в /dev.

Физические имена – это имена файлов устройств, хранящихся в /devices.

Экземплярные имена – это укороченные физические имена устройств, которые ядро назначает устройствам.

Ниже рассмотрен пример назначения всех перечисленных типов имен.

Файлы устройств для разделов дисков в Solaris

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

Жесткий диск принято делить на разделы (в Solaris их называют slices). Раздел – это группа расположенных рядом цилиндров. Смысл разделения диска на разделы состоит в том, чтобы:

  1. минимизировать расстояние, которое потребуется головке диска для считывания фрагментов одного файла;

  2. разделить данные разных типов, чтобы обезопасить системные данные от возможной порчи пользовательскими программами;

  3. зарезервировать под системные нужды достаточное пространство на диске так, чтобы несистемные файлы не могли его занять.