- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Сценарії ініціалізації ос. Приклади системних демонів.
В процесі ініціалізації можна виділити кілька етапів:
Розпізнавання і конфігурування пристроєм, ініціалізація драйверів і авто конфігурація ядра
Визначення і монтування кореневої файлової системи
Запуск основних системних демонів
Виконання ініціалізацій них сценаріїв
Запуск менеджерів дисплею і терміналів
Демон - це завдання, що виконується у фоновому режимі, і при запуску машини стартує ціла маленька армія таких. Бувають демони управління автоматизованими завданнями, демони для управління живленням і параметрами CPU, демони для друку і демони для ведення системних журналів. Деякі видають своє походження, додаючи до імен букву «d», інші воліють назви-ребуси навроде «binfmpt-support» або «brltty».
Демони, безсумнівно, невід'ємна частиною робочого оточення. Але є з ними і проблема. Без божественного осяяння звичайному дистрибутива Linux в точності не вгадати, які демони вам знадобляться, а які ні - в результаті всі вони норовлять перестрахуватися, аж до курйозів. Наприклад, ваш настільний комп'ютер може отримати демона управління живленням ноутбука або демона Bluetooth; працевлаштування обом не світить, але вони будуть завантажуватися і поїдати цінну пам'ять. Час завантаження і витрата пам'яті можна зменшити, трохи попрацювавши над відсіченням ваших демонів і їх підгонкою під свої вимоги. Весь фокус у тому, що саме потрібно видаляти.
Говорячи про демонів, більшість має на увазі сервіси. Часто вони стартують при завантаженні і скромно виконуються у фоновому режимі - але це не обов'язково легковагі засоби управління системою. Немає причин не вважати демонами і повні пакети додатків. Які сервіси виконувати, а які - ні, цілком залежить від вашого дистрибутива і цілей його застосування. Якщо ви використовуєте дистрибутив, орієнтований на серверне застосування, то досить імовірно, що в числі демонів буде web-сервер Apache разом зі своєю школою додатків-помічників. Це безпардонна побір ваших ресурсів, якщо web-сервер вам ні до чого, адже ще не так давно дистрибутиви типу Mandriva встановлювали і запускали web-сервер за замовчуванням. В наші кризові часи, швидше за все, такого не відбувається, але дуже ймовірно, що у вас все ще залишається небудь непотрібне, «крутиться» у фоновому режимі. Приклади демонів: AppArmor, Apport, Avahi-deamon, Bluetooth, CUPS, GPM, KLogd, NTP, Powersaver, Powernowd, Laptop-mode.
Командний інтерпретатор. Базовий синтаксис команд. Шаблони вибору імен файлів.
Багатозадачність. Види реалізації багатозадачності.
Операційне середовище користувача та прикладних програм. Основні елементи операційного середовища. Організація сеансу роботи користувача через інтерфейс командного рядка.
Інструментальні засоби програмування. Основні відомості про мови програмування.
Загальні відомості про особливості розробки командних сценаріїв та програм на мові, що передбачає компіляцію.
Першою фазою є стадія компіляції, коли файли з вихідними текстами програми, включаючи файли заголовків, обробляються компілятором gсс (1). Параметри компіляції задаються або з допомогою файлу makefile, або явним зазначенням необхідних опцій компілятора в командному рядку. У підсумку компілятор створює набір проміжних об'єктних файлів. Традиційно імена створених об'єктних файлів мають суфікс «.о».
На наступній стадії ці файли за допомогою редактора зв'язків id зв'язується один з одним і з різними бібліотеками, включаючи стандартну бібліотеку за замовчуванням і бібліотеки, зазначені користувачем в якості параметрів. При цьому редактор зв'язків може виконуватися в двох режимах: статичному та динамічному, що задається відповідними опціями. У статичному, найбільш традиційному режимі зв'язуються всі об'єктні модулі і статичні бібліотеки (їх імена мають суфікс «.а»), проводиться дозвіл всіх зовнішніх посилань модулів і створюється єдиний виконуваний файл, що містить весь необхідний для виконання код. У другому випадку, редактор зв'язків по можливості підключає
спільні бібліотеки (імена цих бібліотек мають суфікс «.so»).В результаті створюється виконуваний файл, до якого в процесі запуску на виконання будуть підключені всі поділювані об'єкти. В обох випадках за умовчанням створюється виконуваний файл з ім'ям a.out
Для простих завдань усі фази автоматично виконуються викликом команди:
$ make prog або еквівалентній їй $ cc –o prog prog.c
які створюють виконуваний файл з ім'ям prog. У цьому випадку замовчуване ім'я виконуваного файлу(a.out) змінено на prog за допомогою опції –о.
Втім, вказані стадії можна виконувати і роздільно, з використанням команд сс і id. Зауважимо, що насправді команда cc являється програмною оболонкою і компілятора і редактора зв'язків, яку і рекомендується використовувати при створенні програм.
Проілюструємо процес створення більш складної програми за допомогою конкретних викликів команд.
$ cc –c file1. c file2.c Створимо проміжні об'єктні файли file1.o і file2.o
$ cc –o prog file1.o file2.o -lnsl Створимо виконуваний файл з ім'ям
prog, використовуючи проміжні об'єктні файли і бібліотеку або libnsl.a або libnsl.so
В оболонку вбудована мова програмування (командний мова), Що дозволяє писати складні командні сценарії. Саме командна мова відділяє оболонки один від одного, и саме з нього виходять користувачі, вибираючи оболонки
Linux є Unix-подібної ОС. Спочатку ОС Linux Була розроблено Лінусом Торвальдсом (Linus Torvalds) в університеті Хельсінкі (Фінляндія) на Основі ОС Minix - маленька UNIX-система, створ Andry Tanenbaum. Ранній Розвиток Linux насамперед Було пов'язано з проблемою перемикань Завдання в захіщеному режимі для 80386. І Лінус "ставши серйозно обдумувати маніакальну ідею, Як Зробити Minix краще собі самого".
Командна оболонка в системах UNIX-Вже існувала, Це Була оболонка "Bourne shell" (shell Баурна або просто shell). Трохи пізніше в UNIX-системах розробили оболонку C shell, Яка використовує Інший синтаксис,трохи нагадує синтаксис мови програмування Сі.
