KDE是什么?

KDE是Linux上第一个真正的桌面,所有KDE计划的代码全部按LGPL/GPL发布。开发KDE的原因是当时X下的桌面缺乏下列特征:

◇没有通用的Drag&Drop协议;

◇没有基于对话框的桌面配置工具;

◇没有一致的应用帮助系统;

◇没有统一的应用开发平台;

◇没有复合文档平台;

◇在应用级没有网络透明性;

◇在X下写程序非常乏味。

KDE就是要解决这些问题,它给用户带来了下面的好处:

◇漂亮的桌面,一致的界面(consistent look&feel);

◇完全的网络透明性;

◇集成的帮助系统,方便一致的访问;

◇国际化(25种语言);

◇集中的、对话框驱动的桌面配置;

◇大量的KDE应用;

KDE包含:

◇KDE桌面环境(包括WM);

◇KDE应用开发平台;

◇KDE办公套件。

目前的KDE发布包含下列包:

◇KDE-Libs:各种运行时库;

◇KDE-Base:基本的部件;

◇KDE-Graphics:图形应用,包括KDVI, KGhostview, KPaint, KFax, etc.

◇KDE-Utilities:工具应用,包括KEdit, KCalc, KNotes, etc.

◇KDE-Multimedia:多媒体应用,包括KMidi, KModplayer, KMixer, KSCD, etc.

◇KDE-Games:游戏,包括KAsteroids, KPat, KTetris, etc.

◇KDE-Admin:各种辅助系统管理的工具;

◇KDE-Network:网络应用,包括Kppp, Km, Kmail etc.

KDE开发哲学中有一条特别重要:当你有什么建议时,不要说“我们应该”,而要说“我打算”。如果你不打算干的话,最好不要说。

KDE简史:

KDE建立于October 1996。

August 15, 1997:召开了KDE-ONE会议,地点:Arnsberg, Germany:

赞助者包括:SuSE, Caldera, O'Reilly, DLD, Delix, Live Linux Verband等。

15名与会人员,他们来自USA, Australia, Germany, Norway, 等国。

讨论KDE的设计和开发。

KDE计划由Matthias Ettrich在1996年发起。

December 1997, KDE e.V.i.G成立负责法律和资金事宜。

April 8, 1998,KDE Free Qt Foundation成立。

Beta 1 Oct 20, 1997 - Beta 2 Nov 23, 1997 - Beta3 February 1, 1998 - Beta4 April 19, 1998

1.0发布:July 12, 1998

1.1发布:February 6th, 1999

1.1.1发布:May 5th, 1999

它由LyX(一所见即所得的LaTeX文书处理器)的开发者MatthiasEttrich发起,目的在于为Unix/X11建立一个完整易用的桌面环境。计划内容包括定义一标准的Drag&Drop机制,统一的Application Framework,类似ActiveX的机制等。

KDE除了拥有Ettrich的得意杰作KLyX,也有KFM(类似于IE4.0 的浏览器)、KPresenter(类似PowerPoint)、KIllustrator(类似CorelDraw或Illustrator)、KOrganizer(PIM软件)等重量级软件,更体贴用户推出大量GUI设定软件帮助用户设置Unix/Linux上的服务器(如Samba、Postgres及PowerManagement等)。,但KDE却一直因为Qt的License问题而受到不少用户的抨击。

KDE整个计划都采用由TrollTech公司所开发的Qt程序库。Qt本身为一基于C++的跨平台开发工具(有X及Windows版),非常优秀,可惜Qt并非一个真正自由的软件。Qt的License允许任何人使用Qt编写免费软件及免费拷贝给其他用户使用,但如果利用Qt编写非免费软件则需要购买他们的License。更重要的是任何人都不可以随意修改Qt源代码。渐渐有用户开始怀疑这会否会对各种免费的Unix(包括Linux、FreeBSD、NetBSD及OpenBSD)的CD-ROM生产商造成困难,将窗口管理器这个很重要的部份建立在一个并非真正自由的软件上是否会带来恶果。例如TrollTech公司更改Qt License、公司倒闭或给人收购等都

会令KDE前功尽弃。而KDE过份模仿Win95的界面也有用户很不满意。于是另一拨自愿者在今年上半年开始GNOME (Gnu Network Object Modeling Environment)计划,以真正自由的GTK作底层去实现与KDE相似的目标。GNOME在开发初期就得到Linux两大发行套件-Debian及RedHat在经济上、技术上及人力上的支持,但因起步较慢,目前进展不大。另一方面,KDE的开发者们为了平息用户在Qt License方面的担忧,在今年初与TrollTech成立The KDE Free Qt Foundation。TrollTech公司任何对Qt License的修改都必须为Foundation通过,而如果Troll倒闭、被收购或停止开发Qt超过一年,Foundation将有权以BSD式License开放Qt源代码。

KDE开发的特征:

KDE是用C++写成的,完全复合OO设计。由此带来的KDE组件的可重用性和高效率是KDE成功的关键。

KDE提供给开发者的开发平台类似于微软的MFC/COM/ActiveX(对应于QT/KOM/OpenParts),允许RAD和对现有组件及技术的充分利用。

KDE应用都是生成一个KApplication对象实例,并从KTopLevelWidget继承。这样开发的KDE应用自动地复合KDE的标准。

KDE的几个子系统

DCOP: Desktop Communication Protocol

KIO: 网络透明的输入/输出

KIO::TransferJob *job = KIO::get("http://www.lisoleg.org");

connect(job, SIGNAL(result(KIO::JOB *)), this, SLOT(slotResult(KIO:Job *)));

connect(job, SIGNAL(result(KIO::JOB *, const QByteArray&)), this, SLOT(slotData(KIO::Job *, const QByteArray&)));

SYSCOCA:System Configuration Cache

速度,稳定

Kparts: 嵌入式组件(动态链结库)

KHTML: HTML4.0兼容的库

KHTMLPart* browser = new KHTMLPart(this);

browser->openURL("http://www.lisoleg.org");

XMLGUI: 动态的GUI体系结构(KAction)