基于LINUX的嵌入式網(wǎng)絡存儲器設計
發(fā)布時間:2007/8/30 0:00:00 訪問次數(shù):1779
基于LINUX的嵌入式網(wǎng)絡存儲器設計
--------------------------------------------------------------------------------
摘要:
在簡要介紹網(wǎng)絡存儲器硬件原理的基礎上,詳細說明軟件平臺的構建,并對不同網(wǎng)絡、不同平臺之間實現(xiàn)文件存儲提出了相應的解決方法。
隨著現(xiàn)代信息社會的高速發(fā)展,各種類型的數(shù)據(jù)也呈幾何指數(shù)級地增長,如何更有效、更方便、更完全地存取管理這些數(shù)據(jù),成為人們關注的一個問題。新的網(wǎng)絡存儲技術的出現(xiàn),給了人們一個很好的解決方案。它把存儲設備直接連接到網(wǎng)絡上,作為一個瘦的網(wǎng)絡客戶終端設備給用戶提供網(wǎng)絡存儲服務,而且,Web技術的發(fā)展也為其方便、可靠的管理提供了技術保障。
1、硬件設計
硬件設計方框圖如圖1所示。
從圖1可看到,除CPU單元以外,網(wǎng)絡存儲器的實現(xiàn)主要包括兩個部分:I/O接口和存儲器接口。下面以CPU為中心,說明這兩個接口的主要功能。
①I/O接口。這里指CPU與Ethernet的接口(以太網(wǎng)接口)。它采用PCI的方式與以太網(wǎng)相連,是進入LAN(Local Area Network)的通道,在整個系統(tǒng)中負責發(fā)送或接收網(wǎng)絡上的數(shù)據(jù)包。
②存儲器接口。包括兩個方面:一是RAM接口,主要存儲數(shù)據(jù),采用PCI接口方式;二是Flash接口,主要存儲操作系統(tǒng)及應用軟件,采用并口形式與CPU相連。
③磁盤冗余陣列卡(RAID)接口。包括與CPU的接口和與磁盤陣列的接口。磁盤陣列主要用來存儲網(wǎng)絡用戶資料,CPU通過磁盤陣列卡對磁盤陣列進行管理操作,允許一定的冗余來保證用戶數(shù)據(jù)的安全。
2、軟件設計
在整個軟件設計中,應選擇一個合適的操作系統(tǒng)。整個操作系統(tǒng)要求體積比較小、網(wǎng)絡功能比較強、適于裁減、能被嵌入到Flash中,并且有網(wǎng)絡管理和磁盤管理功能。針對這些要求,我們選擇Linux操作系統(tǒng)作為軟件平臺,對其內核進行裁減,從而實現(xiàn)嵌入式網(wǎng)絡存儲器的功能。整個軟件實現(xiàn)可分為以下幾個部分。
2.1 Linux內核的裁減
(1)Linux內核簡介
Linux內核主要由五部分構成:進程調度、內存管理、虛擬文件系統(tǒng)、網(wǎng)絡接口以及進程間通信。進程調度負責控制進程對CPU的訪問,調度程序使用一種策略確保所有的進程都能公平地訪問CPU,并且確保內核在任意時刻能執(zhí)行必要的硬件操作。內存管理負責管理系統(tǒng)的物理內存,實現(xiàn)多進程安全地共享計算機的內存;另外內存管理支持虛擬內存,使進程可以使用大于實際物理內存的內存地址空間,不用的內存址空間被導出到文件系統(tǒng)中,并在需要使用時再導回到物理內存中。虛擬文件系統(tǒng)通過將各種設備抽象為一種公共接口,屏蔽了各種硬件設備的細節(jié)。網(wǎng)絡接口實現(xiàn)了對各種網(wǎng)絡標準網(wǎng)絡硬件的訪問。進程間通信子系統(tǒng)實現(xiàn)了系統(tǒng)內進程間的多種通信機制。
(2)Linux內核的配置
Linux系統(tǒng)的內核采用單塊結構,可以動態(tài)地加載和卸載模塊。系統(tǒng)利用內核模塊的可動態(tài)裝載和卸載功能,可靈活地在內核中添加新的組件或卸載不再需要的內核組件。因此在具體實現(xiàn)過程中,可以針對要實現(xiàn)的功能對其內核進行裁減,以縮小體積。根據(jù)網(wǎng)絡存儲器的硬件實現(xiàn)框圖可以知道,整個系統(tǒng)的硬件接口只包括PCI和IDE兩種接口。在對Linux內核進行配置時,可把Floppy、SMP、MTRR、SCSI及所有的Block Device和Character Device移除,只留下old IDE Device、PCI。另外,文件系統(tǒng)在內核中占了相當大的比例,VFS簡化了檔案系統(tǒng)的設計,Buffer cache、Directory cache增加了系統(tǒng)的效率;但這些對嵌入式系統(tǒng)用處不大,可以移除,內核會減小20KB左右,或者跳過整個VFS,直接將文件系統(tǒng)寫成一個Driver的形式,這樣文件系統(tǒng)可由230KB縮減至50KB左右。在配置Linux內核時,網(wǎng)絡協(xié)議的支持是必不可少的,F(xiàn)在,大多數(shù)網(wǎng)絡都是以TCP/IP協(xié)議為基礎的,并且一般的工作站所選用的操作系統(tǒng)為Windows或Linux系統(tǒng),因此,要實現(xiàn)其網(wǎng)絡功能,并能夠在不同平臺下實現(xiàn)文件共享,應該選擇對TCP/IP協(xié)議、NFS以及Samba協(xié)議的支持。
2.2 不同平臺下文件共享的實現(xiàn)
現(xiàn)代PC機中廣為流行的操作系統(tǒng)有兩種:Windows和Linux。這兩種操作系統(tǒng)是依賴于完全不同的技術來提供網(wǎng)絡服務的:Linux操作系統(tǒng)是以傳輸控制協(xié)議/網(wǎng)絡協(xié)議(TCP/IP)、網(wǎng)絡文件系統(tǒng)(NFS)以及網(wǎng)絡信息服務(NIS)為基礎,提供網(wǎng)絡服務的;而Microsoft則依賴于NetBIOS和服務信息塊(SMB)來提供把數(shù)據(jù)從服務器傳輸至客戶機的服務。因此,我們選用Samba工具來實現(xiàn)這兩種不同平臺下的文件共享。
(1)Samba簡介
Samba從根本上消除了Windows與Linux之間的屏障,可以提供以下4個方面的服務:共享資源和打印機、名字解析、瀏覽、用戶身份認證。通過讓NetBIOS(Windows網(wǎng)絡鄰居的通信協(xié)議)和SMB(Server Messege Block)兩個協(xié)議運行
基于LINUX的嵌入式網(wǎng)絡存儲器設計
--------------------------------------------------------------------------------
摘要:
在簡要介紹網(wǎng)絡存儲器硬件原理的基礎上,詳細說明軟件平臺的構建,并對不同網(wǎng)絡、不同平臺之間實現(xiàn)文件存儲提出了相應的解決方法。
隨著現(xiàn)代信息社會的高速發(fā)展,各種類型的數(shù)據(jù)也呈幾何指數(shù)級地增長,如何更有效、更方便、更完全地存取管理這些數(shù)據(jù),成為人們關注的一個問題。新的網(wǎng)絡存儲技術的出現(xiàn),給了人們一個很好的解決方案。它把存儲設備直接連接到網(wǎng)絡上,作為一個瘦的網(wǎng)絡客戶終端設備給用戶提供網(wǎng)絡存儲服務,而且,Web技術的發(fā)展也為其方便、可靠的管理提供了技術保障。
1、硬件設計
硬件設計方框圖如圖1所示。
從圖1可看到,除CPU單元以外,網(wǎng)絡存儲器的實現(xiàn)主要包括兩個部分:I/O接口和存儲器接口。下面以CPU為中心,說明這兩個接口的主要功能。
①I/O接口。這里指CPU與Ethernet的接口(以太網(wǎng)接口)。它采用PCI的方式與以太網(wǎng)相連,是進入LAN(Local Area Network)的通道,在整個系統(tǒng)中負責發(fā)送或接收網(wǎng)絡上的數(shù)據(jù)包。
②存儲器接口。包括兩個方面:一是RAM接口,主要存儲數(shù)據(jù),采用PCI接口方式;二是Flash接口,主要存儲操作系統(tǒng)及應用軟件,采用并口形式與CPU相連。
③磁盤冗余陣列卡(RAID)接口。包括與CPU的接口和與磁盤陣列的接口。磁盤陣列主要用來存儲網(wǎng)絡用戶資料,CPU通過磁盤陣列卡對磁盤陣列進行管理操作,允許一定的冗余來保證用戶數(shù)據(jù)的安全。
2、軟件設計
在整個軟件設計中,應選擇一個合適的操作系統(tǒng)。整個操作系統(tǒng)要求體積比較小、網(wǎng)絡功能比較強、適于裁減、能被嵌入到Flash中,并且有網(wǎng)絡管理和磁盤管理功能。針對這些要求,我們選擇Linux操作系統(tǒng)作為軟件平臺,對其內核進行裁減,從而實現(xiàn)嵌入式網(wǎng)絡存儲器的功能。整個軟件實現(xiàn)可分為以下幾個部分。
2.1 Linux內核的裁減
(1)Linux內核簡介
Linux內核主要由五部分構成:進程調度、內存管理、虛擬文件系統(tǒng)、網(wǎng)絡接口以及進程間通信。進程調度負責控制進程對CPU的訪問,調度程序使用一種策略確保所有的進程都能公平地訪問CPU,并且確保內核在任意時刻能執(zhí)行必要的硬件操作。內存管理負責管理系統(tǒng)的物理內存,實現(xiàn)多進程安全地共享計算機的內存;另外內存管理支持虛擬內存,使進程可以使用大于實際物理內存的內存地址空間,不用的內存址空間被導出到文件系統(tǒng)中,并在需要使用時再導回到物理內存中。虛擬文件系統(tǒng)通過將各種設備抽象為一種公共接口,屏蔽了各種硬件設備的細節(jié)。網(wǎng)絡接口實現(xiàn)了對各種網(wǎng)絡標準網(wǎng)絡硬件的訪問。進程間通信子系統(tǒng)實現(xiàn)了系統(tǒng)內進程間的多種通信機制。
(2)Linux內核的配置
Linux系統(tǒng)的內核采用單塊結構,可以動態(tài)地加載和卸載模塊。系統(tǒng)利用內核模塊的可動態(tài)裝載和卸載功能,可靈活地在內核中添加新的組件或卸載不再需要的內核組件。因此在具體實現(xiàn)過程中,可以針對要實現(xiàn)的功能對其內核進行裁減,以縮小體積。根據(jù)網(wǎng)絡存儲器的硬件實現(xiàn)框圖可以知道,整個系統(tǒng)的硬件接口只包括PCI和IDE兩種接口。在對Linux內核進行配置時,可把Floppy、SMP、MTRR、SCSI及所有的Block Device和Character Device移除,只留下old IDE Device、PCI。另外,文件系統(tǒng)在內核中占了相當大的比例,VFS簡化了檔案系統(tǒng)的設計,Buffer cache、Directory cache增加了系統(tǒng)的效率;但這些對嵌入式系統(tǒng)用處不大,可以移除,內核會減小20KB左右,或者跳過整個VFS,直接將文件系統(tǒng)寫成一個Driver的形式,這樣文件系統(tǒng)可由230KB縮減至50KB左右。在配置Linux內核時,網(wǎng)絡協(xié)議的支持是必不可少的,F(xiàn)在,大多數(shù)網(wǎng)絡都是以TCP/IP協(xié)議為基礎的,并且一般的工作站所選用的操作系統(tǒng)為Windows或Linux系統(tǒng),因此,要實現(xiàn)其網(wǎng)絡功能,并能夠在不同平臺下實現(xiàn)文件共享,應該選擇對TCP/IP協(xié)議、NFS以及Samba協(xié)議的支持。
2.2 不同平臺下文件共享的實現(xiàn)
現(xiàn)代PC機中廣為流行的操作系統(tǒng)有兩種:Windows和Linux。這兩種操作系統(tǒng)是依賴于完全不同的技術來提供網(wǎng)絡服務的:Linux操作系統(tǒng)是以傳輸控制協(xié)議/網(wǎng)絡協(xié)議(TCP/IP)、網(wǎng)絡文件系統(tǒng)(NFS)以及網(wǎng)絡信息服務(NIS)為基礎,提供網(wǎng)絡服務的;而Microsoft則依賴于NetBIOS和服務信息塊(SMB)來提供把數(shù)據(jù)從服務器傳輸至客戶機的服務。因此,我們選用Samba工具來實現(xiàn)這兩種不同平臺下的文件共享。
(1)Samba簡介
Samba從根本上消除了Windows與Linux之間的屏障,可以提供以下4個方面的服務:共享資源和打印機、名字解析、瀏覽、用戶身份認證。通過讓NetBIOS(Windows網(wǎng)絡鄰居的通信協(xié)議)和SMB(Server Messege Block)兩個協(xié)議運行
熱門點擊
- GIPS基于服務器的轉碼及抖動消除方案
- Philips高端移動設備用Nexperia
- Philips推出速度最快的ARM9處理器
- 基于LINUX的嵌入式網(wǎng)絡存儲器設計
- ARM發(fā)布首個無時鐘的ARM9處理器
推薦技術資料
- 自制智能型ICL7135
- 表頭使ff11CL7135作為ADC,ICL7135是... [詳細]