私は、x86 int $0x80
とamd64 syscall
システムコールの番号が異なることに気付きました。たとえば、sys_exit
は、x86ではシステム1、amd64ではシステム60です。システムコールの番号付け方式が異なる(歴史的な)理由はありますか?amd64 linuxでシステムコール番号が異なるのはなぜですか?
12
A
答えて
12
syscallインターフェイスは非常に安定していて、追加だけが許可されています。システムコールのインターフェースがアーキテクチャごとに異なるという事実を利用して、Linuxの人たちは、蓄積されたcruftをきれいにし、amd64システムコールを最初から開始することにしました。
リファレンス:linux/Documentation/ABI/stable/syscalls
このインタフェースは、POSIXインタフェースの多くと一致し 及び他のUNIXベースのインターフェイスに基づいています。それは時間がたつにつれて追加され、 で削除されることはありません。
このインターフェイスは、 Linuxがサポートするすべてのアーキテクチャで異なります。各 のシステムコールにマップされるシステムコール番号の詳細については、アーキテクチャ固有のドキュメント を参照してください。
関連する問題
- 1. システムコールの番号は
- 2. 私の番号が0になるのはなぜですか?
- 3. 異なるバージョンのSilverlightアセンブリのバージョン番号が同じであるのはなぜですか?
- 4. なぜVByNetでは負のSByte番号が16ビットですか?
- 5. Vim:異なるモードで異なる行番号の色
- 6. Linuxでコピーしたファイルの権限が異なるのはなぜですか?
- 7. Java ImageIOが異なるマシン(LinuxとWindows)で異なるイメージを生成するのはなぜですか?
- 8. Elasticsearchのスナップショットの統計番号number_of_filesが実際のインデックス数と異なるのはなぜですか?
- 9. for_each_zoneが新しいシステムコールでlinuxシステムコール
- 10. シミュレータのIMEI番号が常に0000000000000であるのはなぜですか?
- 11. debug_backtrace()に行番号が含まれないのはなぜですか?
- 12. アンドロイドデータベースで行番号のカウントをリセットできないのはなぜですか?
- 13. 部門(?)がこの番号を生成するのはなぜですか?
- 14. フォーマットの番号付けが失敗するのはなぜですか?
- 15. 最後の番号(1)が印刷されるのはなぜですか?
- 16. 異なるテストオーダーが異なる結果を得るのはなぜですか?
- 17. sshで出力が異なるのはなぜですか?
- 18. モバイルサファリでCSSが異なるのはなぜですか?
- 19. なぜprint_r($ row);番号1だけを返すのですか?
- 20. なぜ、TCPのスリーウェイハンドシェイクがシーケンス番号をバウンスするのですか?
- 21. rake db:レポートのバージョン番号を移行しないのはなぜですか?
- 22. LinuxがUnixのシステムコール規約に従わない理由は何ですか?
- 23. PCのコントロールのスケーリングが異なるのはなぜですか?
- 24. EAXの内容が異なるのはなぜですか?
- 25. ジェネリックリストの宣言が異なるのはなぜですか?
- 26. pythonとbpythonのstring.lettersが異なるのはなぜですか?
- 27. Ruby On Railsのバージョンが異なるのはなぜですか?
- 28. 私のシステムコールは、私がppでラップするPerlプログラムで動作しないのはなぜですか?
- 29. `gevent.spawn`がmonkeypatched` threading.Thread() `と異なるのはなぜですか?
- 30. フォールトストリングが異なるのはなぜですか?
関連するLKMLの投稿:http://lkml.iu.edu/hypermail/linux/kernel/0104.0/0547.html –