macOSでの実行形式
以前こちらで質問させていただいたのですが、再度質問です。
ネイティブレベル・低レイヤのことを理解したいと言う質問をしました。
目的は書いていませんでしたが、ライブラリやSDKを使わず自分の力で開発をしたいからです。
効率が落ちることは分かっていますが、効率重視ではなく自分が楽しむことが目的なのです。
ライブラリに頼っていた部分を自分でコーディングするのが面白いのです。
Linex System Referenceを参考に、システムコールを使って標準入出力やメモリの確保をするという事ができます。
これはc言語の標準ライブラリに頼っていた部分を自分でコーディングしている感覚があって面白いのです。
c言語での開発自体もSDKやライブラリを使っているのと変わらない気もしますが、標準ライブラリを使わないのなら、アセンブリの糖衣構文みたいなものだと思っているので妥協しています。アセンブリも機械語の糖衣構文みたいなものですからね。
以下が本題です。
macOSではXNUの上にBSDが乗っているらしいのですが、調べたところXNUやBSDはOSの事らしいです。
macOSはLinuxベースであるというのはよく言いますが、この辺のことも実はよく分かっていないのです。
システムコールでLinux準拠のものを呼んでいるという事から、自分なりに推測してみたのですが、以下のような解釈は間違っていますでしょうか。
macOS上で動くmach-oフォーマットの実行ファイルでは、システムコールを使っている。
システムコールとはmacOSより下のOSで動くソフトウェア(この場合はミドルウェア?)を実行するためのもので、macOSの中のLinuxのソフトウェアを呼んでいる。
Linuxもそれより下のOS(BSD)の機能を利用して構成されていて、そのまま続いていって階層構造になっている。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。