linux kernel中的进程栈
生活随笔
收集整理的這篇文章主要介紹了
linux kernel中的进程栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、linux中的user mode的進程棧
在thread_info.h中,設置進程棧的大小為16k
#define THREAD_SIZE 16384 #define THREAD_START_SP (THREAD_SIZE - 16)在head.S中, 在進程切換的時候:
將內核這個進程棧的棧頂寫入到了sp中,sp = init_thread_union + THREAD_SIZE
將init_task寫入到了sp_el0中,設置用戶空間的程序棧
在linux 中每一個應用程序,在內核中都有一個task_struct結構體,每個task_struct代碼一個內核進程,都有一個進程棧,該棧的棧頂寫入到了sp
另外,每一個應用程序,在userspace空間,都有一個程序棧,該棧的棧頂寫入到了sp_el0中
總結:每個應用程序有兩個棧,一個是在linux kernel中的task_struct結構體中指向的進程棧、一個是user程序中的棧
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的linux kernel中的进程栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [optee_os]-optee中的内核
- 下一篇: linux 其他常用命令