ID非公開

2020/9/9 8:14

11回答

Linuxカーネルに詳しい方お願いします LinuxだとINT命令によりシステムコールを呼び出す際の動作として

Linuxカーネルに詳しい方お願いします LinuxだとINT命令によりシステムコールを呼び出す際の動作として 1 INT呼び出しによりリターンアドレスとカーネルモード用セレクタを現在のスタック(呼び先元ユーザーモードスタック)に保管 さらに、CSとIPを変更。 2 (割込みハンドラ内にて)SSレジスタをユーザーモード用からカーネルモード用スタックセレクタに変更 3 割込みハンドラ内で呼び先元のスタックに積まれた上記の2点をカーネルモードスタックに保管 おおまかにこんな感じですかね?

Linux系15閲覧

ベストアンサー

0

そんな感じですね。 int命令はi8086系の命令です。 今の時代ですからAMD64の機械語を見てください。 カーネルのそこだけはインラインアセンブラかアセンブラで組んでいるはずです。 call文と大体使い方は同じと記憶します。 intの方が機械よりの命令なので何かオマケ特典があったと思うけど覚えたません。 今スマホ書き込みなのでこのへんにします。