KDE
KDE (K Desktop Environment) is a free desktop environment and development platform built with Trolltech's Qt toolkit. It runs on most Unix and Unix-like systems, such as Linux, BSD, AIX and Solaris. There are also ports to Mac OS X using its X11 layer and Microsoft Windows using Cygwin.
Currently, a large portion of the primary KDE libraries and a few other applications can work natively on Microsoft Windows, thanks to the [http://wiki.kde.org/tiki-index.php?page=KDElibs+for+win32 KDElibs/win32 Project]. Ports of other KDE applications are being discussed.
KDE is developed in conjunction with KDevelop, a software development suite, and KOffice, an office suite.
The "K" originally stood for "Kool" (as the "C" as in "cool" was already used in the acronym for the Common Desktop Environment), but was changed soon after to stand simply for "K", which is "the first letter before 'L' (which stands for Linux) in the Latin alphabet."
The project's mascot is a green dragon named Konqi. Konqi can be found in various applications, including when the user logs out and in the "About KDE" screen.
Early history
KDE was founded in 1996 by Matthias Ettrich, who was then a student at the University of Tübingen. He found a number of things wrong with the UNIX desktop at that time. Among his qualms, outlined in [http://groups.google.com/groups?selm=53tkvv%24b4j%40newsserv.zdv.uni-tuebingen.de a now-famous newsgroup post], were that none of the applications looked, felt, or worked alike. He proposed the formation of not only a set of applications, but rather a desktop environment, in which users could expect things to look, feel, and work consistently. He also wanted to make this desktop easy to use. One of his complaints with desktop applications of the time was that his girlfriend could not use them. That post spurred a lot of interest, and the KDE project was born.
Matthias chose to use the Qt toolkit as the toolkit of choice of the KDE project. Other programmers quickly started developing KDE/Qt applications, and by early 1997, large and complex applications were being released. In mid-1997, the GNU project had concerns about the licensing of Qt, leading to their founding the GNOME Desktop project and Harmony, a now-abandoned project to clone Qt. Qt was later relicensed to provide the GNU General Public License as an option, which has eliminated the concerns of the GNU project. There is still considerable disagreement over the use of the full GPL for a library like Qt, and the restrictions this imposes on code linking to it. In particular, in order to develop proprietary software with KDE and Qt, it is necessary to purchase a commercial license from Trolltech. To prevent the codebase from being lost should Trolltech fail commercially, ownership of the code is held in a trust to be released under a BSD license should Trolltech cease to exist or stop updating the code. Both KDE and GNOME now participate in Freedesktop.org, an effort to standardise Unix desktop interoperability, although there is still some friendly competition between them.
Organization of the KDE project
Like many open source/free software projects, KDE is primarily a volunteer effort, although various companies, such as Novell (in the form of SUSE), Trolltech, and Mandriva employ developers to work on the project. Since a large number of individuals contribute to KDE in various ways (e.g. code, translation, artwork), organization of such a project is complex. Most problems are discussed on a number of different mailing lists.
Important decisions, such as release dates and inclusion of new applications, are made on the kde-core-devel list by the so-called core developers. These are developers who have made significant contributions to KDE over a long period of time. Decisions are not made by a formal voting process, but by discussion on the mailing lists. In most cases this seems to work well, and major discussions (such as the question of whether the KDE 2 API should be broken in favour of KDE 3) are rare.
While developers and users are now located all over the world, the project retains a strong base in Germany. The web servers are located at the universities of Tübingen and Kaiserslautern, a German non-profit organization (KDE e.V.) owns the trademark on "KDE", and KDE conferences often take place in Germany.
Release cycle and version numbers
As the project history below shows, the KDE team releases new versions on a frequent basis. It is rare that a release is delayed for more than one or two weeks. An exception was KDE 3.1, which was delayed for more than a month because of a number of security issues in the code base.
There are two main types of releases:
Major release
There have been 11 major releases: 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 3.3, 3.4 and 3.5.
trademark.]]
A major KDE release has two version numbers, e.g. KDE 1.1.
All KDE releases in the same major version (e.g. KDE1, KDE2 and KDE3) are both binary and source-compatible.
This means for instance that software developed against KDE 3.0.x will work with all KDE3 releases. Only a major KDE release will incorporate new features.
Changes requiring recompilation or porting never occur except during major version changes; this maintains a stable API for KDE application developers. The changes between KDE 1 and KDE 2 series were large and many, while the API changes between KDE 2 and KDE 3 were comparatively minor, meaning that applications could be easily ported to the new architecture. Up to now the KDE major version numbers follow the Qt release cycle.
As soon as a major release is ready and announced, work on the next major release starts. A major release needs several months to be finished and many bugs that are fixed during this time are "backported" to the stable branch, meaning that these fixes are incorporated into the last stable release.
The current major release is 3.5, which arrived on November 29, 2005. KDE 4 will succeed 3.5 sometime in 2006, and will be based on Qt 4.0 encompassing some major changes to the desktop.
Minor release
A minor KDE release has three version numbers, e.g. KDE 1.1.1, and the developers focus on fixing bugs, minor glitches and small usability improvements, as opposed to adding new features.
For minor releases, a shortened release schedule is used.
A minor release is based on a Subversion branch of a previous release and does not affect the "HEAD branch", the branch where the current development of the next major release takes place.
new features,
bug fixes
KDE 3.2 released --------------------> KDE 3.3 (also called HEAD branch)
(new development
started) bug fixes only
--------------------> KDE 3.2 BRANCH (becoming a minor release)
The somewhat unusual name "3.0.5a" was used because of a lack of version numbers. Work on KDE 3.1 had already started and, up to that day, the release coordinator used version numbers such as 3.0.5, 3.0.6 internally in the main Subversion repository to mark snapshots of the upcoming 3.1. Then after 3.0.3, a number of important and unexpected bug fixes suddenly became necessary, leading to a conflict, because 3.0.6 was at this time already in use. More recent KDE release cycles have tagged pre-release snapshots with large revision numbers, such as 3.1.95, to avoid such conflicts.
While development on KDE 2.x in general has stopped, important security fixes are backported to KDE 2.x, since many people still use it.
Criticism
The KDE interface is sometimes criticised for being too complex and including too many configurable options, as opposed to, say, Gnome, that actually reduces the configurable options available to the user (and is actually criticised for this [http://mail.gnome.org/archives/usability/2005-December/msg00021.html]).
Although the subject is controversial, some areas of the user interface have been identified as being too cluttered and work has gone into reducing visual complexity for versions 3.4 and 3.5. One of the major goals of KDE 4.0 is to identify further areas that are lacking from a usability perspective and address these concerns.
Other criticisms include the heavy integration of Konqueror into the desktop, which may not be the user's preferred browser and the way auto-detected removable media and samba shares must be mounted using konqueror. This type of behavior can make it seem like KDE is attempting to take over the operating systems. Despite the relative abundance of KDE-themed "K" applications some Linux users still prefer GNOME or desktop independant applications. Users may not like the style of such applications or the fact that these require the large KDE libraries to run when used outside the native KDE environment. Some of these applications suffer from long start up times when used with other window managers, however work is being done to correct this behavior.
The default KDE looks very similar to Microsoft Windows and replicates some of the more controversial Windows features, such as integrating a web browser into a file manager and the removable media prompt dialogue recently added in KDE 3.5. While some say this might be a good thing to encourage Windows users to migrate to Linux, such "newbie" features are sometimes unappreciated by the hard-core Linux community. KDE is sometimes associated with distributions designed for less-experienced Linux users, though this is really not the case.
Many other criticisms of KDE are addressed at the [http://kdemyths.urbanlizard.com/ KDE Myths] web site.
However, the bottom line is that KDE is as functional as other environments (such as Gnome), and that criticisms usually originate from users of these other environments. Most KDE users are KDE users by choice, and are quite happy with the way their chosen environment is developing.
Architecture
- aRts - soundserver
- DCOP - system for communication between processes
- KHTML - HTML engine
- KIO - extensible network-transparent file access for KDE applications
- Kiosk - disable features within KDE to create a more controlled environment
- KParts - lightweight in-process graphical component framework
- Kwin - window manager
- KConfigXT - takes an XML file and produces source code to manage configuration options, including classes to glue the resulting code to configuration dialogs.
- Qt - cross platform graphical widget toolkit
- XMLGUI - allows defining UI elements such as menus and toolbars via XML files
Packaging
Due to the size of KDE, it is divided into several package categories to simplify installation. This is a reference scheme, packagers are free to use their own packages for KDE.
- aRts - KDE sound server.
- kdelibs - Primary libraries, containing most pieces of KDE architecture.
- kdebase - The base desktop and applications. Requires kdelibs.
- kdeaccessibility - Accessibility software.
- kdeaddons - Add-on software.
- kdeadmin - Administrative tools, intended for administering UNIX machines.
- kdeartwork - Additional artwork (widget style, screensavers, wallpapers, etc...)
- kdeedu - Educational software.
- kdegames - Games.
- kdegraphics - Tools for manipulating graphics.
- kde-i18n - Internationalization for KDE.
- kdemultimedia - Multimedia software.
- kdenetwork - Network tools and software.
- kdepim - Personal information management and E-mail software.
- kdesdk - Developer tools.
- kdetoys - Desktop Toys and Amusements.
- kdeutils - Utilities.
- kdewebdev - Web Development.
- koffice - Office suite.
There is also a Subversion module, kdeextragear-(libs-) - , which is used by applications which are part of the KDE project but don't depend on the release cycle of the main codebase; K3b and amaroK are part of this module. More info can be found on the [http://extragear.kde.org/ homepage].
Major KDE applications
For a full list, see list of KDE applications.
Applications for KDE include:
- amaroK - Media player
- K3b - CD and DVD burning application
- Kate - Text editor
- KDevelop - Integrated Development Environment (IDE)
- KMail - Email client
- Konsole - Terminal emulator
- Kopete - Instant messaging
- Konqueror - File manager and web browser using KHTML
- KPresenter - Presentation application
- KSpread - Spreadsheet
- KWord - Word processor
- KWrite - Light weight text editor with syntax highlights and other features
Timeline
- 14 October 1996: Project was announced by Matthias Ettrich. [http://groups.google.com/groups?selm=53tkvv%24b4j%40newsserv.zdv.uni-tuebingen.de]
- 12 July 1998: [http://www.kde.org/announcements/announce-1.0.php KDE 1.0] released
- 6 February 1999: KDE 1.1 released
- 3 May 1999: [http://www.kde.org/announcements/announce-BW-1.1.1.php KDE 1.1.1] released
- 13 September 1999: [http://www.kde.org/announcements/announce-1.1.2.php KDE 1.1.2] released (KDE 1.2 was planned, but never released)
- 15 December 1999: [http://www.kde.org/announcements/announce-1.89.php KDE 1.89], aka Krash (unstable developers' release)
- 23 October 2000: KDE 2.0 released
- 5 December 2000: KDE 2.0.1 released
- 26 February 2001: KDE 2.1 released
- 27 March 2001: KDE 2.1.1 released
- 30 April 2001: KDE 2.1.2 released
- 15 August 2001: KDE 2.2 released
- 19 September 2001: KDE 2.2.1 released
- 21 November 2001: KDE 2.2.2 released
- 3 April 2002: KDE 3.0 released
- 22 May 2002: KDE 3.0.1 released
- 2 July 2002: KDE 3.0.2 released
- 19 August 2002: KDE 3.0.3 released
- 9 October 2002: KDE 3.0.4 released
- 18 November 2002: KDE 3.0.5 released
- 21 December 2002: KDE 3.0.5a released
- 28 January 2003: KDE 3.1 released
- 20 March 2003: KDE 3.1.1 released
- 9 April 2003: KDE 3.1.1a released
- 19 May 2003: KDE 3.1.2 released
- 29 July 2003: KDE 3.1.3 released
- 16 September 2003: KDE 3.1.4 released
- 14 January 2004: KDE 3.1.5 released
- 3 February 2004: KDE 3.2 released
- 9 March 2004: KDE 3.2.1 released
- 19 April 2004: KDE 3.2.2 released
- 9 June 2004: KDE 3.2.3 released
- 19 August 2004: KDE 3.3 released
- 12 October 2004: KDE 3.3.1 released
- 8 December 2004: KDE 3.3.2 released
- 16 March 2005: KDE 3.4 released
- 31 May 2005: KDE 3.4.1 released
- 27 July 2005: KDE 3.4.2 released
- 13 October 2005: KDE 3.4.3 released
- 29 November 2005: KDE 3.5 released
Naming convention
Most KDE applications have a K in the name, mostly as an initial letter and capitalized. However, there are notable exceptions like kynaptic, whose K is not capitalized, amaroK, which has its K in the end and Gwenview, which doesn't have a K in the name at all. Many KDE applications get their K by misspelling a word which originally begins with C or Q, for example Konsole and Kuickshow. Also, some just append a commonly used word to a K, an instance being KMix. It should be noted that some application names (such as Konsole) are correctly spelled German words.
See also
- List of computing topics
- List of Unix programs
- freedesktop.org interoperability between KDE and GNOME
External links
- [http://www.kde.org The KDE website]
- [http://wiki.kde.org KDE Wiki]
- [http://lists.kde.org KDE mailinglists]
- [http://dot.kde.org KDE News Site]
- [http://groups.google.com/groups?selm=53tkvv%24b4j%40newsserv.zdv.uni-tuebingen.de The original project announcement (from Google Groups)]
- [http://developer.kde.org/development-versions/ KDE release schedules]
- [http://www.lynucs.org/?kde KDE screenshots]
- [http://kde-cygwin.sourceforge.net/ KDE on Windows using Cygwin]
- [http://events.kde.org/ KDE Events]
- [http://developer.kde.org/ KDE Developer's Corner]: a directory of everything to do with KDE development.
- [http://quality.kde.org/ KDE Quality Team]: opportunity to learn and to contribute to the KDE project.
- [http://planetkde.org/ PlanetKDE]: Aggregation of public weblogs written by contributors of KDE
- [http://kdedevelopers.org/ KDE Developer Journals]
- [http://www.kde-forum.org/ KDE-Forums.org]
- [http://plasma.kde.org/ Plasma]: KDE4 Desktop Shell
- [http://accessibility.kde.org/ KDE Accessibility Project]
- [http://i18n.kde.org/ KDE Internationalization]
- [http://bugs.kde.org/ KDE Bug Tracking System]
- [http://kde-look.org/ KDE-Look.org]: Download unofficial KDE artwork and themes
- [http://kde-apps.org/ KDE-Apps.org]: Download unofficial KDE applications
- [http://kde-files.org/ KDE-Files.org]: Download unofficial KDE documents and templates
- [http://www.kde-artists.org/ KDE-Artists.org]: the place to "kollaborate" on artwork for KDE
- [http://kdemyths.urbanlizard.com/ KDE-Myths]
- [http://www.ofb.biz/modules.php?name=News&file=article&sid=364&mode=&order=0&thold=0 Debate Without End]: Article on ongoing licencing controversy
Category:Desktop environments
Category:KDE
Category:X Window System
Category:Projects using Subversion
ja:KDE
simple:KDE
Free software:This article is about Free Software as defined by the sociopolitical Free Software movement; for information on software distributed without charge, see freeware. For other uses, see free software (disambiguation).
Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redistributed without restriction. Freedom from such restrictions is central to the concept of "free software", such that the opposite of free software is proprietary software, and not software which is sold for profit, such as commercial software. Free software may sometimes be known as libre software, FLOSS, or open source software.
Usage
To help distinguish libre (freedom) software from gratis (zero price) software, Richard Stallman, founder of the Free Software Movement, developed the following explanation: "Free software is a matter of liberty not price. To understand the concept, you should think of 'free' as in 'free speech', not as in 'free beer'". More specifically, free software means that computer users have the freedom to cooperate, and to control the software they use.
Most free software is distributed gratis online, or off-line for the marginal cost of distribution, but this is not required, and people may sell copies for any price. The capitalized term "Open Source" is attached to a definition originally created in 1998 from Debian's rewrite of the GNU definition of "Free Software". As a result, nearly all Open Source programs are Free Software, but there are some exceptions.
Although the open source and free software movements share almost identical license criteria and development practices, according to Stallman the respective philosophical values of the two movements are fundamentally different. Stallman endorses the terms Free/Libre/Open-Source Software ("FLOSS") and Free and Open Source Software ("F/OSS") to refer to "open source" and "free software" respectively, without necessarily choosing between or dividing the two camps, but he asks people to consider supporting the "free software" camp (see Open source vs. free software for more information).
"Freeware" is software made available free of charge, but is generally proprietary, as users do not have the freedom to use, copy, study, modify or redistribute. Source code for freeware may or may not be published, and permission to distribute modified versions may or may not be granted, so freeware is gratis, and not libre software.
History
A brief history of Free Software:
- 1960s and 1970s — software was seen as an add-on supplied by mainframe vendors to make computers useful. Thus, programmers and developers frequently shared their software freely. This was especially common in large users groups, such as DECUS, the DEC (Digital Equipment Corporation) Users Group.
- Late 1970s and early 1980s — companies began routinely imposing restrictions on programmers with software license agreements. Sometimes this was because companies were now making money from commercialised software or they were trying to keep hardware characteristics secret by hiding the source code. Other times it was because of the increasingly corporatised attitude in the growing and previously eclectic industry saw protecting intellectual property as a norm even if it didn't provide any benefit to business. Bill Gates signalled the change of the times when he wrote a famous open letter where he urged hackers to stop stealing by breaking licence agreements.
- 1983 — Richard Stallman thought of the GNU project (Actual writing of GNU started in January 1984), founding the Free Software Foundation (FSF)[http://www.gnu.org/fsf/fsf.html] two years later, after becoming frustrated with the effects of the change in culture of the computer industry and users. One incident was when a printer wouldn't work but he couldn't hack the source code to fix the problem because it was withheld. He introduced a "free software" definition and "copyleft", designed to ensure software freedom for all. [http://cisn.metu.edu.tr/2002-6/free.php] Many reacted strongly against Stallman's position as idealistic nonsense and he was strongly mocked and criticised.
Free software licenses
According to Stallman and the FSF, "free" software licenses grant:
- the freedom to run the program for any purpose (called "freedom 0")
- the freedom to study and modify the program ("freedom 1")
- the freedom to copy the program so you can help your neighbor ("freedom 2")
- the freedom to improve the program, and release your improvements to the public, so that the whole community benefits ("freedom 3")
Freedoms 1 and 3 require source code access, because studying and modifying software without source code is extremely difficult and highly inefficient compared to modifying annotated source code.
The FSF web site provides a list of many free software licenses. [http://www.gnu.org/licenses/license-list.html] The list is necessarily incomplete, because a license need not be known to the FSF in order to provide these freedoms.
"Proprietary software" is distributed under more restrictive software licenses. Copyright law and/or contract law restrict modification, duplication and redistribution by users; software released under a free software license rescinds most of these reserved rights.
The FSF free software definition disregards price. CDs containing free software such as GNU/Linux distributions are commonly for sale. However, since the CD buyer still has the free software freedoms, it is free software. Free beer software (freeware) which includes restrictions that confict with the FSF definition are considered proprietary. For example, source code may be unavailable, redistributors may be prohibited charging fees, etc.
Some people use "libre" to avoid the ambiguity of the word "free". However, these terms are mostly used within the free software movement and are slowly spreading.
Variations on free software as defined by the FSF:
- Copyleft licenses, the GNU General Public License being the most prominent. The author retains copyright and permits redistribution and modification under terms to ensure that all modified versions remain free.
- Public domain software - the author has abandoned the copyright. Since public-domain software lacks copyright protection, it may be freely incorporated into any work, whether proprietary or free.
- BSD-style licenses, so called because they are applied to much of the software distributed with the BSD operating systems. The author retains copyright protection solely to disclaim warranty and require proper attribution of modified works, but permits redistribution and modification in any work, even proprietary ones.
A copyright owner of copyleft-licensed software can produce and sell a version under any license, in addition to distributing the original version as free software. Many free software companies do this; this does not restrict any rights granted to the users of the copyleft version.
All free software licenses must grant people all the freedoms discussed above. However, unless the applications' licenses are compatible, combining programs by mixing source code or directly linking binaries is problematic, because of license technicalities. Programs indirectly connected together may avoid this problem.
Examples of free software
Notable free software:
- Operating systems: GNU/Linux, BSD, and Darwin.
- GCC compilers, GDB debugger and C libraries.
- Servers: BIND name server, Sendmail mail transport, Apache web server, and Samba file server.
- Relational database systems: MySQL and PostgreSQL.
- Programming languages: Perl, PHP, Python, Ruby and Tcl.
- GUI related: X Window System, GNOME and KDE desktop environments.
- OpenOffice.org office suite, Mozilla and Firefox web browsers and the GIMP graphics editor.
- Typesetting and document preparation systems TeX and LaTeX.
- MediaWiki, the software which runs Wikipedia.
The Free Software Directory is a free software project that maintains a large database of free software packages.
Much free software supports the non-free Microsoft Windows or non-free Unix platforms, and non-free software can support free platforms, although purists prefer all-free software on a free platform such as GNU/Linux.
Free software packages constitute a software ecosystem where software provides services, resulting in mutual benefit: for instance, the Apache web server handling the HTTP protocol, using mod_python to provide dynamic content.
Social significance of free software
Soon after free software begins circulation, it becomes available at little to no cost. When free software spreads, its utility is constant, or even increases due to network effects. Thus, free software is a pure public good rather than a private good.
Another way free software is thought to be significant to society is due to its freedoms that result in lower cost than proprietary software. Due to this fact free software is becoming popular in third world countries.
Furthermore, the openness of free software eases internationalization.
International cooperation through free association produces most free software.
The Oekonux and Hipatia projects contend free association could produce everything.
Free association is also used for wiki writing, such as Wikipedia and give-away shops.
While the politics of Free Software are unclear it is clear that it has become not only economically but also politically significant. SCO CEO Darl McBride and others have tended to characterise Free Software as communist while others maintain that its economic footprint is largely free market oriented and therefore capitalist, particularly for businesses with a services model. It is perhaps more interesting to analyse Free Software's goals - its four freedoms - in terms of positive and negative liberty. Before proceeding, it is worth noting that a computer program is inanimate and therefore not political in its own right. When we speak of the politics of Free Software, we seek to understand its social effects in the larger human context.
The four freedoms are couched in positive language, simply, users are granted the "freedom to" run, modify and reproduce the software but not granted "freedom from" anything that might prevent them from doing so. This observation is flawed when free software licences are considered in contrast to the proprietary licencing alternative. Users are given the right to use software for any purpose and are therefore free from the protective clauses of proprietary licences that are designed to limit liability or increase profits for a single vendor. If users wish to employ a Free Software program to develop nuclear weapons or service the needs of 1000 colleagues then they are not prevented from doing so by contract but only by circumstances unrelated to the licence, such as local laws and computer hardware. Similarly, the freedom to modify a program and release your improvements can also be seen as protecting groups within society from external coercion by more powerful groups through the deployment of technical implementations that prevent certain kinds of communication or activity. As an example, users are granted sufficient rights that they can correct any technical flaws in the software that affect their choice of software product that they wish to use by adding features, removing incompatibilities or creating new versions with new interopability functions. It is this and related effects on the technology market that have tended to lead to a capitalist or right-wing interpretation.
Individual motivations
Individuals within a team typically have a wide variety of motivations.
Stances on the relationship between free software and the existing capitalist economic system:
- Competition - free software and capitalism are incompatible, so more free software results in less capitalism.
- Inter-market competition - free software is a form of competition within capitalism. Copyright is governmental market restriction.
- Gift economy - status depends on gifts.
Relative security
There is controversy over the security of free software vs. proprietary software (a major issue being security through obscurity). A popular relative security measurement is counting known unpatched security flaws. Generally, users of this method advise avoiding products which lack fixes for known security flaws, at least until a fix is available.
Free software controversies
The BitKeeper controversy in the free software movement illustrates the movement's major issues and points of view.
Larry McVoy invited high-profile free software projects to use BitKeeper to attract paying users. In 2002 a controversial decision was made to use BitKeeper, a proprietary software product, to develop the Linux kernel, a free software project. The excerpt below illustrates why this proved to be a major source of controversy.
:"McVoy made the program available gratis to free software developers. This did not mean it was free software for them: they were privileged not to part with their money, but they still had to part with their freedom. They gave up the fundamental freedoms that define free software: freedom to run the program as you wish for any purpose, freedom to study and change the source code as you wish, freedom to make and redistribute copies, and freedom to publish modified versions.
:The Free Software Movement has said "Think of free speech, not free beer" for 15 years. McVoy said the opposite; he invited developers to focus on the lack of monetary price, instead of on freedom. A free software activist would dismiss this suggestion, but those in our community who value technical advantage above freedom and community were susceptible to it. ...
:A free kernel, even a whole free operating system, is not sufficient to use your computer in freedom; we need free software for everything else, too. Free applications, free drivers, free BIOS: some of those projects face large obstacles -- the need to reverse engineer formats or protocols or pressure companies to document them, or to work around or face down patent threats, or to compete with a network effect. Success will require firmness and determination. A better kernel is desirable, to be sure, but not at the expense of weakening the impetus to liberate the rest of the software world." [http://software.newsforge.com/article.pl?sid=05/04/25/130207]
McVoy withdrew permission for gratis use by free software projects. Many in the free software movement see the whole affair as a vindication of Richard Stallman's principled position over the more utilitarian approach of Linus Torvalds.
See also
- Free software magazine
- Free audio software
- Free game software
- Free/Libre/Open-Source Software
- [http://en.wikibooks.org/wiki/FLOSS_Concept_Booklet FLOSS Concept Booklet] on Wikibooks
- Free Software Foundation
- Free software licenses
- GNU General Public Licence
- GNU Project
- List of free software packages
- List of liberated software
- Open source
- Open source culture
- Open source vs. free software
- Software Freedom Day
- Open system
- Open standard
- Open format
- Vendor lock-in
- Embrace, extend and extinguish
- Network effect
- OpenDocument great summary of the new OASIS OpenDocument format (ODF) to create an open system for business & public sector documents
- Codefest
External links
- [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] - published by FSF
- [http://www.gnu.org/licenses/license-list.html FSF's list of free software licenses], including clarifications on often confused non-free licenses
- [http://www.gnu.org/directory FSF/UNESCO directory of free software packages]
- [http://www.gnu.org/philosophy/ The GNU philosophy pages]
- [http://www.gnu.org/philosophy/free-software-for-freedom.html FSF's comparison of "Open Source" and "Free Software"]
- [http://www.dwheeler.com/oss_fs_why.html Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!] — David Wheeler's analysis of the advantages of OSS/FS.
- [http://www.freebsdsoftware.org A free software repository for Linux, and FreeBSD].
Category:Free software
Category:Application software
Category:Software
zh-min-nan:Chū-iû nńg-thé
ko:자유 소프트웨어
ja:フリーソフトウェア
simple:Free software
th:ซอฟต์แวร์เสรี
Trolltechright
Trolltech (formerly known as Quasar Technologies) is a computer software company from Oslo, Norway. They provide software development tools and libraries, as well as expert consulting services.
Their flagship product is Qt, the multi-platform, C++ Graphical User Interfaces (GUI) toolkit.
Trolltech was founded by Eirik Chambe-Eng and Haavard Nord in 1994. They started writing Qt in 1991, and since then Qt has steadily expanded and improved.
The popular free Unix desktop environment KDE uses Trolltech's Qt library. Trolltech also employs several KDE developers.
Trolltech is mainly owned by its own employees.
External links
- [http://www.trolltech.com Trolltech's homepage]
- [http://www.trolltech.com/newsroom/investors.html Trolltech's investors]
Category:Software companies
Category:Companies of Norway
Qt (toolkit)
In computer programming, Qt is a cross-platform graphical widget toolkit for the development of GUI programs. Qt is most notably used in the K Desktop Environment. It is produced by the Norwegian company Trolltech, formerly Quasar Technologies. Trolltech insiders pronounce Qt as "cute".
Qt uses an extended version of the C++ programming language, but bindings exist for Python, Ruby, C and Perl. It runs on all major platforms, and has extensive internationalization support. Non-GUI features include SQL database access, XML parsing, and a unified cross-platform API for file handling.
Varieties
Qt is released by Trolltech on the following platforms:
- Qt/X11 — Qt for X Window System
- Qt/Mac — Qt for Apple Mac OS X
- Qt/Windows — Qt for Microsoft Windows
- Qt/Embedded — Qt for embedded platforms (PDA, Smartphone, ...)
There are four editions of Qt available on each of these platforms, namely:
- Qt Console — edition for non-GUI development.
- Qt Desktop Light — entry level GUI edition, stripped of network and database support.
- Qt Desktop — complete edition.
- Qt Open Source Edition — complete edition, for open-source development.
The first three editions are proprietary, and released under a commercial license; while the Open Source edition is available under the GPL license and additionally under the Q Public License (QPL) for Qt/X11 version.
In case of the X11 platform, the QPL allows to license the final application under different open source licenses, such as the LGPL or the Artistic license. For the Windows and MacOs X platforms, the GPL is the only Open Source license available so the applications developed with it must be GPL as well.
All editions support a wide range of compilers, including the GCC C++ compiler, and in the case of the commercial Qt/Windows, the Visual Studio suite [http://www.trolltech.com/developer/faqs/?catid=1953&id=389].
There is a project to port the Open source Qt/X11 version of Qt on Windows, along with KDE. The project was started for Qt3 to provide a version of Qt on Windows suitable for free software programs :
- Qt/Windows Free Edition — a free version of Qt released by the KDE on Cygwin project. This version is based entirely on the Qt/X11 source code and licensed under GPL.
The release of Qt4 under the GPL for the Unix, MacOS and Windows platforms makes the project less relevant.
Current
Trolltech released Qt 4 on June 28, 2005 and introduced five new technologies in the framework:
- Tulip A set of template container classes.
- Interview A model/view architecture for item views.
- Arthur A 2D painting framework.
- Scribe A Unicode text renderer with a public API for performing low-level text layout.
- MainWindow A modern action-based main window, toolbar, menu, and docking architecture.
Qt 4 is dual-licensed under GPL and proprietary licenses on all supported platforms including Windows (while Qt/Windows 3.3 is only released under a proprietary license).
History
Haavard Nord and Eirik Chambe-Eng (the original developers of Qt and the CEO and President of Trolltech respectively) began development of "Qt" in 1991, three years before the company was incorporated as Quasar Technologies, then changed the name to Troll Tech, and then to Trolltech.
The toolkit was called Qt because the letter Q looked beautiful in Haavard's Emacs font, and T was inspired by Xt, the X toolkit.
Controversy erupted around 1998 when it became clear that KDE was going to become one of the leading desktop environments for GNU/Linux. As KDE was based on Qt, many people in the open source and free software movements were worried that an essential piece of one of their major operating systems would be under commercial control.
This gave rise to two efforts: the Harmony toolkit which sought to duplicate the Qt Toolkit under a free software license and the GNOME desktop that was meant to supplant KDE entirely. The GNOME Desktop uses the GTK+ toolkit which was written for the GIMP, and mainly uses the C programming language.
Until version 1.45, Qt used the FreeQt license — which was neither open source nor free software because while the source was available it did not allow the redistribution of modified versions. With the release of version 2.0 of the toolkit, the license was changed to the Q Public License (QPL), a free software license but one regarded by the FSF as incompatible with the GPL. Compromises were sought between KDE and Trolltech wherein Qt would not be able to fall under a more restrictive license than the QPL, even if Trolltech was bought out or went bankrupt. This led to the creation of the [http://www.kde.org/whatiskde/kdefreeqtfoundation.php KDE Free Qt foundation], which guarantees that Qt would fall under a BSD license should no open source version of Qt be released during 12 months.
The first versions of Qt had only two flavours: Qt/X11 for Unix and Qt/Windows for the Windows platform. The Windows platform was only available under the commercial license. In the end of 2001, Trolltech released Qt 3.0 which added support for the Mac OS X platform. The Mac OS X support was available only in the commercial license, until June 2003, where Trolltech released the version 3.2 with Mac OS X support available under the GPL license. Then came June 2005, with the addition of the Windows platform to the Open Source edition. Qt4 hence support the same set of platforms in the commercial edition as in the Open Source editions.
Design
The innovation of Qt when it was first released relied on a few key concepts.
Complete abstraction of the gui
Qt uses its own paint engine and controls. It emulates the look of the different platforms it runs on. This made the
porting work easier because very few classes in Qt depended really on the
target platform. The drawback is that Qt had to emulate precisely the look of
the different platforms. This drawback however no longer applies because the
latest versions of Qt use the native styles API of the different platforms to
draw the Qt controls.
Other portable graphical toolkits have made a different design decision, such as wxWidgets, MFC (Windows only), GTK+, and the Java based SWT[http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html] which use the toolkit of the target platform for their implementation.
Meta Object Compiler
Known as the moc, this is a tool that one must run on
the sources of a Qt program prior to compiling it. The tool will generate "Meta
Information" about the class used in the program. This meta information is
used by Qt to provide programming features not available in C++:
Introspection, signal/slot system
The use of an additional tool has been criticised by part of
the C++ community stating that Qt programming is no longer C++. In particular,
the choice of an implementation based on macro has been criticized for its
absence of type safety and pollution of the namespace. This is viewed by Trolltech as a necessary trade off to provide introspection and dynamically generated slots or signals. Further, when Qt 1.x was released, consistency between compiler template implementations could not be relied upon. A more thorough explanation of why Trolltech decided against using templates can be found [http://doc.trolltech.com/4.0/templates.html here].
External links
- [http://www.trolltech.com Trolltech homepage]
- [http://doc.trolltech.com/3.3/ Qt 3.3 Reference Documentation]
- [http://doc.trolltech.com/4.0/ Qt 4.0 Reference Documentation]
- [http://www.trolltech.com/download/opensource.html Qt 4.0 Open Source Edition download link]
- [http://developer.kde.org/documentation/books/kde-2.0-development/ch19lev1sec2.html The GPL Versus Qt "War" (19.2.3)]
- [http://weblogs.mozillazine.org/gerv/archives/007490.html How Qt's proprietary license agreement works]
- [http://www.digitalfanatics.org/projects/qt_tutorial/ The Independent Qt Tutorial]
Category:KDE
Category:Widget toolkits
Category:X Window System
Unix
Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. Today's Unix systems are split into various branches, developed over time by AT&T, several other commercial vendors, as well as several non-profit organizations.
Unix was designed to be portable, multi-tasking and multi-user. The Unix systems are characterized by various concepts: plain text files, command line interpreter, hierarchical file system, treating devices and certain types of inter-process communication as files, etc. In software engineering, Unix is mainly noted for its use of the C programming language and for the Unix philosophy.
The present owner of the UNIX trademark is The Open Group, while the present claimants on the rights to the UNIX source code are The SCO Group and Novell. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX" (others are called "UNIX system-like" or Unix-like).
During the late 1970s and early 1980s, Unix's influence in academic circles led to massive adoption (particularly of the BSD variant, originating from the University of California, Berkeley) of Unix by commercial startups, the most notable of which is Sun Microsystems.
Sun Microsystems
History
1960s and 1970s
In the 1960s, the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric worked on an experimental operating system called Multics (Multiplexed Information and Computing Service), which was designed to run on the GE-645 mainframe computer. The aim was the creation of an interactive operating system with many novel capabilities, including enhanced security. The project did develop production releases, but initially these releases turned out to have poor performance.
AT&T Bell Labs pulled out and deployed its resources elsewhere. One of the developers on the Bell Labs team, Ken Thompson, continued to develop for the GE-645 mainframe, and wrote a game for that computer called Space Travel. However, he found that the game was slow on the GE machine and was costly, apparently costing $75 per go in scarce computing time.
Thompson thus re-wrote the game in DEC PDP-7 Assembly language with help from Dennis Ritchie. This experience, combined with his work on the Multics project, led Thompson to start a new operating system for the DEC PDP-7. Thompson and Ritchie led a team of developers, including Rudd Canaday, at Bell Labs developing a file system as well as the new multi-tasking operating system itself. They included a command interpreter and some small utility programs as well. This project was called Unics, short for Uniplexed Information and Computing System, and could support two simultaneous users. The name has been attributed to Brian Kernighan, and was a hack on Multics. Following bad puns of Unics (homophone of eunuchs) being a castrated Multics, the name was later changed to Unix, and thus a legacy was born. The name is also a criticism of the overly general and bloated Multics system - Unix would do one thing, and do it well.
Up until this point there had been no financial support from Bell Labs, when the Computer Science Research Group wanted to use Unix on a much larger machine than the PDP-7. Thompson and Ritchie managed to trade the promise of adding text processing capabilities to Unix for a PDP-11/20 machine, and this itself led to some financial support from Bell. For the first time in 1970, the Unix Operating System was officially named and ran on the PDP-11/20. It added a text formatting program called roff and a text editor. All three were written in PDP-11/20 assembly language. This initial "text processing system", made up of Unix, roff, and the editor, was used by Bell Labs for text processing of patent applications at Bell. Runoff soon evolved into troff, the first electronic publishing program with a full typesetting capability. The UNIX Programmer's Manual was published on November 3, 1971.
In 1973, the decision was made to re-write Unix in the C programming language. The change meant that Unix could later easily be modified to work on other machines (thus becoming portable), and other variations could be created by other developers. The code was now more concise and compact, leading to an acceleration in the development of Unix. AT&T made Unix available to universities and commercial firms, as well as the United States government under licenses. The licenses included all source code except for the machine-dependent kernel, which was written in PDP-11 assembly code. However, bootleg copies of the annotated Unix machine-dependent kernel circulated widely in the late 1970's in the form of a much-copied book by John Lions of the University of New South Wales in Australia (the Lions' Commentary on UNIX 6th Edition, with Source Code), which led to considerable adoption of Unix as an educational operating system.
Development expanded, with Versions 4, 5 and 6 being released by 1975. These versions added pipes, leading to the development of a more modular code-base, increasing development speed still further. V5 and especially V6 led to a plethora of different Unix versions both inside and outside Bell Labs, including PWB/UNIX, IS/1 (the first commercial Unix), and the University of Wollongong's port to the Interdata 7/32 (the first non-PDP Unix).
In 1978, UNIX/32V, for the VAX, was released. By this time, over 600 machines were running Unix in some form. Version 7 Unix, the last version of Research Unix to be released widely, was released in 1979. Versions 8, 9 and 10 were developed through the 1980s but were only ever released to a few universities, though they did generate papers describing the new work. This research led to the development of Plan 9, a new portable distributed system.
1980s
AT&T now developed UNIX System III, based on Version 7, as a commercial version and sold the product directly, the first version launching in 1982. However its subsidiary, Western Electric, continued to sell older Unix versions, based on the UNIX System (Versions 1 to 7). To end the confusion between all the differing versions, AT&T combined various versions developed at other universities and companies into UNIX System V Release 1. This introduced features such as the vi editor and curses from the Berkeley Software Distribution of Unix developed at the University of California, Berkeley (UCB). This also included support for the DEC VAX machine.
The new commercial Unix releases however no longer included the source code and so UCB continued to develop BSD Unix as an alternative to UNIX System III and V, originally on the PDP-11 architecture (the BSD 2.x releases, ending with 2.10). Perhaps the most important aspect of the BSD development effort was the addition of TCP/IP network code to the mainstream Unix kernel. The BSD effort produced eight significant releases that contained network code: 4.1c, 4.2, 4.3, 4.3-Tahoe ("Tahoe" being the nickname of the CCI Power 6/32 architecture that was the first non-DEC port of the BSD kernel), 4.3-Reno (to match the "Tahoe" naming, and that the release was something of a gamble), Net2, 4.4, and 4.4-lite. The network code found in these releases is the ancestor of almost all TCP/IP network code in use today, including code that was later released in AT&T System V UNIX and Microsoft Windows. The accompanying Berkeley Sockets API is a de facto standard for networking APIs and has been copied on many platforms.
Other companies began to offer commercial versions of the UNIX System for their own mini-computers and workstations. Most of these new Unix flavors were developed from the System V base under a license from AT&T. Others chose BSD instead. One of the leading developers of BSD, Bill Joy, went on to co-found Sun Microsystems in 1982 and create SunOS (now Solaris) for their workstation computers. In 1980, Microsoft announced its first Unix for 16-bit microcomputers called Xenix, which the Santa Cruz Operation (SCO) ported to the Intel 8086 processor in 1983, and eventually branched Xenix into SCO UNIX in 1989.
In 1984, an industry group called X/Open was formed, with the aim of forming compatible open systems, that is, standardize the UNIX systems.
AT&T added various features into UNIX System V, such as file locking, system administration, job control (modelled on ITS), streams, the Remote File System and TLI. AT&T cooperated with Sun Microsystems and between 1987 and 1989 merged Xenix, BSD, SunOS, and System V into System V Release 4 (SVR4), independently of X/Open. This new release consolidated all the previous features into one package, and threatened the end of competing versions. It also greatly increased licensing fees.
1990s
In 1990, the Open Software Foundation released OSF/1, their standard Unix implementation, and it was more closely based on BSD than on SVR4. The Foundation was started in 1988 and was funded by several Unix-related companies that wished to counteract the collaboration of AT&T and Sun on SVR4. Subsequently, AT&T and another group of licensees formed the group "UNIX International" in order to counteract OSF. This escalation of conflict between competing vendors gave rise to the syntagma "Unix wars".
In 1991, a group of BSD developers (Donn Seeley, Mike Karels, Bill Jolitz, and Trent Hein) left the University of California to found Berkeley Software Design, Inc (BSDI). BSDI was the first company to produce a fully-functional commercial version of BSD Unix for the inexpensive and ubiquitous Intel platform, which started a wave of interest in the use of inexpensive hardware for production computing. Shortly after it was founded, Bill Jolitz left BSDI to pursue distribution of 386BSD, commonly identified as the free software ancestor of FreeBSD, OpenBSD, and NetBSD.
By 1993 most of the commercial vendors of Unix had changed their commercial variants of Unix to be based upon SVR4, and many BSD features were added on top. In 1994, OSF stopped the development of OSF/1, as the only vendor using it was DEC, who branded it Digital UNIX.
Shortly after UNIX System V Release 4 was produced, AT&T sold all its rights to UNIX to Novell. Dennis Ritchie, one of the creators of Unix, likened this to the Biblical story of Esau selling his birthright for some lentils [http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=7379%40ucsbcsl.ucsb.edu&rnum=1&prev=/groups%3Fq%3Ddennis%2Britchie%2Blentil%2Bbirthright%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D7379%2540ucsbcsl.ucsb.edu%26rnum%3D1]. Novell developed its own version, UnixWare, merging its Netware with UNIX System V Release 4. Novell tried to use this to battle against Windows NT, but their core markets suffered considerably.
In 1994, Novell decided to split the bundle of UNIX-related assets and sell parts of them. The UNIX trademark and the certification rights were sold to the X/Open Consortium. In 1996, X/Open merged with OSF, creating the Open Group. Various standards by the Open Group now define what is and what is not a "UNIX" operating system, notably the post-1998 Single UNIX Specification.
In 1995, the business of administration and support of the existing UNIX licenses plus rights to further develop the SystemV code base were transferred to the Santa Cruz Operation. Whether Novell also sold the copyrights is currently the subject of litigation (see below).
2000s
In 2000, the Santa Cruz Operation sold its entire UNIX business and assets to Caldera Systems, which later on changed its name to The SCO Group. This new player then started a huge legal campaign against various users and vendors of Linux. The SCO Group has offered various legal theories over the course of several cases. Some of these allege that Linux contains copyrighted Unix code now owned by The SCO Group. Others allege trade-secret violations by IBM, or contract violations by former Santa Cruz customers who since converted to Linux. The most far-reaching theory is that development work that IBM did for AIX is considered a derivative work and therefore also owned by SCO. If this is upheld it would affect all Unix licensees.
Under a program called SCOsource, the SCO Group is now offering licenses to all companies and individuals wishing to use operating systems with code based on UNIX System V Release 4 (and their own release, UNIX System V, Release 5).
However, Novell disputed the SCO group's claim to hold copyright on the UNIX source base. According to Novell, SCO (and hence the SCO group) are effectively franchise operators for Novell, which also retained the core copyrights, veto rights over future licensing activities of SCO, and 95% of the licensing revenue. The SCO Group disagreed with this, and the dispute had resulted in the SCO v. Novell lawsuit.
In 2005, Sun Microsystems also released an open source version of Solaris, called OpenSolaris. The OpenSolaris codebase is intended to take advantage of outside contributions to provide the next versions of Solaris; in addition, it has spawned at least one non-Sun distribution in the form of Jörg Schilling's SchilliX.
The dot-com crash has led to significant consolidation of Unix users as well. Of the many commercial flavors of Unix that were born in the 1980s, only Hewlett-Packard's HP-UX, IBM's AIX, NeXT's NEXTSTEP (later OPENSTEP, now Mac OS X) and Sun's Solaris operating systems are still doing relatively well in the market; players such as Digital Equipment Corporation, Data General, and the original Santa Cruz Operation (now known as Tarantella) have been bought out or gone out of business. The rise of Linux and the open-source BSD implementations as a dominating force in the Unix space has also dealt a damaging blow to commercial Unix development, as some companies opt for open source over closed.
Standards
Beginning in the late 1980s, an open operating system standardization effort known as POSIX provided a common baseline for all operating systems; IEEE based POSIX around the structure of the Unix system. At around the same time a separate but very similar standard, the Single UNIX Specification, was also produced by the Open Group. Starting in 1998 these two standards bodies began work on merging the two standards, and the latest revisions of both are in fact identical.
In an effort towards compatibility, several Unix system vendors agreed on SVR4's ELF format as standard for binary and object code files. The common format allows substantial binary compatibility among Unix systems operating on the same CPU architecture.
The directory layout of some systems, particularly on Linux, is defined by the Filesystem Hierarchy Standard. This type of standard however is controversial among many, and even within the Linux community adoption is far from universal.
List of Unixes
This is a list of Unixes (sing. Unix). Each version of the UNIX Time-Sharing System evolved from the version before, with version one evolving from the prototypal Unics. Not all variants and descendants are displayed.
- Unics (⇢Unix) (1969)
- UNIX Time-Sharing System v1 (1971)
- UNIX Time-Sharing System v2 (1972)
- UNIX Time-Sharing System v3 (1973)
- UNIX Time-Sharing System v4 (1973)
- UNIX Time-Sharing System v5 (1974)
- UNSW 01 (1978)
- UNIX Time-Sharing System v6 (1974)
- MINI-UNIX (1977)
- PWB/UNIX 1.0 (1977)
- USG 1.0
- CB Unix 1
- UCLA Secure UNIX (1979)
- UNIX Time-Sharing System v7 (1979)
- Unix System III (1981)
- UNIX Time-Sharing System v8 (1985)
- UNIX Time-Sharing System v9 (1986)
- UNIX Time-Sharing System v10 (1989)
- Plan 9 from Bell Labs(1993)
AT&T UNIX Systems & descendants
Each of the systems in this list is evolved from the version before, with Unix System III evolving from both the UNIX Time-Sharing System v7 and the descendants of the UNIX Time-Sharing System v6.
- Unix System III (1981)
- Unix System IV (1982)
- Unix System V (1983)
- Unix System V Release 2 (1984)
- Unix System V Release 3.0 (1986)
- Unix System V Release 3.2 (1987)
- Unix System V Release 4 (1988)
- Unix System V Release 4.2 (1992)
- UnixWare 1.1 (1993)
- UnixWare 1.1.1 (1994)
- UnixWare 2.0 (1995)
- UnixWare 2.1 (1996)
- UnixWare 2.1.2 (1996)
- UnixWare 7 (1998)
- UnixWare 7.0.1 (1998)
- UnixWare 7.1 (1999)
- UnixWare 7.1.1 (1999)
- UnixWare NSC 7.1+IP (2000)
- UnixWare NSC 7.1+LKP (2000)
- UnixWare NSC 7.1DCFS (2000)
- Open Unix 8 (2001)
- Open Unix 8MP1 (2001)
- Open Unix 8MP2 (2001)
- Open Unix 8MP3 (2002)
- Open Unix 8MP4 (2002)
- SCO UnixWare 7.1.3 (2002)
- SCO UnixWare 7.1.3 Update Pack 1 (2003)
Free Unix-like operating systems
In 1983, Richard Stallman announced the GNU project, an ambitious effort to create a free software Unix-like system; "free" in that everyone who received a copy would be free to use, study, modify, and redistribute it. GNU's goal was achieved in 1992. Its own kernel development project, GNU Hurd, had not produced a working kernel, but a compatible kernel called Linux was released as free software in 1992 (under the GNU General Public License). These "GNU/Linux" systems are commonly referred to as just Linux. Work on GNU Hurd continues still, although very slowly.
In addition to their use in the GNU/Linux operating system, many GNU packages — such as the GNU Compiler Collection (and the rest of the GNU toolchain), the GNU C library and the GNU core utilities — have gone on to play central roles in other free Unix systems as well.
Distributions, comprising the GNU/Linux operating system plus large collections of compatible software have become popular both with hobbyists and in business. Two major distributions are Red Hat Linux and Debian GNU/Linux.
Yet GNU/Linux is not alone. With the 1994 settlement of a lawsuit UNIX Systems Laboratories brought against the University of California and Berkeley Software Design Inc. (USL v. BSDi), BSD Unix experienced a renewal. The lawsuit clarified that Berkeley had the right to distribute BSD Unix — for free, if it so desired. Soon, the BSD release was being developed in several different directions, becoming the projects now known as FreeBSD, NetBSD, OpenBSD and DragonFlyBSD.
GNU/Linux and the BSD kin are now rapidly occupying the market traditionally occupied by proprietary UNIX operating systems, as well as expanding into new markets such as the consumer desktop and mobile and embedded devices. A measure of this success may be seen when Apple sought out a new foundation for its Macintosh operating system: it chose NEXTSTEP, an operating system developed by NeXT with a freely redistributable core operating system, renamed Darwin after Apple's acquisition. It was based on the BSD family and the Mach kernel. The deployment of Darwin BSD Unix in Mac OS X makes it one of the most widely-used Unix based systems on the market.
Impact
The Unix system had a great impact on the surrounding community. Some consider it the most influential operating system in changing other proprietary operating systems, leading Unix to be called "the most important operating system you may never use."
Following the lead of Multics, it was written in high level language as opposed to assembler (assembler was in vogue at the time).
It had a drastically simplified file model compared to many contemporary operating systems. The file system hierarchy contained machine services and devices (such as printers, terminals, or disk drives), providing a superficially uniform interface, but at the expense of requiring indirect mechanisms such as IOCTL and mode flags to access features of the hardware that did not fit the simple "stream of bytes" model.
Unix also popularized the hierarchical file system with arbitrarily nested
subdirectories, originally introduced by Multics. Other common operating systems of the era had ways to divide a storage device into multiple directories or sections, but they were a fixed number of levels and often only one level. The major proprietary operating systems all added recursive subdirectory capabilities also patterned after Multics. DEC's RSTS programmer/project hierarchy evolved into VMS directories, CP/M's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's System 36 and OS/400 library systems were folded into broader POSIX file systems.
Making the command interpreter an ordinary user-level program, with additional commands provided as separate programs, was another Multics innovation popularized by Unix. The Unix shell used the same language for interactive commands as for scripting (shell scripts -- there was no separate job control language, like IBM's JCL for example). Since the shell and OS commands were "just another program", the user could choose (or even write) his/her own shell. Finally, new commands could be added without recompiling the shell. Unix's innovative command-line syntax for creating chains of producer-consumer processes (pipes) made a powerful programming technique (coroutines) widely available.
A fundamental simplifying assumption of Unix was its focus on ASCII text for 100% of its I/O package and the assumption that the machine word was a multiple of 8 bits in size. There were no "binary" editors in the original version of Unix - the entire system was configured using text shell commands and the least and greatest common denominator in the I/O system is the text byte - unlike "record-based" file systems in other computers. The focus on text for representing "everything" made Unix pipes useful. The focus on text and 8-bit bytes made the system far more scalable and portable than other systems. Over time text-based applications have also won in application areas, such as printing languages (PostScript - not Interpress - an earlier effort by the same people), and when feasible, at the application layer of the Internet Protocols, i.e. Telnet, FTP, SMTP, HTTP, SIP, XML, etc.
Unix popularised a syntax for regular expressions that found much wider use. The Unix programming interface became the basis for a standard operating system interface (POSIX, see above).
The C programming language, now ubiquitous in systems and applications programming, originated under Unix, and spread more quickly than Unix. The C language was the first agnostic language that did not attempt to force a coding style upon the programmer (e.g. support for 3 types of loops and all types of parameter passing.) The C language was the first programming languages to access a computer's full instruction set (e.g. masking, shifting, auto increment, auto decrement, jump tables, pointers.) However, the unsafeness of C leads to problems such as buffer overflows from C library functions such as gets() and scanf(), which are behind many notorious bugs, including one exploited by the Morris worm.
Early Unix developers were important in bringing the theory of software modularity and re-use into engineering practice.
Unix provided the TCP/IP networking protocol on relatively inexpensive computers, which later resulted in the Internet explosion of world-wide real-time connectivity. This quickly exposed several major security holes in the Unix architecture, kernel, and system utilities.
Over time, the leading developers of Unix (and programs that ran on it) developed a set of cultural norms for developing software, norms which became as important and influential as the technology of Unix itself. See Unix philosophy for more information.
Branding
In 1994, Novell, the company that owned the rights to the Unix System V source at the time, sold the trademarks of Unix to the X/Open Company (now The Open Group), and sold the related business operations to Santa Cruz Operation. Whether Novell also sold the copyrights to the actual software is currently the subject of litigation in SCO v. Novell.
By decree of The Open Group, the term "UNIX" refers more to a class of operating systems than to a specific implementation of an operating system; those operating systems which meet The Open Group's Single UNIX Specification should be able to bear the "UNIX" and UNIX98 trademarks today, after the operating system's vendor pays a fee to The Open Group. Systems licensed to use the UNIX® trademark include AIX, HP-UX, IRIX, Solaris, Tru64, A/UX and a part of z/OS.
In practice, the term, especially when written as "UN - X", " - NIX", or " - N?X" is applied to a number of other multiuser POSIX-based systems such as GNU/Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD that do not seek UNIX branding because the royalties would be too expensive for a product marketed to consumers or freely available over the Internet; such systems claim that the term has now become a genericized trademark. To avoid this, The Open Group requests that "UNIX" is always used as an adjective followed by a generic term such as "system".
The term "Unix" is also used, and in fact was the original capitalisation, but the name UNIX stuck because, in the words of Dennis Ritchie "when presenting the original Unix paper to the third Operating Systems Symposium of the American Association for Computing Machinery, we had just acquired a new typesetter and were intoxicated by being able to produce small caps" (quoted from the Jargon File, version 4.3.3, 20 September 2002). Additionally, it should be noted that many of the operating system's predecessors and contemporaries used all-uppercase lettering, because many computer terminals of the time could not produce lower-case letters, so many people wrote the name in upper case due to force of habit.
Several plural forms of Unix are used to refer to multiple brands of Unix and Unix-like systems. Most common is the conventional "Unixes", but the culture that created Unix has a penchant for playful use of language, and "Unices" (treating Unix as Latin word) is also popular. The Anglo-Saxon plural form "Unixen" is not common, although occasionally seen.
Canonical Unix Commands
The most basic Unix commands and utilities are:
- Directory and file creation and navigation: ls cd pwd mkdir rm rmdir cp find
- File viewing and editing: touch more ed vi emacs ex
- Text processing: echo cat grep sort uniq sed awk tail tee head cut tr split printf
- File comparison: comm cmp diff patch
- Misc shell tools: yes test xargs
- System administration: chmod chown ps su w who
- Communication: mail telnet ftp finger ssh
- Shells: sh bash csh ksh tcsh
These are the 60 user commands from section 1 of the First Edition:
ar as b bas bcd boot cat chdir check chmod chown cmp cp date db dbppt dc df dsw dtf du ed find for form hup lbppt ld ln ls mail mesg mkdir mkfs mount mv nm od pr rew rkd rkf rkl rm rmdir roff sdate sh stat strip su sum tap tm tty type un wc who write
For a more complete and modern list, see the list of Unix programs.
Sources
- Salus, Peter H.: A Quarter Century of UNIX, Addison Wesley, June 1, 1994; ISBN 0201547775
-
-
See also
- Plan 9 - the successor of Unix developed at Bell Labs by Ken Thompson and others.
- BSD license
- Lions' Commentary on UNIX 6th Edition, with Source Code documents the 6th edition of Unix.
- Unix pipes
- Filter (Unix)
- Pipeline (Unix)
- Rare mode
- Single UNIX Specification
- UNIX-HATERS Handbook
- Unix devices
- /dev/null - the 'bit bucket'
- /dev/urandom and /dev/random - hardware random number generators
- /dev/zero - a zero generator
- Unix-like
- GNU
- GNU Hurd
- Cygwin
- MinGW
- Minix
- further BSD descendants
- List of Unix daemons
- Unix manual
- Unix wars
- Computer term origins
- Comparison of file systems
- Open system
- Open standard
- Open format
- Opendocument
- Vendor lock-in
- Embrace, extend and extinguish
- Network effect
External links
- [http://www.bell-labs.com/history/unix/ The Creation of the UNIX Operating System]
- [http://www.tuhs.org/ Unix heritage (more links)]
- [http://www.collyer.net/who/geoff/history.html UNIX Evolution]([http://www.collyer.net/who/geoff/history.ps PostScript]) by Ian F. Darwin and Geoffrey Collyer
- [http://dmoz.org/Computers/Software/Operating_Systems/Unix/ Unix @ dmoz.org]
- http://www.UNIX-systems.org/ -- The Open Group UNIX System Homepage
- [http://www.softpanorama.org/History/Unix/index.shtml Unix History with Some Emphasis on Scripting] Softpanorama Unix history page
- http://www.roesler-ac.de/wolfram/acro/index.htm -- The Unix Acronym List
- [http://minnie.tuhs.org/UnixTree/ The Unix Tree]
- [http://public.planetmirror.com/pub/ancient-unix/ Ancient UNIX]
- [http://www.thomasscoville.com/PCarticle.html Unix As Literature]
- [http://www.levenez.com/unix/history.html Large graphical family tree of Unices]
Category:Operating systems
Category:Unix
ko:유닉스
ms:UNIX
ja:UNIX
simple:Unix
th:ยูนิกซ์
Unix-likeA "Unix-like" operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. The term can include free software / open source operating systems inspired by Bell Labs' Unix or designed to emulate its features, commercial and proprietary work-alikes, and even versions based on the licensed Unix source code (which may be deemed so "Unix-like" that they are certified to bear the "UNIX" trademark). There is no formal standard for defining the term, and some difference of opinion is possible as to whether a certain OS is "Unix-like" or not.
open source
The term "Unix-like" and the UNIX trademark
The Open Group owns the UNIX® trademark and administers the Single UNIX Specification, with the "UNIX" name being used as a certification mark. They do not approve of the construction "Unix-like", and consider it misuse of their trademark. Their guidelines require "UNIX" to be presented in uppercase or otherwise distinguished from the surrounding text, strongly encourage using it as a branding adjective for a generic word such as "system", and discourage its use in hyphenated phrases. The closest phrase they consider correct is "UNIX system-like". [http://www.opengroup.org/tm-guidelines.htm]
Other parties frequently disregard these guidelines, wilfully treating "Unix" as a generic noun or descriptor for operating systems that are not necessarily covered by the "UNIX" trademark, in much the same way that "Band-Aid" is used in reference to any bandage or "Xerox" to any photocopier. Some abbreviate or "wildcard" the name as "Un - x", " - nix", or some similar construction, which is also contrary to Open Group guidelines. These euphemistic spellings were derived as a way to say "Unix" without formally saying it. They were inspired in part by a tendency for Unix-like systems to be given names resembling "Unix", particularly ending in "x", such as AIX, IRIX, Linux, Minix, Ultrix, and Xenix. Few of these names actually match " - nix". However, wildcards like " - nix" are often meant to match any Unix descendant system, even those with completely dissimilar names, such as Solaris or FreeBSD.
There is an active legal battle in the TTAB of the USPTO between Wayne R. Gray and Open Group that is centered around the use of the UNIX "trademark" [http://ttabvue.uspto.gov/ttabvue/v?qt=adv&pno=&qs=&propno=75680034&propnameop=&propname=&pop=&pn=&pop2=&pn2=&cop=&cn=]. TTAB court documents indicate that Gray's legal team is seeking for the Open Group to provide documentation for their trademark claim.
Categories
Dennis Ritchie, one of the original creators of Unix, has expressed his opinion that Unix-like systems such as Linux are de facto Unix systems. Eric S. Raymond has suggested that there are three kinds of Unix-like systems:
- Genetic Unix -- those systems with a historical connection to the AT&T codebase. Most but not all commercial Unix systems fall into this category, as do the BSD systems, descendants of work done at the University of California at Berkeley in the late 70s and early 80s. Some of these systems have no original AT&T code but can still trace their ancestry to AT&T designs.
- Trademark or Branded Unix -- These systems — largely commercial in nature — have been determined by the Open Group to meet the Single UNIX Specification and are allowed to carry the UNIX® name. Most such systems are commercial derivatives of the System V code base in one form or another, though a few (such as IBM's z/OS) earned the trademark through a POSIX compatibility layer and are not otherwise inherently Unix systems. Many Ancient UNIX systems no longer meet this definition.
- Functional Unix -- Broadly, any Unix-like system that behaves in a manner roughly consistent with the Unix specification; more specifically, can be used to refer to systems such as GNU/Linux or Minix that behave similarly to a Unix system but have no genetic or trademark connection to the AT&T code base. Most free/open-source implementations of the Unix design, whether Genetic Unix or not, fall into the restricted definition of this third category due to the expense of obtaining Open Group certification.
Development of Unix-like systems
"Unix-like" systems started to appear in the late-70s and early-80s. Many proprietary versions, such as Idris (1978), Coherent (1983), and UniFlex (1985), aimed to provide businesses with the func |