ОС Linux. Керівництво системного адміністратора p>
======================================== ============================ p>
Ларс Вірженіус (Lars Wirzenius) p>
- 2 - p>
Зміст p>
Глава 1 Вступ 4 p>
1.1 Проект документування системи Linux 6 p>
Глава 2 Огляд системи Linux 8 p>
2.1 Різні складові операційної системи 8 p>
2.2 Важливі складові ядра 9 p>
2.3 Основні функції системи UNIX 10 p>
2.3.1 init 10 p>
2.3.2 Підключення до системи з терміналів 11 p>
2.3.3 Syslog 11 p>
2.3.4 Періодичне виконання команд: cron та at 11 p>
2.3 .5 Графічний інтерфейс користувача 12 p>
2.3.6 Робота з мережею 12 p>
2.3.7 Підключення до системи через мережу 13 p>
2.3.8 Мережеві файлові системи 13 p>
2.3.9 Пошта 14 p>
2.3.10 Друк 14 p>
2.4 Структура файлової системи 15 p>
Глава 3 Запуск Системи і Перезавантаження 16 p>
3.1 Огляд 16 p>
3.2 Процес запуску при близькому розгляді 17 p>
3.3 Завершення роботи та вимкнення системи 20 p>
3.4 Перезавантаження системи 23
3.5 однокористувацький режим роботи 23 p>
3.6 Дискети для екстенной завантаження 23 p>
Глава 4 Використання дисків та інших Пристроїв 25 p>
4.1 Типи пристроїв 26 p>
4.2 Жорсткі диски 27 p>
4.3 Гнучкі диски 30 p>
4.4 Форматування 31 p>
4.5 Дискові розділи 34 p>
4.5.1 MBR, завантажувальні сектори та таблиця розділів 35 p>
4.5.2 Розширені та логічні розділи 35 p>
4.5.3 Типи розділів 37 p>
4.5.4 Поділ жорсткого диска 38 p>
4.5.5 Файли пристроїв та розділи 39 p>
4.6 Файлові системи 39 p>
4.6.1 Що таке файлова система? 39 p>
4.6.2 Типи файлових систем 41 p>
- 3 - p>
4.6.3 Яку файлову систему встановлювати? 44 p>
4.6.4 Установка файлової системи 44 p>
4.6.5 Монтування та демонтування 46 p>
4.6.6 Підтримка працездатності файлових систем 50 p>
4.7 Диски без файлових систем 52 p>
4.8 Розподіл дискового простору 53 p>
4.8.1 Схеми поділу дисків 53 p>
4.8.2 Вимоги до дискового простору 54 p>
4.8.3 Приклади розподілу жорсткого диска 55 p>
4.8.4 Використання додаткового дискового простору 55 p>
4.8.5 Методи збереження дискового простору 55 p>
Глава 5 Огляд Структури Каталогів 57 p>
5.1 Введення 57 p>
5.2 Файлова система root 59 p>
5.2.1 Каталог/etc 60 p>
5.2 .2 Каталог/dev 62 p>
5.3 Файлова система/usr 63 p>
5.4 Файлова система/var 64 p>
5.5 Файлова система/proc 65 p> < p> Глава 6 Упpавленіе Пам'яттю 68 p>
6.1 Що таке віpтуальная пам'ять? 68 p>
6.2 Створення swap області 69 p>
6.3 Використання swap пpостpанства 70 p>
6.4 Поділ swap областей з дpугих операційну 71 p>
6.5 Розміщення swap пpостpанства 72 p>
6.6 Дисковий буфеp 73 p>
Глава 7 Підключення та Вихід з Системи 76 p>
7.1 Підключення до системи чеpез теpмінали 76 p>
7.2 Підключення до системи чеpез мережа 77 p>
7.3 Що виконує пpогpамма login 78 p>
7.4 X та xdm 79 p>
7.5 Контpоль доступу 79 p>
7.6 Запуск оболонки 80 p>
. p>
- 4 - p>
Глава 1 Введення p>
У цій книзі розглядаються аспекти системного p>
адміністрування операційної системи Linux. У першу чергу p>
цей посібник призначено для тих, хто практично нічого p>
не знає про системному адмініструванні, але ознайомлений з основами p>
роботи з системою Linux, які розглянуті в книзі "Руководство p>
Користувача системи Linux". У цьому посібнику не приділяється p>
уваги проблемам, пов'язаним з установленням системи (вичерпну p>
інформацію можна отримати з книги "Установка і Запуск Системи p>
Linux"). У багатьох посібниках із серії LDP (Linux Documentation p>
Project) розглядаються одні й ті ж питання з різних точок p>
зpенія. Нижче міститься більш докладна інформація про посібниках p>
за системою Linux. P>
Що ж називається системним адмініструванням? Це все те, p>
що потрібно для підтримки працездатності комп'ютерної системи p>
(наприклад, створення резервних копій деяких файлів, установка p>
нових програм, створення і видалення користувачів, перевірка p>
цілісності файлової системи і т.д.). Якщо порівнювати комп'ютер з p>
будинком, то системне адміністрування можна назвати вмістом p>
цього будинку, що включає в себе збирання, усунення різних p>
несправностей і т.д. Але системне адміністрування не називають p>
змістом, тому що тоді це було б занадто просто. P>
Керівництво складено таким чином, що голови не залежать p>
один від одного і можуть бути розглянуті окремо. Наприклад, для p>
отримання інформації щодо створення резервних копій Ви можете p>
прочитати тільки одну главу. Це дуже зручно і дозволяє p>
використовувати книгу як довідкового посібника, а також p>
уникнути читання всього керівництва замість декількох розділів. P>
Однак, перш за все це книга, а потім вже довідник. p>
Звичайно, в цій книзі не містить всієї необхідної p>
інформації з системного адміністрування, хоча багато корисного p>
можна знайти і в іншій документації по системі Linux. Наприкінці p>
- 5 - p>
-решт, системний адміністратор це просто користувач з p>
привілейованих правами доступу і певними обов'язками. P>
Також багато корисної та важливої інформації можна дізнатися з p>
вбудованих описів до програм (за допомогою команди 'man'). p>
У той час як ця книга розрахована на використання p>
операційної системи Linux, вона може бути розглянуті і по p>
відношенню до інших UNIX-подібних операційних систем. Так як p>
різні версії системи UNIX сильно відрізняються (особливо в питаннях p>
системного адміністрування), то досить складно охопити весь p>
матеріал, що стосується кожної модифікації. Навіть розгляд всіх p>
особливостей ОС Linux - складне завдання, так як вона зараз p>
знаходиться в стадії розвитку. На даний момент не існує p>
офіційною версією Linux, тому в різних людей вона встановлена p>
по різному. У книзі вказані відмінності між такими системами і p>
розглянуті деякі альтернативи, де це можливо. Також в p>
книзі міститься багато інформації, яка не кожному може p>
знадобитися. Такі моменти спеціально відзначені і можуть бути p>
пропущені, якщо використовується вже сконфигурированная система. P>
Також як і інші роботи, пов'язані з операційною p>
системою Linux, книга була написана на добровільних засадах. p>
Однак, як і в будь-якій добровільній роботі, існує межа p>
вживаються зусиллям, а також знань і досвіду автора. Це p>
означає, що цей посібник не обов'язково також добре p>
написано, як якби воно було написано на комерційній основі. P>
Слід зазначити, що в цій книзі не повністю охоплені p>
багато проблем, які розглянуті в інших вільно p>
розповсюджуваних посібниках та документація. Особливо це p>
відноситься до описів до різних програм, наприклад, до p>
особливостям використання mkfs (8). У цьому посібнику описано p>
тільки призначення цієї програми в обсязі, необхідному для p>
використання в книзі. Для отримання більш детальної інформації p>
є посилання до інших інструкцій та документація, що p>
звичайно є частиною повного набору документації по системі p>
Linux. P> < p> - 6 - p>
У автора є прагнення розвивати і покращувати цю розробку. p>
Прохання надсилати всі зауваження (помилки, нові ідеї, інформація про p>
відмінності між різними версіями системи UNIX і т.д.) або за p>
адресою електронної пошти lars.wirzenius @ helsinki.fi, або звичайною p>
поштою за адресою: p>
Lars Wirzenius/Linux docs p>
Hernesaarentie 15 A 2 p>
00150 Helsinki p>
Finland p>
Автор хоче поблагадоріть наступних людей, що p >
підтримку при створенні цієї книги: Matt Welsh, Andy Oram, Olaf p>
Kirch, Adam Richter та інших. p>
H. Peter Anvin, Remy Card, Theodore Ts'o і Stephen Tweedie p>
дозволили використати частину їхніх робіт у книзі. Stephen Tweedie p>
також дозволив використовувати його порівняння файлових систем xia та p>
ext2. P>
На додаток до вище сказаного, автор дякує Mark p>
Komarinski за публікацію в 1993 році його робіт та інших статей, p>
що мають відношення до системного адміністрування, в журналі Linux p>
Journal. p>
Автор висловлює подяку Erik Troan з Red Hat за p>
створення версією керівництва у форматі plain text, а також p>
наступним людям: Paul Caprioli, Ales Cepek, Marie-France p>
Declerfayt, Olaf Flebbe , Helmut Geyer, Larry Greenfield, Stephen p>
Harris, Jyrki Havia, Jim Haynes, York Lam, Timothy Andrew Lister, p>
Jim Lynch, Dan Poirier, Daniel Quinlam, Philippe Steindl.
1.1 Проект документування системи Linux p>
Проект документування системи Linux або LDP (Linux p>
Documentation Project), це вільна команда письменників, p>
коректорів і редакторів перед якими стоїть мета створення повної p>
- 7 - p>
документації по операційній системі Linux. Головним координатором p>
проекту є Matt Welsh, який був призначений Lars'ом p>
Wirzenius і Michael'ом K. Johnson. P>
Даний посібник є одним з набору розповсюджуваних p>
керівництв проекту LDP, який включає в себе "Руководство p>
Користувача системи Linux", "Руководство Системного p>
Адміністратора системи Linux "," Керівництво Мережевого p>
Адміністратора системи Linux "і" Керівництво Зломщик Ядра p>
Linux ". Ці книги доступні в початковому форматі LaTeX,. Dvi форматі p>
і у форматі postscript через FTP: p>
ftp://sunsite.unc.edu/pub/Linux/docs/LDP
ftp://tsx-11.mit.edu/pub/linux/docs/guides p>
Для того, щоб зв'язатися з LDP, потрібно надіслати листа Matt'у p>
Welsh за вказаною нижче адресою: p>
[email protected] p>
. p>
- 8 - p>
Глава 2 Огляд системи Linux p>
У цій главі дається огляд операційної системи Linux. Перш p>
всього розглядаються основні функції системи. Потім слід p>
опис програм, що реалізують ці функції. Мета голови - дати p>
розуміння системи в цілому, тому кожен розділ розглядається p>
більш докладно пізніше. P>
2.1 Різні складові операційної системи p>
Будь-яка UNIX-подібна операційна система складається з ядра і p>
деяких системних програм. Також існують деякі p>
прикладні програми для виконання якої-небудь завдання. Ядро p>
є серцем операційної системи. Воно розміщує файли на p>
диску, запускає програми і перемикає процесор і інше p>
обладнання між ними для забезпечення мультизадачності, p>
розподіляє пам'ять та інші ресурси між процесами,
забезпечує обмін пакетами в мережі і т.п. Ядро саме по собі p>
виконує лише маленьку частину спільної роботи, але воно p>
надає засоби, що забезпечують виконання основних p>
функцій. Воно також запобігає використання прямого доступу до p>
апаратних засобів надаючи спеціальні засоби для p>
звернення до периферії. Таким чином ядро дозволяє контролювати p>
іспользовніє апаратних засобів різними процесами і p>
забезпечувати деякий захист користувачів один від одного. P>
Засоби, що надаються ядром, використовуються через системні p>
виклики (див. розділ 2 керівництва для більш докладної інформації з p>
цього питання). p>
Системні програми використовують кошти, що надаються p>
ядром для забезпечення виконання різних функцій операційної p>
системи. Системні та всі інші програми виконуються 'на p>
поверхні ядра', в так званому режимі користувача. P>
Існує деякими різниця між системними і прикладними p>
програмами. Прикладні програми призначені для виконання p>
будь-якої певної завдання, в той час як системні програми p>
- 9 - p>
використовуються для підтримки роботи системи. Текстовий процесор p>
є прикладною програмою, а програма telnet - системної, p>
хоча часто межа між ними досить смутна. P>
Досить часто операційна система містить компілятори і p>
відповідні їм бібліотеки (GCC та C бібліотеки для Linux), хоча p>
не обов'язково всі мови програмування мають бути частиною p>
операційної системи. Документація, а іноді навіть ігри, можуть p>
бути її частиною. Зазвичай складу операційної системи p>
визначається вмістом установочного диска або стрічки, хоча справа p>
йде дещо складніше, тому що різні частини операційної p>
системи розкидані по різних FTP серверів під усьому світі. p>
2.2 Важливі складові ядра p>
Ядро системи Linux складається з декількох основних частин: p>
блок керування процесами, блок керування пам'яттю, драйвери p>
пристроїв, драйвери файлових систем, блок керування мережею а також p>
інші невеликі процедури. p>
Найбільш важливі складові ядра (що забезпечують p>
життєздатність системи) - це блок управління пам'яттю і p>
процесами. Блок управління пам'яттю забезпечує розподіл p>
областей пам'яті і swap-областей між процесами, що складають p>
ядра і для кеш-буфера. Блок управління процесами створює нові p>
процеси і забезпечує багатозадачність шляхом перемикання завдань. P>
На найнижчому рівні ядро містить драйвери пристроїв для p>
кожного типу підтримуваного обладнання. Існує досить p>
великий набір різних драйверів, так як постійно p>
розробляються нові типи пристроїв. Існує досить багато p>
однакових пристроїв, які відрізняються тільки тим, як p>
відбувається взаємодія між самим пристроєм і драйвером. P>
Така схожість дозволяє використовувати класи драйверів, p>
підтримують однакові операції. У кожного члена такого класу p>
використовується однотипний інтерфейс для ядра, але різні схеми p>
взаємодії з пристроєм. Наприклад, всі драйвери жорсткого p>
диска представляються для ядра абсолютно однаково, тобто у них у p>
- 10 - p>
всіх є такі операції, як 'ініціалізація жорсткого диска ', p>
' читання сектора N ',' запис сектора N '. p>
Деякі функції, що надаються ядром, мають однакові p>
властивості. Наприклад, різноманітні мережеві протоколи об'єднані в один p>
програмний інтерфейс - BSD socket бібліотеку. Ось інший приклад - p>
різні файлові системи, що підтримуються системою Linux. Ядро p>
містить віртуальну файлову систему (Virtual File System - VFS) p>
яка включає в себе всі функції, які використовуються для роботи p>
системи, а також драйвер для кожної підтримуваної файлової p>
системи. При спробі доступу до будь-якої файлової системи запит p>
проходить через VFS, звідки спрямовується до відповідного p>
драйвера файлової системи. P>
2.3 Основні функції UNIX системи p>
У цьому розділі досить поверхово розглядаються p>
деякі найбільш важливі функції UNIX системи. Більш докладно вони p>
розглянуті у наступних розділах. P>
2.3.1 init p>
Єдину і найважливішу функцію в системі UNIX p>
надає пpоцесс init. Він запускається в будь-якій системі UNIX p>
як найперший процес, а також завершує процедуpу завантаження p>
системи. При запуску init, продовжується процес завантаження p>
(перевіряються та встановлюються файлові системи, запускаються p>
різні програми-демони і т.д.). P>
Точний список того , що виконується при запуску init, залежить p>
від версії програми. Зазвичай init надає p>
однокористувацький режим, за якого ніхто не може p>
підключитися до системи. Звичайний режим - це багатокористувацький. P>
Деякі версії використовують поняття "рівень запуску '. Наприклад, p>
однокористувацький і розрахований на багато користувачів режими - це різні p>
рівні запуску. Також існують додаткові рівні, наприклад p>
для запуску X-windows. P>
- 11 - p>
При працюючій системі, дві найважливіші завдання програми p> < p> init - це переконається, що всі програми-демони getty працюють p>
(тобто є можливість підключення до системи) та адаптування p>
orphan-процесів (тобто процесів , чий батьківський процес був p>
знищений; в системі UNIX всі процеси повинні належати одному p>
дереву процесів, тому orphan-процеси повинні бути p>
адаптовані). p>
При завершенні роботи системи та перезапуску, init знищує p>
все залишилися процеси, демонтує файлові системи і p>
зупиняє процесор. p>
2.3.2 Підключення до системи з терміналів p>
Підключення до системи з терміналів (через послідовні p>
лінії) і з головної консолі (якщо не запущено X) забезпечується p>
програмою getty. init запускає окремий процес getty для p>
кожного терміналу. getty счітавает ім'я користувача і запускає p>
програму login, яка читає пароль. Якщо ім'я та пароль p>
відповідають одному користувачеві, то login запускає оболонку. P>
При виході з оболонки, тобто при виході з системи, або при p>
завершення програми login у разі якщо ім'я користувача і пароль p>
не підходять, init запускає новий процес getty. Ядро не p>
контролює підключення до системи, а лише виконує системні p>
програми. P>
2.3.3 Syslog p>
Іноді при роботі ядра або різних системних програм p>
виникають помилки, попередження та інші повідомлення. Програма p>
syslog записує всі повідомлення в файл так, що він може бути p>
згодом переглянутий. Syslog можна настроїти так, що p>
повідомлення будуть сортуватися і записуватися в різні файли з p>
пріоритету. Наприклад, повідомлення ядра часто направляються в p>
окремий файл, тому що ці повідомлення найбільш важливі і повинні p>
регулярно переглядатися, щоб уникнути серйозних проблем. P>
2.3.4 Періодичне виконання команд: cron та at p>
- 12 - p>
Як отдельнием користувачам, так і системного адміністратора p>
іноді потрібно періодично запускати определенние команди. p>
Наприклад, системному адміністратору може знадобитися p>
періодично запускати команду для очищення каталогів від тимчасових p>
файлів (/ tmp та/var/tmp), для запобігання переповнення диска. p>
Для цього використовується функція cron. У кожного користувача p>
є файл crontab, в якому міститься список команд, p>
представлених до виконання і кількість разів, яку вони повинні p>
бути виконані. Програма-демон crond забезпечує своєчасне p>
виконання зазначених команд. P>
Функція at ідентична функції cron, тільки команда запускається p>
один раз у вказаний час та запуск більше не повторюється . p>
2.3.5 Графічний інтерфейс користувача p>
Чому в системі UNIX так і в Linux, призначений для користувача інтерфейс p>
не вбудовується в ядро системи. Замість цього він представляється p>
програмами користувацького рівня. Це застосовується як до p>
текстовим, так і до графічних оболонок. P>
Такий стандарт робить систему більш гнучкою, хоча і має свої p>
недоліки. Наприклад, це легко дозволяє створювати нові p>
інтерфейси для програм, що ускладнює вивчення системи. P>
Спочатку використовуваної з системою Linux графічної p>
оболонкою була система X Window System ( скорочено X). X не p>
реалізує інтерфейс користувача, а тільки віконну систему, p>
тобто засоби, за допомогою яких може бути реалізований графічний p>
інтерфейс. Три найбільш популярних версії графічних інтерфейсів p>
на основі X - це Athena, Motif та Open Look. P>
2.3.6 Робота з мережею p>
Мережа - це засіб, що дозволяє з'єднуватися двох або більше p>
комп'ютерів між собою. p>
- 13 - p>
UNIX-подібні операційні системи мають широкий спектр p>
мережних можливостей . Більшість базових функцій (файлові p>
системи, друк, створення резервних копій і так далі) можуть бути p>
реалізовані за допомогою мережі. Це може значно полегшити p>
роботу системного адміністратора, тому що дозволяє використовувати p>
централізоване адміністрування. P>
Однак, у цій книзі поверхнево розглянуті питання роботи p> < p> з мережею. Для більш докладної інформації див книгу "Руководство p>
Мережевого Адміністратора системи Linux". P>
2.3.7 Підключення до системи через мережу p>
Підключення до системи через мережу працює трохи інакше, p>
ніж звичайне підключення. Існують окремі фізичні p>
послідовні лінії для кожного терміналу, через які і p>
відбувається підключення. Для кожного користувача, що підключаються p>
до системи, існує окреме віртуальне мережеве з'єднання та p>
їх може бути будь-яка кількість. Однак не представляється можливим p>
запустити окремий процес getty для кожного можливого p>
віртуального з'єднання. Існують також і інші способи p>
підключення до системи за допомогою мережі. Наприклад, telnet і rlogin p>
- основні служби в TCP/IP мережах. P>
При використанні мережі для підключення до системи, крім p>
великої кількості процесів getty використовується окрема p>
програма-демон (при використанні як telnet так і login p>
використовуються різні програми-демони), яка відстежує всі p>
спроби з'єднання з комп'ютером. Якщо визначають спроба p>
з'єднання, то програма створює новий процес - створює сама себе p>
для обробки цього з'єднання - а потім продовжує відстеження p>
нових сполук. Створюваний процес ідентичний програмою getty. P>
2.3.8 Мережеві файлові системи p>
Одна з найбільш корисних функцій, яка може бути p>
реалізована за допомогою мережі, цей поділ файлів через мережеву p>
- 14 - p>
файлову систему. Зазвичай використовується система, яка називається Network p>
File System або NFS, яка розроблена корпорацією Sun. P>
При роботі з мережевою файловою системою будь-які операції над p>
файлами, що здійснюються на локальному ком'ютера, передаються через p>
мережу на віддалену машину. При роботі мережевої файлової системи p>
програма вважає, що всі файли на віддаленому комп'ютері є p>
на комп'ютері, де вона запущена. Таким чином поділ p>
інформації за допомогою такої системи не вимагає внесення p>
будь-яких змін в програму. P>
2.3.9 Пошта p>
Електронна пошта є найважливішим засобом зв'язку між p>
комп'ютерами. Електронні листи зберігаються в одному файлі у p>
спеціальному форматі. Для читання й відправлення листів застосовуються p>
спеціальні програми. P>
У кожного користувача є окремий "поштова скринька" p>
(тобто файл, де інформація зберігається у спеціальному форматі), в p>
котрому зберігається приходить пошта. Якщо на ком'ютера приходить p>
лист, то програма обробки пошти знаходить файл поштової скриньки p>
соответвующего користувачів та додає туди одержаний лист. P>
Якщо ж поштову скриньку користувача знаходиться на іншому комп'ютері, p>
того листа перенаправляється на цей комп'ютер, де проходить його p>
подальша обробка. p>
Поштова система складається з безлічі різних програм. p> < p> Доставка листів до локальних або віддалених поштових скриньок p>
проводиться однією програмою (наприклад, sendmail або smail), у той p>
час як для звичайної відправлення або перегляду листів застосовується p>
велике колічетсво різних програм (наприклад, Pine або elm). p>
Файли поштових скриньок зазвичай зберігаються у каталозі/var/spool/mail. p>
2.3.10 Друк p >
В один момент часу принтером може користуватися тільки p>
один користувач. Тому для того, щоб принтером могли p>
- 15 - p>
користуватися відразу декілька користувачів, використовується p>
спеціальна програма, яка забезпечує обслуговування черги до p> < p> принтером. Всі завдання для принтера містяться в буфеp. Коли p>
принтер закінчує обробку одного завдання, следуещее передається p>
до нього автоматично. Це значно спрощує роботу з принтером. P>
Програма обслуговування черги до принтера поміщає p>
інформацію, яка повинна бути роздрукована, на диск, тобто p>
текст розташовується на диску , у той час як завдання знаходиться в p>
черги. Це дозволяє прикладним програмам досить швидко p>
роздруковувати тексти, розміщуючи їх в чергу, тому що для p>
продовження роботи з додатком не потрібно чекати закінчення p>
роздруківки. P >
2.4 Структура файлової системи p>
Файлова система поділяється на кілька частин: файлова p>
система root, що складається з каталогів/bin,/lib,/etc,/dev і p>
деяких інших, файлова система/usr, де зберігаються різні p>
програми і дані не підлягають зміні, файлова система/var, p>
де містяться змінювані файли (такі як log файли тощо) і p>
файлова система/home, яка складається з особистих каталогів p>
користувачів. Поділ може істотно відрізнятися від вище p>
зазначеного в залежності від роботи системного адміністратора і p>
конфігурації апаратного забезпечення. P>
У главі 5 сруктурам файлової системи розглядається більше p >
докладно (див. також Linux Filesystem Standard). p>
. p>
- 16 - p>
Глава 3 Запуск Системи і Перезавантаження p> < p> У цьому розділі описується те, що відбувається в системі Linux p>
при її запуску і перезавантаження і як це правильно зробити. p>
3.1 Огляд p>
Процес включення комп'ютера і завантаження операційної системи p>
називається запуском. Під час запуску спочатку загружется невелика p>
програма, називається початковою завантажувачем, яка в свою p>
чергу загружет в пам'ять і запускає операційну систему. P>
Початковий завантажувач зазвичай знаходиться в визначеному місці на p>
жорсткому диску або дискеті. Тому як Linux це досить складна і p>
велика система, її запуск проводиться в два етапи, хоча первинно p>
завантажується код повинен бути досить маленьким (кілька сотень p>
байт ). p>
На різних комп'ютерах початкова завантаження проводиться за p>
різному. На персональних комп'ютерах спочатку счітивется перший p>
сектор дискети або жорсткого диска (за допомогою процедур BIOS), p>
який називається завантажувальним сектором. У цьому секторі знаходиться p>
початковий завантажувач, який потім завантажує операційну систему, p>
яка може бути розташована в іншому місці на диску або p>
де-небудь ще.
Після завантаження Linux, ініціалізувалися драйвери пристроїв, а p>
потім запускається init (8), який в свою чергу запускає інші p>
процеси, які дозволяють підключатися до системи і забезпечують p>
нормальну роботу. Цей етап розглянуто нижче більш докладно. P>
Для перезапуску системи спочатку всі процеси повинні бути p>
завершені (тобто закриті всі використовувані ними файли та ін), потім p>
демонтуються файлові системи та swap-області і, врешті-решт, p>
на екран видається повідомлення про те, що харчування може бути p>
відключено. Якщо ж така процедура не буде зроблено, то можуть p>
відбутися серйозні збої в подальшій роботі системи. Наприклад, p>
- 17 - p>
інформація, що зберігається в кеш буфері файлової системи, буде p>
загублена, порушиться цілісність файлової системи і, отже, p>
вона буде не придатна до використання. p>
3.2 Процес запуску при близькому розгляді p>
Linux може бути запущена як з дискет, так і з жорсткого p>
диска . У книзі "Установка і запуск Linux" докладно описаний запуск p>
системи. P>
При включенні комп'ютера, спочатку BIOS виробляє p>
тестування обладнання, а потім запуск операційної системи. p>
Спочатку вибирається пристрій, з якого буде проводиться p>
запуск (звичайно перший дисковод, якщо в нього вставлена дискета, в p>
іншому випадку - перший жорсткий диск, якщо він встановлений, хоча p>
порядок вибору може бути налаштований) і зчитується найперший p>
сектор, який називається завантажувальним. Його також називають MBR p>
(Master Boot Record), так як у жорсткого диска може бути p>
кілька розділів і у кажодого може бути свій завантажувальний p>
сектор.
У завантажувальному секторі знаходиться невелика програма p>
(відносно невелика щоб вона могла розміститься в одному p>
секторі), яка завантажує і запускає операційну систему. При p>
завантаженні з дискети, в завантажувальному секторі знаходиться код, який p>
забезпечує тільки зчитування ядра системи в певну заздалегідь p>
область пам'яті. Завантажувальна дискета для Linux не містить ніяких p>
файлових систем. Ядро записано на дискеті як послідовність p>
блоків, тому що це значно спрощує процес завантаження. Проте, p>
цілком можна завантажуватися з дискети, на якій встановлена p>
якась файлова система, використовуючи загpузчік LILO. P>
При завантаженні з жорсткого диска, код, розташований в MBR, p>
перевіряє таблицю розділів (також розташовану в MBR), визначає p>
активний розділ (розділ, що використовується при завантаженні), зчитує p>
завантажувальний сектор цього розділу і запускає лічений код. Код, p>
розташований в завантажувального сектору активного розділу жорсткого p>
диска, виконує ті ж функції, що і код, що знаходиться в p>
- 18 - p>
завантажувального сектору дискети: він зчитує ядро з обраного p>
розділу, а потім запускає його. Однак тут існує багато p>
тонкощів, так як використання окремого розділу диску тільки p>
для збереження коду ядра неефективно, тому код, розташований в p>
завантажувального сектору розділу, не просто послідовно зчитує p>
інформацію з диска, а використовує зчитування по секторах. p>
Існує кілька способів вирішення цієї проблеми, але найбільш p>
простим з них є використання LILO завантажувача (інформацію p>
з установки і налаштування LILO зверніться до документації по LILO). p>
При завантаженні з використанням LILO зазвичай відразу ж p>
завантажується і запускається ядро, задане за замовчуванням, однак p>
LILO можна настроїти так, щоб можна було б завантажити p>
одне з декількох можливих ядер або навіть іншу операційну p>
систему (на додаток до Linux ). Також можна вказати потрібне ядро p>
або операційну сиситему під час завантаження. При натисканні клавіші p>
ALT, SHIFT або CTRL (після завантаження LILO) буде видано запит, де p>
можна вказати ядро або систему. Однак при конфігуруванні можна p>
встановити опцію, при якій LILO буде завжди видвать такий p>
запит, а також вказати час, після якого завантажується p>
ядро, встановлене за замовчуванням. p>
Існують і інші завантажувачі, подібні LILO, проте у нього p>
є декілька корисних функцій, яких немає в інших завантажувача, p>
так як він був написаний спеціально для Linux. Наприклад, є p>
можливість передачі параметрів ядру під час завантаження або p>
зміни деяких опцій, що вбудовані в ядро. Серед подібних p>
завантажувачів (bootlin, bootactv та ін) LILO є найкращим p>
вибором. P>
Завантаження системи як з жорсткого диска, так і з дискет має
свої переваги, хоча завантаження з жорсткого диска вважається краще p>
і швидше, так як вона дозволяє уникнути незручності, пов'язані зі p>
зміною дискет. Однак у деяких випадках завантаження з дискет більш p>
зручна. Наприклад, при встановленні системи або при пошкодженні p>
файлової системи. P>
Після того, як ядро системи додано в пам'ять (з жорсткого p>
- 19 - p >
диска або з дискет) і запущено, виконуються приблизно p>
наступні дії: p>
Так як ядро Linux встановлено в запакованому вигляді, то перш p>
всього вона сама себе розпаковує. Це виконує невелика p>
програма, розташована на самому початку коду. P>
Якщо на комп'ютері встановлена відеоплата sVGA, p>
підтримує нестандартні текстові режими (такі як 100x40),
видається запит для вказівки необхідного режиму. При компіляції p>
ядра можна відразу вказати використовуваний режим, щоб він не p>
запитується системою під час завантаження. Режим також може бути p>
встановлений за допомогою LILO чи rdev (8). P>
Потім ядро тестує апаратне забезпечення (жорсткі диски, p>
дисководи, мережні адаптери та ін .) і конфігурує відповідні p>
драйвери пристроїв. Під час цього процесу на екран видаються p>
підказує повідомлення. Ось приблизно те, що відбувається під час p>
завантаження: p>
LILO boot: p>
Loading linux. P>
Console: colour EGA + 80x25, 8 virtual consoles p>
Serial driver version 3.94 with no serial options enabled p>
tty00 at 0x03f8 (irq = 4) is a 16450 p>
tty01 at 0x02f8 (irq = 3) is a 16450 p>
lp_init: lp1 exists (0), using polling driver p>
Memory: 7332k/8192 available (300k kernel code, 384k reserved, 176k data) p >
Floppy drive (s): fd0 is 1.44M, fd1 is 1.2M p>
Loopback device init p>
Warning WD8013 board not found at i/o = 280 p >
Math coprocessor using irq13 error reporting p>
Partition check: p>
hda: hda1 hda2 hda3 p>
VFS: Mounted root (ext filesystem) p >
Linux version 0.99.pl9-1 (root @ haven) 05/01/93 14:12:20 p>
Хоча текст повідомлень досить сильно різниться на різних p>
- 20 - p>
системах і залежить від апаратного забезпечення, версії Linux і p>
конфігурації. p>
Після цього, ядро намагається смонтіpовать файлову систему p>
root . Місце, куди вона буде змонтована, встановлюється під час p>
компіляції або за допомогою rdev або LILO. Тип файлової системи p>
визначається автоматично. Якщо система root НЕ монтіpуется, p>
наприклад через те, що ядро не містить драйвер p>
відповідної файлової системи, то система зависає. P>
Файлова система root зазвичай монтіpуется в режимі read-only p>
(це встановлюється таким же чином як і вузол монтіpованія). p>
Це робить можливим перевірку файлової системи в той час як вона p>
смонтіpована , хоча перевірка файлової системи, встановленої в p>
режимі read-write НЕ рекомедуется. p>
Потім ядро запускає програму init (8) у фоновому режимі (вона p>
розташована в каталозі/sbin/init) яка стає головним p>
процесом. init виконує різні функції, необхідні при p>
встановленні системи. p>
Зрештою init запускає програму getty (8) для p>
віртуальних консолей і послідовних ліній. Ця програма p>
дозволяє підключатися до системи за допомогою віртуальних консолей p>
і терміналів, підключених через послідовні порти. init p>
може бути налаштована також для запуску та інших програм. p>
Після цього процес запуску системи вважається завершеним і p>
система готова до роботи. p> < p> 3.3 Завершення роботи та вимкнення системи p>
разі вимкнення системи Linux необхідно виконувати деякі p>
процедури. Якщо цього не зробити, то файлові системи та файли p>
можуть пошкодитися. Це відбувається через наявність у Linux p>
дискового кешу, інформація з якого записується на диск тільки p>
через деякі проміжки часу. Це значно підвищує p>
продуктивність системи, але також означає, що якщо просто p>
- 21 - p>
вимкнути живлення комп'ютера, то в дисковому кеші може знаходиться p >
велику кількість інформації і файлова система може бути p>
частково пошкоджена, тому що на диск звичайно скидається тільки p>
частина інформації. p>
Іншою причиною для цього є мультизадачність системи, p>
де одночасно може виконуватися декілька процесів і p>
вимкнення живлення може бути згубним для системи. Особливо це p>
стосується комп'ютерів, на яких одночасно працюють кілька p>
користувачів. P>
Існують команди, призначені для правильного p>
вимикання системи - це shutdown (8) і halt (8), розташовані в p>
каталозі/sbin. Є два звичайні способи їх?? рімененія. p>
Якщо система встановлена на комп'ютері, де працює одна p>
користувач, то зазвичай завершують роботу всіх програм, роботу p>
всіх віртуальних консолей, входять в систему під користувачем root p>
(або залишаються підключеними під цим користувачем, тільки в цьому p>
випадку потрібно перейти в кореневий каталог, щоб уникнути проблем з p>
демонтування файлових систем), потім виконується команда halt p>
або shutdown-h now (при бажанні можна встановити затримку, p>
яка встановлюється заміною параметра now на знак '+' і числом p>
хвилин , після закінчення яких буде завершена робота системи) або p>
просто halt. p>
Якщо на копьютера, на якому встановлена система, що працює p>
одночасно кілька користувачів, то можливо використання p>
команди shutdown в такому форматі: p>
shutdown-h + time message, p>
де time цей час, після якого робота системи буде p>
завершена, а message - повідомлення, в якому пояснюється причина p>
виключення. Напpимеp, p>
root # shutdown-h +10 'We will install a new disk. System should p>
> be back on-line in three hours. ' P>
- 22 - p>
Виконання цієї команди попередить кожного користувача, p>
що працює в системі, що вона буде вимкнено через 10 хвилин. p>
Повідомлення видається на кожен термінал, де працюють користувачі, p>
включаючи xterm. p>
Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995 ... p>
We will install a new disk. System should p>
be back on-line in three hours. P>
The system is going DOWN for system halt in 10 minutes!! P>
Видача повідомлення автоматично повторюється кілька раз p>
перед припиненням роботи системи і кожного разу з більш коротким p>
інтервалом. При використанні halt не можна встановити затримку, p>
тому ця програма рідко застосовується на розрахованих на багато користувачів p>
системах. P>
Зауваження: файл/etc/inittab містить команди, які виконуються p>
при виключенні системи. p>
Після запуску процесу припинення роботи системи, p>
демонтуються всі файлові системи (крім системи root), p>
завершується виконання всіх процесів та програм-демонів, потім p>
демонтується файлова система root і вся робота завершується. p>
Після цього видається повідомлення, в якому говориться, що можна p>
відключити живлення . Тільки після цього комп'ютер може p>
бути відключене. P>
У деяких випадках неможливо завершити цей процес p>
відповідним чином. Наприклад, при пошкодженні коду ядра в p>
пам'яті, порушується його робота або система зависає і просто немає p>
можливості ввести нову команду можна тільки сподіватися, що p>
нічого не пошкодиться і вимкнути живлення. Якщо ж неполадки не p>
такі серйозні (наприклад вийшла з ладу клавіатура), а ядро і p>
програма update працюють нормально, то найкращим варіантом буде p>
почекати кілька хвилин , поки update (8) не збереже на диску p>
інформацію, що зберігається в кеш-буфері і тільки після цього вимкнути p>
- 23 - p>
харчування. p>
Деякі вимикають Копьютер після триразового виконання p>
команди sync (8), яка скидає на диск вміст буфера, і, p>
після припинення звернення до диска, вимикають комп'ютер. Якщо в p>
про виключення робота всіх програм була завершена, то ця p>
процедура майже ідентична