linux啟動程序時設定了cs,esp等各個暫存器的值,這是相應的巨集:
void
start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
export_symbol_gpl(start_thread);
這是__user_cs在x386架構的定義:
#define gdt_entry_default_user_cs 6
#define __user_cs (gdt_entry_default_user_cs* 8 + 3)
現在看一下保護模式下的段暫存器的具體定義:
15 32 1 0
index t rpl
rpl:request privilege level
t:0=gdt 1=ldt
這裡__user_cs等於:
__user_cs = 6 * 8 + 3 = 48 + 3 = 51
00110011 rpl= 11 t = 0 (gdt) index=110(6)
uboot啟動流程概述 uboot啟動流程
u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...
activity啟動流程 App啟動流程三問
裡面涉及到哪些重要的成員呢?都分別負責了什麼,比如ams?啟動流程了解後,對我們開發有什麼幫助呢?1 比如啟動優化,分析啟動過程,其實可以優化啟動速度的地方有三個地方 activity的oncreate方法,同樣進行執行緒處理,懶載入。或者預建立activity,提前類載入等等。2 又比如外掛程式化...
u boot啟動流程
uboot啟動流程分析 華清遠見嵌入式學院講師。uboot是嵌入式系統中最常用的bootloader,這裡我們以s3c2410為例分析一下uboot的啟動流程。首先通過uboot的鏈結檔案,我們可以看到uboot執行是執行的第一段 在start.s中。entry start sections ali...