Linux學習總結

2022-06-15 14:18:08 字數 1280 閱讀 6022

2016-04-21

張超《linux核心分析》mooc課程

通過對linux系統的學習,能跟深刻的理解系統的工作機理。還有他們的那種思想方法,也有助於我們程式設計能力的提公升。

首先我們先對linux的核心的啟動進行了分析。我們分析它的每一行**的含義。具體見linux核心啟動分析

然後我們作為程式設計師,離不開程式設計,有時候需要用到系統呼叫,這就引入了linux下的系統呼叫。具體見linux系統呼叫

然後就必須說說系統呼叫sys_call,這些作業系統為我們提供的系統呼叫介面。具體見linux系統呼叫system_call

然後我們這時候就會想怎樣建立乙個新程序。具體見linux如何建立乙個新程序

然後我們知道了如何建立乙個新程序,接下來就像知道linux核心如何裝載並執行乙個可執行程式的,見linux裝載並執行乙個可執行程式

知道了這些以後,我們就會想,linux系統下程序是如何進行排程與切換的。具體見linux程序排程與切換

總結:

通過《linux核心分析》這門課,首先熟練了linux程式設計以及命令,學會了如何除錯程式在linux系統下。而且更加深入的理解了linux的部分工作原理通過對原始碼的跟蹤與分析。我們對linux的核心啟動進行了分析。這裡我當時忘了給出堆疊的分析。即linux如何啟動起來的。從0號程序,到一號程序,再到n號程序。接著我們又對系統呼叫的原始碼進行分析與追蹤。了解一些系統呼叫函式以及系統是怎麼實現系統呼叫的。如何從使用者態切換到核心態,再從核心態切換回使用者態。還有system_call。接著我們又對建立程序的原始碼進行了分析與追蹤。了解了fork建立乙個新程序不過是父程序的乙個副本,以及程序佇列是乙個雙向迴圈鍊錶。接著我們又分析並追蹤了linux裝載並執行乙個可執行程式的原始碼,這裡使用exec*庫函式載入乙個可執行程式。我們呼叫execve的可執行程式時,當執行到exceve時,系統呼叫exceve陷入核心,這時會建立乙個新的使用者態堆疊,實際是把命令列引數的內容和環境變數的內容通過指標的方式傳遞給系統呼叫核心處理函式的,然後核心處理函式在建立可執行程式新的使用者態堆疊的時候,會把這些拷貝到使用者態堆疊初始化新的可執行程式的執行上下文環境(先函式呼叫引數傳遞,再系統呼叫引數傳遞)。這時就載入了新的可執行程式。系統呼叫exceve返回使用者態的時候,就變成了被exceve載入的可執行程式。最後對程序的排程與切換的原始碼進行分析與追蹤,了解了程序排程的時機與程序切換,最後我們還給出了linux的一般執行過程以及幾個特殊的情況。

最大的遺憾就是linux還有很多其他的東西還沒有學習到。課程到這裡就結束了。有點意猶未盡,希望能做更多的關於linux核心知識的講解。不過這些是核心。已經大體上幫我們構建出了linux核心的框架。

linux學習總結!

處理特殊的檔名 假設linux系統中有乙個檔案名叫 aaa 如果我們想對它進行操作,例如現在要刪除它,如果我們按照一般的刪除方法在命令列中輸入rm aaa命令,介面將會提示我們是無效選項 invalid option 原來由於檔名的第乙個字元為 linux把檔名當作選項了,我們可以使用 符號來解決這...

Linux學習總結

前言 今天滑鼠丟失了,敲 寫部落格倍感不爽啊。上次說過了買了乙個linux系統的伺服器,因為之前接觸的比較少。所以拿了一本書來看了一下,花了幾天時間大概看了一下,因為裡面的命令我知道我是不可能全部記住了,所以就只是記住了幾個常用的命令,但是對於linux系統的操作卻有了乙個大概的了解。這裡來簡單總結...

Linux學習總結

類unix作業系統,多使用者 多工 支援多執行緒和多cpu的作業系統 根目錄 bin 可執行的程式,命令 boot 系統啟動所需的檔案 dev 系統中的裝置 etc 存放系統,軟體的配置檔案 home 普通使用者的主目錄 lib 系統庫目錄32 lib64 系統庫目錄64 media mnt 掛載外...