您现在的位置是:首页 >技术交流 >Linux自学指南-从应用到内核网站首页技术交流

Linux自学指南-从应用到内核

言小叶 2024-07-11 06:01:02
简介Linux自学指南-从应用到内核

0.前言

国内很多大学操作系统课存在两个问题

1.重理论而轻实践,学起来很枯燥乏味,有些知识太过抽象难以理解。

2.或者实践与预备理论脱节。很多学校的实践直接开始动手改内核,然而学生缺乏一些必要工具使用基础和相关理论知识,甚至很多学生是学操作系统之前并无接触过linux,要么实验肝的头痛。短时间内需要学习大量工具和知识。如linux命令、gdb、汇编语言等。故本人制作了linux自学路线。

推荐资料原则以尽量一个为主,其他为辅。

1.linux自学路线

在这里插入图片描述

2.预备条件

  • 熟练使用C语言
  • 自行搭建开发环境,推荐:vscode+wsl

3.linux基本命令

在学习使用linux时候可以不安装图形界面。即使你安装了,其实用处也不大,因为大多数人只是把linux当做代码运行平台。大部分编程工作需要命令行操作。当你熟练掌握命令行后甚至会发现图形界面甚至有些鸡肋。况且使用vscode直接连接wsl可以在vscode上运行、调试代码。这一部分更推荐跟着视频学,书当做字典来用,当绝大部分命令的基础操作都熟练了,可以用utools上linux手册用到不会直接查。其中用的最多还是目录、文件相关的命令。

视频

推荐书籍

  • 《跟老男孩学Linux运维:核心系统命令实战》:不建议从头到尾学,可以当做字典查,有很多实例。方便理解命令

跟老男孩学Linux运维:核心系统命令实战

  • 《 Linux命令行与shell脚本编程大全(第4版)》值得仔细看

在这里插入图片描述

4.shell脚本基础编程

如果说掌握命令可以跟os进行交流,那么shell是一种面向操作系统的编程语言,可以批量写linux命令

推荐书籍:

  • 《shell脚本基础教程》:写的非常通俗易懂,适合入门

在这里插入图片描述

5.linux系统编程

linux系统编程基本上是在linux环境下写c语言,使用了基本的linux API.

推荐文档

推荐书籍

  • 入门:《Linux是怎样工作的》:图多、实例多,通俗易懂,按照实例敲基本对linux环境下编程会有初步了解。边看边敲代码

在这里插入图片描述

在这里插入图片描述

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
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。