Щоб розкрити першу відповідь про POSIX, зрозуміти, що означає "схожий на unix", спершу слід спробувати зрозуміти, що саме таке UNIX. Переглянувши документацію Відкритої групи , яка є власником торговельної марки Unix, ви знайдете подробиці про розвиток єдиної специфікації UNIX - ось UNIX03 :
Стандарт продукту UNIX 03 - це марка для систем, що відповідають версії 3 Єдиної специфікації UNIX. Це значно вдосконалена версія продуктового стандарту UNIX 98. Обов'язкові вдосконалення включають узгодження з ISO / IEC 9989: 1999 C програмуванням, програмою IEEE Std 1003.1-2001 та ISO / IEC 9945: 2002. Цей стандарт продукту включає такі обов'язкові стандарти продукту: інтернаціоналізовані системні виклики та бібліотеки, розширені V3, команди та утиліти V4, мова мови V2 та інтернаціоналізовані інтерфейсні термінали.
UNIX98 :
Стандарт продукту UNIX 98 є значно вдосконаленою версією продуктового стандарту UNIX 95. Обов’язкові вдосконалення включають: (1) інтерфейси ниток, (2) розширення підтримки багатобайтової підтримки (MSE), (3) підтримка великих файлів, (4) динамічне посилання, (5) зміни для усунення апаратних залежностей або обмежень довжини даних та (6) ) 2000 рік змін. Крім того, включені наступні додаткові удосконалення: засоби адміністрування програмного забезпечення та набір API для підтримки в режимі реального часу. Цей стандарт продукту включає такі обов'язкові стандарти продукту: інтернаціоналізовані системні виклики та бібліотеки, розширені V2, команди та утиліти V3, мова C, транспортна служба (XTI) V2, розетки V2 та інтернаціоналізовані інтерфейсні термінали. Крім того, він також може відповідати Стандарту продукту адміністрування програмного забезпечення.
UNIX95 (мій акцент):
Цей Стандарт продукту визначає консолідовану платформу для підтримки широкого спектру застосунків, спочатку розроблених для одного з класів операційних систем, які були отримані з коду операційної системи UNIX та / або інтерфейсів, спочатку розроблених AT&T , на додаток до наданих засобів за базовим продуктом. Він має ширший обсяг, ніж База. Цей стандарт продукту включає такі стандарти продукту: розширені інтернаціоналізовані системні виклики та бібліотеки, команди та утиліти V2, мова C, транспортна служба (XTI), розетки та інтернаціоналізовані інтерфейсні термінали.
Серверні версії стандарту в деяких випадках додають Інтернет-сервер та IPv6.
Звичайно, ми бачимо, що посилання на AT&T Bell Laboratories і мова C лежить в основі того, що є UNIX: мова C, модульні базові інструменти та оболонка, а також те, як ядро, файлова система та інші ключові компоненти ОС були розроблені та реалізовані .
Ось де книга Модис Дж. Баха «Дизайн операційної системи UNIX» стає неоціненною для читання, оскільки на даний момент це історичні питання. Зрозуміло, що це пов'язано з іншими винаходами, такими як мова С. C був розроблений AT&T Bell для впровадження Unix з мовою, яка може бути такою ж швидкою, як збірка, але портативною для різних апаратних засобів, і багато POSIX - це розширення до стандартного C.
Наскільки це стосується самого ядра, ви часто знайдете концептуальну діаграму, як ця, щоб проілюструвати те, про що ядро UNIX традиційно стосувалося:
Ось кілька уривків із класичної книги містера Баха (1986), в якій обговорюються основи ядра UNIX System V:
Однак вони [додаткові підсистеми та програми] всі користуються сервісами нижчого рівня, зрештою наданими ядром, і вони користуються цими послугами через набір системних викликів. У системі V існує близько 64 системних дзвінків, з яких менше 32 використовуються часто. Вони мають прості параметри, які роблять їх простими у використанні, але надають користувачеві велику потужність. Набір системних викликів та внутрішніх алгоритмів, які їх реалізують, утворюють тіло ядра [...]
[...] двома його основними компонентами є файлова підсистема та підсистема процесу.
Файли організовані у файлові системи, які розглядаються як логічні пристрої; фізичний пристрій, такий як диск, може містити кілька логічних пристроїв (файлових систем). Кожна файлова система має суперблок, який описує структуру та вміст файлової системи, а кожен файл у файловій системі описується індедом, який дає атрибути файлу. Системні дзвінки, що маніпулюють файлами, роблять це через inodes. [і буферний пул]
[...] Є дві версії inode: дискова копія, яка зберігає інформацію про inode, коли файл не використовується, і вбудована копія, яка записує інформацію про активні файли.
Виконання користувацьких процесів у системах UNIX поділяється на два рівні: користувальницький і ядерний. Коли процес виконує системний виклик, режим виконання процесу змінюється від призначеного для користувача режиму в режим ядра : операційна система виконує і спробу обслужити запит користувача [...]
[...] Філософія системи UNIX полягає у наданні примітивів операційної системи, які дозволяють користувачам писати невеликі модульні програми, які можна використовувати як будівельні блоки для створення більш складних програм. Один з таких примітивних, помітних користувачам оболонок, - це можливість перенаправляти введення-виведення .
[...] Окрім обслуговування системних викликів, ядро здійснює загальну бухгалтерію для спільноти користувачів, контролює планування процесів, керує зберіганням та захистом процесів у основній пам'яті, поле переривання, керування файлами та пристроями та піклування про системні помилки умови.
Якщо ви зацікавлені в різних реалізаціях ядер в UNIX-подібних операційних систем, ви також можете подивитися регент реалізації (4.4BSD) або на Mach ядрі або подивіться на це порівняння їх особливостей.
Чим більше ви знаєте про дизайн UNIX, тим більше ви розумієте, що сталося на наступній діаграмі про походження UNIX та його історію . У своїй книзі пан Бах в основному говорить про Систему V, але також обговорює BSD:
Тут є більше, ніж насправді зустрічає очі . Наприклад, Mac OSX сертифікований UNIX03, але чи бачите ви, що він підключений до будь-якого з чистих UNIX (переважно червоним кольором)?
Вище ви можете бачити, як BSD, GNU, Microsoft та різноманітні люди сприяли цьому Всесвіту. Навіть незважаючи на те, що GNU і в кінцевому підсумку Linux не мають прямого походження до UNIX, ви бачите, що GNU намагається перепрофілювати у світі відкритих джерел інструменти та програмне забезпечення комерційного UNIX, яке закрилося. Тож перегляд програмного забезпечення, що підтримується GNU, дає уявлення, наприклад, про початкові програми-бібліотеки та прототипи.
Ліцензійні війни відігравали певну роль у еволюції (а іноді і застою) UNIX. Ви можете відразу побачити, що UNIXs вишиковуються відповідно до типу ліцензії - закрито проти BSD ( BSD дозволяє зробити код закритим джерелом ... див. OSX) та GPL, що дозволяє Linux і GNU доповнювати себе у світі копілефт. Ось класична карта ядра Linux, спочатку розроблена Лінусом Торвальдсом, яка також розкриває, що ядро "може" бути в Unix-подібній операційній системі:
Це натякає на ідею, що тип дизайну " ядра " - це не те, що робить стандарт UNIX, або те, що визначає unix-подібну ОС. Про це свідчить той факт, що багато Unix-подібних ОС можуть мати або монолітне ядро, або мікроядро - монолітний був класичним типом проектування для UNIX. Насправді, навіть в рамках чистих UNIXes, HPUX має монолітне ядро, тоді як AIX використовує мікроядро. Ця дискусія з приводу дизайну стосується продуктивності та не пов'язана з родовищем або особистістю Unix. З іншого боку, існує традиційний концептуальний підхід до надання послуг програмному забезпеченню, роботи з файловими системами тощо в рамках UNIX / unix-подібних операційних систем.
Вважаю, що такі міркування додадуть контексту до вашої ОС питання.