4. Способи управління процесами і ресурсами
5. Умови експлуатації
6. Переваги та недоліки ОС UNIX
Список використаної літератури
UNIX з'явилася в 1969 році. За 30 з гаком років система стала досить популярною і набула поширення на машинах з різною потужністю обробки, від мікропроцесорів до великих ЕОМ, забезпечуючи на них загальні умови виконання програм. Система ділиться на дві частини. Одну частину складають програми та сервісні функції - це робить операційне середовище UNIX такої популярної; дана частина ОС легко доступна користувачам, вона включає такі програми, як командний процесор, обмін повідомленнями, пакети обробки текстів і системи обробки початкового програмного коду. Інша частина включає в себе власне операційну систему, яка підтримує ці програми і функції.
UNIX - традиційно мережева операційна система.
1. Історія створення, призначення
UNIX зародився в лабораторії Bell Labs фірми ATT більше 30 років тому. У той час Bell Labs займалася розробкою багатокористувацької системи поділу часу MULTICS (Multiplexed Information and Computing Service) спільно з MIT і General Electric, але ця система зазнала невдачі. Bell Labs відмовилася від участі в проекті MULTICS, що дало можливість одному з її дослідників, Кену Томпсону, зайнятися пошуковою роботою в напрямку поліпшення операційного середовища Bell Labs. Томпсон, а також співробітник Bell Labs Денис Рітчі і деякі інші розробляли нову файлову систему, багато рис якої вели своє походження від MULTICS. Для перевірки нової файлової системи Томпсон написав ядро ОС і деякі програми для комп'ютера GE-645, який працював під управлінням мультипрограммной системи поділу часу GECOS. У Кена Томпсона була написана ним ще за часів роботи над MULTICS гра "Space Travel" - "Космічна подорож". Він запускав її на комп'ютері GE-645, але вона працювала на ньому не дуже добре через невисоку ефективність розділення часу. Крім цього, машинний час GE-645 варто було занадто дорого. В результаті Томпсон і Рітчі вирішили перенести гру на машину PDP-7 фірми DEC, що має 4096 18-бітних слів, телетайп і хороший графічний дисплей. Але у PDP-7 було неважливе програмне забезпечення, і, закінчивши перенесення гри, Томпсон вирішив реалізувати на PDP-7 ту файлову систему, над який він працював на GE-645. З цієї роботи і виникла перша версія UNIX. Вже тоді вона включала характерну для сучасної UNIX файлову систему, засновану на індексних дескрипторах inode, мала підсистему керування процесами і пам'яттю, а також дозволяла двом користувачам працювати в режимі поділу часу. Система була написана на асемблері. Ім'я UNIX (Uniplex Information and Computing Services) було дано їй одним співробітником Bell Labs, Брайаном Керніганом,
Першими користувачами UNIX'а стали співробітники відділу патентів Bell Labs, що знайшли її зручним середовищем для створення текстів. Великий вплив на долю UNIX зробив перепис її мовою високого рівня З, розробленого Денисом Рітчі спеціально для цих цілей. Це сталося в 1973 році, UNIX нараховував до цього часу вже 25 інсталяцій, і в Bell Labs була створена спеціальна група підтримки UNIX.
Після опису системи Томпсоном і Рітчі в комп'ютерному журналі CACM в 1974 р UNIX набув широкого поширення. ОС стала затребувана в університетах, так як для них вона поставлялася безкоштовно разом з вихідними кодами на С. Широке поширення ефективних C-компіляторів зробило UNIX унікальної для того часу ОС через можливість переносу на різні комп'ютери. Університети внесли значний вклад у поліпшення UNIX і подальшу його популяризацію. Ще одним кроком на шляху до визнання UNIX, як стандартизованого середовища стала розробка Денисом Рітчі бібліотеки введення-виведення stdio. Завдяки використанню цієї бібліотеки для компілятора З, програми для UNIX стали легко переносяться.
ОС UNIX є інтерактивною операційною системою, це традиційно мережева операційна система.
2. Функціональні характеристики
До основних функцій ядра ОС UNIX прийнято відносити наступні:
1) Ініціалізація системи - функція запуску і розкрутки. Ядро системи забезпечує засіб розкрутки (bootstrap), яке забезпечить регулярне повного ядра в пам'ять комп'ютера і запускає ядро.
2) Управління процесами і нитками - функція створення, завершення і відстежування існуючих процесів і ниток ( "процесів", які виконуються на загальній віртуальній пам'яті). Оскільки ОС UNIX є мультіпроцессной операційною системою, ядро забезпечує поділ між запущеними процесами часу процесора (або процесорів в мультипроцесорних системах) та інших ресурсів комп'ютера для створення зовнішнього відчуття того, що процеси реально виконуються в паралель.
3) Управління пам'яттю - функція відображення практично необмеженої віртуальної пам'яті процесів в фізичну оперативну пам'ять комп'ютера, яка має обмежені розміри. Відповідний компонент ядра забезпечує поділюване використання одних і тих же областей оперативної пам'яті кількома процесами з використанням зовнішньої пам'яті.
4) Управління файлами - функція, що реалізує абстракцію файлової системи, - ієрархії каталогів і файлів. Файлові системи ОС UNIX підтримують кілька типів файлів. Деякі файли можуть містити дані в форматі ASCII, інші відповідатимуть зовнішнім пристроям. У файлової системи зберігаються об'єктні файли, що виконуються файли і т.д. Файли зазвичай зберігаються на пристроях зовнішньої пам'яті; доступ до них забезпечується засобами ядра. У світі UNIX існує кілька типів організації файлових систем. Сучасні варіанти ОС UNIX одночасно підтримують більшість типів файлових систем.
5) Комунікаційні засоби - функція, що забезпечує можливості обміну даними між процесами, що виконуються всередині одного комп'ютера (IPC - Inter-Process Communications), між процесами, що виконуються в різних вузлах локальної або глобальної мережі передачі даних, а також між процесами і драйверами зовнішніх пристроїв.
6) Програмний інтерфейс - функція, що забезпечує доступ до можливостей ядра з боку призначених для користувача процесів на основі механізму системних викликів, оформлених у вигляді бібліотеки функцій.
3. Особливості архітектури ОСUNIX
Архітектура ОС UNIX - багаторівнева (рис.1). На нижньому рівні, безпосередньо над обладнанням, працює ядро операційної системи. Функції ядра доступні через інтерфейс системних викликів, що утворюють другий рівень. На наступному рівні працюють командні інтерпретатори, команди і утиліти системного адміністрування, комунікаційні драйвери і протоколи, - все те, що зазвичай відносять до системного програмного забезпечення. Нарешті, зовнішній рівень утворюють прикладні програми користувача, мережеві і інші комунікаційні служби, СУБД і утиліти.
4. Способи управління процесами і ресурсами
Файли і процеси, є центральними поняттями моделі операційної системи UNIX. Малюнок 1.2 представляє блок-схему ядра системи, яка відображатиме склад модулів, з яких складається ядро, і їх взаємозв'язку один з одним. Зліва зображена файлова підсистема, а праворуч підсистема управління процесами - дві головні компоненти ядра.
Рівень ядра апаратури
Рісунок.1.2 Блок-схема ядра операційної системи
Звернення до операційної системи виглядають так само, як звичайні виклики функцій в програмах на мові Сі, і бібліотеки встановлюють відповідність між цими викликами функцій і елементарними системними операціями. При цьому програми на асемблері можуть звертатися до операційної системи безпосередньо, без використання бібліотеки системних викликів. Програми часто звертаються до інших бібліотек, таким як бібліотека стандартних підпрограм введення-виведення, досягаючи тим самим більш повного використання системних послуг. Для цього під час компіляції бібліотеки зв'язуються з програмами і частково включаються в програму користувача. Сукупність звернень до операційної системи розділена на ті звернення, які взаємодіють з підсистемою управління файлами, і ті, які взаємодіють з підсистемою управління процесами. Файлова підсистема управляє файлами, розміщує записи файлів, управляє вільним простором, доступом до файлів і пошуком даних для користувачів. Процеси взаємодіють з підсистемою управління файлами, використовуючи при цьому сукупність спеціальних звернень до операційної системи, таких як open (для того, щоб відкрити файл на читання або запис), close, read, write, stat (запросити атрибути файлу), chown (змінити запис з інформацією про власника файлу) і chmod (змінити права доступу до файлу).
Підсистема управління файлами звертається до даних, які зберігаються в файлі, використовуючи буферний механізм, керуючий потоком даних між ядром і пристроями зовнішньої пам'яті. Буферний механізм, взаємодіючи з драйверами пристроїв введення-виведення блоками, ініціює передачу даних до ядра і назад. Драйвери пристроїв є такими модулями в складі ядра, які керують роботою периферійних пристроїв. Пристрої введення-виведення блоками відносяться програми користувача до типу запам'ятовуючих пристроїв з довільною вибіркою; їх драйвери побудовані таким чином, що всі інші компоненти системи сприймають ці пристрої як пристрої, що запам'ятовують з довільною вибіркою. Наприклад, драйвер пристрою, що запам'ятовує на магнітній стрічці дозволяє ядру системи сприймати цей пристрій як накопичувач з довільною вибіркою. Підсистема управління файлами також безпосередньо взаємодіє з драйверами пристроїв "неструктурованого" введення-виведення, без втручання буферного механізму. До пристроїв неструктурованого введення-виведення, іноді має назву пристроями посимвольного введення-виведення (текстовими), апаратного забезпечення, відмінні від пристроїв введення-виведення блоками.
Підсистема управління процесами відповідає за синхронізацію процесів, взаємодія процесів, розподіл пам'яті і планування виконання процесів. Підсистема управління файлами і підсистема управління процесами взаємодіють між собою, коли файл завантажується в пам'ять на виконання: підсистема управління процесами читає в пам'ять виконувані файли перед тим, як їх виконати.
Прикладами звернень до операційної системи, що використовуються при управлінні процесами, можуть служити fork (створення нового процесу), exec (накладення образу програми на виконуваний процес), exit (завершення виконання процесу), wait (синхронізація продовження виконання основного процесу з моментом виходу з породженого процесу ), brk (управління розміром пам'яті, виділеної процесу) і signal (управління реакцією процесу на виникнення екстраординарних подій.
Модуль розподілу пам'яті контролює виділення пам'яті процесам. Якщо в якийсь момент система відчуває нестачу в фізичної пам'яті для запуску всіх процесів, ядро пересилає процеси між основною і зовнішньою пам'яттю з тим, щоб всі процеси мали можливість виконуватися. Існує два способи управління розподілом пам'яті: вивантаження (підкачка) і заміщення сторінок. Програму підкачки іноді називають планувальником, тому що вона "планує" виділення пам'яті процесам і впливає на роботу планувальника центрального процесора. «За розкладом» планує черговість виконання процесів до тих пір, поки вони добровільно не звільнять центральний процесор, дочекавшись виділення будь-якого ресурсу, або поки ядро системи не вивантажить їх після того, як їх час виконання перевищить заздалегідь визначений квант часу. Планувальник вибирає на виконання готовий до запуску процес з найвищим пріоритетом; виконання попереднього процесу (припиненого) буде продовжено тоді, коли його пріоритет буде найвищим серед пріоритетів всіх готових до запуску процесів. Існує кілька форм взаємодії процесів між собою, від асинхронного обміну сигналами про події до синхронного обміну повідомленнями.
Нарешті, апаратний контроль відповідає за обробку переривань і за зв'язок з машиною. Такі пристрої, як диски та термінали, можуть переривати роботу центрального процесора під час виконання процесу. При цьому ядро системи після обробки переривання може відновити виконання перерваного процесу. Переривання обробляти не самими процесами, а спеціальними функціями ядра системи, перерахованими в контексті виконуваного процесу.
5. Умови експлуатації
UNIX - розрахована на багато користувачів операційна система. Користувачі, які займаються загальними завданнями, можуть об'єднуватися в групи. Кожен користувач обов'язково належить до однієї або декількох груп. Всі команди виконуються від імені певного користувача, який належить в момент виконання до певної групи.
У багатокористувацьких системах необхідно забезпечувати захист об'єктів (файлів, процесів), що належать одному користувачеві, від всіх інших. ОС UNIX пропонує базові засоби захисту та обміну файлами на основі відстеження користувача і групи, які володіють файлом, трьох рівнів доступу (для користувача-власника, для користувачів групи-власника, і для всіх інших користувачів) і трьох базових прав доступу до файлів (на читання, на запис і на виконання). Базові засоби захисту процесів засновані на відстежуванні приналежності процесів користувачам.
Для відстеження власників процесів і файлів використовуються числові ідентифікатори. Ідентифікатор користувача та групи - ціле число (зазвичай) в діапазоні від 0 до 65535. Присвоєння унікального ідентифікатора користувача виконується при закладі системним адміністратором нового реєстраційного імені. Значення ідентифікатора користувача і групи - не просто числа, які ідентифікують користувача, - вони визначають власників файлів і процесів. Серед користувачів системи виділяється один користувач - системний адміністратор або привілейований користувач, що володіє всією повнотою прав на використання і конфігурація системи. Це користувач з ідентифікатором 0 і реєстраційним ім'ям root.
При поданні інформації людині зручніше використовувати замість відповідних ідентифікаторів символьні імена - реєстраційне ім'я та назва групи. Відповідність ідентифікаторів і символьних імен, а також інша інформація про користувачів і групи в системі (облікові записи), як і більшість іншої інформації про конфігурацію системи UNIX, за традицією, представлена у вигляді текстових файлів. Ці файли - / etc / passwd, / etc / group і / etc / shadow.
6.Достоінства і недоліки
Широке поширення UNIX породило проблему несумісності його численних версій. Для користувача дуже неприємний той факт, що пакет, куплений для однієї версії UNIX, відмовляється працювати на іншій версії UNIX. Періодично робилися і робляться спроби стандартизації UNIX, але вони поки що мають обмежений успіх. Процес зближення різних версій UNIX і їхньої розбіжності носить циклічний характер. Перед лицем нової загрози з боку будь-якої іншої операційної системи різні виробники UNIX-версій зближають свої продукти, але потім конкурентна боротьба змушує їх робити оригінальні поліпшення і версії знову розходяться. В цьому процесі є і позитивна сторона - поява нових ідей і засобів, що поліпшують як UNIX, так і багато інших операційні системи, що перейняли у нього за довгі роки його існування багато корисного. Найбільшого поширення набули дві несумісні лінії версій UNIX: лінія ATT - UNIX System V, і лінія університету Berkeley-BSD. Багато фірм на основі цих версій розробили і підтримують свої версії UNIX: SunOS і Solaris фірми Sun Microsystems, UX фірми Hewlett-Packard, XENIX фірми Microsoft, AIX фірми IBM, UnixWare фірми Novell (проданий тепер компанії SCO), і список цей можна ще довго продовжувати.
Найбільший вплив на уніфікацію версій UNIX надали такі стандарти як SVID фірми ATT, POSIX, створений під егідою IEEE, і XPG4 консорціуму X / Open. У цих стандартах сформульовані вимоги до інтерфейсу між додатками і ОС, що дає можливість додаткам успішно працювати під управлінням різних версій UNIX.
Одним з основних переваг сімейства операційних систем типу UNIX і виник на їх основі підходу до стандартизації інтерфейсів операційних систем (важлива частина загального підходу відкритих систем) є те, що вони забезпечують єдину операційну середу на комп'ютерах з різною архітектурою.
Операційна система UNIX, що є першою в історії мобільної ОС, що забезпечує надійне середовище розробки і використання мобільних прикладних систем, одночасно є практичне підґрунтя для побудови відкритих програмно-апаратних систем і комплексів. Саме широке впровадження в практику ОС UNIX дозволило перейти від гасла Відкритих Систем до практичної розробки цієї концепції. Великий внесок у розвиток напрямку Відкритих Систем внесла діяльність по стандартизації інтерфейсів ОС UNIX.
Можна виділити кілька гілок ОС UNIX, що розрізняються не тільки реалізацією, але часом інтерфейсами і семантикою (хоча, у міру розвитку процесу стандартизації, ці відмінності стають все менш значними). Сьогодні популярний новий вільно розповсюджуваний варіант ОС UNIX, званий FreeBSD. Ведуться роботи над більш розвиненими версіями BSDNet.
Список використаної літератури