ux), хоча не обов'язково всі мови програмування повинні бути частиною операційної системи. Документація, а іноді навіть ігри, можуть бути її частиною. Зазвичай складу операційної системи визначається вмістом установочного диска або стрічки, хоча справа йде трохи складніше, тому що різні частини операційної системи розкидані по різних FTP серверам в усьому світі. p> Важливі складові ядра. p> Ядро системи Linux складається з декількох основних частин:
- блок управління процесами,
- блок управління пам'яттю,
- драйвери
- пристроїв,
- драйвери файлових систем,
- блок управління мережею а також інші невеликі процедури.
Найбільш важливі складові ядра (що забезпечують життєздатність системи) - це блок управління пам'яттю і процесами. Блок управління пам'яттю забезпечує розподіл областей пам'яті і swap-областей між процесами, складовими ядра і для кеш-буфера. Блок управління процесами створює нові процеси і забезпечує багатозадачність шляхом перемикання завдань. p> На самому нижньому рівні ядро ​​містить драйвери пристроїв для кожного типу підтримуваного устаткування. Існує досить великий набір різних драйверів, так як постійно розробляються нові типи пристроїв. Існує досить багато однакових пристроїв, які розрізняються тільки тим, як відбувається взаємодія між самим пристроєм і драйвером. p> Така схожість дозволяє використовувати класи драйверів, що підтримують однакові операції. У кожному члені такого класу використовується однотипний інтерфейс для ядра, але різні схеми взаємодії із пристроєм. Наприклад, всі драйвери жорсткого диска представляються для ядра абсолютно однаково, тобто у них у всіх є такі операції як В«ініціалізація жорсткого дискаВ» читання сектора N, В«запис сектора NВ». p> Деякі функції, надані ядром, мають однакові властивості. Наприклад, різні мережеві протоколи об'єднані в один програмний інтерфейс - BSD socket бібліотеку. Ось інший приклад - різні файлові системи, підтримувані системою Linux. Ядро містить віртуальну файлову систему (Virtual File System - VFS) яка включає в себе всі функції, використовувані для роботи системи, а також драйвер для кожної підтримуваної файлової системи. При спробі доступу до якої-небудь файлової системі запит проходить через VFS, звідки перенаправляється до відповідного драйверу файлової системи. p> 2. ОСНОВНІ ФУНКЦІЇ UNIX СИСТЕМИ
В
У цьому розділі досить поверхово розглядаються деякі найбільш важливі функції UNIX системи. Більш докладно вони розглянуті в наступних розділах. h2> 2.1. init
Єдину і найважливішу функцію в UNIX системі надає процес init. Він запускається в будь-якій UNIX системі як найперший процес, а також завершує процедуру завантаження системи. При запуску init, триває процес завантаження (перевіряються і встановлюються файлові системи, запускаються різні програми-демони і т.д.). p> Точний список того, що виконується при запуску init, залежить від версії програми. Зазвичай init надає однокористувацький режим, при якому ніхто не може підключитися до системи. Звичайний режим - це багатокористувацький. p> Деякі версії використовують поняття В«рівень запускуВ». Наприклад, однокористувальницький і багато режими - це різні рівні запуску. Також існують додаткові рівні, наприклад для запуску X-windows. p> При працюючій системі, дві найважливіші завдання програми init - це упевниться, що всі програми-демони getty працюють (тобто є можливість підключення до системи) і адаптування orphan-процесів (тобто процесів , чий батьківський процес був знищений, у системі UNIX всі процеси повинні належати одному дереву процесів, тому orphan-процеси повинні бути адаптовані).
При завершенні роботи системи і перезапуску, init знищує всі залишилися процеси, демонтує файлові системи і зупиняє процесор. h2> 2.2. Підключення до системи з терміналів
Підключення до системи з терміналів (через послідовні лінії) і з головної консолі (якщо не запущені X) забезпечується програмою getty. init запускає окремий процес getty для кожного терміналу. getty зчитує ім'я користувача і запускає програму login, яка зчитує пароль. Якщо ім'я і пароль відповідають одному користувачеві, то login запускає оболонку. p> При виході з оболонки, тобто при виході з системи, або при завершенні програми login у разі якщо ім'я користувача та пароль не підходять, init запускає новий процес getty. Ядро не контролює підключення до системи, а тільки виконує системні програми. h2> 2.3. Syslog
Іноді при роботі ядра або різних системних програм виникають помилки, попередження та інші повідомлення. Програма syslog записує всі повідомлення в файл так, що він може бути згодом переглянутий. Syslog можна конфігурувати так, що повідомлення будуть сортуватися і записуватися в різні файли по пріоритету. Наприклад, повідомлення ядра часто направляються в один файл, так як ці повідомлення найбільш важливі і повинні регулярно перегляда...