今天我要跟大家分享一下Linux內核的重要性。內核就像Linux系統運行的大心臟,對系統的運行起到了至關重要的作用。那么Linux內核到底難不難學呢?今天我就大概和大家科普一下,后期還會向大家推薦一本書籍,用來鞏固大家學習內核的操作。其實,Linux內核可以通過編寫代碼來驗證,幾行代碼就能夠表達我們需要表達的內容,但是光靠幾行代碼我們就真的學會了嗎?真的有那么直觀嗎?所以只學習代碼仍然不夠?,F在雖然流行靠代碼進行計算機的學習,但是傳道授業者也僅僅停留在理論知識傳授的層面,對于經驗總結和實際操作仍然不夠;還有一個就是我們通常更加注重對理論的學習,自己上手操作的時間沒有多少,因此會造成理論豐富實踐貧瘠的情況;第三就是我們自己的學習力度不夠,沒有認真鉆研,學習事物停留在表面。所以,我們千萬不能抱著這樣的態度去學習Linux。下面,我就給大家科普一下Linux內核知識,幫助大家更好的學習Linux系統。
第一是Linux內核源代碼結構。Documentation很好用,它雖然沒有內核的代碼,但是它有一套有用的內核文檔,這些內核文檔大多是可以用的,例如文件系統;也有不能用的,例如進程調度。arch下面的子目錄都是體系結構特有的代碼,看見這個一定要記清楚。drivers是內核的驅動程序代碼,里面有我們熟知的顯卡、網卡、PCI等外圍設備的驅動代碼,所以對于我們來說是很關鍵的。fs:文件系統代碼。包含ext2、ext3、ext4等本地文件系統。Linux命令內核中的大部分文件在include里邊,我們如果有需要尋找的文件,可以先從這里開始找。kernel是Linux內核中最重要的組成部分,它的功能主要包含進程創建、銷毀和調度的代碼,如果缺少了它,我們的系統就不能繼續運行了。除了這些代碼外,還有其他的一些重要的組成部分,這里就不一一說了,但是我們需要知道的是,無論代碼中的子目錄或大或小,都是我們應該掌握的。
第二是內部的網絡剖析過程。由于網絡協議棧是由若干個層次所構成的,因此網絡信息的處理過程主要是指在協議棧的不同層次間的信息傳輸。而按照為前一章的TCP系統所編寫的流程,構建TCP系統內部的過程根據鏈接socket參數,綁定地址接口bind函數,偵聽接口listen參數,接收鏈路accept變量,傳送數據send函數,接受信息recv參數,關閉socket參數的次序來完成。而與此相對應內部的過程就是根據此次序完成的,因此網絡信息在系統內部中的處理過程一般都是在網卡與協議棧中間完成的:由網卡接收數據,再交由協議棧處理過程;協議棧把要傳輸的信息經由網絡發送出去。
我們在給系統傳遞數據的同時,也將消息經由插口層傳送到協議層,協議層的UDP層增加UDP的首次、TCP層增加TCP的首次、IP層增加IP的首次,而接口層的網卡則在加載了互聯網上的數據塊后,再經由網卡的傳輸功能發送到互聯網上。
接受信息的處理過程則是一種完全相反的處理過程,當有信息出現的時候,通過電話卡的中斷程序將信息從互聯網網卡的FIFO對列中收集到內部,然后傳送到協商層,由協商層將IP層剝奪IP的首次、UDP層剝奪UDP的首次、TCP層剝奪TCP的首次并傳送到插口層,經過插口層對socket的識別后,將信息發送給用戶層對應的socket。
經過以上的介紹,相信大家對Linux內核有了一個大概的認識。其實學好Linux內核真的很重要,學好了Linux內核就等于學好了一半的Linux系統。但是為了大家能夠進一步補齊短板,吸收理論知識和實操技能,我向大家推薦《Linux就該這么學》,這本書講的就是怎樣學好Linux系統,怎樣利用Linux系統去完成一些高難度的操作。我們在知道了內核很重要的基礎上,當然就要進行深度學習了。這本書非常適合零基礎的新手,當然對于一些老玩家也是上下兼容??傊褪切率挚梢詮闹惺斋@知識,老手可以從中溫故而知新。我認為在我們掌握了Linux內核基礎知識的情況下,利用這本書來鞏固一下是很好的。
現在大家對Linux內核的重要性已經一清二楚了吧,如果想進一步的了解,那么就從這本書入手吧,相信大家經過一段時間的學習一定會有所收獲的。
審核編輯黃宇
-
Linux
+關注
關注
87文章
11225瀏覽量
208920
發布評論請先 登錄
相關推薦
評論