求怎么系统学习linux
本人今年2月份左右接触的linux,当时是导师想研究linuxcnc这款cnc应用,在对linux有一个大概了解之后先后在自己的电脑上尝试了deepin、ubuntu、debian等linux发布版。
Csapp是本好书, 但我个人觉得阅读早期的Linux源码有点不太适合我,早期的源码书写风格,接口,模型,思想和现在的变化太大了,看了会把思想带偏,而且直接看那坨源码很容易让人挫败,感觉找不到一个start point,这也是目前中文版Linux书籍面临的问题,书中使用的内核版本太过陈旧,很多书都是10年左右出版的,十年可以改变很多,连Linus都开始考虑用Rust编写Linux内核的可能性 。我这里补充两个我个人觉得适合新手学习Linux内核源码的经验,一是https://github.com/s-matyukevich/raspberry-pi-os 这本书,这本书教你从零编写一个自制的操作系统,但这个操作系统中大部分代码是从Linux内核中拷贝的,它会教你如何实现自己的调度管理,中断处理,然后再解释Linux是如何实现的。另一个是ZephyrOS这个嵌入式操作系统,它很多设计概念是承袭Linux的,包括设备树,设备模型,构建系统,POSIX等等,但是精简了很多,而且可以运行在Cortex-M这样简单的微架构之上