|
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. 常用案例分析
|