基于嵌入式Linux的网络操作系统设计
杨丽萍1, 王自力2
(1. 长春大学计算机科学技术学院, 长春吉林, 130022
2. 吉林大学中日联谊医院信息中心, 长春吉林, 130012)
摘要: 本文对嵌入式Linux网络计算机的主要结构进行了分析,并给出了实现方法。主要设计和实现了网络计算机客户端操作系统和基于Linux的RDP客户端。在网络计算机客户端操作系统设计中,主要从嵌入式Linux分层的角度设计了网络计算机的操作系统,这种结构层次清晰,功能划分明确,而且容易实现;在基于Linux的RDP客户端研究中,主要分析了RDP协议,实现了RDP客户端的功能。
关键字:网络计算机; RDP客户端; 操作系统
The Design of the Embedding Linux Network Operation System
Yang Liping1, Wang Zili2
(1. School of Computer Science and Technology Changchun University, Changchun Jilin, 130022
2. The Hospital Information Center of Jilin University, Changchun Jilin, 130012) Abstract: It analyzes the main structure of network computer based on embedding Linux system, and introduces the implementation method. Mainly, the Linux RDP client and the network computer client operation system are designed and realized. It designs the network computer client operation system according to the embedding Linux layers, which is easy to be implemented. During the research on RDP client, it mainly analyzes the RDP protocol, and realizes the RDP client function.
Keywords: Network Computer; RDP Client; Operation System
中图分类号:TP399          文献标识码:A
1 引言
操作系统技术包含服务器和客户机操作系统两套技术,目前支持瘦客户机计算的服务器技术主要是VNC、Citrix Metaframe、Terminal Services、Rapid X和Tarantella,服务器操作系统要解决多用户、会话控制、状态表示等一系列技术难点。网络计算机设计中的一个主要工作就是瘦客户机操作系统的设计,在此我们把瘦客户端操作系统称为网络计算机操作系统。本文从Linux体系结构的角度给出网络计算机的Linux体系结构,这样更能方便表达设计和实现嵌入式Linux网络计算机操作系统的步骤。
2 操作系统体系结构
本操作系统体系结构如图1所示:
图1 网络计算机的嵌入式Linux体系结构
根据上面网络计算机的嵌入式Linux体系结构,下面给出了要设计的网络计算机操作系
统各部分的主要硬件和软件的选择。硬件系统:CPU(VTA C3 733MHzpro)、内存(64MB-512MB SDRAM)、显卡(sis300图形内核、32兆DDR帧缓存)、声卡(2声道)、网卡(10/100兆网卡、支持PXE启动)、显示器(CRT彩显)、PS/2接口的鼠标和键盘。硬件抽象层(HAL):显卡驱动、声卡驱动、存储设备驱动、网卡驱动等。Linux内核:Linux2.4.18。应用程序接口(API):Glibc2.4等。图形用户界面层:Xwindows4.2 IceWM。应用软件:媒体播放器Mp1aper、浏览器mozila、终端RDP/ICA/PXE等。
3 各部分具体实现策略
3.1 硬件层的实现
该层主要实现系统初始化部分和网络计算机硬件系统的驱动部分。
首先,在386的实模式下对已经调入内存的操作系统代码进行检查,通过BIOS中断获取内存容量信息,设置键盘反应速度,设置显示器的基本模式,获取硬撇信息,检测是否有PS/2鼠标等操作。然后,就准备让CPU进入保护模式了。要先屏蔽中断信号,再次设置32位启动代码的位置,调用操作系统指令1idt和1gdt被调用了,设置中断向量表(idt)和全局描述符表(gdt)。最后们对8259中断控制器进行编程,对防处理器进行复位。Setup.S设置保护模式的标志位,重新取指令以后,再用一条跳转指令,进入保护模式下的启动阶段,同时把控制权交给Head. S这段纯32位汇编代码。Head. S先做一些屏蔽中断的准备工作,然后,用一个默认的表项把所有的256个中断向量填满。这个默认表项指向一个特殊的Linux中断服务程。因为Linux系统初始化完成后,就不使用BIOS的中断服务程序。Linux有很完善的设备驱动程序使用机制,该机制使特定硬件设备的中断服务程序很容易被系统本身或用户直接调用,而且,调用时所需的参数通常都要比BIOS调用来得简单且高效。所以,BIOS 的中断向量在这里就被覆盖了。Head.S此后会检查CPU的类型,对协处理器进行检查,然后调用了Setup_paging这个子函数进行页初始化。到此,保护机制下内存管理,中断管理的框架已经建好了。最后,Head.S调用/init/main.c中的start_kernel函数,把控制权交内核。图2是NC(Network Computer)系统的整个引导过程。
linux内核设计与实现 pdf图2 NC系统初始化引导过程
Linux核心和设备驱动程序之间必须有一个以标准方式进行相互操作的接口。每一类设备驱动:字符设备、块设备及网络设备都提供通用接口,以便在需要时为核心提供服务。Linux 动态性很强。每次Linux核心启动时如果遇到不同的物理设备,需要不同的物理设备驱动程序。Linux允许通过配置脚本,在核心重建时将设备驱动包含在内。其他设备驱动可在必要时作为核心模块动态加载。
3.2 内核的实现
在系统需求确定的前提下,设计网络计算机嵌入式Linux操作系统的首要步骤是嵌入式Linux内核的设计。内核的选择主要是根据硬件系统处理器体系结构的不同,选择适当的Linux内核实现。构建Linux内核之前先要根据目标硬件平台的配置来修改内核选项。通常要进行的修改是选择合适的硬件支持,这些硬件主要是处理器、芯片组、网卡、声卡、显卡等设备;另外还需要设置的是文件系统、网络接口等系统软件选项的选择,去除不需要的功能模块。内核编译过程包括确定内核依赖关系、生成内核镜像、生成内核模块几个步骤。
内核是应用程序和硬件之间桥梁,在瘦客户机中,存储设备和内存是非常紧缺的资源,保持一个小的内核既可以增强整个系统的性能,又能够节省宝贵的存储空间。因此需要一个精简的内核支持瘦客户机,使得内核能够完备的支持瘦客户机的硬件设备,又没有冗余。
在完成了硬件HAL层的工作,将各种驱动源代码都获得并放到内核的指定位置后,就可以开始编译出自己想要的嵌入式Linux内核了。编译结束后得到内核文件大小为1M字节左右,这个大小对于网络计算机来说是可以接受的。
3.3 根文件系统的实现
设计好Linux内核后的工作是设计嵌入式Linux的根文件系统,Linux内核引导过程的最后一步工作就是挂接这个根文件系统。Linux根文件系统的组织结构沿袭Unix系统的传统结构。在设计嵌入式Linux的
根文件系统的时候,我们要做的工作依次是组织目录结构、开发应用程序、选择共享函数库、存储内核镜像和模块、选择设备文件、配置系统初始化过程和安装根文件系统。
瘦客户机通常使用Flash作为存储设备。引导程序、操作系统内核、文件系统都保存在Flash中。因此需要文件系统和Flash驱动程序来统一完成对Flash设备的读写。由于Flash 的容量小、成本高、以及使用寿命短的特点。
3.4 应用程序层(API)层实现
应用程序层主要有许多c函数库构成。在Linux中有很多函数库,满足各种各样的函数调用。我们用1dd命令检测出需要的函数库,然后根据系统存储空间(因为网络计算机嵌入式操作系统要求最后编译出来的内核大小不能太大)和网络计算机需要满足的应用需求,将用到的函数库放到API层,或用静态编译的方法将涉及该函数库的代码直接编译到应用中,从而使其不依赖该函数库。图3给出了我们用到的部分函数库。
图3 部分函数库
4 基于Linux的RDP客户端的设计与实现
NC系统的一大应用是连接Windows2000或Windows2003终端系统,使用Windows的资源,让用户感觉就像直接在使用windows2003一样。由于Windows终端协议经过了多次升级,到目前为止最新的是Rpd5.1协议,该协议提供了很多RDP5.1之前不具备的特性,如真彩、本地打印、本地视频等。为了给用户提供一个真实的Windows环境,使之具有多媒体等功能,需要研究RDP5.1,开发RDP5.1的客户端。
4.1 RDP程序模块
RDP客户端的设计主要分为两大模块,分别是RDP程序模块,客户端底层设计模块。RDP程序模块主要实现RDP协议;客户端底层设计模块通过定制和剪裁Linux系统,让RDP 程序与网络计算机硬件平台整合到一起,使RDP程序在网络计算机设备上可以运行。
RDP程序主要有RDP协议模块与GUI模块组成,它们之间保留了接口。RDP协议模块主要解析RDP防议,与平台无关;GUI模块主要负责图形显示和鼠标消息上传,与所选平台也没有关系。图4是RDP程序结构图。
图4 RDP程序结构
RDP程序执行后,首先从配置文件中读取服务器IP地址,本机IP地址等参数,然后连接服务器,服务器连接成功后,建立窗口,下载登陆界面,随后进入窗口消息循环,程序只处理鼠标、键盘消息,出理上传的RDP数据。根据RDP协议的层次结构将整个模块分为TCP层、ISO层、MCS层、SEC层、RDP层。分别有文件tcp.c、iso.c、mcs.c、sec.c、rdp.c 来实现。按功能划分,可以划分为RDP回话连接、数据传输与解析、RDP数据处理、数据的上传和本地打印。
4.2 客户端底层设计模块
RDP客户端模块由两个独立程序组成,Rdp1og负责用户界面和处理用户配置,mw为RdP客户端程序。在脚本rdp中循环调用这两个独立程序,使用户所见到的总是RDP客户端界面,可以从界面点击图标启动客户端程序。在启动脚本/etc/rc.d/rc.sysinit中直接启动rdp 脚本。启动流程如下图5所示。
图5 RDP启动流程图
本文作者创新点:本文从Linux体系结构的角度提出了网络计算机操作系统层次结构。根据提出的嵌入式Linux网络计算机操作系统层次结构,研究了基于嵌入式Linux网络计算机的
操作系统的实现方法。
参考文献:
[1].林涛.嵌入式操作系统 WindowsCE 的研究[J].微计算机信息,2006,6-2:91-93
[2].罗海勇等.龙芯-1号CPU的网络计算机硬件系统设计及实现[J].计算机工程, 2005, 7-2:66-67+70
[3].吴明晖.基于ARM的嵌入式系统开发与应用.人民邮电出版社  2004年6月
[4].张绮文等.ARM嵌入式常用模块与综合系统设计. 电子工业出版社  2007年1月
[5].姜波.Windows CE.Net 程序设计.机械工业出版  2007年1月
作者简介:
杨丽萍(1976- ), 女,汉族,出生于吉林省松原市,硕士研究生,讲师, 主要研究方向:计算机应用、人工智能与模式识别方面研究。
王自力(1966- ),男,汉族,吉林省长春市人,硕士研究生,主要研究方向:数据库与神经网络。Biography:
Yang Liping (1976- ), Female, Han Nationality, Born in Songyuan City Jilin Province, Master degree, Lecturer, Main Research Area: Computer application, artificial intelligence, and pattern recognition.
Wang Zili (1966- ), Male, Han Nationality, Born in Changchun Jilin Province, Master Degree, Main Research Area: Database, Neural network.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。