Опубликован: 14.12.2004 | Уровень: для всех | Доступ: платный | ВУЗ: Компания ALT Linux
Лекция 12:

Досистемная начальная загрузка

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >

Задачи начальной загрузки ядра

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

Первым делом ядро занимается определением параметров вычислительной подсистемы компьютера: выясняет тип и быстродействие центрального процессора, объем оперативной памяти, объем и структуру кэш-памяти; делает предположение об архитектуре компьютера в целом и многое другое (см. [ 6 ] ). На основании полученных разведданных ядро вычисляет размеры внутренних таблиц, выставляет разные таймеры и счетчики, выбирает стратегию распределения памяти и вообще планирует будущую работу системы. Может случиться так, что одно и то же ядро не просто может работать на целом семействе компьютеров с похожей архитектурой, но и различает их, выбирая соответственно оптимизированные варианты основных процедур. Так поступают программы, которым действительно важно вычислительное быстродействие. Ядро системы - тоже такая программа, потому что любое обращение к системе идет через ядро, а значит, повышение быстродействия ядра поможет повысить быстродействие работы системы.

На следующем шаге ядро определяет состав и архитектуру всего аппаратного наполнения компьютера: тип и параметры шин передачи данных и устройств управления ими ( контроллеров ), список внешних устройств, доступных по шинам, настройки этих устройств - диапазон портов ввода/вывода, адрес ПЗУ, занимаемое аппаратное прерывание, номер канала прямого доступа к памяти и т. п. Старые устройства (например, работающие с шиной ISA архитектуры i386) не имели процедуры самодиагностики, и об их настройках приходилось или догадываться, или разглядывать положение микропереключателей на плате контроллера; в любом случае все настройки следовало заранее сообщать ядру (возможно, для этого требовалась пересборка). Более дорогие - или более новые - устройства получают эти настройки от более разумного контроллера шины (например, PCI в i386 или sbus в Sparc), он же и рассказывает ядру о том, какие именно найдены устройства и как он их настроил (подробнее об архитектуре вычислительных систем рассказано в [ 38 ] , а в [ 28 ] описана архитектура i386). На этой же стадии (причем в самом начале) определяется консоль системы - терминальная линия, на которую будет выводиться вся системная диагностика.

Эти две стадии называются процедурой самонастройки ядра (autoconfiguration). По окончании самонастройки UNIX уже хорошо представляет себе архитектуру компьютера и список важнейших внешних устройств. Ядро анализирует таблицы разбиения дисков и выбирает корневой раздел - файловую систему, содержащую будущий каталог / и его подкаталоги (для системной начальной загрузки очень важен каталог /etc и его содержимое, но не менее важны и /bin, и /sbin ). Корневой раздел задается настройками ядра (при сборке, загрузке или в сохраненных настройках). Корневой раздел монтируется в качестве / (подробнее о монтировании см. главу 13), и первым делом из файла /sbin/init запускается процесс init. Этот процесс всегда находится в таблице процессов, и PID его всегда равен 1; если он ни с того ни с сего завершится, система перезагрузится, потому что без него ей делать нечего: именно init запускает все остальные процессы.

Кстати, не все процессы, перечисленные в таблице процессов, запущены init: в FreeBSD команда ps ax выдаст некоторое количество процессов (в том числе и имеющий PID=0), имена которых заключены в круглые скобки (в Linux - в квадратные). Это так называемые процессы ядра, то есть части ядра, зарегистрированные как процессы. Так они могут участвовать в планировке процессов и передаче сигналов на общих основаниях. Если ядро не найдет /sbin/init - например, оттого, что неправильно указан корневой раздел, - системная начальная загрузка остановится.

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >
Andranik Avakian
Andranik Avakian

41. УК РФ и Комментарии (ст. 273)

М. 2000 г. Издательство: ALT Linux, Институт Логики

Уголовный Кодекс РФ и комментарии к нему?

По ссылке открывается сайт документации Linux, раздел Linux Installation and Getting Started

Сергей Петровский
Сергей Петровский

У Вас написано:

ls -dt1 `grep -il отчет *` | head -1

если знания по шелу мне не изменяют, то должно быть:

ls -dt | `grep -il отчет *` | head -1

Светлана Мишланова
Светлана Мишланова
Россия, Волгоград
Илдар Аллаяров
Илдар Аллаяров
Россия