您现在的位置是:首页 >技术交流 >Linux自学指南-从应用到内核网站首页技术交流
Linux自学指南-从应用到内核
0.前言
国内很多大学操作系统课存在两个问题
1.重理论而轻实践,学起来很枯燥乏味,有些知识太过抽象难以理解。
2.或者实践与预备理论脱节。很多学校的实践直接开始动手改内核,然而学生缺乏一些必要工具使用基础和相关理论知识,甚至很多学生是学操作系统之前并无接触过linux,要么实验肝的头痛。短时间内需要学习大量工具和知识。如linux命令、gdb、汇编语言等。故本人制作了linux自学路线。
推荐资料原则以尽量一个为主,其他为辅。
1.linux自学路线
2.预备条件
- 熟练使用C语言
- 自行搭建开发环境,推荐:
vscode+wsl
3.linux基本命令
在学习使用linux
时候可以不安装图形界面。即使你安装了,其实用处也不大,因为大多数人只是把linux当做代码运行平台。大部分编程工作需要命令行操作。当你熟练掌握命令行后甚至会发现图形界面甚至有些鸡肋。况且使用vscode
直接连接wsl
可以在vscode
上运行、调试代码。这一部分更推荐跟着视频学,书当做字典来用,当绝大部分命令的基础操作都熟练了,可以用utools
上linux手册用到不会直接查。其中用的最多还是目录、文件相关的命令。
视频
-
【狂神说Java】Linux最通俗易懂的教程阿里云真实环境学习:推荐理由是时间短讲的不错可以较为系统认识linux,注意:up推荐的阿里云不用买,直接用wsl
-
计算机教育中缺失的一课之后用到的一系列工具的学习都可以参考这个视频
推荐书籍
- 《跟老男孩学Linux运维:核心系统命令实战》:不建议从头到尾学,可以当做字典查,有很多实例。方便理解命令
- 《 Linux命令行与shell脚本编程大全(第4版)》值得仔细看
4.shell脚本基础编程
如果说掌握命令可以跟os进行交流,那么shell是一种面向操作系统的编程语言,可以批量写linux命令
推荐书籍:
- 《shell脚本基础教程》:写的非常通俗易懂,适合入门
5.linux系统编程
linux系统编程基本上是在linux环境下写c语言,使用了基本的linux API.
推荐文档
- CSDNWindalove大佬的博客:《Linux系统编程》,当看完linux是怎样工作的,就再跟着博客继续敲代码
推荐书籍
- 入门:《Linux是怎样工作的》:图多、实例多,通俗易懂,按照实例敲基本对linux环境下编程会有初步了解。边看边敲代码
- 深入:《Linux/UNIX系统编程手册》:适合有时间再看
6.x86汇编语言
跟着视频敲代码就行。需要学会写汇编代码,debug调试,只有学会汇编才能看懂内核代码。汇编语言和x86体系结构分不开。
视频
极安御信C&汇编训练营(第零期直播)
书籍
- 王爽的《汇编语言》适合入门
- 推荐:李忠的《x86汇编语言(第2版)从实模式到保护模式》必看书籍其中实模式和保护模式对于后续理解linux0.11源码很重要,也可结合后续x86体系结构/微机原理一起看。
7.x86体系架构/微机原理
我感觉微机原理讲的最好的还是西电的周佳社老师。强烈安利
课程
微机原理虽然主要以8086为主线但其16位体系结构是理解16位汇编关键。
8.linux内核
linux内核研究有两种思路一是研究linux早期版本,二是做一些目前著名实验。
视频
b站的linux内核精讲这位up讲的不错
非常好的Linux内核视频 - Linux内核精讲
推荐书籍
《linux内核完全剖析0.12》
实验
9.其他组合
一些著名实验
- xv6=c+risc-v:比较推荐,视频、资料最多,文档文档也很全。
- rcore=rust+risc-v
- ucore=c+risc-v
- cs162=c+x86