Подтвердить что ты не робот

Насколько тесно связаны Mac OS X и BSD?

Я читал, что Mac OS X и bsd связаны. Насколько тесно они связаны. Можно ли настроить Mac OS X на BSD?

4b9b3361

Ответ 1

Назад во времена OS X 10.4 Я потратил некоторое время на то, чтобы не написать VFS для OS X. В те дни из основных подсистем ядра, только сетевой стек и VFS по-прежнему были действительно BSD. В то время даже VFS была частично переписана, чтобы сделать ее более модульной (все структуры данных BSD VFS стали непрозрачными указателями, а API - через функции, называемые KPI). Я считаю, что сетевой стек шел одинаково. На интерфейсе с пользовательским интерфейсом также был тонкий слой, который заставил ОС выглядеть как BSD для пользовательских программ.

Все остальное было переписано или заменено: управление памятью, управление процессами и т.д. поступало от микроядра Маха; подсистема драйвера устройства была написана с самого начала Apple.

В терминах программирования пользовательских программ OS X очень похож на BSD, а программы, написанные для BSD, должны быть легко переносимыми. Однако в OS X есть много API, которые недоступны в BSD. К ним относятся почти все, что связано с пользовательским интерфейсом - графикой, звуком и т.д. Существуют также другие интерфейсы, которых нет в BSD, такие как API запуска, который является предпочтительным способом OS X запуска фоновых процессов.

Ответ 2

Wikipedia статья BSD хороша (и соглашается с моим собственным пониманием, для чего это стоит). В нем говорится, что Darwin, система, на которой построена Apple Mac OS X, является производной от 4.4BSD-Lite2 и FreeBSD, и отмечает, что 4.4BSD является последней версией, в которую участвовал Беркли.

Итак, Дарвин - это BSD, как вы можете получить (как и все остальные BSD!). OS X относится к тем частям дистрибутива, которые не являются open-source, главным образом GUI, но включают в себя множество фреймворков, и все, что опирается на них, не будет переносимым.

OS X в целом представляет собой систему launchd заменил cron, at, inetd и большую часть инфраструктуры запуска.

Ответ 3

Если программное обеспечение Mac использует Cocoa, собственную библиотечную библиотеку Apple (что она делает, если она работает на Mac с графическим интерфейсом и не требует запуска X-сервера), тогда у вас могут быть некоторые проблемы с запуском кода на нормальная система BSD.

Если ваш код использует только функции, указанные в POSIX, он будет чисто переноситься на Linux, BSD и даже на Windows.

Верно, что Mac OS X и BSD связаны между собой. Хотя они имеют разные ядра, они имеют общий предок и значительный код пользователя. Очевидно, я не могу количественно определить "насколько близко" - это субъективное.

Ответ 4

Mac OS X - один из достоинств BSD Unix. Как уже указывал Борелайд, это не обязательно означает, что перенос приложений Mac на другие вкусы BSD был бы простым или даже управляемым, а тем более между другими распространенными вкусами BSD. Каждый из них привносит свою специфику, а OS X больше, чем большинство.

Портирование программ из других BSD-аксессуаров в OS X также включает в себя работу и не всегда работает (плавно или вообще), но обычно гораздо более прост.

Ответ 5

Это зависит от того, какие приложения вы пытаетесь подключить. Если вы пишете POSIX-совместимые консольные программы C/С++, они будут компилироваться и работать очень хорошо под любой POSIX-совместимой системой (в основном, с Linux и BSD-аксессуарами), но обратите внимание, что OS X часто не реализует новейшие функции POSIX (например, utimensat), которые доступны в Linux. С другой стороны, в графических приложениях используется Cocoa или более старый Carbon, для чего потребуется GNUstep. Портирование графических приложений довольно необычно, потому что каждая графическая среда имеет разные стандарты и соглашения по дизайну, поэтому графические приложения обычно нужно писать с нуля для каждой графической среды.

Ответ 6

Установлен - нет.

Портировано из источника, может быть - см. Gnustep, Cocotron, EtoileOS - все из которых предлагают разную степень совместимости со стеком разработки Cocoa (но не с более старым Carbon). Существует ограниченное количество программного обеспечения x-platform objective-C, разработанного таким образом.