linux應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)
Linux 應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)(2013級(jí)網(wǎng)絡(luò)工程)設(shè)計(jì)一 LINUX 下FTP 服務(wù)器配置1 設(shè)計(jì)目的通過(guò)對(duì)Linux 下FTP 服務(wù)器的配置,掌握FTP 的基本概念和VSFTP 服務(wù)器的設(shè)計(jì)架
Linux 應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)
(2013級(jí)網(wǎng)絡(luò)工程)
設(shè)計(jì)一 LINUX 下FTP 服務(wù)器配置
1 設(shè)計(jì)目的
通過(guò)對(duì)Linux 下FTP 服務(wù)器的配置,掌握FTP 的基本概念和VSFTP 服務(wù)器的設(shè)計(jì)架設(shè)及訪(fǎng)問(wèn)FTP 服務(wù)器的方法,通過(guò)與同組同學(xué)的合作鍛煉學(xué)生的合作能力。 2 設(shè)計(jì)內(nèi)容
根據(jù)已經(jīng)學(xué)習(xí)的網(wǎng)絡(luò)服務(wù)基礎(chǔ)知識(shí),架設(shè)基于VSFTP 的服務(wù)器,掌握VSFTP 的配置文件的具體內(nèi)容和服務(wù)器的配置方法,配置一個(gè)FTP 服務(wù)器實(shí)例,通過(guò)客戶(hù)機(jī)的訪(fǎng)問(wèn)驗(yàn)證自己的服務(wù)與配置。
3 設(shè)計(jì)要求
1)掌握FTP 工作原理、傳輸模式及在實(shí)際系統(tǒng)中應(yīng)用的方法;
2)掌握常用的FTP 命令;
3)安裝VSFTP 服務(wù)器,掌握其文件目錄結(jié)構(gòu)和作用,搭建一個(gè)測(cè)試用的文件系統(tǒng)結(jié)構(gòu);
4)學(xué)習(xí)掌握vsftpd.conf,vsftpd.ftpusers 文件的配置內(nèi)容和方法,完成一個(gè)具體的FTP 服務(wù)器的配置;要求對(duì)于匿名賬號(hào)和真實(shí)賬號(hào)都能夠有效地支持訪(fǎng)問(wèn);
5)實(shí)現(xiàn)從不同的操作系統(tǒng)平臺(tái)(Windows 和Linux )下訪(fǎng)問(wèn)FTP 服務(wù)器;
6)學(xué)習(xí)了解其他的FTP 服務(wù)器軟件并進(jìn)行比較,如WU-FTP 、proftpd 、pure-ftpd 等。
4 設(shè)計(jì)裝置
無(wú)。
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí);
2) 與同組同學(xué)一起討論出任務(wù)的分配方式;
3) 設(shè)計(jì)服務(wù)的基本方案,安裝配置系統(tǒng);
4) 測(cè)試并對(duì)測(cè)試結(jié)果進(jìn)行分析;
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目;
2) 同組同學(xué)任務(wù)的分配方式;
3) 設(shè)計(jì)基本原理、服務(wù)配置方法、服務(wù)安裝配置過(guò)程、測(cè)試方案及結(jié)果。
4) 體會(huì)。
,設(shè)計(jì)二 LINUX 下DNS 服務(wù)器配置
1 設(shè)計(jì)目的
通過(guò)對(duì)Linux 下DNS 服務(wù)器BIND 的配置,掌握DNS 的基本概念和BIND 服務(wù)器的設(shè)計(jì)架設(shè)及訪(fǎng)問(wèn)DNS 服務(wù)器的方法,通過(guò)與同組同學(xué)的合作鍛煉學(xué)生的合作能力。 2 設(shè)計(jì)內(nèi)容
根據(jù)已經(jīng)學(xué)習(xí)的網(wǎng)絡(luò)服務(wù)基礎(chǔ)知識(shí),架設(shè)基于BIND 的服務(wù)器,掌握BIND 的配置文件的具體內(nèi)容和服務(wù)器的配置方法,配置一個(gè)DNS 服務(wù)器實(shí)例,在本地和網(wǎng)絡(luò)上驗(yàn)證自己的服務(wù)與配置。
3 設(shè)計(jì)要求
1)掌握DNS 工作原理、三種基本的域名服務(wù)器及在實(shí)際系統(tǒng)中應(yīng)用;
2)安裝BIND 服務(wù)器,規(guī)劃一個(gè)測(cè)試用的域名系統(tǒng);
3)學(xué)習(xí)掌握named.conf,resolv.conf,host.conf 文件的配置內(nèi)容和方法;
4)配置一個(gè)主域名服務(wù)器,編輯配置named.conf 、正向和反向域名解析文件;
5)在本地驗(yàn)證自己的DNS 配置;配置客戶(hù)端,從網(wǎng)絡(luò)上驗(yàn)證DNS 服務(wù);
6)了解DNS 的負(fù)載均衡、直接域名解析和泛域名解析的配置方法。
4 設(shè)計(jì)裝置
無(wú)。
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí);
2) 與同組同學(xué)一起討論出任務(wù)的分配方式;
3) 設(shè)計(jì)服務(wù)的基本方案,安裝配置系統(tǒng);
4) 測(cè)試并對(duì)測(cè)試結(jié)果進(jìn)行分析;
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目;
2) 同組同學(xué)任務(wù)的分配方式;
3) 設(shè)計(jì)基本原理、服務(wù)配置方法、服務(wù)安裝配置過(guò)程、測(cè)試方案及結(jié)果。
4) 體會(huì)
設(shè)計(jì)三 LINUX 下電子郵件服務(wù)器配置
1 設(shè)計(jì)目的
通過(guò)對(duì)Linux 下電子郵件服務(wù)器的配置,掌握電子郵件服務(wù)的基本原理和服務(wù)器的設(shè)計(jì)架設(shè)方法,通過(guò)與同組同學(xué)的合作鍛煉學(xué)生的合作能力。
2 設(shè)計(jì)內(nèi)容
,根據(jù)已經(jīng)學(xué)習(xí)的網(wǎng)絡(luò)服務(wù)基礎(chǔ)知識(shí),架設(shè)基于Sendmail(或Postfix) 的服務(wù)器,掌握電子郵件系統(tǒng)的配置文件的具體內(nèi)容和服務(wù)器的配置方法,配置一個(gè)郵件服務(wù)器實(shí)例,通過(guò)客戶(hù)機(jī)的訪(fǎng)問(wèn)驗(yàn)證自己的服務(wù)與配置。
3 設(shè)計(jì)要求
1)掌握電子郵件系統(tǒng)的工作原理、主要協(xié)議及在實(shí)際系統(tǒng)中應(yīng)用特點(diǎn);
2)安裝Sendmail 服務(wù)器,掌握特點(diǎn)和作用,學(xué)習(xí)掌握/etc/sendmail.cf,/etc/aliases,/etc/mail/local-host-names,/etc/mail/sendmail.mc,/etc/mail/access 等文件的作用和配置方法。
3)掌握IMAP 和POP3服務(wù)的相關(guān)配置;掌握dovecot 的用法和/etc/dovecot.conf配置;了解Cyrus-IMPAD 的基本用法;
4)掌握電子郵件客戶(hù)端的基本配置,分別在本地和網(wǎng)絡(luò)上實(shí)現(xiàn)郵件的收發(fā),實(shí)現(xiàn)從不同的操作系統(tǒng)平臺(tái)(Windows 和Linux )下收發(fā)郵件;
5)了解Sendmail 郵件服務(wù)的認(rèn)證傳輸方式(ESMTP );
6)學(xué)習(xí)了解其他的郵件服務(wù)器軟件并進(jìn)行比較,如Zmail 、Postfix 等。 4 設(shè)計(jì)裝置
無(wú)。
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí)(如postfix dovecot mysql這樣的搭配) ;
2) 與同組同學(xué)一起討論出任務(wù)的分配方式;
3) 設(shè)計(jì)服務(wù)的基本方案,安裝配置系統(tǒng);
4) 測(cè)試并對(duì)測(cè)試結(jié)果進(jìn)行分析;
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目;
2) 同組同學(xué)任務(wù)的分配方式;
3) 設(shè)計(jì)基本原理、服務(wù)配置方法、服務(wù)安裝配置過(guò)程、測(cè)試方案及結(jié)果。
4) 體會(huì)。
設(shè)計(jì)四 Samba服務(wù)器配置
1 設(shè)計(jì)目的
通過(guò)對(duì)Linux 下Samba 服務(wù)器的配置,了解SMB 協(xié)議,熟悉Samba 配置文件中配置參數(shù)的設(shè)置,掌握Samba 配置過(guò)程,通過(guò)與同組同學(xué)的合作鍛煉學(xué)生的合作能力。 2 設(shè)計(jì)內(nèi)容
根據(jù)已經(jīng)學(xué)習(xí)的網(wǎng)絡(luò)服務(wù)基礎(chǔ)知識(shí),架設(shè)Samba 服務(wù)器,掌握Samba 的配置文件的具體內(nèi)容和服務(wù)器的配置方法,配置一個(gè)Samba 服務(wù)器實(shí)例,通過(guò)客戶(hù)機(jī)的訪(fǎng)問(wèn)驗(yàn)
,證自己的服務(wù)與配置。
3 設(shè)計(jì)要求
1)掌握Samba 工作原理、了解SMB 協(xié)議及Samba 在實(shí)際系統(tǒng)中應(yīng)用的方法;
2)安裝Samba 服務(wù)器,搭建一個(gè)測(cè)試環(huán)境滿(mǎn)足:有兩組用戶(hù)(每組至少2人),都可以登錄到Samba 服務(wù)器,各自只能訪(fǎng)問(wèn)自己組的文件,所有的用戶(hù)都不允許使用服務(wù)器上的shell, 只能通過(guò)Samba 訪(fǎng)問(wèn)服務(wù)器;
4)學(xué)習(xí)掌握smb.conf 的配置內(nèi)容和方法,完成一個(gè)實(shí)現(xiàn)上述2)要求的Samba 服務(wù)器的配置;掌握/etc/samba/smbpasswd /etc/samba/smbusers等相關(guān)文件的用法;
5)實(shí)現(xiàn)從不同的操作系統(tǒng)平臺(tái)(Windows 和Linux )下訪(fǎng)問(wèn)Samba 服務(wù)器。 4 設(shè)計(jì)裝置
無(wú)。
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí);
2) 與同組同學(xué)一起討論出任務(wù)的分配方式;
3) 設(shè)計(jì)服務(wù)的基本方案,安裝配置系統(tǒng);
4) 測(cè)試并對(duì)測(cè)試結(jié)果進(jìn)行分析;
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目;
2) 同組同學(xué)任務(wù)的分配方式;
3) 設(shè)計(jì)基本原理、服務(wù)配置方法、服務(wù)安裝配置過(guò)程、測(cè)試方案及結(jié)果。
4) 體會(huì)。
設(shè)計(jì)五 LINUX 的進(jìn)程管理
1 設(shè)計(jì)目的
加深對(duì)進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別;進(jìn)一步認(rèn)識(shí)并發(fā)執(zhí)行的實(shí)質(zhì);實(shí)現(xiàn)Linux 中進(jìn)程通信的兩種方式:軟中斷和管道通信。通過(guò)與同組同學(xué)的合作,鍛煉學(xué)生的合作能力。
2 設(shè)計(jì)內(nèi)容
根據(jù)本設(shè)計(jì)書(shū)所提供的基礎(chǔ)知識(shí),完成下列要求,寫(xiě)出相關(guān)代碼和設(shè)計(jì)報(bào)告。
1) 進(jìn)程的創(chuàng)建和控制
編寫(xiě)一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個(gè)子進(jìn)程。當(dāng)此程序運(yùn)行時(shí),在系統(tǒng)中有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程活動(dòng)。每個(gè)進(jìn)程在屏幕上顯示一個(gè)字符,記錄屏幕上的顯示結(jié)果,并分析原因。修改已編寫(xiě)的程序,將每個(gè)進(jìn)程輸出一個(gè)字符改為每個(gè)進(jìn)程輸出一句話(huà)。
,2) 進(jìn)程的軟中斷通信
使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個(gè)子進(jìn)程,使用系統(tǒng)調(diào)用
signal ()讓父進(jìn)程捕捉用alarm 函數(shù)設(shè)置時(shí)鐘的時(shí)間段終止時(shí)產(chǎn)生的信號(hào),當(dāng)捕捉到該信號(hào)后,父進(jìn)程使用系統(tǒng)調(diào)用Kill()向兩個(gè)子進(jìn)程發(fā)出信號(hào),子進(jìn)程捕捉到信號(hào)后分別輸出子進(jìn)程被殺死信息后終止,父進(jìn)程等待兩個(gè)子進(jìn)程終止后,輸出父進(jìn)程被殺死信息后終止程序。記錄屏幕上的顯示結(jié)果,并分析原因。
3) 進(jìn)程的管道通信
使用系統(tǒng)調(diào)用pipe()建立一個(gè)管道;兩個(gè)子進(jìn)程分別向管道寫(xiě)信息,父進(jìn)程則從管道讀出來(lái)自子進(jìn)程的信息,顯示在屏幕上。
3 設(shè)計(jì)要求
認(rèn)真編寫(xiě)代碼,與同組同學(xué)合作,通過(guò)充分的討論得到相關(guān)的結(jié)論。
4 設(shè)計(jì)裝置
無(wú)
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí)。
2) 與同組同學(xué)一起討論出任務(wù)的分配方式。
3) 對(duì)自己的任務(wù)部分的代碼認(rèn)真分析調(diào)試,得到相應(yīng)的框圖。
4) 與同組同學(xué)討論得到的代碼及實(shí)驗(yàn)結(jié)果。
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目
2) 同組同學(xué)任務(wù)的分配方式
3) 代碼分析結(jié)果
4) 體會(huì)
7. 相關(guān)基礎(chǔ)知識(shí)
系統(tǒng)調(diào)用函數(shù)說(shuō)明、參數(shù)值及定義
1) Fork()
創(chuàng)建一個(gè)新進(jìn)程進(jìn)程
int fork()
其中返回int 取值意義如下:
正確返回:在父進(jìn)程中返回子進(jìn)程的進(jìn)程號(hào),在子進(jìn)程中返回0
錯(cuò)誤返回:-1
2)Lockf(int files,int function,long size)
用作鎖定文件的某些段或者整個(gè)文件。
file :文件描述符;function :鎖定和解鎖,1表示鎖定,0表示解鎖;size :是鎖定或解鎖的字節(jié)數(shù),若用0,表示從文件的當(dāng)前位置到文件尾。
,3)Signal(int sig, (*func) function)
進(jìn)程控制軟中斷信號(hào)的處理。signal()會(huì)依照參數(shù)sig 指定的信號(hào)編號(hào)來(lái)設(shè)置該信號(hào)的處理函數(shù)。
sig : SIGALRM: alarm()函數(shù)設(shè)置的時(shí)鐘的時(shí)間段終止時(shí)產(chǎn)生的信號(hào)。
其它信號(hào)略。
function :信號(hào)處理的一個(gè)函數(shù)地址。
4) kill(int pid,int sig)
向一個(gè)進(jìn)程或一個(gè)進(jìn)程組發(fā)信號(hào),可以用來(lái)送參數(shù)sig 指定的信號(hào)給參數(shù)pid 指定的進(jìn)程。
pid: pid>0 將信號(hào)傳給進(jìn)程號(hào)為pid 的進(jìn)程。
其它略。
signumber: 送給進(jìn)程號(hào)為pid 進(jìn)程指定信號(hào)量
5) alarm(unsigned int seconds)
設(shè)置一個(gè)指定時(shí)間的計(jì)時(shí)器
seconds: 設(shè)置時(shí)間秒數(shù)
6) int pipe(int filedes[2])
filedes 為整數(shù)數(shù)組名,在調(diào)用這個(gè)函數(shù)后,系統(tǒng)為通道分配的兩個(gè)文件描述符將通過(guò)這個(gè)數(shù)組返回到用戶(hù)進(jìn)程中。 filedes[1]是文件輸出描述符, filedes[0]是文件輸入描述符。
7) int wait(int *status)
暫停目前進(jìn)程的執(zhí)行,直到有信號(hào)到來(lái)或子進(jìn)程的結(jié)束。子進(jìn)程的結(jié)束狀態(tài)指會(huì)由參數(shù)status 返回,如果不在意結(jié)束狀態(tài)時(shí),則參數(shù)status 可以設(shè)置成NULL
設(shè)計(jì)六 UNIX SHELL的設(shè)計(jì)
1 設(shè)計(jì)目的
Unix shell是unix 的命令解釋程序,用于讓用戶(hù)以一種友好的方式運(yùn)行程序和執(zhí)行命令。本課程設(shè)計(jì)要求學(xué)生在linux 下寫(xiě)一個(gè)命令解釋程序,從而加深對(duì)Linux shell 工作機(jī)制的認(rèn)識(shí),提高系統(tǒng)應(yīng)用程序設(shè)計(jì)的能力。
2 設(shè)計(jì)內(nèi)容
根據(jù)本設(shè)計(jì)書(shū)所提供的基礎(chǔ)知識(shí),完成在linux 下編寫(xiě)一個(gè)命令解釋程序,實(shí)現(xiàn)Ksh 最基本的功能。即:允許用戶(hù)打入一個(gè)可執(zhí)行的程序的名字以及其命令行參數(shù),執(zhí)行這個(gè)程序。同時(shí)實(shí)現(xiàn)一部分內(nèi)部命令(比如cd ,詳見(jiàn)要實(shí)現(xiàn)的命令),以及輸入輸出重定向等功能。寫(xiě)出相關(guān)代碼和設(shè)計(jì)報(bào)告,具體要求為:
,1)利用C 語(yǔ)言在Linux 上設(shè)計(jì)一個(gè)簡(jiǎn)單的命令解釋程序,完成如下功能: dir
cd <>改變當(dāng)前目錄
pwd 顯示當(dāng)前目錄名
md
copy
find 在指定的目錄及其子目錄中查找特定的文件
more
date 顯示當(dāng)前日期
time 顯示當(dāng)前時(shí)間
ren
del
exit 退出命令解釋程序。
執(zhí)行一個(gè)程序
2)命令解釋程序的提示符為:@
3)命令解釋程序把命令行解釋為內(nèi)部命令或外部命令(要執(zhí)行的程序)。內(nèi)部命令直接在命令解釋程序中處理,外部命令的執(zhí)行則由命令解釋程序通過(guò)fork()創(chuàng)建一個(gè)子進(jìn)程,然后在子進(jìn)程中調(diào)用exec 執(zhí)行一個(gè)程序。
4)命令解釋程序應(yīng)能夠支持輸入輸出重定向。
5)選作內(nèi)容:
命令解釋程序支持后臺(tái)運(yùn)行程序。
命令解釋程序支持管道。
命令解釋程序不能被ctrl c打斷。
3 設(shè)計(jì)要求
1) 命令解釋程序的實(shí)現(xiàn)環(huán)境是linux ,編程語(yǔ)言使用C 語(yǔ)言。
2) 整個(gè)程序必須嚴(yán)格經(jīng)過(guò)測(cè)試,完成所有基本功能。源程序應(yīng)有較詳盡的注釋。
3) 程序編寫(xiě)應(yīng)有良好的風(fēng)格。
4) 程序編制中不得使用system()系統(tǒng)調(diào)用。
5) 整個(gè)系統(tǒng)的源代碼應(yīng)由多個(gè)文件組成,所有源程序文件及其makefile 用tar 命令打成一個(gè)包,放在指定的目錄下。
4 設(shè)計(jì)裝置
無(wú)
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí)。
2) 與同組同學(xué)一起討論出任務(wù)的分配方式。
,3) 對(duì)自己的任務(wù)部分的代碼認(rèn)真分析調(diào)試,得到相應(yīng)的框圖。
4) 與同組同學(xué)討論得到的代碼及實(shí)驗(yàn)結(jié)果。
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目
2) 同組同學(xué)任務(wù)的分配方式
3) 設(shè)計(jì)報(bào)告應(yīng)包含如下內(nèi)容:a )系統(tǒng)的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì) b) 你的命令解釋程序詳細(xì)使用手冊(cè) c) 所有源程序清單 d) makefile
4) 體會(huì)
7. 主要參考書(shū)目:UNIX 環(huán)境高級(jí)編程
可能用到的系統(tǒng)調(diào)用:
open(),close(),read(),write(),creat()
dup()
fork()
execl(),execv(),execle(),execve(),execlp(),execvp()
wait(),waitpid()
chdir()
opendir(),readdir(),rewinddir(),closedir()
rmdir(),mkdir()
設(shè)計(jì)七 模擬UNIX 文件系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)
1 設(shè)計(jì)目的
模擬UNIX 文件系統(tǒng)來(lái)設(shè)計(jì)一個(gè)多用戶(hù)多目錄的文件系統(tǒng)。
2 設(shè)計(jì)內(nèi)容
完成在linux 下編寫(xiě)一個(gè)模擬UNIX 文件系統(tǒng),寫(xiě)出相關(guān)代碼和設(shè)計(jì)報(bào)告,文件系統(tǒng)應(yīng)具有的基本功能要求為:
(1)多用戶(hù) :usr1,usr2,usr3, ……,usr8 (1-8個(gè)用戶(hù))
(2)多級(jí)目錄:可有多級(jí)子目錄;
(3)具有l(wèi)ogin (用戶(hù)登錄)
(4)系統(tǒng)初始化(建文件卷、提供登錄模塊)
(5)文件的創(chuàng)建: create
(6)文件的打開(kāi):open
(7)文件的讀:read
(8)文件的寫(xiě):write
(9)文件關(guān)閉:close
,(10)刪除文件:delete
(11)創(chuàng)建目錄(建立子目錄):mkdir
(12)改變當(dāng)前目錄:cd
(13)列出文件目錄:dir
(14)退出:logout
3 設(shè)計(jì)要求
1)課程設(shè)計(jì)所利用的空間為1M 的內(nèi)存。這1M 內(nèi)存分成512塊,每塊為512個(gè)字節(jié),這512塊就是文件系統(tǒng)的可用塊數(shù),文件系統(tǒng)的分配就是以塊為單位來(lái)分配的,空閑塊的管理利用位示圖的方法來(lái)管理。申請(qǐng)1M 的內(nèi)存的方法可以利用malloc()或calloc().
2)磁盤(pán)I 節(jié)點(diǎn)可以利用在內(nèi)存中生成鏈表或者數(shù)組的方法來(lái)生成, 并且限制磁盤(pán)節(jié)點(diǎn)數(shù)的最大值。同樣內(nèi)存I 節(jié)點(diǎn)也可以利用鏈表的方法在內(nèi)存中生成。
3)在往文件中寫(xiě)或者讀的時(shí)候我們都是對(duì)內(nèi)存中內(nèi)容進(jìn)行讀寫(xiě)。例如你在文件中寫(xiě)的時(shí)候,其實(shí)是對(duì)分配的文件塊中對(duì)應(yīng)的內(nèi)存賦值。當(dāng)程序運(yùn)行結(jié)束的時(shí)候,文件的內(nèi)容都會(huì)丟失。我們這個(gè)文件系統(tǒng)只是一個(gè)模擬文件系統(tǒng)功能的虛擬文件系統(tǒng)。
4 設(shè)計(jì)裝置
無(wú)
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí)。
2) 與同組同學(xué)一起討論出任務(wù)的分配方式。
3) 對(duì)自己的任務(wù)部分的代碼認(rèn)真分析調(diào)試,得到相應(yīng)的框圖。
4) 與同組同學(xué)討論得到的代碼及實(shí)驗(yàn)結(jié)果。
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目
2) 同組同學(xué)任務(wù)的分配方式
3) 設(shè)計(jì)報(bào)告應(yīng)包含如下內(nèi)容:a )系統(tǒng)的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì) b) 你的文件管理系統(tǒng)工作過(guò)程分析 c) 所有源程序清單
4) 體會(huì)
7. 參考思路:
1)系統(tǒng)結(jié)構(gòu)
(1)塊管理層:
分塊分配、塊回收、塊讀、塊寫(xiě)等
(2)文件控制塊層(FCB )
目錄查找namei (),iget (),iput ()
,(3)文件管理層
具有打開(kāi)文件 open( ),close ( )等;
(4)命令解釋層
2) 數(shù)據(jù)結(jié)構(gòu)
(1)目錄結(jié)構(gòu)
(2)FCB 結(jié)構(gòu)
(3)打開(kāi)文件結(jié)構(gòu)
(4)用戶(hù)結(jié)構(gòu)
設(shè)計(jì)八 文件行編工具的制作
1 設(shè)計(jì)目的
掌握文件系統(tǒng)的底層函數(shù)調(diào)用,并進(jìn)行實(shí)例開(kāi)發(fā)。
2 設(shè)計(jì)內(nèi)容
實(shí)現(xiàn)能夠生成一個(gè)文本文件,并能行編該文件的內(nèi)容和顯示該文件的內(nèi)容。 3 設(shè)計(jì)要求
1)通過(guò)文件系統(tǒng)的底層C 函數(shù)調(diào)用,創(chuàng)建文件,向文件中寫(xiě)入數(shù)據(jù),顯示文件的內(nèi)容;
2)假設(shè)文件行編工具叫myedit ,則功能具有:
A )帶參數(shù)(不存在的文件名):創(chuàng)建并編輯;
B )帶參數(shù)(已存在的文件名):顯示并提示編輯;
C )不帶參數(shù):創(chuàng)建,編輯,并提示保存;
4 設(shè)計(jì)裝置
無(wú)
5 設(shè)計(jì)步驟
1) 了解基礎(chǔ)知識(shí)。
2) 與同組同學(xué)一起討論出任務(wù)的分配方式。
3) 對(duì)自己的任務(wù)部分的代碼認(rèn)真分析調(diào)試。
4) 與同組同學(xué)討論得到的代碼及實(shí)驗(yàn)結(jié)果。
5) 撰寫(xiě)報(bào)告。
6 報(bào)告及要求
1) 設(shè)計(jì)題目
2) 同組同學(xué)任務(wù)的分配方式
3) 設(shè)計(jì)報(bào)告應(yīng)包含如下內(nèi)容:a )系統(tǒng)的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì) b) 你的編輯系統(tǒng)工作過(guò)程分析 c) 所有源程序清單。
4) 體會(huì)。