Unix — це дуже стара система, яка вважається «матір’ю» всіх операційних систем. Ядро Linux є похідним від Unix продуктом. Основна різниця між ними полягає не в тому, як вони виглядають (різні графічні інтерфейси), а в їх роботі «із середини», тобто в ядрі. Багато чого також залежить від того, які саме версії/дистрибутиви Linux та Unix ви порівнюєте.
Важливо також зазначити, що Linux (та й багато інших Unix-подібних ОС) вільні у поширенні та модифікації своїх вихідних кодів, тоді як операційні системи Unix — ні. Вартість завжди є головною проблемою, коли компанії приймають рішення, яку технологію їм використовувати, й Linux має в цьому суттєву перевагу.
Що таке Unix?
Unix вважається «матір’ю» більшості операційних систем. Про історію Unix ми говорили на відповідному уроці.
Головною керівною складовою Unix є її ядро. Ядро має повний контроль над усією системою. Воно має підсистеми, які пропонують свої «послуги» в обробці файлової системи та ресурсів, керуванню пам’яттю, запуску та зупинці програм тощо.
Ядро є серцем операційної системи, яке створює інтерфейс між користувачем та апаратним забезпеченням комп’ютера. Кожна підсистема ядра має певні риси, такі як паралелізм, віртуальна пам’ять, підкачування та віртуальна файлова система.
У зовнішніх шарах архітектури знаходиться оболонка, команди та прикладні програми. Оболонка — це інтерфейс між користувачем та ядром. Вона дозволяє користувачеві вводити команди, інтерпретує ці команди та викликає відповідні програми.
Прикладами Unix-подібних систем є Solaris та HP-UX. Найбільші дистриб’ютори UNIX-систем — IBM (OC AIX), HP та SUN.
Що таке Linux?
Люди часто плутають терміни Unix та Linux і зазвичай запитують: «Чи відрізняється Unix від Linux?» / «Чи є Linux та Unix одним і тим же?» / «Чи схожий Linux на Unix?»/ «Чи побудований Linux на Unix?».
По-перше, Linux та Unix відрізняються один від одного, але при цьому вони мають взаємозв’язок один з одним, оскільки Linux походить від Unix.
Linux — це не Unix, а Unix-подібна операційна система. Система Linux походить від Unix, вона продовжує ті основи, які були закладені в Unix. Дистрибутиви Linux є найвідомішими прикладами прямих нащадків системи Unix. Система BSD (скор. від «Berkeley Software Distribution») та АІХ також є прикладами похідних Unix-систем.
На даному етапі важливо, щоб ви чітко розуміли, що означає термін «Unix-подібна система».
Unix-подібна ОС (також звана «UN*X» або «*nix») — це та система, яка працює аналогічно до системи Unix, проте при цьому їй не потрібно відповідати Єдиній специфікації UNIX (скор. «SUS» від«Single UNIX Specification») або подібному до SUS стандарту POSIX (скор. від «Portable Operating System Interface»).
SUS — це стандарт, якого має дотримуватися операційна система, щоб претендувати на використання торгової марки «UNIX». Ця торгова марка надається компанією «The Open Group». Декілька прикладів зареєстрованих нині UNIX-систем включають macOS, Solaris та AIX.
Якщо ж брати стандарт POSIX, то Linux можна розглядати як Unix-подібну ОС. Згідно з офіційним файлом README ядра Linux, Linux — це клон UNIX, код ядра якого розроблений з нуля Лінусом Торвальдсом та командою інших розробників. Linux орієнтований на відповідність вимогам стандарту POSIX, але система розроблена таким чином, що лише діє як Unix, але в неї немає вихідного коду Unix.
Важливо також відзначити, що Linux — це тільки ядро, а не повноцінна ОС. Ядро Linux зазвичай пакується в дистрибутиви Linux, що й створює вже повноцінну ОС. З іншого боку, UNIX — це повноцінна ОС, оскільки все (всі необхідні додатки) поставляється від одного вендора (постачальника). Наприклад, такою є система Solaris.
Дистрибутив Linux — це операційна система, створена з набору програмного забезпечення, встановленого поверх ядра Linux. Стандартний дистрибутив Linux складається з ядра Linux, системи GNU, утиліт GNU, бібліотек, компілятора, додаткового програмного забезпечення, документації, віконної системи, віконного менеджера та оточення робочого столу.
Більшість програмного забезпечення, включеного в дистрибутив Linux, є безкоштовним та відкритим. Але при цьому дистрибутив може включати пропрієтарні (платні) програми (наприклад, масиви двійкових даних (BLOB)), які необхідні для драйверів деяких пристроїв.
Відмінності між Unix та Linux
Розглянемо найважливіші відмінності між Linux та Unix у наступній таблиці:
| Порівняння | Linux | Unix |
| Розробник | Натхненний системою Minix (Unix-подібної ОС), ядро Linux було розроблено фінсько-американським інженером-програмістом Лінусом Торвальдсом. Оскільки вихідні коди Linux є відкритими, то у Linux є величезна спільнота розробників. | Була розроблена у стінах Bell Labs компанії AT&T Кеннетом Лейном Томпсоном, Деннісом Річі та трьома іншими програмістами. |
| Мова програмування | Написана (переважно) мовою Cі та іншими мовами програмування. | Написана мовою Cі та на Асемблері. |
| Торгова марка | Торгова марка «Linux» належить Лінусу Торвальдсу та керується організацією Linux Mark Institute при Linux Foundation. | Торгова марка «UNIX» сертифікована компанією “The Open Group”. |
| Стандарт | Стандартна база Linux (скор. «LSB» від «Linux Standard Base»), описана в стандарті ISO/IEC 23360 — це робота зі стандартизації ряду дистрибутивів Linux. LSB в основному є розширенням POSIX, але має деякі відмінності. Однак немає особливої необхідності в сертифікації LSB, оскільки різні дистрибутиви в будь-якому випадку використовують одне ядро. | Сертифікація Unix заснована на «Єдиній специфікації Unix», яка є розширенням стандарту IEEE 1003 (POSIX), а також стандарту ISO/IEC 9945. POSIX визначає програмований API, а також інтерфейси оболонки та утиліт. Стандарт POSIX був розроблений як спосіб забезпечення сумісності між різними дистрибутивами Unix. |
| Ліцензія | GNU v2 (GPL General Public License) та інші. | Тип ліцензії варіюється. Деякі версії є пропрієтарними, деякі — безкоштовними. |
| Сімейство ОС | Unix-подібна | Unix |
| Мовна підтримка | Мультимовна | Англійська |
| Перший реліз | Linux молодший за Unix. Він є нащадком Unix, реліз відбувся у вересні 1991 року. | Unix старший за Linux. Система була випущена у жовтні 1973 року. До цього, з моменту її створення у 1970 році, вона використовувалася виключно всередині компанії Bell Labs. |
| Приклади | Багато різних дистрибутивів: Ubuntu, Debian, CentOS, Fedora, Manjaro, Arch та ін. | IBM AIX, Solaris, HP-UX, Darwin, macOS та ін. |
| Тип ядра | Монолітне ядро | Тип ядра варіюється. Воно може бути монолітним, мікроядром чи гібридним. |
| Файлові системи | Підтримує майже всі файлові системи, що використовуються у різних операційних системах. | Більшість версій підтримують дві або, можливо, три файлові системи. |
| GUI | Linux орієнтований на роботу з командним рядком, але деякі дистрибутиви можуть пропонувати підтримку GUI-інтерфейсів. Найпопулярнішими GUI-інтерфейсами є Gnome, KDE та Xfce. | Спочатку система була підлаштована під роботу з командним рядком, але пізніше було реалізовано підтримку оточення робочого столу. У більшості Unix-дистрибутивів подібним оточенням є Gnome. |
| Масштабованість | *Масштабованість досягається за допомогою кластерів, мереж або хмар. | *Масштабованість досягається за допомогою кластерів або мереж. |
| Інтерфейс | Стандартною оболонкою є BASH (скор. від «Bourne Again SHell»). Але деякі дистрибутиви розробили власні інтерфейси. | Спочатку використовувався інтерфейс sh (скор. від «Bourne shell»). Але також система сумісна з іншими GUI-інтерфейсами. |
| Модель вихідних кодів | Відкриті вихідні коди (open-source software). | Змішана. Зазвичай вихідні коди є закритими, проте деякі проєкти Unix (типу ОС illumos та ОС BSD) належать до проєктів з відкритим вихідним кодом. |
| Безпека | Linux-системи зазвичай вважаються добре захищеними від шкідливих програм. Це пов’язано з тим, що виконувати будь-які дії щодо зміни системних файлів може лише користувач із правами superuser (su) або root. Постійно працювати під цими правами просунутий користувач у Linux (на відміну від Windows) не буде, а коли буде, то він знає, що він робить і які файли запускає. Віруси під Linux-системи є, але їхня кількість відносно мала, що безпосередньо пов’язане з невеликою світовою часткою ринку. | Unix також вважається дуже безпечним з тих же причин, що й Linux. |
| Виявлення помилок | Оскільки вихідні коди Linux є відкритими, то щоразу, коли користувач публікує інформацію про будь-яку помилку/загрозу, розробники з усього світу відразу починають працювати над нею. Таким чином забезпечується швидке розв’язання проблеми. | Через пропрієтарну природу системи Unix-користувачам доводиться чекати на патчі, які виправлять помилки. |
| Підтримка | Безкоштовна підтримка спільнотою. Платна підтримка доступна від кількох постачальників послуг. | Платна комерційна підтримка. Часто це призводить до вендор локу (прив’язка до постачальника). |
| Використання | Переважно використовується для хмарного розгортання та центрів обробки даних (насамперед з економічних причин). | Переважно використовується для серверів з особливими вимогами до додатків через необхідність підтримки застарілого обладнання/ПЗ. |
| Вартість використання | Більшість дистрибутивів є вільними та безкоштовними. Також існують платні дистрибутиви Linux, які (зазвичай) дешевші за Windows. | Пропрієтарні операційні системи мають різні структури витрат, встановлені вендорами (постачальниками), які їх продають. |
*Примітка: Кластер — це сукупність однорідних комп’ютерів, мережа — сукупність розподілених комп’ютерів, а хмара — сукупність віртуалізованих кластерів.
Ядро Linux vs. Ядро Unix
Оскільки Linux сам по собі є просто ядром, варто обговорити основні відмінності між ядром Linux та ядром Unix.
Існує три типи ядра: монолітне, мікроядро та гібридне (комбінація монолітного та мікроядра).
Хоча ядро Linux успадкувало більшу частину своїх характеристик від Unix/Unix-подібних ядер, проте між ними є деякі суттєві відмінності.

