Лекція 14. UNIX-подібні операційні системи

14.1. Розвиток UNIX-подібних ОС

UNIX — операційна система, розробку якої впродовж 1969-1970-х років здійснювала група співробітників підрозділу Bell Labs корпорації AT&T у складі Кена Томпсона, Денніса Рітчі та Дугласа Макілроя. На сьогодні існує велика кількість UNIX-систем, які в свою чергу об'єднуються в сімейства. У їх розробці в різний час брали участь AT&T, деякі комерційні фірми, а також некомерційні організації.

У 1964 році з'явились комп'ютери третього покоління, для яких можливості BESYS вже не підходили. Висоцький та його колеги прийняли рішення не розробляти нову власну операційну систему, а підключитися до сумісного проекту General Electric та Массачусетського технологічного інститутк MULTICS. Вагому підтримку проекту надав телекомунікаційний оператор AT&T, але у 1969 році він вийшов з проекту, оскільки останній не приносив жодних фінансових вигод.

У 1969 році Кен Томпсон, намагаючись реалізувати ідеї, що були покладені в основу MULTICS, але на скромнішому апаратному забезпеченні, написав першу версію нової операційної системи, а Брайан Керніган вигадав для неї назву — UNICS — в противагу MULTICS. Пізніше ця назва скоротилась до UNIX.

У 1973 р. було прийняте рішення переписати ядро системи на щойно створеній мові Сі. UNIX став першою операційною системою, майже повністю написаною на мові програмування високого рівня, що суттєво спростило портування системи на інші архітектури.

Версія 7 була останньою єдиною версією UNIX. Саме у версії 7 з'явився близький до сучасного інтерпретатор командного рядка Bourne shell.

На початку 1980-тих компанія AT&T, якій належали Bell Labs, зрозуміла цінність UNIX та почала створення комерційної версії UNIX. Ця версія, яка надійшла у продаж у 1982 році, отримала назву UNIX System III та базувалася на сьомій версії системи. Трохи раніше, у 1977 р. лабораторія Білла Джоя в університеті Берклі створила власну версію UNIX, яка базувалась на UNIX Version 6. Ця версія отримала назву BSD (Berkeley Software Distribution).

Поворотним моментом у історії UNIX стала реалізація у 1980 р. стека протоколів TCP/IP.

Пізніше багато компаній ліцензували System V у AT&T, і розробили власні комерційні різновиди UNIX, такі, як AIX, HP-UX, IRIX, Solaris.

У 1983 році Річард Столлмен оголосив про створення проекту GNU — спроба створення вільної UNIX-подібної операційної системи з нуля, без використання оригінального початкового коду. Однак, роботи з створення заміни для ядра UNIX, необхідного для повного виконання задач GNU, відбувались дуже повільно. На теперішній час GNU Hurd — спроба створити сучасне ядро на основі мікроядерної архітектури Mach — все ще далека від завершення.

У 1991 році, коли Лінус Торвальдс опублікував ядро Linux та залучив помічників, використання інструментів, розроблених у рамках проекту GNU, було очевидним вибором. Об'єднавшись з ядром Linux, програмне забезпечення GNU стало основою для UNIX-подібної операційної системи, відомою як Linux.

У результаті регулювання юридичної справи, відкритою UNIX Systems Laboratories проти університету Берклі, було встановлено, що університет може розповсюджувати BSD UNIX, в тому числі і безкоштовно. Після цього були відновлені експерименти, пов'язані з BSD-версією UNIX.

 

14.2. Операційні системи BSD

BSD (Berkeley Software Distribution) - система розповсюдження програмного забезпечення в початкових кодах, створена для обміну досвідом між навчальними закладами. Особливістю пакетів програмного забезпечення BSD була спеціальна ліцензія BSD, яку коротко можна охарактеризувати так: весь вихідний код - власність BSD, всі правки - власність їх авторів.

До родини BSD відносяться: NetBSD, FreeBSD, OpenBSD, ClosedBSD, MirBSD, DragonFly BSD, PC-BSD, DesktopBSD, SunOS, TrueBSD, Frenzy, Ultrix і частково XNU (ядро macOS, IOS, tvOS, watchOS, CarPlay, Darwin).

Відмінності від «класичної» системи UNIX заключені в системі друку, файловій системи, відсутності перемикання рівнів виконання і командній оболонці. Призначені для користувача команди практично ідентичні.

