Linux自學指南-從應(yīng)用到內(nèi)核

0.前言
國內(nèi)很多大學操作系統(tǒng)課存在兩個問題
1.重理論而輕實踐,學起來很枯燥乏味,有些知識太過抽象難以理解。
2.或者實踐與預(yù)備理論脫節(jié)。很多學校的實踐直接開始動手改內(nèi)核,然而學生缺乏一些必要工具使用基礎(chǔ)和相關(guān)理論知識,甚至很多學生是學操作系統(tǒng)之前并無接觸過linux,要么實驗肝的頭痛。短時間內(nèi)需要學習大量工具和知識。如linux命令、gdb、匯編語言等。故本人制作了linux自學路線。
推薦資料原則以盡量一個為主,其他為輔。
linux自學路線

2.預(yù)備條件
熟練使用C語言
自行搭建開發(fā)環(huán)境,推薦:
vscode+wsl
3.linux基本命令
在學習使用linux
時候可以不安裝圖形界面。即使你安裝了,其實用處也不大,因為大多數(shù)人只是把linux當做代碼運行平臺。大部分編程工作需要命令行操作。當你熟練掌握命令行后甚至會發(fā)現(xiàn)圖形界面甚至有些雞肋。況且使用vscode
直接連接wsl
可以在vscode
上運行、調(diào)試代碼。這一部分更推薦跟著視頻學,書當做字典來用,當絕大部分命令的基礎(chǔ)操作都熟練了,可以用utools
上linux手冊用到不會直接查。其中用的最多還是目錄、文件相關(guān)的命令。
視頻
【狂神說Java】Linux最通俗易懂的教程阿里云真實環(huán)境學習:推薦理由是時間短講的不錯可以較為系統(tǒng)認識linux,注意:up推薦的阿里云不用買,直接用wsl
計算機教育中缺失的一課之后用到的一系列工具的學習都可以參考這個視頻
推薦書籍
《跟老男孩學Linux運維:核心系統(tǒng)命令實戰(zhàn)》:不建議從頭到尾學,可以當做字典查,有很多實例。方便理解命令
《 Linux命令行與shell腳本編程大全(第4版)》值得仔細看
4.shell腳本基礎(chǔ)編程
如果說掌握命令可以跟os進行交流,那么shell是一種面向操作系統(tǒng)的編程語言,可以批量寫linux命令
推薦書籍:
《shell腳本基礎(chǔ)教程》:寫的非常通俗易懂,適合入門
5.linux系統(tǒng)編程
linux系統(tǒng)編程基本上是在linux環(huán)境下寫c語言,使用了基本的linux API.
推薦文檔
CSDNWindalove大佬的博客:《Linux系統(tǒng)編程》,當看完linux是怎樣工作的,就再跟著博客繼續(xù)敲代碼
推薦書籍
入門:《Linux是怎樣工作的》:圖多、實例多,通俗易懂,按照實例敲基本對linux環(huán)境下編程會有初步了解。邊看邊敲代碼
深入:《Linux/UNIX系統(tǒng)編程手冊》:適合有時間再看
6.x86匯編語言
跟著視頻敲代碼就行。需要學會寫匯編代碼,debug調(diào)試,只有學會匯編才能看懂內(nèi)核代碼。匯編語言和x86體系結(jié)構(gòu)分不開。
視頻
極安御信C&匯編訓(xùn)練營:我當時學的時候看的就是這個視頻?;旧系脮戇x擇、循環(huán)、子函數(shù)編程。
書籍
王爽的《匯編語言》適合入門
推薦:李忠的《x86匯編語言(第2版)從實模式到保護模式》必看書籍其中實模式和保護模式對于后續(xù)理解linux0.11源碼很重要,也可結(jié)合后續(xù)x86體系結(jié)構(gòu)/微機原理一起看。
7.x86體系架構(gòu)/微機原理
我感覺微機原理講的最好的還是西電的周佳社老師。強烈安利
課程
微機原理雖然主要以8086為主線但其16位體系結(jié)構(gòu)是理解16位匯編關(guān)鍵。
8.linux內(nèi)核
linux內(nèi)核研究有兩種思路一是研究linux早期版本,二是做一些目前著名實驗。
視頻
b站的linux內(nèi)核精講這位up講的不錯
推薦書籍
《linux內(nèi)核完全剖析0.12》
實驗
哈工大李志君操作系統(tǒng)實驗
9.其他組合
一些著名實驗
xv6=c+risc-v:比較推薦,視頻、資料最多,文檔文檔也很全。
rcore=rust+risc-v
ucore=c+risc-v
cs162=c+x86