(1)Unix/Linux环境与开发工具链:了解Unix/Linux操作系统的发展历程、体系结构及其与Windows的本质差异。掌握Linux文件系统层次结构、Shell基础命令与脚本编程。学习GCC/G++编译器的核心参数与编译流程(预处理、编译、汇编、链接),掌握静态库与共享库的创建与使用。实践Makefile的编写规范与自动化构建技术。
(2)GDB调试技术与内存分析:掌握GDB调试器的核心命令与应用技巧,包括断点设置(普通断点、条件断点、硬件断点)、单步执行、堆栈回溯、变量监视。学习Core Dump文件的生成与分析,定位段错误等致命问题。掌握Valgrind内存检测工具的使用,识别内存泄漏、非法内存访问等问题。
(3)C/C++语言核心深化:深入理解指针与引用的底层机制,掌握指针运算、多级指针、函数指针及其在系统编程中的应用。学习动态内存管理(malloc/free、new/delete)的实现原理与最佳实践。掌握结构体、共用体、枚举等复合数据类型的对齐与填充规则。理解C++面向对象特性(封装、继承、多态)在系统编程环境中的应用。
(4)文件I/O与文件系统编程:掌握标准C库文件I/O函数(fopen/fread/fwrite)与POSIX系统调用(open/read/write)的区别与联系。深入理解文件描述符的概念与操作,掌握文件读写指针定位、文件锁机制。学习目录操作(opendir/readdir)、文件属性获取(stat/lstat)、硬链接与软链接的实现原理。
(5)进程管理与控制:理解进程的完整生命周期(创建、运行、终止、回收)与进程状态转换机制。掌握fork/vfork、exec族函数的实现原理与使用技巧,学习孤儿进程、僵尸进程的产生与处理方法。掌握wait/waitpid函数回收子进程资源,理解守护进程的创建规范与编程模型。
(6)信号处理机制:深入理解信号的本质与内核处理流程,掌握标准信号与实时信号的差异。学习signal/sigaction函数的注册与使用,掌握信号集操作与信号阻塞技术。实践实现信号的可靠传递与异步事件处理,掌握SIGCHLD信号在子进程回收中的应用。
(7)进程间通信(IPC)核心技术:掌握管道通信机制,包括无名管道(pipe)与有名管道(FIFO)的创建与应用场景。学习System V IPC三大机制:消息队列、共享内存、信号量的原理与编程接口。掌握共享内存与信号量的协同使用实现高效进程间数据交换。
(8)多线程编程与同步机制:理解线程与进程的本质区别,掌握POSIX线程库(pthread)的核心API。学习线程的创建、终止、分离与资源回收。深入掌握线程同步机制:互斥锁(mutex)、条件变量(condition variable)、读写锁(rwlock)、信号量(semaphore)的原理与适用场景。
(9)网络编程与Socket通信:掌握TCP/IP协议栈的核心原理与数据封装过程。学习Socket编程的基本流程:socket创建、bind绑定、listen监听、accept接受、connect连接。实现TCP客户端/服务器模型的完整代码,掌握UDP编程的差异与适用场景。了解UNIX域套接字在本地进程间通信中的应用。
(10)高并发网络服务器设计:学习I/O多路复用技术,掌握select、poll、epoll的机制原理与性能差异。实践使用epoll实现高并发网络服务器,理解水平触发与边缘触发的区别。掌握Reactor反应堆模型的设计思想与简单实现,了解多线程与多进程并发模型的优缺点。
(11)系统资源管理与性能优化:掌握系统资源限制的获取与设置(ulimit、getrlimit/setrlimit)。学习CPU亲和性设置、进程优先级调整(nice值)。掌握性能分析工具(gprof、perf)的使用方法,识别程序热点与性能瓶颈。实践实现代码级别的性能优化策略。
(12)综合项目实战:企业级系统应用开发:结合所学知识,完成一个完整的Unix/Linux系统编程项目(如高并发Web服务器、分布式监控代理、多线程日志系统)。涵盖需求分析、架构设计、模块划分、编码实现、调试优化、文档撰写的全流程,形成规范的Linux系统级应用项目报告与可运行的代码库。