Початкова завантаження операційної системи
* Boot-процедура *
Boot, bootstrapping - слова, що позначають зараз "Завантажити / штовхнути, процес початкового завантаження", насправді відбулися з англійської фрази "Pull itself up by its own boot straps" (Підняти себе за шнурки власних черевиків) Починається все з Boot-prom ' a - невеликої програми, яка зберігається в стирається пам'яті комп'ютера і починає виконуватися відразу після включення. Природно, boot-prom вміє робити багато чого: форматувати диски, інсталювати операційну систему, запускати тести hardware. Проте головне його призначення - знайти на диску і запустити на виконання файл / unix - ядро операційної системи. І свого власного розуму на це йому зазвичай не вистачає, тому він в першу чергу завантажує з жорсткого диска "завантажувача операційної системи", а вже той робить все інше.
Boot-prom завантажує з диска завантажувач - файл / stand / boot, Завантажувач завантажує ядро / stand / unix Оскільки boot-prom не в змозі вмістити коду для роботи зі стандартною unix'овской файлової системою, файли unix і boot лежать в окремому розділі жорсткого диска - розділі / stand. На ньому створено "ДУЖЕ ПРОСТА ФАЙЛОВА СИСТЕМА" bfs (Boot File System), щоб boot-prom'у було легше знайти і вважати з диска завантажувальні файли. Перехоплення в boot-prompt: Після того як на консолі з'явиться повідомлення: "Idle MPU: none« натиснути клавішу ПРОБІЛ Завантаження в single user: Під час початкового завантаження на кілька секунд з'являється запрошення: "Press _что-то_to enter system_maintence. Натиснути потрібну клавішу
BIOS завантажує блок початкового завантаження активного розділу. Він вантажить завантажувач LILO (LInux LOader). Lilo завантажує файл / vmlinuz Параметри початкового завантаження записуються в файлі /etc/lilo.conf Після будь-яких змін в цьому файлі необхідно виконати команду lilo Перехоплення в Lilo-prompt: Left_ALT відразу після появи повідомлення "Lilo." Завантаження в single user: Lilo: linux root = / dev / hda2 single Завантаження в ще більш single user: Lilo: linux init = / bin / sh mount -n -o remount / dev / hda2 / insmod de4x5 ifconfig eth0 195.232.171.30 route add -net 195.232.171.0 gw 195.232 .171.30 insmod nfs
У ПЗУ HP 9000 проживає "PDC" - "Processor Dependent Code" - щоб поговорити з ним, треба натиснути клавішу ESC в перші секунди завантаження. На завантажувальному диску є Boot-розділ формату LIF (лінійна файлова система) В LIF-томі 4 "файлу" ISL - "операційна" програма HPUX - власне завантажувач ядра AUTOBOOT - текстовий файл, в якому написано ім'я ядра за замовчуванням Отже: PDS викликає ISL командою bo scsi.6.0 isl ISL завантажує ядро командою hpux / stand / vmunix Перехоплення в PDC-prompt: Натиснути ESC в перші 10 секунд Завантаження в single user: PDC> bo pri isl ISL> hpux -is / stand / vmunix
Ядро инициализирует себе і після цього запускає процес init. А init - всі інші процеси, програми, які необхідні для нормального функціонування операційної системи. Всі подальші дії в системі визначаються цим процесом. Все, що потрібно робити init-у, визначає спеціальна таблиця. Процес init завжди знаходиться на якомусь "РІВНІ ВИКОНАННЯ". Рівень виконання визначає стан і поведінку всієї систе- ми. Рівень позначається цифрою (або літерою) 0,1,2,3,4,5,6, s, S 0 - prom монітор - Повний зупинка системи; 1, s, S - single user mode. Однокористувацький режим; 2 - розрахований на багато користувачів режим без NFS-сервера; 3 - розрахований на багато користувачів режим з NFS-сервером; 6 - перезавантаження;
* Приблизний фрагмент керуючої таблиці / etc / inittab *
bchk :: sysinit: / etc / bcheckrc / dev / console 2> 1 brc :: sysinit: / etc / brc> / dev / console 2> 1 is 3: initdefault: rc: 12345: wait: / etc / rc> / dev / console 2> 1 r0: 0: wait: / etc / rc0> / dev / console 2> 1 r2: 23: wait: / etc / rc2> / dev / console 2> 1 r3: 3: wait: / etc / rc3> / dev / console 2> 1 pf: 12345: powerfail: / etc / powerfail> / dev / console 2> 1 co: 12345: respawn: / etc / sysmonitor console console t1: 23: respawn: / etc / sysmonitor tty01 9600 t2: 23: off: / etc / sysmonitor tty02 9600 Формат таблиці: іМ'Я: Уровні_виполненія: від_действія: запускається команда іМ'Я: - просто ім'я рядки - вони всі повинні бути різними від_действія: sysinit запустити один раз після початкового завантаження; на відповідному рівні виконання: wait - запустити один раз і чекати, поки не закінчиться; respawn - запустити паралельно, а якщо закінчиться, перезапус- кати знову; off - нічого не робити (Просто ігнорувати цей рядок). Якщо подивитися уважно на таблицю, то можна розібратися, що ж насправді відбувається при завантаженні і звідки бе- рутся всі ці загадкові повідомлення. Спершу init запускає процеси, які "sysinit" Відпрацювавши всі рядки "sysinit" рівня, init йде все далі по / etc / inittab і виявляє рядок initdefault 3 - вона змушує його "перейти" на рівень 3.
* Run Command - стандартні RC-каталоги запуску *
Перейшовши на рівень виконання 3, init і відпрацьовує першу зустрілася рядок з рівнем "3" - запускається командний файл / etc / rc2 - зазирніть до нього. Там все просто: / etc / rc2 бере і виконує командні файли /etc/rc2.d/S*, що лежать в каталозі /etc/rc2.d. Кожен файл виконується з параметром "start" Відпрацювавши / etc / rc2, init точно таким же чином запускає файл / etc / rc3. Слідом за цим він запускає кілька процесів sysmonitor - за одним за кожен наявний термінал. Це ті самі процеси, які говорять на термінал: "Login:" Користувач, увійшовши на термінал, деякий час працює, але як тільки він "йде» з системи, на зазначеному терміналі нічого не залишається. init тут же виконує дію "respawn" - перезапускає на термінал sysmonitor - і знову життєрадісне "Login:" з'являється на терміналі.
За замовчуванням init установлює рівень виконання 5. При початковому завантаженні відпрацьовується файл /etc/rc.d/rc.S Потім для переходу в багатокористувацький режим /etc/rc.d/rc.M з якого запускаються файли /etc/rc.d/ rc.inet1 встановлює мережеві інтерфейси /etc/rc.d/rc.inet2 запускає мережеві сервіси /etc/rc.d/rc.local запускає кілька корисних програм і демонів - наприклад, підтримка миші, httpd, русифікація консолі і т.п.
Використовується стандартна технологія rc-файлів System V RC-каталоги: /etc/rc.d/rc[0123456].d/ /etc/rc.d/init.d/ Конфігураційні параметри для RC-команд: / etc / sysconfig /
Не дивлячись на BSD-евое походження, використовується стандартна технологія rc-файлів System V RC-каталоги: /sbin/rc[0123].d/ /sbin/init.d/ Конфігураційні параметри для RC-команд: /etc/rc.defaults .d /
Використовується стандартна технологія rc-файлів System V RC-каталоги: /etc/rc[0123456].d/ /etc/init.d/
Схожі статті