在桌面Linux的一阵泡沫过去以后,国内的GNU/Linux厂商们把自己的市场战略方向纷纷转向了嵌入式系统开发、定制服务以及OEM市场,希望藉此来获取利润,等待市场的复苏。因为在嵌入和定制服务方面正是
GNU/Linux的优势所在。OEM则是通过在台式PC上预装桌面版的GNU/Linux操作系统来代替Windows操作系统,所以有不少Linux厂商试图在被Windows占领已久的市场上抢得一席之地。最近,我们从一部分Linux厂商公布的数据中得知,该OEM市场的增长情况非常可观。期待桌面Linux大放光彩的人们一边为之庆幸,一边又不得不冷静下来细想:GNU/Linux究竟发展到了什么样的程度?它还需要做哪些方面的工作才能走向大规模的市场化?
自由的利弊与Linux架构
不管桌面Linux市场如何变化,自由软件世界的开发者们总是充满热情,他们按照GNU的思想把GNU/Linux和许多自由软件发展下去,一点点地走向成熟,就像以前Linux在服务器市场获得的巨大成功一样。自由是Linux开发中最大的优点,同时也是最大的不足。优点在于,Linux的开发可以不受太多外界因素的影响,从而得到非常健康的发展;缺点是开发者们由于对外界经常采取不太理会的态度,从而在软件的人性化方面会让普通用户很难接受,这会导致缺乏OEM厂商的支持。一种操作系统软件不管拥有多少先进的特性,如果缺少与用户的亲和力,则很难取得成功。
好在GNU/Linux从起步到现在,其每一个新版本的发布以及最近的很多迹象都在表明GNU/Linux在软件界面的人性化方面不断进步着。下面我们将从一个完整的Linux系统架构来分析其发展趋势。在这之前,我们先需要从图1中了解桌面Linux的系统架构。
在图1中可以看到,图形化的Linux是一个类Unix操作系统。必需采用X-Windows,绕过系统核心直接操作硬件,才能实现高效率的图形能力。与其他桌面操作系统一样,桌面化的Linux也需要大量应用程序的支持,而当前Linux欠缺的就是易用的桌面环境和其上的应用程序,以及对各种在桌面系统中常用硬件的支持。
GNU/Linux核心的变化
当GNU/Linux的核心发展到2.4版本的时候,其结构已经非常清晰和稳定。在接下来的时间里,GNU/Linux的开发者们会不断地为其增加新的驱动程序和新的特性,包括输入设备和多媒体设备的支持。他们希望GNU/Linux除了能在服务器市场一展身手以外,还能真正地成为一个可以放到桌面上来使用的操作系统,也就是它不但需要增强图形界面的易用性,系统底层的功能也要能跟上。这从其核心的2.4.5到2.5版本的发展就能看出来,在更加明确地为设备分类,稳定已有代码的同时,也协调好了类Unix的设备访问方法,保持了系统和软件的一致性,同时也大范围地增加了系统所能支持的硬件设备种类。作为整个操作系统的最底层,这些都为更好地支持基于其上的各种应用做好了铺垫。
图形界面的优化
在发展的初期,GNU/Linux与Windows明显不同的是,它作为一个类Unix的操作系统不是最注重图形界面的易用性,而是把前期开发的重点放在了内存管理、进程调度等系统的基础部分。由于受类Unix系统的传统影响,GNU/Linux在核心里面并没有直接实现桌面系统所必需的图形驱动能力,这对于今天已经离不开图形化界面的普通用户来说,简直是不可思议的。虽然GNU/Linux核心的2.2版本之后都提供了FrameBuffer Console设备,但是也只能提供一些简单的图形能力。值得庆幸的是,与传统的Unix系统一样,自由软件世界的X窗口系统——XFree86给GNU/Linux赋予了实现图形用户界面的能力。
XFree86通过绕过操作系统直接访问硬件的方式来驱动图形设备,获得高效率的加速能力,从这一点来说它非常像一个图形设备驱动程序而不是一个窗口系统,但同时又提供简单的ATOM管理和消息处理的能力,让开发者不至于工作在最原始的环境下。而整个XFree86基于TCP/IP的C/S 结构,能够很轻易地把系统的处理分布化。同时X窗口系统开放的工业标准正是其在Unix世界长盛不衰的原因,但是XFree86却不具备现在大多数流行的图形化操作系统所必需的桌面管理和提供快速开发接口的功能。开发XFree86下的应用程序,很多细节完全需要由开发者自己来完成,这造成了在GNU/Linux平台下应用软件的缺乏。所以在XFree86上的应用一直局限于某些专业领域,自由软件世界的开发者们看到了这些不足,在发展过程中,KDE/GNOME(the K Desktop Environment /GNU,s Network Object Model Environment,K桌面环境/GNU网络对象模型环境)就应运而生。
[1] [2] 下一页