答えではなく、本当にコメントしたかったのです。しかし、正確に言うと、OSX は BSD ベースではなく、NeXTStep の進化版です。 NeXTStep OS は、CMU が開発した Mach カーネルを利用しています。当初は MicroKernel として設計されましたが、パフォーマンス上の制約により、最終的に API の Unix 部分をカーネル自体に含める必要があると判断したため、BSD 互換の「サーバー」(当初は BSD 互換のリクエストを処理することを目的としていました)カーネル メッセージ) がカーネルに移動され、モノリシック カーネルになりました。プログラミング API では BSD 互換かもしれませんが、BSD ではありません。
OS の残りの部分には、ObjectiveC (GNU/GCC の Stepstone と Richard Stallman の取り決めの下) と、「Display Postscript」と呼ばれるテクノロジに基づく GUI が含まれていました ... X サーバーのようなものですが、Postscript コマンドを使用します。 OS X は Display Postscript を Display PDF に変更し、一般的なハードウェア要件を 1000 倍に増やしました (NeXT は 8-16MB で実行できましたが、今では GB が必要です)。
GCC と Objective C および NeXT は密接に結びついているため、Linux で XCode をネイティブに実行するための最善の策は、GNUStep ライブラリを利用してポートを作成することです (ソースを入手できれば、幸運を祈ります)。当初は NextStep と OpenStep の互換性のために設計されていましたが、現在は多かれ少なかれ Cocoa と互換性があると聞いていますが、私はほぼ 20 年間、それらのどれとも遊んでいませんでした。もちろん、Swift ではなく ObjC までしか到達できません。Apple がそれをオープンソース化するかどうかはわかりません。
Xcode 用の低レベル ツールチェーン (gcc コンパイラ ファミリ、gdb デバッガなど) はすべてオープン ソースであり、Unix および Linux プラットフォームに共通です。しかし、IDE (エディター、プロジェクト管理、インデックス作成、ナビゲーション、ビルド システム、グラフィカル デバッガー、ビジュアル データ モデリング、SCM システム、リファクタリング、プロジェクト スナップショットなど) は Mac OS X Cocoa アプリケーションであり、移植性がありません。
まだ誰もVagrantを提案していないので、ここにOSX用のVagrantボックスがあります
vagrant init https://vagrant-osx.nyc3.digitaloceanspaces.com/osx-sierra-0.3.1.box
vagrant up
MACOS 仮想マシンがあります。しかし、Apple の EULA によれば、依然として MacOS ハードウェアで実行する必要があります :D しかし、MacOS を消去して Ubuntu をインストールしたすべてのオタクに :D
残念ながら、SSH X-forwarding
を使用して内部からエディターを実行することはできません オプション。