Unixは実際には1つのSoftirq(int 0x80)しか使用しませんか?なぜ?

Unixは実際には1つのSoftirq(int 0x80)しか使用しませんか?なぜ?

x86(32ビット)時代(sysenter / sysexit / syscallなど以前)では、INT 0x80がユーザー領域プロセスでカーネル操作を呼び出すために使用されました。 ~によるとhttps://stackoverflow.com/questions/1817577/what-does-int-0x80-mean-in-assemble-codeDOSは同じ目的でINT 0x21を使用します。同じソースによると、x86 CPUは最大256個のSoftirq(0x00 - 0xff)を理解しています。オペレーティングシステムは、一部のSoftirqが特殊機能によってブロックされていても、複数のSoftirqを使用できる必要があります。しかし、どのオペレーティングシステムもこれを実行していないようです。 1つだけ使用しますか?このデザイン決定の理由は何ですか?

ベストアンサー1

すべてのシステムコールにはSoftirqが十分ではないため、システムコールを識別するパラメータが必要です。システムコールに2次元番号を与える理由はありません。それにもかかわらず、すべてのソフトウェア割り込みは類似しており、特定のタイプのシステムコールに適したソフトウェア割り込みはありません。

おすすめ記事