理論部分課程安排
第一部分IO接口高級(jí)編程
系統(tǒng)功能調(diào)用接口
無(wú)緩存方式I/O
open/close ,read/write
dup/dup2, fcntl/ioctl
標(biāo)準(zhǔn)I/O庫(kù)接口
緩存方式I/O
字符流I/O,比特流I/O
格式化I/O
高級(jí)I/O
無(wú)阻塞I/O,記錄加鎖
內(nèi)存映射I/O
第二部分 進(jìn)程高級(jí)編程
進(jìn)程控制
進(jìn)程環(huán)境
fork/vfork, wait/waitpid, exec
進(jìn)程間的關(guān)系
進(jìn)程組,會(huì)話(session)
Job控制
信號(hào)(signal)
信號(hào)的概念
Signal, kill/raise, alarm/pause, sigaction
第三部分 線程高級(jí)編程
進(jìn)程與線程
Posix線程
線程的創(chuàng)建與結(jié)束
Pthread_create, pthread_join
競(jìng)爭(zhēng)和臨界區(qū)概念
線程同步
互斥,pthread_mutex_*
信號(hào)量 (semaphore), sem_*
條件變量 , pthread_cond_*
第四部分 IPC高級(jí)編程
線程間通信與進(jìn)程間通信
posix IPC 和 system V IPC
消息傳遞
無(wú)名管道(pipes)
有名管道(fifos)
消息隊(duì)列(mg_*, mg*)
同步
互斥, 條件變量, 信號(hào)量
共享內(nèi)存
第五部分 網(wǎng)絡(luò)基礎(chǔ)知識(shí)
網(wǎng)絡(luò)基本概念
路由概念
TCP/IP各個(gè)層次的主要協(xié)議和功能
如何抓包并分析內(nèi)容
第六部分 客戶端/服務(wù)器編程
客戶端與服務(wù)器概念
字節(jié)順序與網(wǎng)絡(luò)編程常用函數(shù)
htons,htonl,ntohs,ntohl,inet_aton inet_ntoa,inet_pton inet_ntop等
socket概念及使用
Bind,connect,listen,accept,recv,send
recvfrom,sendto,select,setsockoption等
第七部分socket網(wǎng)絡(luò)高級(jí)編程
簡(jiǎn)單的TCP C/S
添加錯(cuò)誤處理
處理SIGPIPE信號(hào)
使用fork進(jìn)行并發(fā)處理
使用select
第八部分Web服務(wù)器編程
socket處理
http請(qǐng)求處理
文件請(qǐng)求處理
實(shí)驗(yàn)部分課程安排
第一部分I/O實(shí)驗(yàn)
open/close/read/write綜合實(shí)驗(yàn)
fcntl/ioctl綜合實(shí)驗(yàn)
select練習(xí)
第二部分 進(jìn)程實(shí)驗(yàn)
fork/wait/exec綜合練習(xí)
mysh:簡(jiǎn)化實(shí)現(xiàn)的shell
mysh增強(qiáng):支持重定向和管道
第三部分 線程實(shí)驗(yàn)
圓周率的近似計(jì)算
Producer_consumer問(wèn)題
管程的C++實(shí)現(xiàn)
第四部分 IPC實(shí)驗(yàn)
pipe/fifos綜合實(shí)驗(yàn)
消息隊(duì)列
信號(hào)量
共享內(nèi)存
第五部分 網(wǎng)絡(luò)編程實(shí)驗(yàn)
C/S編程
1.實(shí)踐代碼,修改代碼。
2.動(dòng)手寫(xiě)自己的服務(wù)器。
Web服務(wù)器
3.web服務(wù)器代碼實(shí)踐。
4.動(dòng)手修改web服務(wù)器代碼。
第六部分 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
1. 網(wǎng)卡設(shè)備介紹
◆ 常見(jiàn)網(wǎng)卡
◆ 網(wǎng)卡芯片所實(shí)現(xiàn)的協(xié)議層功能
◆ cs8900網(wǎng)卡芯片手冊(cè)導(dǎo)讀
◆ cs8900網(wǎng)卡硬件電路分析
2. Linux網(wǎng)絡(luò)驅(qū)動(dòng)結(jié)構(gòu)
◆ Linux TCPIP網(wǎng)絡(luò)結(jié)構(gòu)概述
◆ Linux網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)
◇ 網(wǎng)絡(luò)設(shè)備的注冊(cè)
◇ net_device結(jié)構(gòu)分析
◇ 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的發(fā)送,接收和中斷處理
3. 網(wǎng)卡設(shè)備介紹
◆ 常見(jiàn)網(wǎng)卡
◆ 網(wǎng)卡芯片所實(shí)現(xiàn)的協(xié)議層功能
◆ cs8900網(wǎng)卡芯片手冊(cè)導(dǎo)讀
◆ cs8900網(wǎng)卡硬件電路分
【實(shí)驗(yàn)】
1.實(shí)驗(yàn)一:ifconfig等命令實(shí)驗(yàn)
2.實(shí)驗(yàn)二:字符設(shè)備的網(wǎng)卡驅(qū)動(dòng)實(shí)現(xiàn)(上)
3.實(shí)驗(yàn)三:字符設(shè)備的網(wǎng)卡驅(qū)動(dòng)實(shí)現(xiàn)(下)
4.實(shí)驗(yàn)四:驅(qū)動(dòng)的測(cè)試程序編寫(xiě)運(yùn)行
第七部分 Linux下的TCP/IP協(xié)議棧--隊(duì)列層(Queuing Layer)
1. 基本數(shù)據(jù)結(jié)構(gòu)和初始化
◆softnet data
◆ptype記錄表
◆隊(duì)列層初始化
2. 數(shù)據(jù)包的接收
◆NAPI接口
◆netif rx接口
3. 數(shù)據(jù)包的發(fā)送
◆隊(duì)列規(guī)則(Queuing Discipline)
◆發(fā)送流程. |