Розглянемо найважливіші відмінності між ядром Linux та ядром Unix у наступній таблиці:
| Особливості | Ядро Linux | Ядро Unix |
| Архітектура ядра | Монолітне | Ядро Unix може бути монолітним, мікроядром чи гібридним. Наприклад, macOS має гібридне ядро, Solaris — монолітне ядро, AIX — монолітне ядро з модулями, що динамічно завантажуються. |
| Додавання/видалення функцій ядра | Забезпечує чудову можливість, за допомогою якої компоненти ядра, наприклад накопичувачі, можуть динамічно додаватись та видалятися у вигляді модулів. Ця функція називається завантажувальними модулями ядра (скор. «LKM» від «Loadable Kernel Modules»). Завдяки цьому усувається необхідність повторної компіляції всього ядра. | Традиційне ядро Unix-систем потребує статичного зв’язування нових систем, що додаються. |
| Потоки | В Linux не має підсистеми вводу-виводу потоків. | У більшості ядер Unix увімкнена підсистема вводу-виводу потоків, яку реалізує уніфікований інтерфейс для зв’язку (читання або запису) з драйверами пристроїв, драйверами терміналів тощо. |
| Механізм потоків ядра | Linux використовує потік ядра лише для періодичного запуску деякого коду ядра. | Багато Unix-подібних операційних систем використовують потік ядра для перемикання контексту процесу. |
| Реалізація багатопотоковості | Завдяки багатопотоковості створюється більше одного незалежного потоку виконання, які називаються полегшеними процесами (скор. «LWP» від «Light-Weight Process»). В Linux LWP створюється шляхом виклику функції clone(). Ці процеси в Linux можуть використовувати фізичну пам’ять, відкриті файли, адресний простір тощо. | В Unix LWP заснований на потоках ядра. |
