要想学好linux,差不多要经过以下几个步骤
1. linux的使用
2. linux C
3. unix及系统调用
4. 初步了解linux内核(历史,基础概念,驱动)
5. 分析linux源码
6. 可以考虑自己写个简易内核
======================学习Linux的使用=========================================
《鸟哥的linux私房菜》 linux的使用
======================学习Linux C开发=========================================
《C程序设计语言》
《C专家编程》
这两本书主要是学习C语言,指针的概念和结构体概念比较重要,内核中大量使用了结构体来表示内核要用到的数据结构,指针是c语言的本质。
另外,调试技术也很重要,所以要学习gdb的基本使用。
======================学习Unix与系统调用=====================================
《unix环境高级编程》 主要是熟悉系统调用和unix中的一些概念
《unix网络编程》 同上,主要是熟悉
《Linux/UNIX系统编程手册(上、下册)》
=====================初步了解Linux内核=======================================
《unix编程艺术》
《unix 内核源码剖析》
《Linux操作系统原理与应用》 分析linux内核的入门书籍
《linux设备驱动》 在深入分析内核之前一定要仔细阅读linux内核驱动开发
======================分析Linux源码=========================================
《深入分析linux内核源码》
《Linux内核设计与实现》
接下来,可以尝试自己去造个轮子,一个简易的内核应该包含,可以参考MIT6.828
BootLoader(lab 1)
内存管理(lab2、lab3)
进程管理(lab4)
文件系统(lab5)
网络子系统(lab6)