Linux網(wǎng)絡(luò)存儲(chǔ)器的設(shè)計(jì)
(2)Linux內(nèi)核的配置
Linux系統(tǒng)的內(nèi)核采用單塊結(jié)構(gòu),可以動(dòng)態(tài)地加載和卸載模塊。系統(tǒng)利用內(nèi)核模塊的可動(dòng)態(tài)裝載和卸載功能,可靈活地在內(nèi)核中添加新的組件或卸載不再需要的內(nèi)核組件。因此在具體實(shí)現(xiàn)過程中,可以針對(duì)要實(shí)現(xiàn)的功能對(duì)其內(nèi)核進(jìn)行裁減,以縮小體積。根據(jù)網(wǎng)絡(luò)存儲(chǔ)器的硬件實(shí)現(xiàn)框圖可以知道,整個(gè)系統(tǒng)的硬件接口只包括PCI和IDE兩種接口。在對(duì)Linux內(nèi)核進(jìn)行配置時(shí),可把Floppy、SMP、MTRR、SCSI及所有的Block Device和Character Device移除,只留下old IDE Device、PCI。另外,文件系統(tǒng)在內(nèi)核中占了相當(dāng)大的比例,VFS簡(jiǎn)化了檔案系統(tǒng)的設(shè)計(jì),Buffer cache、Directory cache增加了系統(tǒng)的效率;但這些對(duì)嵌入式系統(tǒng)用處不大,可以移除,內(nèi)核會(huì)減小20KB左右,或者跳過整個(gè)VFS,直接將文件系統(tǒng)寫成一個(gè)Driver的形式,這樣文件系統(tǒng)可由230KB縮減至50KB左右。在配置Linux內(nèi)核時(shí),網(wǎng)絡(luò)協(xié)議的支持是必不可少的?,F(xiàn)在,大多數(shù)網(wǎng)絡(luò)都是以TCP/IP協(xié)議為基礎(chǔ)的,并且一般的工作站所選用的操作系統(tǒng)為Windows或Linux系統(tǒng),因此,要實(shí)現(xiàn)其網(wǎng)絡(luò)功能,并能夠在不同平臺(tái)下實(shí)現(xiàn)文件共享,應(yīng)該選擇對(duì)TCP/IP協(xié)議、NFS以及Samba協(xié)議的支持。
2.2 不同平臺(tái)下文件共享的實(shí)現(xiàn)
現(xiàn)代PC機(jī)中廣為流行的操作系統(tǒng)有兩種:Windows和Linux。這兩種操作系統(tǒng)是依賴于完全不同的技術(shù)來提供網(wǎng)絡(luò)服務(wù)的:Linux操作系統(tǒng)是以傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議(TCP/IP)、網(wǎng)絡(luò)文件系統(tǒng)(NFS)以及網(wǎng)絡(luò)信息服務(wù)(NIS)為基礎(chǔ),提供網(wǎng)絡(luò)服務(wù)的;而Microsoft則依賴于NetBIOS和服務(wù)信息塊(SMB)來提供把數(shù)據(jù)從服務(wù)器傳輸至客戶機(jī)的服務(wù)。因此,我們選用Samba工具來實(shí)現(xiàn)這兩種不同平臺(tái)下的文件共享。
(1)Samba簡(jiǎn)介
Samba從根本上消除了Windows與Linux之間的屏障,可以提供以下4個(gè)方面的服務(wù):共享資源和打印機(jī)、名字解析、瀏覽、用戶身份認(rèn)證。通過讓NetBIOS(Windows網(wǎng)絡(luò)鄰居的通信協(xié)議)和SMB(Server Messege Block)兩個(gè)協(xié)議運(yùn)行于TCP/IP
通信協(xié)議之上實(shí)現(xiàn)文件共享,并且使用NetBEUI協(xié)議,可以讓W(xué)indows通過網(wǎng)絡(luò)鄰居看到Linux服務(wù)器。
?、貼etBIOS協(xié)議:NetBIOS是一個(gè)對(duì)話層通信服務(wù),通過一種公共的方法為訪問提供應(yīng)用程序,并且對(duì)整個(gè)網(wǎng)絡(luò)提供服務(wù)。它是一個(gè)針對(duì)如何訪問數(shù)據(jù)的規(guī)范,依靠更低一級(jí)的協(xié)議,如NetBEUI或TCP/IP等,提供實(shí)際傳輸服務(wù)的。NetBIOS規(guī)范把協(xié)議分成三種服務(wù):名字服務(wù)、對(duì)話服務(wù)、數(shù)據(jù)報(bào)服務(wù)。名字服務(wù)主要校驗(yàn)該NetBIOS名字是唯一的,刪除不再需要的NetBIOS名字,在NetBIOS名字基礎(chǔ)上確定服務(wù)器的網(wǎng)絡(luò)地址;對(duì)話服務(wù)在兩個(gè)應(yīng)用程序之間,提供橫跨NetBIOS網(wǎng)絡(luò)的實(shí)現(xiàn)通信通道;數(shù)據(jù)報(bào)服務(wù)提供廣播信息或在應(yīng)用程序之間發(fā)送信息而無需應(yīng)答。由于NetBIOS和TCP/IP在主機(jī)命名方面使用的是完全不同的系統(tǒng),前者以字符為基礎(chǔ),后者以數(shù)據(jù)為基礎(chǔ),所以必須把每個(gè)NetBIOS名字與IP地址進(jìn)行匹配。
Samba使用TCP/IP協(xié)議來傳輸NetBIOS,把NetBIOS名字解析或IP地址,通常通過三種匹配方式:第一種是把每個(gè)對(duì)IP地址的請(qǐng)求廣播到節(jié)點(diǎn)名字解析的原始NetBIOS,依賴于每個(gè)客戶機(jī)和服務(wù)器,通過網(wǎng)絡(luò)去尋找對(duì)方;第二種使用本地文件,并加載進(jìn)入高速緩沖存儲(chǔ)器,以便每個(gè)客戶機(jī)可以了解哪個(gè)名字解析成哪個(gè)IP地址;第三種使用NetBIOS名字服務(wù)(NBNS),一個(gè)NBNS是一個(gè)中央主機(jī),它為一個(gè)工作組存儲(chǔ)NetBIOS名字以及與其相對(duì)應(yīng)的IP地址列表,因此,每個(gè)工作組上的NetBIOS節(jié)點(diǎn)都可以向NBNS請(qǐng)求為它們把名字解析成IP地址。
?、赟MB協(xié)議:SMB協(xié)議是一個(gè)通過網(wǎng)絡(luò)提供并獲得資源的協(xié)議,依賴于NetBIOS進(jìn)行名字解析,為網(wǎng)絡(luò)上使用資源提供一個(gè)標(biāo)準(zhǔn)的接口。SMB協(xié)議對(duì)服務(wù)器定義了兩種安全模式:共享級(jí)和用戶級(jí)。共享級(jí)服務(wù)器在硬盤設(shè)備上建立了一些可被訪問的目錄,用戶需要一個(gè)密碼來獲得訪問權(quán)。因此,網(wǎng)絡(luò)上的任何用戶只要知道服務(wù)器的名字、資源的名字以及密碼就可以訪問資源了。共享級(jí)服務(wù)器通過對(duì)同一個(gè)資源設(shè)定不同的密碼,控制用戶的訪問權(quán)限。用戶級(jí)服務(wù)器在硬盤設(shè)備上建立可被訪問的目錄,需要用戶提供用戶名及相應(yīng)的密碼來獲得訪問權(quán)。NT服務(wù)器和LM/U服務(wù)器采用這種方式而不支持共享級(jí)訪問。相對(duì)共享級(jí)模式,用戶級(jí)更容易管理用戶。
(2)Samba的配置
一個(gè)Samba服務(wù)器實(shí)際包含了兩個(gè)服務(wù)器程序:smbd和nmbd。Smbd是Samba的核心,負(fù)責(zé)建立對(duì)話進(jìn)程、驗(yàn)證用戶身份、提供對(duì)文件系統(tǒng)和打印機(jī)的訪問機(jī)掉;nmbd實(shí)際網(wǎng)絡(luò)瀏覽服務(wù)器的功能,作用是對(duì)外發(fā)布Samba服務(wù)器可以提供的服務(wù)。Nmbd可以使Samba服務(wù)器出現(xiàn)在Windows95或WindowsNT的“Network Neighborhood”(網(wǎng)絡(luò)鄰居)中,并且客戶機(jī)可瀏覽到Samba服務(wù)器所共享的資源。啟動(dòng)Samba服務(wù)器進(jìn)程時(shí),可以完全不運(yùn)行nmbd,這樣客戶只能看到Samba服務(wù)器的NetBIOS名字,卻看不到Samba服務(wù)器所提供的服務(wù)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論