Чи є macOS UNIX? (і що це означає?)

Чи є macOS UNIX, чи це лише його подоба? Ми спробуємо прояснити ці постійні дискусії, пояснюючи, що таке стандарти POSIX та SUS.

macOS: UNIX чи ні?

Це питання породжує безліч суперечок. Яка історія походження macOS? Яка частина її первинного коду збереглася в сучасній версії, і чи має це значення? Щоб зрозуміти, чи можна вважати macOS Unix, UNIX, або чимось подібним, слід розібратися зі значенням цих термінів і критеріями, за якими визначається приналежність системи до UNIX.

Почнемо з історії.

Unix виникла півстоліття тому в Bell Labs, дослідницькому центрі, що належав AT&T. У 1973 році, четверта версія Unix була переписана на мові програмування C, що значно підвищило її портативність і спростило перенесення на різні апаратні платформи. Того ж року, Кен Томпсон та Денніс Річі, ключові розробники Unix, представили доповідь про операційні системи, що викликало миттєвий інтерес до отримання копій системи.

Через антимонопольний указ від 1956 року, AT&T не мала права вести бізнес, крім надання телекомунікаційних послуг. Unix не підпадав під цю категорію, тому компанія вирішила розповсюджувати її як вихідний код на ліберальних умовах, з невеликою платою за доставку і “розумною винагородою”.

Поширення Unix

Оскільки Unix поширювалася “як є”, без підтримки, навколо неї сформувалася спільнота, яка надавала допомогу користувачам, виправляла недоліки та вдосконалювала систему. Користувачі отримали можливість змінювати вихідний код і звертатися за підтримкою до спільноти. Такий підхід сприяв появі різних варіацій Unix, адаптованих до потреб різних організацій.

Боб Фабрі, професор інформатики з Каліфорнійського університету в Берклі, був учасником програмного комітету симпозіуму з принципів операційних систем 1973 року, де слухав доповідь Томпсона та Річі “The UNIX Time-Sharing System”.

Фабрі отримав копію операційної системи, і у 1974 році Unix було встановлено на PDP/11 в Дослідницькій групі з комп’ютерних наук (CSRG) у Берклі. Кен Томпсон провів рік в університеті, працюючи над власною версією Unix, яка отримала назву Berkeley Software Distribution (BSD). Згодом вона стала окремим дистрибутивом Unix. Версії, наприклад 4.2BSD, відображали різні випуски.

У 1984 році AT&T зняли обмеження антимонопольного указу 1956 року і змогла продавати свою операційну систему, що містила компоненти BSD, такі як TCP/IP, vi та командна оболонка C, csh. Однак, ліцензування стало складним через перехресне використання коду AT&T, який не був відкритим, і коду BSD.

Для вирішення цих проблем була створена версія BSD без коду AT&T, але після видалення коду AT&T ядро системи втратило близько 20% коду. Вільям Джоліц написав відсутні частини, і цю версію Unix випустили під назвою 386BSD. Проєкт 386BSD припинив існування, але його вихідний код у 1993 році став основою для проєктів NetBSD та FreeBSD.

Це дало нам першу частину пазла: FreeBSD.

Наступний крок

Після звільнення з Apple у 1985 році, Стів Джобс заснував компанію NeXT, Inc. Для забезпечення операційної системи для своїх робочих станцій, NeXT розробила NeXTSTEP, яка використовувала BSD як основу, але мала інше ядро.

NeXT використовувала модифіковану версію мікроядра Mach та 4.3BSD для створення NeXTSTEP. Mach був розроблений у Carnegie Mellon для досліджень розподілених обчислень. Група розробників використовувала BSD як операційну систему і замінила лише ядро, не створюючи власну систему з нуля.

XNU

У 1996 році Apple придбала NeXT, Inc., разом з NeXTSTEP. Apple почала розробку операційної системи, що згодом стала macOS Mac OS X. Компанія оновила ядро Mach та замінила його розширеною версією Open Software Foundation, яка використовувалася в операційній системі OSF/1. Apple також оновила компоненти BSD, використовуючи новіші версії з дистрибутиву FreeBSD.

Apple поєднала елементи ядра BSD з ядром Mach, створивши гібридне ядро, що поєднувало характеристики монолітного та мікроядерного архітектур.

I/O Kit, розроблений Apple на базі DriverKit NeXTSTEP, також був включений. Це дозволило додавати драйвери до ядра без необхідності його постійного перекомпілювання.

XNU — це третя частина головоломки.

Стандарти POSIX і SUS

У 1996 році дві організації стандартизації — X/Open та Open Software Foundation — об’єдналися, утворивши The Open Group.

The Open Group проводить сертифікацію