一、系統呼叫初始化
void __init trap_init(void)
對0x80中斷向量。設定了系統呼叫的總入口system_call。
static void __init set_system_gate(unsigned int n, void *addr)
在idt中設定了門描寫敘述符,例如以下圖:
selector為_kernel_cs。p為1;dpl為11;dt為0。type為15,陷阱門。offset就是異常處理函式的偏移。
二、系統呼叫響應
系統呼叫都是在使用者態發生的。
我們從使用者空間對函式sethostname()的呼叫開始我們的情景分析。
int sethostname(cost char *name, size_t len);
對sethostname.o反彙編得到例如以下結果:
linux核心原始碼情景分析閱讀筆記(1)
一直以來都沒有養成記錄讀書筆記的好習慣,導致每次迫切的需要一些知識的時候,又要重新的去溫習,雖說之前若是對某項知識已經有所了解,再去溫習肯定輕車熟路了,但多少總還要費一番周折的,翻閱資料總歸會花些時間的。從今天起記錄每天所學到點點滴滴,相信定能積少成多,這樣一來可以對學到的東西做個梳理,二來可以做個...
Linux核心 fork 原始碼分析
核心版本 linux 4.4.18 原始碼位置 這裡 接著 呼叫copy process 它設定了程序描述符以及子程序所需的任何其他核心資料結構。ftrace graph init task 初始化ftrace,核心追蹤函式呼叫。rt mutex init task 初始化鎖。copy creds ...
《android系統原始碼情景分析》試讀
剛剛下到試讀文件的時候,看到標題小小興奮了一下,對比國內同類書籍的現狀 市面充斥著琳琅滿目但良莠不齊的android開發教程,而其中大多僅是從軟體層出發來講解。所以從題目上,此書就先拔了頭籌。而且此書還有另外乙個優勢,android從趨近成熟2.2到剛剛發布的4.2,系統版本的迭代程序越來越快,所以...