![](http://img4.cpooo.com/files/201905/30/p/45/1207632_1559186305.jpg)
51402083-400
霍尼韦尔51402083-400霍尼韦尔51402083-400霍尼韦尔51402083-400-------------------------------------------------------------------------------------------------------------------3.1.2嵌入式Linux的移植由于嵌入式设备没有足够的内存和存储资源来完成编译过程,通常的方法是在主机上完成针对目标机的代码编译。这样的工具就是交叉编译工具,交叉编译工具集有专门的网站可以下载,并下载针对不同ARM处理器的Linux内核移植补丁。本系统采用Linux2.4.21的内核,采用的交叉编译工具集合为cross2.95.3。嵌入式Linux是在标准的Linux基础上,经过适当的简化、裁剪,加入一些特定的功能,形成一个精巧、高效、满足特定应用需求的专用(定制)操作系统。它具有用户可裁剪、可配置的特点。NAS系统最重要的是存储,通过对Linux的裁剪,去掉许多通用的功能,使其成为一个专用于存储、精简、高效的操作系统。CirrusLogic公司已为内核写好了针对EP9315微处理器的补丁,加上这个补丁的内核就是一个能运行在基于EP9315微处理器系统上的版本,接下来就可以在此基础上进行内核的配置与编译。通过不断的配置、编译,产生合适的嵌入式Linux内核,使之在功能和大小之间取得优化的结果,以满足本系统的需要。3.2Linux设备驱动程序开发嵌入式系统的差异性决定了系统开发者不但需要进行特定硬件的设计,同时需要编写相关的设备驱动程序,它是内核用于完成对物理设备的控制操作的功能模块。除了CPU、内存以及其他很少的几个部分之外,所有的设备控制操作都必须由被控设备相关的代码,也就是驱动程序来完成[5]。在Linux中,将各种设备大致分为3种基本类型:字符设备、块设备及网络设备。其中,字符设备是指采用字符流方式访问的设备,如字符终端、串口。对应的字符设备驱动的接口是标准的文件系统调用接口。块设备是采用数据块方式访问的设备,如IDE硬盘等。由于块设备通常都提供文件系统支持,因此常用的设备访问方式是通过文件来进行的。字符设备和块设备在Linux中都被看成是一种特殊的文件,称为“设备文件”。由于每个设备都至少由文件系统中的一个文件来代表,这样的设备文件在系统中就唯一确定了对应的设备。网络设备是采用数据包传输方式访问的设备。与前两者不同,Linux采用的方法是给它们分配一个唯一的名字(比如eth0);同时,内核和网络设备驱动间的通信采用了一套与数据包传输相关的函数,如最常见的套接字(socket)接口。网络设备通过ifconfig系统调用来创建和配置。其他的还有一些驱动程序不属于以上3类,比如USB等总线驱动。它们一般是作为内核提供的公共服务,和其他驱动联合起来使用。3.3文件共享协议由于NAS服务器采用Linux操作系统,客户机PC一般都是Windows系统,而Windows和Linux平台之间的文件格式是完全不同的,因此Linux不能对Windows用户直接提供基本服务。本系统通过应用SMB协议实现这种功能[6]。Samba是一套使用SMB(ServerMessageBlock)协议的应用程序,通过支持这个协议,Samba允许Linux服务器与WindowsPC机之间进行通信。本系统采用的Samba的版本为samba3.0.20b。在开发过程中,需要在Linux服务器上进行所有的软件开发。本系统通过建立网络文件系统(NetworkFileSystem,NFS),把Linux服务器上的特定分区共享到目标系统上,实现在目标系统上操作Linux服务器和在线对程序进行调试和修改。3.4NAS系统应用程序设计NAS设备本身一般没有显示器、键盘、鼠标等这些与交互的外设,那么通过什么途径使系统管理员完成对这样一个“黑箱”的配置和管理呢?NAS系统应用程序的设计主要就是要实现对“黑箱”的配置和管理。基于Web(Webbased)的管理是目前在NAS系统管理中用得最多、最方便的方式之一。本系统实现的功能如下:①硬盘管理。系统可挂载IDE、USB硬盘,支持VFAT/EXT2/EXT3文件系统,每个分区能有独立的文件系统。②用户和组管理。支持用户和组的增加、修改、删除。一个用户可以是几个不同组的成员。③网络配置。局域网中如果有DHCP服务器就无需设置IP地址,否则,通过超级终端,在串口控制命令行设置IP、DNS等。④系统时间设置。系统时间可以手动设置,也可以通过NTP服务自动同步。⑤网络共享管理。包括共享名设置、属性、共享路径、有效用户设置,是否可写操作等。本项目基于EP9315实现了一个基本的NAS系统,加以完善就可以作为中小型用户的存储系统方案。通过本项目,便于开发者对ARM9微处理器和嵌入式开发作更深入的实践研究,推广了ARM微处理器更广泛的应用。P0913YLP0913YNP0913YPP0913YRP0913YSP0913YUP0913YVP0913YXP0913ZBP0913ZDP0913ZEP0913ZGP0913ZRP0913ZSP0913ZTP0913ZVP0913ZWP0913ZXP0913ZYP0913ZZP0914AKP0914ANP0914ARP0914AUP0914AXP0914BAP0914BFP0914BQP0914BTP0914BUP0914BXP0914CBP0914CCP0914CDP0914CEP0914EHP0914EMP0914FPP0914FQP0914FUP0914FYP0914GBP0914GCP0914GEP0914GFP0914GYP0914HBP0914HEP0914HHP0914HLP0914HMP0914HNP0914HPP0914HQP0914HRP0914HSP0914HTP0914HUP0914HVP0914HWP0914HXP0914HYP0914HZP0914JDP0914JEP0914JFP0914KPP0914KQP0914KRP0914KXP0914LBP0914LKP0914LLP0914LMP0914LNP0914LVP0914LYP0914LZP0914MAP0914MBP0914MCP0914MDP0914NAP0914NBP0914NTP0914NUP0914NVP0914PDP0914PEP0914PFP0914PGP0914PHP0914PSP0914QBP0914QCP0914QGP0914QKP0914QNP0914QRP0914QUP0914QXP0914RAP0914RDP0914RGP0914RKP0914RNP0914RRP0914RUP0914RXP0914RYP0914SAP0914SDP0914SGP0914SKP0914SNP0914SQP0914STP0914SVP0914SYP0914TBP0914TDP0914TGP0914TKP0914TNP0914TRP0914TYP0914TZP0914UAP0914UHP0914UJP0914UKP0914ULP0914VBP0914VCP0914VDP0914VVP0914WGP0914WHP0914WKP0914WMP0914WPP0914WVP0914XAP0914XBP0914XGP0914XLP0914XNP0914XQP0914XSP0914YMP0914YZP0914ZMP0914ZXP0915CCP0915CDP0915CJP0915CMP0915CQP0915DXP0915FBP0915FCP0915FUP0915FVP0915FWP0915FXP0915GCP0915GFP0915GJP0915HDP0915HEP0915HMP0915HQP0915HRP0915HSP0915HTP0915HUP0915HVP0915HWP0915HXP0915HYP0915JDP0915JFP0915JHP0915JKP0915JMP0915JPP0915JSP0915JUP0915JWP0915JYP0915KAP0915KCP0915KEP0915KGP0915KJP0915KLP0915KNP0915KQP0915KSP0915KUP0915KWP0915KYP0915LAP0915LCP0915LEP0915LGP0915LJP0915LLP0915LNP0915LQP0915LSP0915LUP0915LWP0915LYP0915MAP0915MCP0915MEP0915MGP0915MJP0915MLP0915MNP0915MQP0915MSP0915MUP0915MWP0915MYP0915NAP0915NCP0915NEP0915NGP0915NJP0915NLP0915NNP0915NQP0915NSP0915NUP0915NWP0915NYP0915PAP0915PCP0915PEP0915PGP0915PJP0915PLP0915PNP0915QFP0915QKP0915QLP0915RHP0915RJP0915RKP0915RMP0915RNP0915RPP0915RQP0915SAP0915SBP0915SCP0915SDP0915SFP0915SGP0915SHP0915SJP0915SKP0915SLP0915SMP0915SNP0915SQP0915SRP0915TAP0915TXP0915TYP0915TZP0915UAP0915UBP0915UEP0915UFP0915VEP0915VFP0915VGP0915VHP0915VKP0915VLP0915VRP0915VYP0915WAP0915WDP0915WGP0915WHP0915WKP0915WNP0915WRP0915XQP0915XRP0915XSP0915XWP0915XXP0915XYP0915YCP0915ZAP0915ZCP0915ZDP0915ZFP0915ZTP0916AAP0916ABP0916ACP0916ADP0916AEP0916AFP0916AGP0916AHP0916AJP0916AKP0916ALP0916AMP0916ANP0916APP0916AQP0916ARP0916ASP0916ATP0916AWP0916AXP0916BAP0916BTP0916BUP0916BVP0916BWP0916BXP0916CAP0916CBP0916CCP0916CPP0916CQP0916DAP0916DBP0916DCP0916DDP0916DEP0916DFP0916DGP0916DHP0916DJP0916DUP0916DVP0916DWP0916DXP0916DYP0916DZP0916EAP0916EBP0916ECP0916ENP0916EPP0916EQP0916ERP0916ESP0916ETP0916EUP0916EVP0916EWP0916FGP0916FHP0916FJP0916FKP0916FLP0916FMP0916FNP0916FPP0916FQP0916GEP0916GFP0916GGP0916GHP0916GJP0916GUP0916GVP0916GWP0916GXP0916GYP0916GZP0916JMP0916JNP0916JPP0916JQP0916JRP0916JSP0916JTP0916JVP0916JWP0916JX)