Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Файловая система
Файлы устройств в Solaris
Каждому физическому устройству в Solaris обязательно соответствует файл устройства. Файл устройства по сути – это указатель на область кода ядра, в которой находится драйвер устройства. Файлы устройств располагаются в каталоге /dev и его подкаталогах. Такое расположение является стандартным для всех систем UNIX. Однако на самом деле в Solaris все файлы в каталоге /dev являются символьными ссылками на "настоящие" файлы устройств, которые располагаются в подкаталогах каталога /devices. Там эти файлы сгруппированы по отношению к своему месту в конфигурации компьютера. Подробнее это рассмотрено ниже в разделе "каталог /devices". О символьных ссылках подробнее рассказано в "Устройство и администрирование файловой системы UFS" в разделе "ссылки".
Файлы устройств имеют специальные типы:
Вывод программы 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). Раздел – это группа расположенных рядом цилиндров. Смысл разделения диска на разделы состоит в том, чтобы:
- минимизировать расстояние, которое потребуется головке диска для считывания фрагментов одного файла;
- разделить данные разных типов, чтобы обезопасить системные данные от возможной порчи пользовательскими программами;
- зарезервировать под системные нужды достаточное пространство на диске так, чтобы несистемные файлы не могли его занять.
Жесткие диски
В Solaris на одном физическом жестком диске может быть до восьми разделов, которые принято нумеровать цифрами от 0 до 7.
Каждому разделу соответствует свой файл устройства в каталоге /dev/dsk. Пространство под разделы выделяется цилиндрами. Раздел однозначно определяется номерами начального и конечного цилиндров. В Solaris принята следующая концепция именования таких файлов устройств: в имени устройства учитываются номер контроллера, SCSI ID (target number), номер диска (LUN – logical unit number) и номер раздела на диске. Если это диск IDE, то роль SCSI ID играет пара master/slave (соответственно, 0/1). Для встроенных дисков SCSI и любых дисков IDE номер диска равен 0. Это иллюстрирует рис. 6.1.
Так, для системы с дисками SCSI /dev/dsk/c0t0d0s0 будет указывать на нулевой контроллер SCSI (c0), диск со SCSI ID 0 (t0), диск номер 0 на этом SCSI контроллере (d0), нулевой раздел на этом диске (s0).
Как показано на рис. 6.2, при создании файла устройства для раздела, который находится на IDE-диске, в названии файла учитываются номер адаптера IDE (как правило, в компьютерах x86 используют системные платы с одним адаптером, который поддерживает два канала IDE), номер канала (он кодируется как SCSI ID, как показано в табл. 6.1), номер диска (всегда d0) и номер раздела (первый раздел на диске – s0 и т.д., подобно разделам на SCSI дисках).
Сказанное выше о, именовании файлов устройств дисков IDE относится к системам на платформе SPARC. На платформе х86 файлы устройств, соответствующие разделам дисков IDE, именуются несколько иначе. Файлы, соответствующие разделам fdisk, обозначаются cNdMpK, где после с идет номер контроллера, после d – номер диска, а после p – номер раздела fdisk. На каждом из разделов fdisk может быть создано несколько подразделов (slices), если этот раздел fdisk является разделом типа solaris. Любой раздел fdisk имеет свой тип, который указывается в таблице Master Boot Record (MBR), где описаны все разделы fdisk диска.
По умолчанию при установке Solaris на IDE-диск на платформе x86 программа-установщик Solaris создает два раздела fdisk – загрузочный (примерно 20 Мб) с программой-загрузчиком и раздел, на котором будут находиться все остальные части системы, а также пользовательские файлы. Первый раздел fdisk имеет тип FAT, а второй – тип Solaris. На втором разделе создаются подразделы (slices). Они именуются подобно таким же разделам на дисках систем SPARC, но без указания SCSI ID: c0d0s0, c0d0s1 и т.д.
Каждому файлу в каталоге /dev/dsk соответствует файл устройства прямого доступа (raw disk) в каталоге /dev/rdsk:
# ls /dev/dsk c0d0p0 c0d0s1 c0d0s15 c0d0s7 c1t0d0p3 c1t0d0s12 c1t0d0s4 c0d0p1 c0d0s10 c0d0s2 c0d0s8 c1t0d0p4 c1t0d0s13 c1t0d0s5 c0d0p2 c0d0s11 c0d0s3 c0d0s9 c1t0d0s0 c1t0d0s14 c1t0d0s6 c0d0p3 c0d0s12 c0d0s4 c1t0d0p0 c1t0d0s1 c1t0d0s15 c1t0d0s7 c0d0p4 c0d0s13 c0d0s5 c1t0d0p1 c1t0d0s10 c1t0d0s2 c1t0d0s8 c0d0s0 c0d0s14 c0d0s6 c1t0d0p2 c1t0d0s11 c1t0d0s3 c1t0d0s9 # ls /dev/rdsk c0d0p0 c0d0s1 c0d0s15 c0d0s7 c1t0d0p3 c1t0d0s12 c1t0d0s4 c0d0p1 c0d0s10 c0d0s2 c0d0s8 c1t0d0p4 c1t0d0s13 c1t0d0s5 c0d0p2 c0d0s11 c0d0s3 c0d0s9 c1t0d0s0 c1t0d0s14 c1t0d0s6 c0d0p3 c0d0s12 c0d0s4 c1t0d0p0 c1t0d0s1 c1t0d0s15 c1t0d0s7 c0d0p4 c0d0s13 c0d0s5 c1t0d0p1 c1t0d0s10 c1t0d0s2 c1t0d0s8 c0d0s0 c0d0s14 c0d0s6 c1t0d0p2 c1t0d0s11 c1t0d0s3 c1t0d0s9
В Solaris принято, что раздел номер 2 (slice 2) представляет собой весь диск, т.е. является репрезентацией всего диска в целом, со всеми его разделами. Иначе говоря, на диске на самом деле может быть создано до 7 разделов, а восьмой (раздел 2) всегда охватывает все эти разделы вместе. Поэтому на разделе 2 нельзя создать файловую систему и записывать туда файлы: он служит для системных надобностей. В частности, в структурах, адресуемых через раздел 2, хранятся сведения о диске в целом: реальный размер, число цилиндров и т.п.
Говоря о разных типах имен устройств, можно рассмотреть пример именования разделов диска. Так, разделам SCSI-диска со SCSI ID, равным 6, присоединенному к нулевому контроллеру, будут соответствовать логические имена устройств (разделов диска) от /dev/dsk/c0t6d0s0 до /dev/dsk/c0t6d0s7, физические имена от /devices/pci@1f,0/pci@1,1/scsi@6/sd@0,0:a до /devices/pci@1f,0/pci@1,1/scsi@6/sd@0,0:g. При этом диску в целом будет соответствовать экземплярное имя sd6.
Приводы для CD- и DVD-дисков
Для того, чтобы узнать, какие приводы есть в вашей системе и какие имена им назначены, можно воспользоваться prtconf или cdrecord (последняя программа может не входить в поставку Solaris, но она доступна в исходных кодах в Сети). В нижеследующем примере видно, что в компьютере установлен один привод, и если вставить в него диск, то можно увидеть, что автомонтирование диска произойдет для устройства /dev/dsk/c1t0d0s2, что соответствует устройству с параметрами 1,0,0 из вывода cdrecord.
/opt/schily/bin/cdrecord -scanbus Cdrecord-ProDVD-ProBD-Clone 2.01.01a40 (i386-pc-solaris2.11) Copyright (C) 1995-2008 Jorg Schilling Warning: Using USCSI interface. Using libscg version 'schily-0.9'. scsibus1: 1,0,0 100) 'MATSHITA' 'DVD-RAM UJ-85JS ' 'F100' Removable CD-ROM 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) *
Каталог /devices
Каталог /devices отражает аппаратную конфигурацию компьютера. Дерево его подкаталогов строится в соответствии с реальными подключениями устройств к шинам и контроллерам. Поэтому для компьютеров различных архитектур структура дерева подкаталогов /devices будет разной. Содержание этих подкаталогов будет разным для разных компьютеров, даже если они имеют одинаковую архитектуру, потому что компьютеры могут иметь разную конфигурацию: неодинаковое количество жестких дисков, различные контроллеры интерфейсов (SCSI, IDE), по-разному подсоединенные к ним диски. Например, для компьютера x86 дерево может быть таким:
./pseudo ./isa ./isa/fdc@1,3f0 ./isa/i8042@1,60 ./pci@0,0 ./pci@0,0/pci8086,7191@1 ./pci@0,0/pci-ide@2,1/ide@0 ./pci@0,0/pci-ide@2,1/ide@1 ./pci@0,0/pci-ide@2,1
Это пример дерева подкаталогов каталога /devices Solaris, установленного на ноутбук IBM ThinkPad 390X.
Полный список всех устройств компьютера, с которыми система Solaris готова работать, содержится в файле /etc/path_to_inst.
Файл /etc/path_to_inst содержит соответствия физических имен устройств и номеров экземпляров устройств (тех, что называются minor номерами устройств). Чтобы эти соответсвия сохранялись от загрузки к загрузке, система записывает их в файл /etc/path_to_inst. Этот файл во время загрузки доступен только для чтения, он может быть изменен с помощью программ add_drv(1M) и drvconfig(1M).
Обычно системному администратору незачем изменять этот файл. Для просмотра полного списка устройств следует применять команду prtconf:
prtconf
Для просмотра списка устройств, фактически работающих в системе, используйте
prtconf | grep –v not
Это позволяет отфильтровать в выводе prtconf строки, содержащие слово "not", например, "device not attached". Более подробно об изменении аппаратной конфигурации и добавлении драйверов устройств рассказывается в лекции 2 курса "Системное администрирование ОС Solaris 10".