1、 Linux 应用于嵌入式 系统 UNIX 引起了全然不同的情绪:因其能力和灵活性而受到一些人的青睐,但因其复杂且神秘的命令而受到另一些人的藐视。在计算世界里, UNIX 已建立起一个褒义不一的声誉。 易用性 UNIX 因其过于神秘、不易记忆和含义模糊的大量键盘命令而名声不佳,这些命令每个都有很多命令行开关,这可能造成昏药而不易记忆。它的 SVR4 版本拥有 2000 多个命令,其中很多功能可通过管道和重定向进行组合。这反映了UNIX 的基本设计思想之一:生成数量很大的专用和模块化命令,把它们 结合起来就能完成各种复杂的任务。 虽然 UNIX 过去基本上限于大学和应用开发公司中的软件专业人员使
2、用,其复杂的命令行语法和由此而得到的灵活性被看作一个优 点而不是 问题。但是在面向商业的市场中使用 UNIX,却产生了一个重大的缺陷 系统越灵活,它就变得越难学会和操作。 UNIX 的原本(或脚本)语言提供某种形式的帮助。利用原本语言,系统管理员能很快地把系统裁剪成满足一组用户的需求。 克服 UNIX 神秘命令语言之困难的另一种方法是用图形用户接口 GUI,如Motif,SunView 或 OpenLook。然而,图形用户接口在 已经很复杂的系统上增添了另一层不兼容性问题。 Motif 已 经 移 植 到 差 别 非 常 大 的 不 同 体 系 结 构 上 ( 由 于 它 仿 效Present
3、ation Manager 的风格),而且在外观与感觉上也许是最接近于诸如Microsoft Windows 一类的 PC 接口。 SunView 由于有很大的装机数和很多应用程序员已熟悉按它的规范写软件,所以也是一种主流图形用户接口。 二进制兼容性 UNIX 的销售者以某种羡慕的心情关注着 DOS 世界中可能的大量简装应用程序,并承诺不同系统的二进制兼容的应用程序即将面世。这些承诺远未让人满足。虽然二进制兼 容性尚未获得,但现在不同机器上共享数据和应用程序正在变得更加容易。 可移植性 与多数操作系统源码相比, UNIX 程序容易移植。它用 C 语言编写,而不用汇编语言,使用 UNIX 能移植
4、到不同的体系结构上。但是把 UNIX 移植到一个新系统上也不是一件一蹴而就的事情,常常是要几个人年的工作,还可能造成故障和失灵,从而在性能上产生难以捉摸的不一致性。这些故障往往是难以识别与纠正的。 拥有你自己的计算机操作系统的源码,既有益,也有害;如果操作系统缺少 某些所需功能,公司自己拥有源码能大大增强公司进行必要修改的能力。 另一方面,具 有新的或修改特性的操作系统定制版本,在日后可能出现与更新的版本或购买的应用程序不兼容的问题。 为什么用 LINUX? 用于接口、监控、通信和控制应用程序的职能专用系统和设备越来越要求高级的现代操作系统的这些服务。许多这样的系统需要如下的高级性能:高分辨率
5、和用户友好的图形用户界面: TCP/IP 链接;用可靠的闪存固态盘代替常规的磁盘机;支持 32 位的超高速 CPU;使用大存储器阵列; 以及似乎是无限容量的存储设备,包括 CD-ROM 和硬盘。 这不是以前的独立代码,自己写的核,或简单的老是 DOS,那 些日子已永远过去。 另外也考虑到硬件和芯片迅速加速的革新步伐 伴随着老设备相当快地淘汰。结合这两种情况,就能知道为什么对商用实时操作系统供应商而言,跟上硬件设备的不断出新已变成巨大的挑战。及时地支持最新设备,甚至不去理会不愿退让的、大力推销的 逐渐过时的芯片组,你需要大量和不断的资材投入。如果商用实时操作系统供应商必须奋力紧跟硬件发展的话,那
6、么编写独立的代码或写自己的核,这种单枪匹马的做法一定是毫无意义的。 因为选择范围很小,嵌入式系统的开发商面临这样的一种困境: 一方面,今天高度复杂的,且授权的智能嵌入式 系统(基于最新的芯片和硬件性能)所需要的正式流行的高档操作系统(如 Windows)提供的那种能力、精致性,以及通用性。 另一方面,嵌入式系统要求非常高的可靠性(不停机,无人照管的操作),加上有能力把操作系统改编成符合应用系统的独特的要求。 其窘境是:通用桌面操作系统(如 Windows)不能很好地适应于类似设备的嵌入式系统的独特需求。然而,商用实时操作系统,虽然设计成满足嵌入式应用的可靠性和配置灵活性的要求,但由于他们缺乏标
7、准化以及 没有能力跟上技术的速度发展步伐,它们日益不合需要。 开发人员做什么? 幸运的是 ,一种新的、令人兴奋的选择系统已经出现:开放源码 Linux。 Linux提供功能强大的和高级系统管理设施。丰富的设备支持,在可靠性和鲁棒性,以及广泛详尽的文档方面有极好的声誉。最好的(对系统开发人员而言)是 Linux不要钱 有完全免费的源代码。 Linux 是不是像 Windows 那样太大以及需要系统资源太多,以致不能满足嵌入式系统的约束要求呢?与 Windows 不同, Linux 本来就是模块化的,并且能够很容易缩减成紧缩配置,这种配置几乎与 DOS 差不多大,甚至能放到一张软盘上。此外,因为
8、Linux 源码是免费可用的 ,所以可以按照独特的嵌入式系统要求改编该操作系统。 这样,并不令人惊奇,开放源码 Linux 已建成了一个新的操作系统开发和支持范例,在那里数以千计的开发人员继续贡献于不断发展的 Linux 代码库。此外,几十家面向 Linux 的软件公司已经出现 他们热切支持那些为建立从工厂自动化到智能设备范围很广的应用系统的开发人员的要求。 小 Linux 对许多嵌入式系统,为了适应诸如 RAM、固态盘、处理机速度,以及功耗的约束,嵌入的 Linux 的主要任务是,使系统所需的资源最小。嵌入式操作系统可能需要从一个芯片盘或紧凑闪存固态盘 上自举;或者自举和运行在没有显示器和键盘(“无头”操作)的环境,或经有以太网连接,从远程设备装入应用程序。 现成的小 Linux 有许多来源,其中有日益增多的面向应用的 Linux 配置和分发版,这些都被修改成适应于特定的应用。例如路由器、防火墙、互联网 /网络设备、网络服务器、网关等。 你也可能选择建立你自己喜欢的嵌入式 Linux,从一个标准分发版开始,略去不要的模块。虽然如此,还应该考虑从别人的工作配置基础上开始你的工作,因为他们的版本的源仅是完全合法的,而且也是被鼓励。