对于Linux操作系统的学习,我们将其比较为一个爬坡,每上一个阶段,就会有一段新的收获
我们将整体氛围了六个阶段,那么我们简单的说一下
1.熟练使用Linux命令行工具
对于linux,我们应该熟练使用命令行+文件的模式
我们无论做什么事情,都有对应的吗命令工具,对于这些工具,一般在bin或者sbin目录下
我们需要对这些命令行工具需要了解,常见的有sed awk,正则表达式 grep bash等
我们利用这些处理文件和数据
对于这一阶段的全面学习,推荐鸟哥的私房菜
2.利用系统调用或者glibc,进行程序设计
尝试自己去设计程序,
但其中会遇到调用的复杂度,每个函数都极其的复杂,传入的参数,返回值都有讲究
如果试用命令行是吃馒头,那么些操作命令行就是做馒头
在其中,我们需要学习进程树 fork等知识,还有网络应用层Socket等知识
在这一阶段的学习,推荐UNIX环境高级编程
3.了解Linux内核机制
查看系统调用内部的流程
就好比,蒸馒头久了,想要学习如何蒸出更好吃的馒头
Linux也是如此,先了解一下Linux的内核机制
对于其中涉及的分配内存,内存映射涉及的文件关联,反复对照,缕清即可
对于此阶段,推荐 深入理解Linux内核
4,阅读Linux内核,聚焦核心逻辑和场景
我们在其中需要了解阅读远吗了,这一阶段需要注意,不要计较与一城一池的得失,而是聚焦于核心逻辑和使用场景
这一阶段还有这场景相关分析的学习,创建进程 分配内存 打开文件 读写文件 收发网络包
对于此阶段的,推荐 Linux内核源代码场景分析
5.客制化Linux组件,成为内核工程师
就好比蒸馒头,准备修改面粉的生产流程
Linux有源代码,可以客制化自己的模块,比如实现一个设备驱动程序,一个自己的文件系统
6.面向真实的场景,实践无终点
对于此,我们要面向实际的场景开发,需要考虑各种的因素,并发,并行,锁 保护
扩展性 兼容性
最后总结一下: