Що відбувається, коли ви вмикаєте ваш комп’ютер
Комп’ютер без запущеної програми – просто інертна купа заліза.
Отже перше, що повинен зробити комп’ютер після ввімкнення – запустити спеціальну програму, а саме – ?операційну систему. Робота операційної системи полягає у тому, щоб допомагати іншим програмам легко працювати з різними базовими завданнями, насамперед — керувати комп’ютерним «залізом». Процес запуску операційної системи називають завантаженням^1 .
Інформація про те, як повинен відбуватись початковий процес завантаження комп’ютера міститься у спеціальному чипі – ?БІОСі^2 . Чип БІОСа наказує комп’ютеру глянути у визначене місце, найчастіше – початок диска, котрий у нумерації БІОСа має найменший номер, і віднайти там спеціальну програму – завантажувач^3 (у Лінуксі завантажувачами є ?LILO або Grub). Цей завантажувач зчитується до оперативної пам’яті комп’ютера, і звідти запускається. Тепер контроль над завантаженням власне самої операційної системи передається йому. Завантажувач читає ядро операційної системи в оперативну пам’ять, і запускає його.
Ви можете поцікавитись, а чому БІОС не вантажить ядро самостійно? Навіщо ці два кроки із запуском спершу завантажувача, а вже потім ядра? Просто БІОС не дуже кмітливий. Фактично він дуже примітивний і Лінукс не використовує його після завантаження. Він спершу писався для примітивних 8-бітних ?ОС із маленькими дисками і просто не має змоги завантажити ядро самостійно. Крім того, використання завантажувача дозволяє запускати кілька ОС (або різних ядер тої самої ОС) з одного комп’ютера.
Отож, ядро завантажене, і зараз воно озирається, вишукуючи решту пристроїв і готуючись до запуску інших програм. Воно це робить, спеціальним чином опитуючи різного роду залізячки щодо їх присутності і готовності працювати на благо комп’ютера, користувача і української держави. Цей процес називається авто(матичним) визначенням (апаратури) (autoprobing).
Більшість повідомлень, котрі видаються системою підчас початкового завантаження, є результатом автовизначення ядром різних пристроїв, їхньої конфігурації та адаптації до Вашої машини^5. Ядро Лінукса з цією роботою справляється досить непогано, краще аніж ядра інших Юніксів, і значно краще аніж ДОС чи Віндовс.
Але кінець завантаження і запуску ядра ще не є кінцем завантаження всієї ОС, це тільки, так би мовити, перший рівень. Після цього ядро передає контроль спеціальному процесові, що називається «init»^6 (деякі нові Лінукси використовують замість init іншу програму – upstart, вона робить майже ті ж самі речі).
Насамперед init переконується, що з вашими дисками все добре. Дискові файлові системи доволі тендітні; якщо вони пошкоджені, наприклад, раптовим припиненням подачі електроенергії, то зараз система спробує їх полагодити перш ніж знову візьметься їх використовувати. Далі init запускає кілька демонів (системних процесів). Демони у Юнікс — системні програми, котрі більшість часу перебувають у неактивному (т.зв. «сплячому») стані, і активізуються тільки для здійснення певних системних функцій коли з’являється така потреба (наприклад, організація черги друку чи доставка електронної пошти). Після того, як усі необхідні демони будуть запущені, закінчиться другий рівень завантаження комп’ютера. Тепер потрібно підготуватися до прийому гостей, тобто користувачів, котрі будуть працювати з цією машиною (ви ще не забули, що Лінукс багатозадачна та багатокористувацька ОС?).
Далі init запускає програму getty для слідкування за вашою консоллю. Вона виводить на екран запрошення зареєструватись у текстовому режимі. В наш час прийнято, що init запускає кілька (здебільшого 6) копій getty, таким чином по черзі активуючи відповідні віртуальні консолі на Вашому моніторі. Між ними можна перемикатись задопомогою комбінації клавіш Ctrl + Alt + F1 (...) F12.
Остання з консолей найчастіше передається графічній системі «X», котра переймає на себе котроль над Вашою мишою, клавіатурою та монітором. X – це також демон, завдання котрого – відображення кольорової піксельної графіки, яку люди звикли бачити на екрані. На цьому етапі Ви бачите графічний екран входу в систему, роль якого виконує так званий менеджер дисплея (display manager). Тепер ви можете реєструватись та виконувати програми.