私は自分自身にLinuxアセンブリ言語を教えています。私はBSDとLinuxの間に興味深い違いがあります。 Unixでは、80h割り込みを呼び出す前にsyscallのパラメータをスタックにプッシュします。対照的に、Linuxでは、パラメータをレジスタに渡します。LinuxがUnixのシステムコール規約に従わない理由は何ですか?
Linux開発者がスタックの代わりにレジスタを使う理由は誰にも分かりますか?
注:この相違点の詳細は、FreeBSD Developer's Handbook:System Callsの根拠を説明することなく説明しています。
明確なアイデアはありませんが、実行速度と場所のアクセシビリティに関連する可能性がありますか?誰かが明確になるのを待つ。 –
なぜBSDが "Unix"と呼ぶのですか? – unwind
@unwind - 私の質問に含まれているハイパーリンクは、BSDがUNIXシステムでのsyscallsの規定に従い、Linuxはそうではないことを示唆しています。それ以外は? – clay