Я действительно хотел комментировать, а не отвечать. Но, если быть точным, OSX не основан на BSD, это эволюция NeXTStep. ОС NeXTStep использует ядро Маха, разработанное CMU. Первоначально он был разработан как MicroKernel, но из-за ограничений производительности они в конечном итоге решили, что им необходимо включить часть API Unix в само ядро и, таким образом, BSD-совместимый «сервер» (изначально предназначенный для обработки запросов на BSD-совместимое). сообщения ядра) было перенесено в ядро, что сделало его монолитным ядром. Он может быть BSD-совместимым в API программирования, но это НЕ BSD.
В остальной части ОС использовался ObjectiveC (по соглашению между Stepstone и Ричардом Столлманом из GNU / GCC) с графическим интерфейсом, основанным на технологии «Display Postscript» ... вроде X Server, но с командами postscript. OS X изменила Display Postscript на Display PDF и увеличила общие требования к оборудованию в 1000 раз (NeXT мог работать с 8-16 МБ, теперь вам нужно ГБ).
Из-за тесного сочетания GCC и Objective C и NeXT, ваша лучшая ставка для естественного запуска XCode под Linux будет заключаться в том, чтобы сделать порт (если вы можете получить доступ к исходному тексту - удачи), используя библиотеки GNUStep. Первоначально разработанный для совместимости с NextStep, а затем с OpenStep, я слышал, что теперь они более или менее совместимы с Cocoa, но я не играл ни с одним из них почти два десятилетия. Конечно, это продвинет вас только к ObjC, а не к Swift, и я не знаю, собирается ли Apple его OpenSource.