總結
這一周教會了我計算機的工作原理就是cpu中的暫存器讀取記憶體中的指令,並執行讀取到的指令的工作過程,過程中cpu中的暫存器不斷地變化數值就是計算的過程。
這一周教會了我作業系統的執行過程就是不斷地進行程序切換的過程,切換過程主要就是發生中斷,儲存現場再恢復現場的過程。
這一周教會了我乙個簡單的linux核心是如何啟動的,以及零號程序是如何建立一號程序和其餘的核心執行緒的
這一周教會了我系統呼叫實質就是使用者態**呼叫系統呼叫api,在這個api中呼叫系統呼叫中斷向量,觸發中斷system_call,接著呼叫中斷服務xx
這一周教會了我系統呼叫處理過程大致就是:保護現場,呼叫系統呼叫對應的處理函式,再恢復現場,返回的過程。
這一周教會了我linux核心建立乙個新程序的過程中,因為copy_process中copy_thread的作用,子程式得以從ret_from_fork處開始後正常地執行下去。
這一周教會了我核心裝載和啟動乙個新的可執行程式的過程1.新的可執行程式從res->ip = new_ip處開始執行,也就是hello的程式起始位址
2.因為start_thread函式將新程序的堆疊資訊都完成賦值了,原本程序的堆疊資訊被新程序所覆蓋,當系統呼叫返回後,從new_ip這個點開始執行新程序
3.動態鏈結返回的是動態鏈結器的程式入口,靜態鏈結則是返回新的程序的程式入口
動態聯結器會載入所有鏈結到的動態鏈結庫檔案,之後再載入可執行程式
最後這一周教會了我程序切換的簡單過程一般執行過程(使用者程序x切換到使用者程序y)
(1)中斷,儲存x使用者堆疊,載入x核心堆疊,進入x核心態
(2)核心態下執行schedule,使用switch_to進行程序上下文切換
(3)進入y核心態
(4)恢復現場,返回y使用者態
(5)結束
這是我第一次接觸linux核心**,帶著一點神秘感的核心**就在老師的一點一絲抽絲剝繭的過程中漸漸明晰了起來。最大的收穫
在學習《linux核心分析》的過程中,我的最大收穫就是明白了基本的程序建立,執行和切換機制,尤其是呼叫系統呼叫產生中斷等等壓棧出棧的過程,對計算機的原理理解得更透徹
最大的遺憾
我對io中斷操作也有很大的興趣,畢竟我們每一天都在用鍵盤打字,用滑鼠控制游標,但是老師還沒有提供這門課程,希望以後能有相關方面的課程教授,謝謝
Linux核心學習總結
通過這一段時間對linux核心的學習,我不僅將作業系統課中所講述的那套理論的東西和實際的 結合了起來,加深了對整個linux的執行機理的了解,更是深刻體會到了整個linux系統設計的哲學美感,而且現在linux的整個設計體系已經相當穩定,化繁為簡,這也是大部分伺服器使用linux的重要原因吧。函式呼...
Linux核心學習總結
兩個層面 1.硬體 cpu ip暫存器 指標,指向記憶體的某塊區域 匯流排 記憶體 與資料 2.程式設計師 記憶體儲存指令與資料,cpu解釋執行指令 計算機在執行程式時須先將要執行的相關程式和資料放入記憶體儲器中,在執行程式時cpu根據當前程式指標暫存器的內容取出指令並執行指令,然後再取出下一條指令...
Linux核心學習總結
linux核心學習總結 20122137 沙雨濟 轉眼間已經過了九周了,通過這段時間對linux的學習,我對linux已經有了乙個比較系統的認識,並且收穫良多。從一開始還不能將彙編知識和資料結構知識很好地結合起來,到現在能夠熟練地使用實驗樓虛擬機器進行實驗並分析實驗結果。在這段時間裡,無論是將c 反...