原创 (萊昂氏unix源代碼分析導讀-17)系統初啓(10)
小結 本章的內容到此結束。 由於我們跳過了一些專題,啓動代碼中仍有一些未解之謎,但它的神祕面紗已經揭開,這是一個好的開始。 最後,給出fuibyte(0)的分析結果: 0814 _fuibyte: 0815 _fubyte: 08
原创 (萊昂氏unix源代碼分析導讀-29) swap in/out (下)
by cszhao1980 最後,看一下我們的老朋友sched(),上次看到它還是
原创 (萊昂氏unix源代碼分析導讀-22) trap函數(2693)
萊昂的分析比較清晰。在這裏我只說明幾個容易讓人感到迷惑的問題。 首先是trap函數的長長的參數列表,同clock函數一樣,這些參數來自於入口處的設置, 回頭看一下棧圖,這些參數的容易理解了。 函數開頭就檢查進程的“前狀態”——絕大
原创 (萊昂氏unix源代碼分析導讀-16)系統初啓(9)
回到start 現在,繼續#1進程之旅。 main() 1627 if(newproc()) { 1628 expand(USIZE+1);
原创 (萊昂氏unix源代碼分析導讀-21)時鐘中斷處理
時鐘中斷是系統中最重要的中斷,每個時鐘滴答都會產生時鐘中斷,它的中斷矢量爲(0100)或(0103)。 0533: . = 100^. 0534: kwlp; br6 0535: kwlp; br6 056
原创 Linux線程模型概述
By cszhao1980 1. 輕量進程(LWP) 我們知道進程擁有大量資源,如: (1)寄存器信息,如pc等; (2)Data段 (3)S
原创 (萊昂氏unix源代碼分析導讀-19)再談進程swtch
我們已經涉及到了部分進程切換的概念,在本章中,我們會從更一般的意義上考察進程切換的行爲。 首先,進程切換(也稱作context switch)一定是在內核中完成的。 比如,以下爲發生進程切換的最常見的情況: (1) active進
原创 linux下tty,控制檯,虛擬終端,串口,console(控制檯終端)詳解
首先: 1。終端和控制檯都不是個人電腦的概念,而是多人共用的小型中型大型計算機上的概念。一臺主機,連很多終端,終端爲主機提供了人機接口,每個人都通過終端使用主機的資源.。 終端有字符啞終端和圖形終端兩種. 控制檯是另一種人機接口,,不
原创 (萊昂氏unix源代碼分析導讀-24)signal(上)
by cszhao1980 signal更確切的稱呼應該是soft interruptio
原创 (萊昂氏unix源代碼分析導讀-23) 若干系統調用的實現
By cszhao1980
原创 (萊昂氏unix源代碼分析導讀-18) 再談中斷與陷入
從產生原因看,中斷和陷入也有巨大的差別。 硬件中斷由外部事件造成,屬於異步事件,往往與當前進程毫無關係; 陷入則不同,它常常都是同步的(如除0錯),並與當前進程上下文相關。 除此之外,陷入還用來實現系統調用——內核爲user進
原创 (萊昂氏unix源代碼分析導讀-28) swap in/out (中)
by cszhao1980 換出時,使用函數xswap(),它有三個參數,前兩個參數很容易理解: (1)p——指向進程表項; (2)ff—— f
原创 (萊昂氏unix源代碼分析導讀-26) trace
by:cszhao1980 trace是unix提供的一種是父進程可以跟蹤子進程進展的手段,子進程被跟蹤時,當子進程 收到s
原创 (萊昂氏unix源代碼分析導讀-31) “緩存頭”初探
By cszhao1980 struct buf結構,又被稱爲“緩存頭”結構,而buf[NBUF]數組被稱爲“緩存頭”數組。 顧名思義,“緩存頭”結構應該是用於緩存處理的,
原创 (萊昂氏unix源代碼分析導讀-27) Swap in/out (上)
By cszhao1980 Swap in/out指的是進程在物理內存(core空間)和磁盤交換文件間的雙向移動過程,進程在ac