| 理论部分课程安排
 第一部分IO接口高级编程
 系统功能调用接口
 无缓存方式I/O
 open/close ,read/write
 dup/dup2, fcntl/ioctl
 标准I/O库接口
 缓存方式I/O
 字符流I/O,比特流I/O
 格式化I/O
 高级I/O
 无阻塞I/O,记录加锁
 内存映射I/O
 
 第二部分 进程高级编程
 进程控制
 进程环境
 fork/vfork, wait/waitpid, exec
 进程间的关系
 进程组,会话(session)
 Job控制
 信号(signal)
 信号的概念
 Signal, kill/raise, alarm/pause, sigaction
 
 第三部分 线程高级编程
 进程与线程
 Posix线程
 线程的创建与结束
 Pthread_create, pthread_join
 竞争和临界区概念
 线程同步
 互斥,pthread_mutex_*
 信号量 (semaphore), sem_*
 条件变量 , pthread_cond_*
 
 第四部分 IPC高级编程
 线程间通信与进程间通信
 posix IPC 和 system V IPC
 消息传递
 无名管道(pipes)
 有名管道(fifos)
 消息队列(mg_*, mg*)
 同步
 互斥, 条件变量, 信号量
 共享内存
 
 第五部分 网络基础知识
 网络基本概念
 路由概念
 TCP/IP各个层次的主要协议和功能
 如何抓包并分析内容
 
 第六部分 客户端/服务器编程
 客户端与服务器概念
 字节顺序与网络编程常用函数
 htons,htonl,ntohs,ntohl,inet_aton inet_ntoa,inet_pton inet_ntop等
 socket概念及使用
 Bind,connect,listen,accept,recv,send
 recvfrom,sendto,select,setsockoption等
 
 第七部分socket网络高级编程
 最简单的TCP C/S
 添加错误处理
 处理SIGPIPE信号
 使用fork进行并发处理
 使用select
 
 第八部分Web服务器编程
 socket处理
 http请求处理
 文件请求处理
 
 实验部分课程安排
 
 第一部分I/O实验
 open/close/read/write综合实验
 fcntl/ioctl综合实验
 select练习
 
 第二部分 进程实验
 fork/wait/exec综合练习
 mysh:简化实现的shell
 mysh增强:支持重定向和管道
 
 第三部分 线程实验
 圆周率的近似计算
 Producer_consumer问题
 管程的C++实现
 
 第四部分 IPC实验
 pipe/fifos综合实验
 消息队列
 信号量
 共享内存
 
 第五部分 网络编程实验
 C/S编程
 1.实践代码,修改代码。
 2.动手写自己的服务器。
 Web服务器
 3.web服务器代码实践。
 4.动手修改web服务器代码。
 
 第六部分 网络设备驱动程序开发
 1. 网卡设备介绍
 ◆ 常见网卡
 ◆ 网卡芯片所实现的协议层功能
 ◆ cs8900网卡芯片手册导读
 ◆ cs8900网卡硬件电路分析
 2. Linux网络驱动结构
 ◆ Linux TCPIP网络结构概述
 ◆ Linux网络设备结构
 ◇ 网络设备的注册
 ◇ net_device结构分析
 ◇ 网络设备驱动的发送,接收和中断处理
 3. 网卡设备介绍
 ◆ 常见网卡
 ◆ 网卡芯片所实现的协议层功能
 ◆ cs8900网卡芯片手册导读
 ◆ cs8900网卡硬件电路分
 【实验】
 1.实验一:ifconfig等命令实验
 2.实验二:字符设备的网卡驱动实现(上)
 3.实验三:字符设备的网卡驱动实现(下)
 4.实验四:驱动的测试程序编写运行
 第七部分 Linux下的TCP/IP协议栈--队列层(Queuing Layer)1. 基本数据结构和初始化
 ◆softnet data
 ◆ptype记录表
 ◆队列层初始化
 2. 数据包的接收
 ◆NAPI接口
 ◆netif rx接口
 3. 数据包的发送
 ◆队列规则(Queuing Discipline)
 ◆发送流程.
 |