QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3404|回复: 1

Open Source Desktop Technology Road Map

[复制链接]
发表于 2007-9-19 23:14:36 | 显示全部楼层 |阅读模式
http://people.freedesktop.org/~jg/roadmap.html

值得看看,虽然有点老
 楼主| 发表于 2007-9-19 23:15:12 | 显示全部楼层
Open Source Desktop Technology Road Map
Jim Gettys, HP Labs
Version 1.14, December 9, 2003

AbstractNavigating the myriad technologies that comprise the desktop (and palmtop) on open source systems is daunting to say the least, for newcomers of all sorts, open source developers, developers in companies using the technologies internally, and commercial ISV's, and even difficult to navigate for those immersed in open source systems on a day to day basis.
This document attempts to give a sketch of the names and relationships of these technologies and projects, and a glimpse into their status and development. Some technologies have never proved themselves, and/or have been rendered obsolete by later development and are available primarily for legacy code. This document attempts to clarify much of this natural evolution and market selection. Ultimately, some technologies become so rare as to enable their interment into the strata of software history, and it can be important to know which technologies are in such a fossil state, or stuck in the Labrea Tar Pits and possibly doomed to extinction, if not yet dead. A few may manage to struggle their way out of the tar to safety on dry land again.

Some indication of the licensing terms is made.  For commercial software, make sure you understand the differences between licenses. For example, GPL and LGPL'ed libraries have very different consequences; one requires that source code of applications linked against them be made available, and the other does not require such disclosure.  It is also possible for software to be available simultaneously under multiple licenses, sometimes allowing the implementer to choose which applies. See the Open Source Initiative for an explanation of these licenses.

Where known, approximate dates of expected completion are included, but there is no guarantees made. If you would like to ensure the timely completion of technologies under development, you should work with the community to determine if further resources are needed, and if so, to contribute the talent, resources and funding to do so.

Note that this document is still a bit weak in futures and I plan further work in this area.  As in a map of a physical area, having information about current areas and how they interrelate was the first goal.


AcknowledgmentsThis document is the work primarily of its author, and the opinions here are my own; blame me for any errors.  Please let me know of any inaccuracies, and in particular, pointers to road maps of projects mentioned here. I would much prefer to have good pointers to similar project road maps than my current (mis) understanding of their time lines and development state, which is, of course, in a constant state of flux. Similarly, if you believe I have overlooked some key piece of open source desktop middleware technology (as opposed to end user applications which are too numerous to list), please let me know.

My thanks to Keith Packard, Jamey Sharp, Kevin Whitwell, Waldo Bastian, and Eric Raymond, Zenaan Harkness, David Alan Gilbert, Maarten Stolte, Maarten Stolte, Kurt Pfeifle, Brenda J. Butler, Zenaan Harkness, Eero Tamminen, Brian Gallaway Sergey V. Oudaltsov, John Smirl, and Vincent for costructive comments and feedback, and to Slashdot, for not warning me about the article, which I would have liked to delay a day or three. At least this time, freedesktop.org's web server is properly configured.  
Table of ContentsIntroductionThe most visible desktop projects are the KDE and Gnome desktop projects. These projects provide the basic toolkits, window managers, menu systems and control panels found in modern user interfaces along with many end user applications. It is important to note that the work of freedesktop.org is to ensure that applications and infrastructure can be shared between projects, and to enable this sharing in a way that end users do not know or care what environment these applications may be "native" to. In large part, this goal of freedesktop.org is being met, though there is more work to be done.  The Gnome project's roadmap covers its next few releases.

