Что общего и в чем разница между MacOS и Linux
Разбираемся, справедлив ли аргумент о схожести Linux и MacOS, и объясняем, чем похожи и чем отличаются две операционные системы.
18К открытий27К показов
Помимо вечной битвы между пользователями 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 в качестве ОС.
В это же время Apple без Стива Джобса пыталась создать собственную ОС, но все было тщетно. Они пришли к решению выкупить NeXT, и Джобс вернулся в компанию.
Теванян, который стал новым руководителем отдела разработки программного обеспечения Apple, затем переработал NeXTstep в Mac OS X.
Это до сих пор влияет на работу macOS: в ней инструменты командной строки взяты из *BSD, а в Linux они заимствованы из GNU.
Даже сегодня, если вы посмотрите на 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 есть преимущество. Микроядро стабильнее. Если один модуль даст сбой, все остальные модули будут работать и дальше.
В этом смысле, вам решать, что важнее: надежность или скорость.
18К открытий27К показов