【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

基于嵌入式Linux系统的轻量级图形用户界面支持系统研究

放大字体  缩小字体 发布日期:2020-04-28 19:23:19    浏览次数:24
导读

  嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。他是以应用为中心,以计算机技术为基础,并且软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。  第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能

  嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。他是以应用为中心,以计算机技术为基础,并且软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。

  第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。

  第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。这一阶段的操作系统具有一定的兼容性和扩展性,但用户界面不够友好。

  第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。

  第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的线嵌入式操作系统的特点

  嵌入式系统有别于一般的计算机处理系统,他不具备像硬盘那样大容量的存储介质,而大多使用闪存(FlashMemory)作为存储介质。这就要求嵌入式操作系统只能运行在有限的内存中,不能使用虚拟内存,中断的使用也受到限制。因此,嵌入式操作系统必须结构紧凑,体积微小。

  大多数嵌入式系统都是实时系统,而且多是强实时多任务系统,要求相应的嵌入式操作系统也必须是实时操作系统(RTOS)。实时操作系统作为操作系统的一个重要分支已成为研究的一个热点,主要探讨实时多任务调度算法和可调度性、死锁解除等问题。

  提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿线嵌入式Linux

  嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。由一个Kernel(内核)及一些根据需要进行定制的系统模块组成。其Kernel很小,一般只有几百kB左右。即使加上其他必须的模块和应用程序,所需的存储空间也很小。他有多任务、多进程的系统特征,有些还具有实时性。一个小型的嵌入式Linux系统只需要引导程序、Linux微内核、初始化进程3个基本元素。运行嵌入式Linux的CPU可以是x86,Alpha,Sparc,MIPS,PPC等。与这些芯片搭配的主板都很小,与一张PCI卡大小相当,有的甚至更小。嵌入式Linux所需的存储器不是软磁盘、硬盘、Zip盘、CDROM,DVD这些众所周知的常规存储器,他使用Rom,CompactFlash,MSystems的DiskOnChip,Sony的MemoryStick,IBM的MicroDrive等体积极小与主板上的BIOS大小相近,存储容量不太大的存储器。他的内存可以使用普通的内存,也可以使用专用的RAM。与其他嵌入式操作系统相比,Linux的源代码是开放的,不存在黑箱技术。Linux作为一种可裁剪的软件平台系统,是发展未来嵌入式设备产品的最佳资源。

  计算机用户界面是指计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。计算机的发展史不仅是计算机本身处理速度和存储容量飞速提高的历史,也是计算用户界面不断改进的历史。用户界面的重要性在于他极大地影响了最终用户的使用,影响了计算机的推广应用,甚至影响了人们的工作和生活。由于开发用户界面的工作量极大,加上不同用户对界面的要求也不尽相同,因此,用户界面已成为计算机软件研制中最困难的部分之一。

  MiniGUI由原清华大学教师魏永明先生开发,是中国人做得较好的自由软件之一。MiniGUI是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。他主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系统上。MiniGUI同时也是国内最早出现的几个自由软件项目之一。

  (2)提供了完备的多窗口机制。包括多个单独线程中运行的多窗口;单个线程中主窗口的附属;对话框和预定义的控件类(按钮、单行和多行编辑框、列表框、进度条、工具栏等)。

  图形抽象层对顶层API基本没有影响,但大大方便了MiniGUI应用程序的移植、调试等工作。目前包含2个图形引擎,SVGALib和LibGGI,利用LibGGI时,可在XWindow上运行MiniGUI应用程序,并可非常方便地进行调试。与图形抽象层相关的还有输入事件的抽象层。

  从整体结构上看,MiniGUI是分层设计的,层次结构如图1所示。在最底层,GAL和IAL提供底层图形接口以及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是API,即编程接口。GAL和IAL为MiniGUI提供了底层的Linux控制台或者XWindow上的图形接口以及输入接口,而Pthread用于提供内核级线程支持的C函数库。

  MiniGUI本身运行在多线程模式下,他的许多模块都以单独的线程运行,同时,MiniGUI还利用线程来支持多窗口。从本质上讲,每个线程有一个消息队列,消息队列是实现线程数据交换和同步的关键数据结构。一个线程向消息队列中发送消息,而另一个线程从这个消息队列中获取消息,同一个线程中创建的窗口可共享同一个消息队列。

  多线程有一定的好处,但不方便的是不同的线程共享同一个地址空间,因此,客户线程可能会破坏系统服务器线程的数据,但有一个重要的优势是,由于共享地址空间,线程之间就没有额外的数据复制开销。由于MiniGUI是面向嵌入式或实时控制系统的,因此,这种应用环境下的应用程序往往具有单一的功能,从而使得采用多线程而非多进程模式实现图形界面有了一定的实际意义,也更加符合MiniGUI之“Mini”的特色。

  在多线程环境中,与多进程间的通讯机制类似,线程之间也有交互和同步的需求。比如,用来管理窗口的线程维持全局的窗口列表,而其他线程不能直接修改这些全局的数据结构,而必须依据“先来先服务”的原则,依次处理每个线程的请求,这就是一般性的C/S模式。MiniGUI利用线程之间的同步操作实现了客户线程和服务器线程之间的微C/S机制,之所以这样命名,是因为客户和服务器是同一进程中的不同线MiniGUI在雷达显示界面上的应用

  我们自主裁剪了Linux系统,并在此基础上安装了基于SVGALib图形引擎的MiniGUI轻量级图形用户界面支持系统,基于MiniGUI编写了图形用户界面雷达终端显示应用程序。

  MiniGUI是国人自行开发研制的适合嵌入式系统的轻量级图形用户界面支持系统,他采用WIN32体系架构,提供了完备的多窗口机制、对话框和预定义的控件类,消息传递机制等,大大地简化了开发人员的界面设计。

 
关键词: linux图片
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-184373.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4