面向实时嵌入式系统的图形界面支持系统
嵌入式 Linux 系统的 GUI 发展概况 1.1 GUI 在嵌入式或实时系统中的地位 在常见的 PDA 等小型手持式设备上,由于硬件条件等的限制,我们看到的用户界面都非常简单,几乎看不到我们在 PC 机看到的华丽美观的 GUI 支持。但最近出现的 Palm 等手持式电脑或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的图形用户界面支持。随着手持式设备的硬件条件的提高,我们估计嵌入式系统对轻量级 GUI 的需求会越来越迫切。 近来的市场需求显示,越来越多的嵌入式系统,包括...
GCC编译流程及中间RTL的探索
1. GCC 简介 编译器的工作是将源代码(通常使用高级语言编写)翻译成目标代码(通常是低级的目标代码或者机器语言),在现代编译器的实现中,这个工作一般是分为两个阶段来实现的: 第一阶段,编译器的前端接受输入的源代码,经过词法、语法和语义分析等等得到源程序的某种中间表示方式。 第二阶段,编译器的后端将前端处理生成的中间表示方式进行一些优化,并最终生成在目标机器上可运行的代码。 GCC(GNU Compiler Collection) 是在 UNIX 以及类 UNIX 平台上广泛使用的编译器集合,它能够支持...
MiniGUI体系结构—多窗口管理和控件类
1 引言 在任何一个足够复杂的 GUI 系统中,处理窗口之间的互相剪切是其首要解决的问题。因为多窗口系统首先要确保一个窗口中的绘制输出不会影响到另外一个窗口。为此,GUI 系统一般要利用 Z 序来管理窗口之间的互相剪切关系。根据窗口在 Z 序中所处的位置,GUI 系统要计算每个窗口受剪切的区域,即剪切域。通常,窗口的剪切域定义为互不相交的矩形集合。GUI 系统的底层图形引擎在进行输出时,要根据当前输出的剪切域进行输出的剪切操作。从而保证窗口的绘制输出不会互相影响。因为任何一个窗口的创建、销毁、隐藏、显示均...
MiniGUILite版本的新改进深入分析
1 引言:为什么要开发Lite版本 现在,大多数UNIX系统采用X 窗口系统作为图形用户界面,MS Windows 则采用 Microsoft公司自己设计的GUI系统。这两种GUI系统也代表着目前通用GUI系统的两种实现。比如,著名的自由软件MicroWindows就同时实现了类似于MS Windows的MicroWindows API 和类似于X Window的NanoX API。 MiniGUI 原来就采用了类似于MS Windows的体系结构,并且建立了基于线程的消息传递和窗口管理机制。然而,它是基...
Linux2.4目录项缓存dcache机制的实现
Linux用数据结构dentry来描述fs中与某个文件索引节点相链接的一个目录项(可以是文件,也可以是目录)。 每个dentry对象都属于下列几种状态之一: (1)未使用(unused)状态:该dentry对象的引用计数d_count的值为0,但其d_inode指针仍然指向相关的的索引节点。该目录项仍然包含有效的信息,只是当前没有人引用他。这种dentry对象在回收内存时可能会被释放。 (2)正在使用(inuse)状态:处于该状态下的dentry对象的引用计数d_count大于0,且其d_inode指向相...
红帽子6.0中使用TrueType字体
首先声明我不是这方面的专家;我压根儿不知道PostScript和TrueType字体之间的差异;现在我甚至不想知道。我希望的只是东西能运作。对那些细节,我要操心的还多的很。但当知道这些细节对一个过程或项目的成功很重要时,我的看法立刻变了。 开始着手 在按照kegel.com的文档操作后,天,我竟看不出我的字体在Netscape(4.61)与StarOffice 5.1中有什么差别。怎么了?我想。在浪费了许多时间与不停的诅咒后,我最终决定转向RTFM。但没用。如果你已知道xfs如何工作,那么xfs手册页当然...
如何使LINUX系统中对光驱、软驱实现自动挂载
实现方法: 1. 安装完Redhat Linux 6.0之后,运行ntsysv,选中服务后台程序autofs.autofs的两个配置文件在/etc/auto.misc 和 /etc/auto.master 2. /etc/auto.master定义了mount目录和mount所需的配置文件名及其空闲时自动umount的时间。 下面是默认配置。 [jephe@sh3 /etc]$ more auto.master /misc /etc/auto.misc --timeout 60 3. 下面是我的/etc...
全力打造Make程式和重新编译核心技术
Make通常用来维护程式,使可执行档的内容保持和原始程式的一致性,因其依循唯有变动才需重新编译连结的方式,由各档之间的「依存关系」自动去编译连结,如此可省下了宝贵的时间和系统资源。在Linux中最普遍的例子应是核心(kernel)的重 编,当读者把gcc等程式和核心原始程式安装完後(Slackware中为D套件,SLS中为C和 S套件),便可依实际情况去更新或置换核心的内容。核心是由许多不同的部份所组成 ,如行程的管理、档案系统的支援、周边配备的驱动程式、网路通讯的协定等,当组 成的部分有所更新或是不需要...
嵌入式系统数据同步协议——SyncML简介
1 SyncML协议简述 ??目前,移动计算和通信设备的流行很大部分原因是因为它们具有一些方便的功能,比如说在需要时可以发送信息给其他用户,用户希望随时随地都可以利用掌上设备访问信息和执行应用程序,甚至在飞行中也可以获得和更新信息。 ??具有在一台掌上设备运行应用程序和处理信息、还可以将应用程序和信息的更新同步回到办公室的设备或者网上的这种能力对于普遍、离线计算的效用和流行是一个关键。 ??遗憾的是,到今天为止还有两种方式没有实现: 支持任何移动设备同步的网络数据 支持同步人和网络数据的移动设备 ??这样...
Apache的重写规则彻底抛弃IIS
(1)代理(Proxy): 不知道各位大侠有没有注意到Apache的代理功能。由于原来我使用了IIS支持ASP.NET,但是现在放弃了IIS,就出现了一个尖锐的问题:原来的ASP.NET的程序如何处理?让Apache支持ASP.NET显然是不现实的,至少目前还没有一个完整的解决方案(MONO)现在还只是一个实验性的东西,况且现在他还是一个linux下的东西。所以我想到了Apache的代理功能。通过Apache的代理访问IIS,就好像是Apache支持了ASP.NET了。 在你的Apache的Httpd....
LINUX系统的proftp(二)
这里要讲一个非常实用的命令 /usr/local/proftpd/sbin/ftpshut 这个命令还是比较实用的,因为你可能需要不断的调整你的服务器,而这个命令就非常灵活,可以在不停止proftpd进程的前提下,定时停止ftp连接,这里将会详细说它是怎么使用的。 ftpshut [ -l min ] [ -d min ] time [ warning-message ... ] -l min: 在ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受 -d min: 在ftp关闭服务之前的几分钟...
LINUX系统的proftp(三)
proftp的其他参数配置: MaxHostsPerUser 1 对不起,每个帐户最多允许来源ip为1个 #MaxHostsPerUser 对防止ftp帐号还是比较有用的。 MaxClientsPerUser 1 对不起,每个帐户在每个客户端最多可以同时登陆1次 #这个参数可以防止多线程软件下载对服务器的破坏 MaxClientsPerHost 1 对不起,同一个客户端只能最多1个帐号可以登陆 #比如ftp服务端有好多帐户你都有,但也只能用1个帐号登陆 呵呵,这三个Max参数比较容易搞晕,大家可要搞清他们...