|
1. 软件编程规范
1.1. C/C++规范
1.2. Shell规范
2. 基本程序设计
2.1. C/C++
2.2. Shell
makefile, sed, awk
2.3. UML
3. 设计模式
单个模式,案例学习,分析,试验,综合学习,实际问题分析,解决。
4. 软件质量
4.1. 测试
4.1.1. 单元测试
4.1.2. 联调
4.1.3. 系统测试
4.1.4. Alpha/Beta测试
4.2. 同行评审
作用。流程,角色及其责任。
4.3. 代码走读
5. 系统管理
5.1. Unix基本
UNIX下的基本概念:进程,线程,用户,组,文件权限,目录,etc。
基本命令(主要是POSIX标准里的,通用于各UNIX平台的),如ls, ps, ftp, telnet, wc, awk, sed, grep, cron, tail, head, od, uname, ifconfig, route, etc
UNIX平台的常用目录及其功能。
5.2. Solaris
5.3 平台相关的主要是设备管理,文件系统管理,网络配置,系统优化,等。
5.4. Linux
5.5. Oracle
6. 高级程序设计
6.1. 网络编程
TCP, UDP, POLL/SELECT, 常用SOCK-OPTIONS
6.2. 多线程编程(POSIX)
多线程程序设计,MP引入的问题及其解决方法。如mutex, cond, once, key, etc。
高级阶段:了解MP的实现机制(可以从简单的Posix Thread库实现+GCC中Posix Thread支持来学习)。
6.3. IPC
PIPE, MSG, SHM, SEM, 其它机制
多进程环境。
6.4. File /Device操作
6.5. 调试技术
调试技术设计:从项目开始考虑项目的可调试性,软件实现时考虑可调试性。
工具使用:如gdb, kdb, mdb, adb, etc (常见问题的处理)。
6.5.1. Linux
6.5.2. Solaris
6.6. 嵌入式SQL程序设计(Postgres/Oracle)
7. 驱动程序设计
7.1. Linux驱动程序设计
7.1.1. 驱动构架
7.1.2. 常用内核方法
如memory/page alloc/free, lock ops, etc
7.1.3. 常用类型驱动设计与实现
块设备驱动,字符设备驱动,SCSI盘驱动,SCSI中间层驱动,文件系统模块,网络模块。
7.1.4. SCSI专题
SCSI构架,中间层,驱动层等,TGT模式。
7.1.5. VFS专题
7.1.6. 内核调试
7.3. Windows
8. Linux源代码初步介绍
启动,各模块的划分与功能及其协作。
源代码文件体系:OS构架,驱动构架
内核的编译与加载,
SMP的支持等
9. Linux源代码高级分析
专题分析,如mm, fs, disk, schedule, interrupt & task/softIRQ, SCSI, SMP, net(tcp/ip), etc
10. OpenSolaris源代码高级分析
11. 常用案例分析
|