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