Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxでのスタック:ユーザー状態スタック/カーネルスタック/割り込みスタック

Linuxでのスタック:ユーザー状態スタック/カーネルスタック/割り込みスタック

  

Linuxにはさまざまなスタックがありますが、気を失うのは簡単です、簡単に説明:1、ユーザー状態スタック:プロセスの最下部にあるユーザー状態アドレス空間私たちは単純にそして同じことを理解し、仮想アドレス空間のセクション、カーネルスタックと言っても過言ではありません:ユーザー状態とカーネルモードの切り替え、あなたが切り替える必要があるとき、ユーザー状態スタックから独立しています。デフォルトの8kはカーネルの設定項目で変更してthread_info構造体と一緒にすることができます一般的なもの:union:thread_union、


折りたたむか開くには、ここをクリックしてください。共用体thread_union {2. struct thread_info thread_info;

3.符号なしロングスタック[THREAD_SIZE /sizeof(long)];

4.};特殊セクションに配置されます。 .data.init_task"))))


折りたたむか開くには、ここをクリックしてください。

1. union thread_union init_thread_union 2. __attribute __((__ section __(" .data) .init_task")))=

3. {INIT_THREAD_INFO(init_task)};



クリックすると、折りたたむか開くことができます

1. ENTRY(stack_start)2. .long init_thread_union + THREAD_SIZE

3. .long __BOOT_DS

デフォルトは割り込みスタックと共有されます。これはカーネルの設定項目で変更できます。割り込みスタック:デフォルトはカーネルスタックと共有され、カーネルスタックの内容は独立しており、割り込み、例外、およびソフト割り込みが使用されます。このスタックは、割り込まれたプロセスのカーネルスタックを使用します。 >

Copyright © Windowsの知識 All Rights Reserved