- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток Unix - подібних систем.
- •Принципи структуризації побудови ос.
- •Підходи до архітектурної ос.
- •Основні функціональні підсистеми сучасних ос.
- •Підсистема управління оперативною пам'яттю
- •Підсистема управління задачами (процесами)
- •Апаратна підтримка функціонування ос.
- •Призначення та принципи роботи основних функціональних підсистем.
- •Інтерфейс системних викликів, статичні та динамічні бібліотеки.
- •Процес. Дескриптор процесу. Створення та завершення процесів.
- •Порядок запуску програм засобами базового інтерфейсу управління процесами.
- •Основні можливості та функції базового інтерфейсу управління процесами.
- •Ідентифікатор процесу. Основні атрибути процесу. Оперування атрибутами процесу.
- •Організація взаємодії між батьківським та дочірніми процесами.
- •Створення та завершення процесів. Поняття про дескриптор процесу.
- •Отримання ідентифікаторів процесів. Стани процесу.
- •Загальний порядок та фізичний зміст створення нового процесу.
- •Поняття процесу з позиції концепції багатопотокового виконання.
- •Поняття про життєвий цикл процесу.
- •Основні можливості та функції базового інтерфейсу управління сигналами. Диспозиція сигналу процесу.
- •Загальний порядок генерування та доставки сигналів процесу. Типи та властивості сигналів.
- •Основні можливості та функції базового інтерфейсу управління потоками.
- •Порядок створення та завершення потоків.
- •Принципи застосування базового інтерфейсу введення/виведення. Порядок роботи з файлом.
- •Основні можливості та функції стандартної бібліотеки введення/виведення.
- •Принципи застосування стандартної бібліотеки введення/виведення. Порядок роботи з файлом.
- •Поняття файлу. Типи файлів. Дані та метадані файлу.
- •Особливості застосування базового інтерфейсу та стандартної бібліотеки введення/виведення.
- •Загальні концепції синхронізації задач.
- •Сутність проблеми змагань між задачами. Умови виникнення змагань. Критичний код, критичний ресурс.
- •Загальні відомості про інтерфейси користувача ос.
- •Графічний інтерфейс
- •Порівняння графічного інтерфейсу та інтерфейсу командного рядка.
- •Приклади графічних середовищ користувача. Організація текстового сеансу роботи користувача.
- •Загальний порядок завантаження ос. Ланцюгове завантаження.
- •Досистемний етап завантаження.
- •Системний етап завантаження. Реалізація системного етапу завантаження Linux.
- •Процес init. Файли /etc/inittab, /etc/rc.D/rc.Sysinit.
- •Сценарії ініціалізації ос. Приклади системних демонів.
- •Компіляція та компоновка. Основні прийоми розробки початкових текстів, компіляції і компоновки програм. Статична компоновка. Динамічне зв’язування.
- •Створення та підключення бібліотек. Види бібліотек. Управління вибором способу підключення бібліотек, наявних у двох варіантах.
- •Види бібліотек та порядок створення бібліотек.
- •Поняття файлу та файлової системи. Імена файлів. Символічне посилання на файл.
- •Фізична організація файлових систем. Типи фізичної організації файлових систем. Поняття фрагментації даних.
- •Типи файлів. Власники файлів. Права доступу до файлів.
- •Основні атрибути файлів.
- •Призначення та приклади використання утиліт: mkdir, mknod, mkfifo, cp, mv, rename.
- •Типи користувачів. Облікові даних користувачів. Групи користувачів.
- •Призначення та зміст файлів, що утворюють традиційну базу обліку користувачів Unix. Псевдокористувачі.
- •Призначення та приклади застосування базових утиліт управління обліком користувачів Unix: useradd, usermod, userdel, groupadd.
- •Призначення та приклади застосування базових утиліт управління обліком користувачів Unix: groupmod, groupdel, passwd, gpasswd.
- •Програма, задача, процес. Привілейовані та непривілейовані процеси.
- •Ідентифікатор процесу. Родинні відносини між процесами.
- •Призначення та приклади застосування базових утиліт управління задачами Unix: ps, kill, nice, renice, su, sudo.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Процес init. Файли /etc/inittab, /etc/rc.D/rc.Sysinit.
Init є батьком всіх процесів. Його головне завдання - створювати процеси за сценарієм з файлу / etc / inittab. У цьому файлі зазвичай містяться записи, що вказують init породити getty для кожної лінії, по якій користувачі можуть входити в систему. Він також контролює автономні процеси, необхідні будь-якій системі. Рівень виконання - програмна конфігурація системи, яка дозволяє існувати тільки заданій групі процесів. Процеси, що породжуються init на кожному з таких рівнів виконання, визначаються у файлі / etc / inittab. У процесі завантаження, після ініціалізації ядра, ядро запускає / sbin / init як перший процес користувацького режиму. init відповідає за подальшу завантаження системи. Для цього він запускає так звані стартові скрипти, які виконують перевірку та монтування файлових систем, запуск необхідних демонів, налаштування ядра (у тому числі завантаження модулів ядра згідно встановленому обладнанню, настройку IP-адрес, таблиць маршрутизації та ін), запуск графічної оболонки і інші дії.
В операційних системах Unix / Linux за допомогою init можна змінити рівень ініціалізації. Рівень ініціалізації - ступінь завантаження операційної системи. Ось як відбувається ініціалізація системи: процес init запускається і аналізує файл / etc / inittab. Слід зазначити, що наведена тут система ініціалізації працює на системах Linux і Unix System V і вона дещо відрізняється від стилю ініціалізації системи в BSD-подібних системах.
За замовчуванням, в системі використано 7 рівнів ініціалізації:
0 - зупинка системи
1 - завантаження в режимі одного
2 - завантаження в многопользовательском режимі без підтримки мережі
3 - завантаження в многопользовательском режимі з підтримкою мережі
4 - не використовується
5 - завантаження в многопользовательском режимі з підтримкою мережі і графічного входу в систему
6 - перезавантаження
Набравши init n в терміналі (з правами суперкористувача), де n - номер рівня ініціалізації, можна переключитися в кожній з перерахованих вище рівнів.
Файл /etc/inittab id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
У першому рядку описаний термінал і його конфігурація за замовчуванням. Спочатку в цьому файлі описуються рівні ініціалізації. Потім ініціюються віртуальні консолі. Запис ініціалізації консолей складається з полів, розділених двокрапкою і виглядає наступним чином:
1 - порядковий номер консолі
2345 - номери рівнів ініціалізації, для яких консоль ініціалізується
respawn - цей параметр означає, що init повинен перезапустити обслуговуючий консоль процес після виходу з сеансу або в разі краху.
/ sbin / mingetty tty6 - програма (із зазначенням параметрів), яка обслуговуватиме консоль.
Таким чином, ви легко можете створити свій рівень ініціалізації (під номером 4 або 7, 8 ...), просто виправивши файл / etc / inittab і створивши необхідні посилання в каталозі / etc / rc.d / rc *. D
