|
一、前言 凡事我图写的文章,往往比较内容纵深,范围却很窄,注重实际操作。原因很简单,水平有限,还达不到理论的层次,只是对片面的技术作些陈述,至于扩充,丰富就是别人的事了。移植操作系统看似很玄乎的东西,其实也就是一层窗户纸。 事实上每每刚听闻一件事,觉得很神秘,实实在在去接触一点,又觉得简单无比,然再深入的话,却又会觉得内容是深不可测。现实往往是如此滑稽,不过也只有在这种不断的循环中,人才会进步。 读完这篇文章,你会发现没有谈及技术内容,全是在说“废话”。而我一向认为说“废话”这很有必要。
二、重要提示
文章难免有疏漏,会在下面地址不断更新: 全系列文章地址:http://blog.csdn.net/liwei_cmg 三、认识操作系统
操作系统的分类方式是多种多样。如按功能特征分为批处理,分时和实时操作系统。按应用范围分个人,网络,分步式和嵌入式操作系统。 所有分类都不是绝对的,按我个人理解,偏向于把操作系统作如下划分: ◆普通PC机操作系统 这是我们接触最频繁的一类了,从早期的MS-DOS到Windows 95,Windows 98,Windows XP以及未来的Windows Vista等,全是微软家族的产品。除此以外Linux家族的RedHat Linux,Turbo Linux等,苹果的Mac OS X也属于这个范畴。 ◆服务器操作系统 包括各类的大型机,小型机操作系统,另外网络操作系统也属于这一类。如基于UNIX的IBM AIX、AS系列,HP UNIX,Sun Solaris等,基于Linux的IBM System p5系列等。 ◆嵌入式操作系统(Embedded Operating System) 终于说到我们的E680g了。 嵌入式操作系统可简单划分为专用和普通两种。专用嵌入式操作系统(如大名鼎鼎的VxWorks)应用范围可谓专业。如汽车飞机,工业控制,国际空间站,火星探险等等,通用就常见的多了,从各家手机的广泛采用的Symbian、种类繁多的入式Linux以及逐渐没落的Palm,和气势逐渐壮大的Windows CE家族,都是属于这个分类。 我们的E680g采用的就是嵌入式Linux家族为首的MontaVista Linux操作系统。 四、Linux图形化历程 注:此段文章综合了众多资料,主要引用个人电脑的文章 谈起OPIE,就不能不谈Qt,然而要对Qt有个来龙去脉的认识,需要从Linux图形化说起。让我们回顾下Linux图形化界面发展的历史。
Linux实际上是以UNIX为模板的,它继承了UNIX内核设计精简、高度健壮的特点,无论系统结构还是操作方式也都与UNIX无异。Linux本身也是没有图形界面,只是一个基于命令行的操作系统。 早在Linux之前,Unix的图形界面一向是以麻省理工学院(MIT)的X Window系统为标准。不过,X Window(请注意不是X Windows)并不是一个直接的图形操作环境,而是作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在X Window基础上开发出不同的GUI图形环境。MIT目的只在于为UNIX系统设计一套简单的图形框架,以使UNIX工作站的屏幕上可显示更多的命令。许多UNIX厂商在 X Window原型上开发适合自己的UNIX GUI视窗环境,其中比较著名的有SUN与AT&T联手开发的“Open Look”、IBM/HP主导下的OSF(Open Software Foundation,开放软件基金会)开发出的“Motif”。经过多年竞争,Motif最终胜出,成为普遍使用的界面库。不过,Motif只是一个带有窗口管理器(Window-Manager)的图形界面库(Widget-Library),而非一个真正意义上的GUI界面。经过协商之后IBM/HP与SUN决定将Motif与Open Look整合,并在此基础上开发出一个名为“CDE(Common Desktop Environment) ”的GUI作为UNIX的标准图形界面。 遗憾的是,Motif/CDE和UNIX系统的价格都非常昂贵,而当时微软的Windows发展速度惊人并率先在桌面市场占据垄断地位,CDE则一直停留在UNIX领域提供给root系统管理员使用,直到今天情况依然如此。 上个世纪九十年代中期,以开源模式推进的Linux在开发者中已经拥有广泛的影响力。尽管X Window已经非常成熟,也有不少基于X Window的图形界面程序,但它们不是未具备完整的图形操作功能就是价格高昂(如CDE),根本无法用于inux系统中。如果Linux要获得真正意义上的突破,一套完全免费、功能完善的GUI就非常必要。 在这时,挪威TrollTech一批程序员抓住机遇推出了Qt,一个跨平台的C++图形用户界面库。基本上,Qt同X Window上的 Motif、Open Look、GTK等图形界面库和Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西,但Qt具有优良的跨平台特性(支持Windows、Linux、各种UNIX、OS390和QNX等)、面向对象机制以及丰富的API,同时也可支持2D/3D渲染和OpenGL API。 1996年10月,由开发图形排版工具Lyx的德国人Matthias Ettrich发起了KDE(K Desktop Environment)计划。在当时的同类图形用户界面库产品中,Qt的功能最为强大,Matthias Ettrich在发起KDE项目时很自然选择了Qt作为开发基础。 KDE本身采用GPL(GNU通用公共许可证)宣言的,但是KDE底层的基础却是Qt。 Qt是一个不遵循GPL的商业软件,一大批自由程序员对KDE项目的决定深为不满,它们认为利用非自由软件开发违背了GPL的精神,于是GNU拥护者,一批人去开发Harmonny(Harmony是一个兼容替代库,设计用来在没有Qt的情况下也有可能运行KDE软件。),试图重写一套兼容于Qt的替代品,另一一批由一个墨西哥程序员Miguel De Icaza组织下重新开发了一套称为GNOME(GNU Network Object Enviroment)来替代KDE。 Linux业界老大RedHat不喜欢KDE/Qt的版权,甚至专门派出了几个全职程序员来加入GNOME的开发工作,于是一场与Motif和Openlook相似的圣战就这么打起来了。 Trolltech为了KDE曾数次修改Qt的版权,从成立KDE Free Qt 基金会到采用GPL,可谓是费尽心机,但是GNOME采用的GTK从一开始就是完全的GPL,因此在这个方面GNOME有一定的优势,加上Qt/KDE采用C++,在当时并不为很多人熟悉,因此GNOME吸引了更多的自由软件开发者,但是KDE毕竟先走一步,推出的KDE1.1.2也十分稳定,而当时急忙中推出的GNOME1.0的系统稳定性奇差,有人甚至笑称GNOME1.0还没有KDE1.0Alpha稳定。 2000年,可谓是风云突变,一个接一个重大的事件先后发生: 首先是一批从Apple公司出来的工程师成立了一个Eazel的公司替GNOME设计界面,然后是一批GNOME程序员成立了一个Helix Code公司替GNOME提供商业支持,而大家期待以久的KDE 2.0也终于发布了,这也是相当庞大的自由软件,除KDE本身,还包括Koffice套件和集成开发环境Kdevelop等等一大批软件,其主力软件Kounqueror也是第一个可以同微软的InternetExploer相抗衡的浏览器。
|