1 Linux基础知识
- Linux环境搭建;
- Linux常用命令;
- VI使用;
- 用户管理;
- Linux文件目录结构;
- Linux磁盘管理;
- 各种服务器的管理(SSH、Samba、NFS、Apache等);
参考文档:《鸟哥的Linux私房菜-基础学习篇》、《Linux指令速查手册》
2 Linux应用开发
- Linux Shell命令;
- C语言;
- 编译环境与Makefile;
- 调试工具;
- 文件操作;
- I/O操作;
- 进程控制;
- 进程间通讯;
- 线程控制;
- 信号与信号处理;
- 网络编程;
- 界面编程;
参考文档:《Linux程序设计》
3 Linux驱动开发
- 内核编程基础;
- 处理器结构(ARM、PPC);
- 硬件相关知识(平台相关,时钟、内存、GPIO、I2C、SPI、USB、PCIE等);
- Linux内核启动流程;
- 简单字符设备驱动;
- 中断处理;
- 内存映射与DMA;
- Linux设备模型;
- 块设备驱动;
- 网络设备驱动;
- 具体设备驱动(USB、PCIE、I2C、Flash、LCD等);
- Linux文件系统;
- Bootloader编写与移植;
- Linux内核剪裁;
- Linux内核源码;
参考文档:《Linux设备驱动开发详解》、《嵌入式Linux应用开发完全手册》、《Linux 2.6内核标准教程》