Что общего и в чем разница между MacOS и Linux

Аватарка пользователя Дух айтишной эмо школы

Разбираемся, справедлив ли аргумент о схожести Linux и MacOS, и объясняем, чем похожи и чем отличаются две операционные системы.

Помимо вечной битвы между пользователями Linux и Windows, существует еще один холивар между пользователями Linux и MacOS. Первые утверждают, что MacOS можно считать невероятно переоцененным дистибутивом Linux, а вторые возражают, что ничего общего между этими ОС нет.

Правда, как всегда, находится посередине. В этой статье мы разберемся, справедлив ли аргумент о схожести Linux и MacOS, и объясним, чем похожи и чем отличаются две операционные системы.

Что общего между MacOS и Linux

В первую очередь, обе системы в своей современной итерации разработаны на основе Unix. Также и Linux, и macOS совместимы с POSIX.

POSIX – это стандарт, который определяет совместимость операционных систем, основанных на UNIX.

POSIX (Portable Operating System Interface) был разработан с целью обеспечить переносимость программного обеспечения между различными UNIX-подобными системами.

POSIX включает в себя набор спецификаций и интерфейсов для программирования, обеспечивающих единообразие взаимодействия приложений с операционной системой. Этот стандарт определяет функции, системные вызовы, переменные окружения, файловую систему и другие компоненты операционной системы.

Поддержка POSIX приводит к легкой переносимости серверного программного обеспечения и программ на языках программирования вроде Ruby, Python, gcc, clang, Erlang и многих других, с одной ОС на другую.

Файловая система в ОС выполнена практически идентично, за исключением того, что macOS не чувствителен к регистру.

Также почти все программное обеспечение GNU, то есть практически каждая программа, работающая на компьютере с Linux, доступна для macOS.

GNU – это проект свободного программного обеспечения (Free Software Foundation’s GNU Project), который был запущен Ричардом Столлманом в 1983 году. GNU является сокращением от “GNU’s Not Unix” и представляет собой усовершенствованную и свободную реализацию операционной системы Unix.

Ключевой элемент GNU – это GNU General Public License (GNU GPL), который предоставляет пользователю свободу использовать, изменять и распространять программное обеспечение под лицензией.

Лицензия GNU GPL гарантирует, что программное обеспечение, распространяемое под ее знаком, остается свободным и доступным для всех.

Разработчик может точно воссоздать среду, в которой будет выполняться код, при переходе с MacOS на Linux и наоборот.

В общем, и Linux, и macOS поддерживают эти стандарты, поэтому и складывается ощущение, что операционные системы похожи друг на друга.

В чем разница между macOS и Linux

MacOS почти никак не связана с Linux. На самом деле, родословная macOS старше, чем родословная Linux.

То, что мы сегодня называем macOS, основано на NeXTstep, операционной системе, разработанной NeXT Computing в 1980-х годах.

NeXT — это компания, которую Стив Джобс основал после того, как покинул Apple в 1985 году после конфликта с советом директоров. Да, есть и такая строчка в биографии Джобса.

Стив Джобс основал новую компанию и нанял Ави Теваняна в качестве руководителя отдела разработки программного обеспечения.

Теванян был одним из программистов, разработавших ядро ​​BSD Mach в Университете Карнеги-Меллона, и Джобс попросил его создать на его основе новую многозадачную ОС.

В качестве основы для NeXTstep использовалась Berkeley Unix BSD 4. Berkeley Unix была разработана Калифорнийским университетом в Беркли после Unix System 3.

В Unix System 3 вносили различные улучшения, после чего ОС назвали BSD 4. Более поздняя версия BSD под названием Mach была разработана как раз в Карнеги-Меллоне.

Теванян придумал новую ОС, которая превосходила аналоги на тот момент времени. К примеру, Тим Бернерс-Ли изобрел Всемирную паутину в 1990 году именно на компьютере NeXTstation с NeXTstep в качестве ОС.

Что общего и в чем разница между MacOS и Linux 1

В это же время Apple без Стива Джобса пыталась создать собственную ОС, но все было тщетно. Они пришли к решению выкупить NeXT, и Джобс вернулся в компанию.

Теванян, который стал новым руководителем отдела разработки программного обеспечения Apple, затем переработал NeXTstep в Mac OS X.

Это до сих пор влияет на работу macOS: в ней инструменты командной строки взяты из *BSD, а в Linux они заимствованы из GNU.

Что общего и в чем разница между MacOS и Linux 2

Даже сегодня, если вы посмотрите на API macOS, вы заметите, что многие вызовы API, имена классов и функции AppKit начинаются с «NS», например, NSOpenPanel, NSSavePanel, NSWindow, NSResponder и так далее.

«NS» здесь означает «NeXTSTEP». Даже объект, который обрабатывает основной цикл событий в приложении AppKit, называется NSApplication.

Linux был разработан позже. Ядро ​​Linux было написано только в 1991 году, а первые дистрибутивы GNU/Linux появились в 1992 году. NeXTstep была выпущена 18 сентября 1989 года и была уже отполированной ОС, которую можно было использовать для серьезных проектов. Этих высот Linux смогла добиться только несколько лет спустя.

Таким образом, macOS — это не просто дорогая и симпатичная Linux. Это симпатичная NeXTSTEP, которая была симпатичной BSD Unix.

MacOS — это операционная система BSD UNIX на основе микроядра с собственной собственной подсистемой отображения, архитектурой драйверов и оконным менеджером.

Linux представляет собой монолитное ядро ​​без родословной UNIX, но благодаря библиотекам и утилитам GNU обеспечивает UNIX-подобную среду POSIX.

Почему различия между Linux и macOS важны

Теперь, после того как мы выяснили, что у Linux и macOS разные ядра, поговорим о том, почему это вообще важно для пользователя. Дело в том, что Linux с его монолитным ядром выиграл «войну ядер», которая до сих пор не закончена.

Монолитное ядро Linux – это тип архитектуры ядра операционной системы, в котором все основные функции и драйверы находятся внутри одной исполняемой программы – ядра. В монолитном ядре все части ядра работают в одном адресном пространстве и имеют прямой доступ к аппаратным ресурсам компьютера.

В монолитной архитектуре ядра, все функции, такие как управление процессами, файловой системой, памятью, сетью и устройствами ввода-вывода, реализованы внутри ядра и взаимодействуют друг с другом напрямую. Это позволяет ядру эффективно управлять ресурсами и обеспечивать высокую производительность системы.

Как правило, монолитное ядро ​​работает быстрее, но микроядро лучше спроектировано с точки зрения архитектуры: микроядро очень легкое, а основные службы распределены и передают сообщения друг другу.

К сожалению, в микроядрах задержка больше, чем в монолитном ядре, объединяющем все в одном месте. Mach был одним из первых экспериментов по разработке серьезного микроядра, и многие говорят, что он провалился с точки зрения производительности.

В macOS (ранее известной как Mac OS X и OS X) используется микроядро XNU (X is Not Unix). XNU является гибридным ядром, в котором сочетаются микроядро и некоторые элементы архитектуры монолитного ядра. Хотя ядро XNU является гибридным, его основной архитектурой является микроядро.

В микроядре ядро обеспечивает только базовые механизмы, а остальные функции, такие как файловая система и сеть, выполняются в виде отдельных служб, работающих в пользовательском пространстве.

Но и у macOS есть преимущество. Микроядро стабильнее. Если один модуль даст сбой, все остальные модули будут работать и дальше.

В этом смысле, вам решать, что важнее: надежность или скорость.

Linux
Операционные системы
unix
macOS
10326