用EP9315构建基于嵌入式Linux的NAS系统平台(2)

NAS系统的软件设计

作为NAS设备最重要是存储,要实现这个功能,NAS设备需要具备几种功能:软件管理协调功能、网络功能、数据读取功能和设备驱动功能,所以其软件模块可以按照这几个功能来划分。整个系统中必须有一个核心操作系统,作为对硬件的管理、软件的协调执行,并对外部调用提供API。在核心操作系统之上是外部硬件设备的驱动模块,使硬件能正常地工作,为系统的正常运行提供基本条件。因为NAS是网络存储方案之一,所以要更多地考虑对网络和存储两方面功能的支持,在设备驱动模块之上是对一些基本网络协议(TCP/IP)的支持和对专用网络存储服务器进行网络数据访问的文件共享协议(如服务器消息块 (SMB))的支持。最上层的是应用模程序块,包括很多应用服务(如远程管理和用户验证等服务)。NAS系统软件架构如图2所示。

用EP9315构建基于嵌入式Linux的NAS系统平台

图2:NAS系统软件架构

下面从操作系统与设备驱动程序、网络协议支持、应用程序三个方面讨论NAS系统的软件设计:

1. 嵌入式Linux操作系统和设备驱动程序

嵌入式Linux是在标准的Linux基础上,经过适当的简化、裁剪,然后加入一些特定的功能,形成一个精巧的、高效的、满足特定应用需求的专用(定制)操作系统,它具有用户可裁剪、可配置的特点。NAS系统最重要的是存储,通过对Linux的裁剪,去掉许多通用的功能,使其成为一个专用于存储、精简、高效的操作系统。

进入Linux内核源代码目录,注意之前要打上Cirrus Logic的内核补丁文件,实现对EP9315的支持。当完成内核的配置后,需要编译Linux内核,生成可运行在嵌入式系统上的内核映像文件。之后制作根文件系统以支持系统与用户交互。通过不断的配置、编译,产生合适的嵌入式Linux内核,使之在功能和大小之间取得一个优化的结果,满足本系统的需要。在Linux中,将各种设备大致分为3种基本类型:字符设备、块设备及网络设备。

嵌入式系统的差异性决定了系统开发者不但需要进行特定硬件的设计,同时需要编写相关的设备驱动程序,它是内核用于完成对物理设备的控制操作的功能模块。除了CPU、内存以及其他很少的几个部分之外,所有的设备控制操作都必须由被控设备相关的代码,也就是驱动程序来完成。

2. 网络协议和共享支持设计

Windows和Linux平台之间的文件格式是完全不同的,Linux不能对Window用户直接提供基本服务。接口工具Samba从根本上消除了Windows与Linux之间的屏障。Samba是一套用于Linux和UNIX的软件,通过SMB协议提供文件和打印服务。

Samba的工作原理是让NetBIOS(Windows网络邻居的通讯协议)和SMB这两个协议运行于TCP/IP通信协议之上。其中最重要的就是SMB协议,这是一个用于不同计算机之间共享打印机、串行口和通讯抽象的协议,在所有的Microsoft Windows系列操作系统中被广为应用。NetBIOS是一个对话通信服务,它通过一种公共的方法为访问提供应用程序,并且对整个网络提供服务。它实际上为应用程序提供了一种公共的语言来进行通信。NetBIOS是一个针对如何访问数据的规范,并没有对两个应用程序之间的实际传输数据提供方法,它依靠更低一级的协议,比如TCP/IP,来提供实际的传输服务。

Samba专门使用TCP/IP协议来传输NetBIOS,在Samba程序中,SMB依赖NetBIOS进行名字解析,通过网络提供和获得资源。当运行Samba服务器时,Windows用户就可以登陆至你的Linux机器并且用你赋予它们的权限与UNIX文件系统进行双向的交流。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxygd.html