Other major applications projects, which themselves may be platforms on which other applications are being built include the Open Office project (Sun's StarOffice suite is based on OpenOffice), providing a entirely free office suite, and their plans can be found in their road map. Better integration with other applications on the desktop is high on that list; Open Office has used their own toolkit and needs better integration with Gnome and KDE.

The Mozilla project is also of special mention, who have built a world class free web application suite supporting all the widespread Web technologies (e.g. CSS, Javascript, etc.), including browser, mail client, bug tracking system, and other technology, used not only in their applications but also by other applications in the open source desktop. Mozilla's road map covers both its recent history and current plans. Another implementation of web technologies underlies the KHTML Rendering engine of the KDE project and Apple in Mac OS X.

Native plugins exist, often many,  for most of the commonly used web datatypes (e.g. flash, RealPlayer, PDF). There are a few reasonably common datatypes for which there is no good native plugin available (fewer and fewer as the months go by). Windows plugins can often then be used via WINE. One of the interesting problems is in fact, too many plugins for a given datatype.  Better user interfaces to invocation of plugins is needed in some major applications to help with this embarrassment of riches.

The desktop applications themselves are far too numerous to begin to mention.  A (large) subset of open source applications of all sorts numbering in the many thousands can be discovered on the Freshmeat web site, in addition to the KDE and Gnome desktop projects. All of these projects build on the technologies covered in this road map (and sometimes additionally run on Windows and Mac OS X, most particularly the X Window System, but attempting to provide a road map to those projects is outside of the scope of this document.

SpecificationsHistorically, the X specifications were developed and ratified in the MIT X Consortium, and its successor organization, X.org. X.org is in the process of reconstituting its governance from an industry consortium to an organization in which individuals, both at a personal level and as part of work they do for their companies have voice, working as part of the larger freedesktop.org and free standards community.

As discussed below, the X Window System was designed to allow for extension, and many extensions as outlined above have been developed, deployed, and sometimes discarded over the years. Note that an API is just one binding to the specific protocol; there are and have been multiple such API's and implementations at times to the same underlying set of protocols.

Besides the API's and protocols mentioned below, there are a set of other protocols and (sometimes multiple) implementations of API's that are involved in the overall open source desktop. Most of these are primarily of interest to toolkit, window manager, and desktop environment programmers rather than directly to most application programmers.  This section attempts to outline the most important of these, and their current status.
ICCCMThe original "Inter-Client Communications Conventions Manual" outlines the original set of conventions required of applications (mostly implemented in toolkits rather than directly by applications) to "play well"  in the modular environment of the X architecture, allowing for interchangible window managers, and other facilities.  It was (mostly) sufficient to implement the CDE desktop, but insufficient for more modern environments.  Freedesktop.org was in fact founded originally to foster the discussions between the Gnome and KDE desktop projects to extend the ICCCM in ways required for more modern environments.
Freedesktop SpecificationsAreas needing work to ensure further interoperability of applications build in one toolkit framework to be fully usable in others has included drag-and drop,  window manager extensions, desktop entry files that describe information about applications, application embedding,  UTF-8 support, bookmark exchange, menus, mime database, desktop settings, to name a few. Descriptions of the status of these specifications along with the specifications themselves are available and I recommend you look there for  more information.

X Window SystemThe X Window System, Version 11, or X11, or most commonly called X, is the network transparent window system used on Linux, UNIX, and other platforms including Macintosh OS/X, and Microsoft Windows. It provides the basic infrastructure from which graphical user interfaces are built on Linux and UNIX. X11 was first released in 1988, and has an unrivaled reputation for stability; applications running on a MicroVAX of that era will interoperate against the latest X implementations across today's network, unchanged. This stability has been ensured by a careful, extensible protocol design framework, and attention to detail in the addition of new features.

I gave a USENIX talk on open source software development using the X Window System history that may be of interest.

New X extensions have been defined in recent years to bring X's original capabilities up to (and in some cases beyond) the commercial state of the art. Whenever possible, these programmer's API's have been built to allow even downwards compatibility to ease deployment of modern applications to older X server implementations. A good example of this is the Xft2 library, which, while performing best on X implementations where the X Render extension is present, will in fact provide high quality anti-aliased text on old X servers.  In some areas X still needs work; much of this work is underway as described below and in more detail elsewhere.

In the X environment GUI's are built using Toolkit libraries, of which the most common at this date are Qt and GTK+, with a smattering of Motif based applications from the earlier generation of development on UNIX.

A component of an X Window System based environment not found as an independent component in other window systems is the external "window manager", which allows users to control the size, location and decoration of application's windows on the screen. They are, in fact, applications like any other application in X11, though you can generally only run one window manager at a time. Window managers are, for the most part, interchangable components, and the standards defined  originally by the X Consortium such as the ICCCM, and its successor X.org, along with the new specifications developed on freedesktop.org govern the protocols between applications and window managers. Window managers in common use today include KDE's window manager, Metacity used by Gnome, the Enlightenment window manager, and many, many others.  Those that have been kept up to date with the freedesktop.org specifications are generally interchangable and a matter of personal taste, though both major desktop projects have window managers they prefer, and which may integrate best into that environment.

Other components, such as panels, start buttons, file managers, and many basic applications are provided by the desktop systems. The largest and most well known of these projects are the Gnome desktop project, the KDE desktop project, and the CDE desktop found on UNIX systems.  A detailed road map of these projects is outside the scope of this document. The projects have a life of their own, and you are best consulting them as to their plans. They encompass many hundreds, or thousands of open source applications at this date.

There are multiple implementations of the X Window System which share code, both open source and provided by commercial vendors. The most commonly deployed implementation on open source systems is currently provided by XFree86, with newer development implementation efforts host
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 23:12 , Processed in 0.098991 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表