Выбрать главу

• floppy=message – указывает драйверу выводить информационные сообщения для некоторых дисковых операций.

Драйвер звуковой карты ( sound)

Драйвер звуковой карты также может принимать аргументы загрузки для изменения вкомпилированных в ядро значений. Делать этого не рекомендуется, поскольку в связи с отсутствием внятной документации такие действия сильно смахивают на шаманство. Намного надежнее использовать загружаемые модули.

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

sound=device1[,device2[,device3…]]

где каждое значение deviceN имеет формат 0xDTaaaId. Расшифруем формат deviceN:

• D – второй канал DMA (ноль не применяется);

• T – тип устройства (список звуковых карт до типа 26 находится в файле /usr/src/Linux-2.4.3/include/linux/soundcard.h, а от 27 до 999 – в файле /usr/src/Linux-2.4.3/drivers/soimd/dev_table.h.):

• 1=FM

• 2=SB

• 3=PAS

• 4=GUS

• 5=MPU401

• 6=SB16

• 7=SB16-MIDI

И т. д.;

• aaa – адрес ввода/вывода в шестнадцатеричном представлении;

• I – номер прерывания в шестнадцатеричном представлении;

• d – первый канал DMA.

Применение параметра загрузки sound=0 полностью запрещает драйвер звуковой карты.

Драйвер Bus Mouse (bmouse)

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

Драйвер MS Bus Mouse (msmouse)

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

Драйвер принтера ( lp)

Используя этот аргумент загрузки можно сообщить драйверу принтера, какие порты можно использовать, а какие – нет. Этот параметр удобен для запрета захвата драйвером принтера всех доступных параллельных портов.

Формат аргумента – несколько пар адресов ввода/вывода, прерываний. Например,

lр=0х3Ьс,0,0x378,7

Драйвер принтера будет использовать порт на 0x3Ьс без прерывания и порт 0x378 с седьмым прерыванием. Порт 0x278 (если он присутствует в компьютере) не будет использоваться, поскольку автоопределение выполняется при отсутствии аргумента lр=. Для полного отключения драйвера принтера можно использовать параметр lр=о.

Процесс init

После того как ядро Linux полностью загрузилось, считало конфигурационные параметры и настроило оборудование (по крайней мере то, которое упоминалось в конфигурационных параметрах, и то, драйверы которого присутствуют в ядре), оно приступает к монтированию разделов жесткого диска. Монтирование всегда начинается с корневой файловой системы. Как только корневая файловая система окажется загружена и смонтирована, будет выведено сообщение:

VFS: Mounted root (ext2 filesystem) readonly

В этой точке система находит на корневой файловой системе программу init и выполняет ее.

Процесс init – это программа, ответственная за продолжение процедуры загрузки и перевод операционной системы из начального состояния, возникающего после загрузки ядра, в стандартное состояние. Во время этого процесса init выполняет множество операций, необходимых для нормального функционирования операционной системы: монтирование и проверку файловых систем, запуск различных служб и т. п. Список производимых действий помимо конфигурации системы зависит от так называемого уровня выполнения (run level).

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

Точно так же разбиты уровни выполнения. Каждый уровень выполнения однозначно (по крайней мере, в пределах дистрибутива) определяет перечень действий, выполняемых процессом init, и конфигурацию запущенных процессов. К сожалению (а может, и к счастью) четкого разделения на уровни выполнения, их количество, действия, выполняемые на каждом уровне, нет. Так, в некоторых UNIX-системах уровней выполнения всего два. Некоторые дистрибутивы Linux таким же образом конфигурируют свою операционную систему (в дистрибутиве Slackware, например, два уровня выполнения). В других дистрибутивах (Red Hat Linux) уровней выполнения восемь. Поскольку эта книга базируется на дистрибутиве Red Hat, дальнейшее описание на нем и основано.

В операционной системе Linux существует восемь уровней выполнения:

• 0 – останов системы;

• 1 – однопользовательский режим для специальных случаев администрирования. Отсутствует поддержка сети, практически нет сервисов;