Ліцензія BSD - це ліцензійна угода, вперше застосована для поширення UNIX-подібних операційних систем BSD.

Існують дві основні версії ліцензії BSD, які необхідно розрізняти: «оригінальна» і так звана «модифікована».

Ці ліцензії були піддані ряду змін, породивши безліч ліцензій, узагальнено іменованих «ліцензії типу BSD». В даний час ліцензії типу BSD є одними з найпопулярніших ліцензій для вільного програмного забезпечення і використовуються для багатьох програм.

Ліцензія BSD допускає комерційне використання програмного забезпечення. Найбільш помітні приклади таких програм - використання мережевого коду BSD в продуктах корпорації Microsoft, використання багатьох компонентів FreeBSD в операційній системі Mac OS X, а також використання ядра FreeBSD для створення PlayStation 4.

 

14.3. Дослідницькі системи та любительські системи

MINIX — відкрита, UNIX-подібна операційна система на основі мікроядерної архітектури. Розробкою системи керує відомий учений Ендрю Таненбаум за фінансової підтримки Європейської дослідницької ради.

ОС MINIX побудована на базі мікроядерної архітектури: код, який працює на рівні ядра, становить лише кілька тисяч рядків, решта працює на рівні користувача. Базове програмне оточення Minix увібрало в себе велику кількість стандартних для BSD-систем утиліт і бібліотек, портованих з NetBSD. Додатково в репозиторії представлено близько кількасот пакунків з різноманітними додатками.

Ендрю Таненбаум написав дану систему для освітніх цілей. MINIX надихнула Лінуса Торвальдса на написання ядра Linux. Пізніші версії впровадили низку значних поліпшень і змін, що дозволили розглядати MINIX не тільки як систему для експериментів і освітніх потреб, але і як платформу для виробників вбудовуваної техніки, що відрізняється модульністю, високою надійністю і низьким споживанням пам'яті.

З січня 2012 розпочалася розробка порту MINIX для архітектури ARM.

MenuetOS — операційна система, яка повністю написана на мові асемблер і вміщається на одну дискету. Не базується на жодній з відомих архітектур операційних систем. Операційна система MenuetOS має свій власний програмний інтерфейс (API), який зручний для створення додатків для цієї системи на мові асемблер.

KolibriOS — операційна система з відкритими вихідними кодами, що базується на MenuetOS. Повністю написана на мові асемблер і вміщається на одну дискету. Система розрахована на використання асемблера для написання програм до неї, хоча є програми, написані на С, C++, Free Pascal, Forth тощо. ОС використовує власні стандарти і не базується на POSIX. У цей час більшість розробників мешкає на території країн СНД.

Обидві системи багатозадачні, багатопотокові, мають графічний інтерфейс користувача, підтримку протоколу TCP/IP для роботи локальних мереж та Інтернету.

ReactOS — це операційна система, що розробляється в рамках проекту з відкритими кодами, сумісна на двійковому рівні з прикладними програмами та драйверами лінійки ОС Windows NT. В даний час проект перебуває на alpha стадії розробки, хоча деякі цілі проекту вже досягнуто.

Елементи ReactOS в основному створені на мові програмування C, причому деякі елементи, такі як ReactOS File Explorer, написані на C++. ReactOS частково копіює можливості Windows API, і має версію, портовану для архітектури AMD64. ReactOS, як частина екосистеми вільних програм, співпрацює з багатьма іншими проектами, в першу чергу, з проектом Wine Project, який розробляє програму Wine для Unix-подібних операційних систем, яка могла б відкривати додатки Windows.

Haiku — вільна операційна система для персональних комп'ютерів, перша версія якої націлена на бінарну сумісність з операційною системою BeOS.

Це модульна система, архітектурно вирішена як гібридне ядро: мікроядерна архітектура, здатна динамічно довантажувати необхідні модулі. Мережевий стек працює в режимі ядра, але з метою двійковій сумісності з BeOS R5 має також інтерфейс в призначеній для користувача області пам'яті.

Ядро Haiku - NewOS - написане колишнім інженером Be Inc. Тревісом Гейсельбрехтом і повністю сумісне з додатками свого оригіналу - BeOS R5.

Haiku розробляється переважно на мові програмування C++, з невеликою частиною коду на асемблері.

Остання зміна: Saturday 30 May 2020 14:53 PM