Root page for application servers.
place holder for JEE app servers.
Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license. Geronimo is currently compatible with the Java Enterprise Edition (Java EE) 5.0 specification.
IBM has provided considerable support to the project through marketing, code contributions, and the funding of several project committers. In October 2005, IBM announced a free edition of its WebSphere application server named Websphere Application Server Community Edition based on Geronimo. Other commercial supporters include AMD, Chariot Solutions, Simula Labs and Virtuas.
Components
Like an enterprise operating system, Geronimo is built on a kernel -- a microkernel that lays the foundation for everything above it. Geronimo's kernel is Java EE agnostic. Its sole purpose is to manage Geronimo's building blocks. Geronimo is marked by an architectural design which is based on the concept of Inversion of Control (IoC) (sometimes called Dependency Injection), which means that the kernel has no direct dependency on any of its components. The kernel is a framework for services that controls the service life cycle and registry. The kernel is based on Java EE. It works with Java EE services and components to build specific configurations -- one of which is a full Java EE solution stack.
A majority of the Geronimo services are added and configured through GBeans to become a part of the overall application server. A GBean is the interface that connects the component to the kernel. Each GBean can maintain state, depend on, and interrelate with other GBeans, and operate on events from the kernel and other GBeans. The GBeans interface makes it possible to switch between two servlet containers, for example Jetty or Tomcat without affecting the whole architecture using a GBeans interface. This flexible architecture makes it possible for the Geronimo developers to integrate several existing, field-tested open source software projects.
Here a list of the open source components that are included in the Geronimo project.
Component Description
Apache Tomcat HTTP server and Servlet container supporting Java Servlet 2.5 and JavaServer Pages (JSP) 2.1.
Jetty HTTP server and Servlet container supporting Java Servlet 2.5 and JavaServer Pages 2.1 -- an alternative to the Tomcat server.
Apache ActiveMQ Open source Java Message Service (JMS) 1.1 applications provider and supporter of message-driven beans (MDBs).
Apache OpenEJB Open source Enterprise JavaBeans (EJB) Container System and EJB Server that supports Enterprise JavaBeans at the 3.0 level, including Container Managed Persistence 2 (CMP2) and EJB Query Language (EJBQL).
Apache OpenJPA Open source Java Persistence API (JPA) 1.0 implementation.
Apache ServiceMix Open source Enterprise Service Bus (ESB) and component suite based on the Java Business Integration (JBI) standard on JSR 208.
Apache Axis and Apache Scout Axis is a Simple Object Access Protocol (SOAP) implementation, while Scout is a JSR 93 (JAXR) implementation. These provide support for Web Services and Web Services Interoperability Organization (WS-I) Basic Profile support.
Apache CXF Web Services frameworks with variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
Apache Derby Full-fledged relational database management system (RDBMS) with native Java Database Connectivity (JDBC) support.
Apache WADI Clustering, load balancing and failover solution for the web application container tier .
MX4J Java Management Extensions that supplies tools for managing and monitoring applications, system objects, devices and service oriented networks.
Note (1): The project is currently in incubation under the Apache Incubator
(Taken from http://en.wikipedia.org/wiki/Apache_Geronimo on 3/22/2010)
GlassFish is an open source application server project led by Sun Microsystems for the Java EE platform. The proprietary version is called Sun GlassFish Enterprise Server. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception.
GlassFish is based on source code released by Sun and Oracle Corporation's TopLink persistence system. It uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java NIO for scalability and speed.
Releases
The project was launched on 6 June 2005. On 4 May 2006, Project GlassFish released the first version that supports the Java EE 5 specification.
On 8 May 2007 Project SailFin was announced at JavaOne as a sub-project under Project GlassFish. Project SailFin aims to add Session Initiation Protocol (SIP) servlet functionality to GlassFish.
On 17 September 2007 the GlassFish community released version 2 (aka Sun Java System Application Server 9.1) with full enterprise clustering capabilities, Microsoft-interoperable Web Services.
On 21 January 2009 Sun Microsystems and the community released version GlassFish 2.1 (aka Sun GlassFish Enterprise Server 2.1) which serves as the basis for the Sailfin SIP AppServer project (aka Sun Communication Application Server).
On 10 December 2009 Glassfish v3 was released. Being the Java EE reference implementation, this was the first AS to completely implement Java EE 6. In this version GlassFish adds new features to ease migration from Tomcat to GlassFish. The other main new features are around modularity (GlassFish v3 Prelude already shipped with an Apache Felix OSGi runtime), startup time (a few seconds), deploy-on-change (provided by NetBeans and Eclipse plugins), and session preservation across redeployments.
(Taken From http://en.wikipedia.org/wiki/GlassFish on 3/22/2010)
Apache Tomcat (or Jakarta Tomcat or simply Tomcat) is an open source servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run.
Tomcat should not be confused with the Apache web server, which is a C implementation of an HTTP web server; these two web servers are not bundled together. Apache Tomcat includes tools for configuration and management, but can also be configured by editing XML configuration files.
Components
Tomcat version 4.x was released with Jasper (a redesigned JSP engine), Catalina (a redesigned servlet container) and Coyote (an HTTP connector).
Catalina
Catalina is Tomcat's servlet container. Catalina implements Sun Microsystems' specifications for servlet and JavaServer Pages (JSP). The architect for Catalina was Craig McClanahan.
Coyote
Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1 protocol for the web server or application container. Coyote listens for incoming connections on a specific TCP port on the server and forwards the request to the Tomcat Engine to process the request and send back a response to the requesting client.
Jasper
Jasper is Tomcat's JSP Engine. Tomcat 5.x uses Jasper 2, which is an implementation of the Sun Microsystems's JavaServer Pages 2.0 specification. Jasper parses JSP files to compile them into Java code as servlets (that can be handled by Catalina). At runtime, Jasper is able to automatically detect JSP file changes and recompile them.
Jasper 2
From Jasper to Jasper 2, important features were added:
JSP Tag library pooling - Each tag markup in JSP file is handled by a tag handler class. Tag handler class objects can be pooled and reused in the whole JSP servlet.
Background JSP compilation - While recompiling modified JSP Java code, the older version is still available for server requests. The older JSP servlet is deleted once the new JSP servlet has been recompiled.
Recompile JSP when included page changes - Pages can be inserted and included into a JSP at compile time. The JSP will not only be automatically recompiled with JSP file changes but also with included page changes.
JDT Java compiler - Jasper 2 can use the Eclipse JDT Java compiler instead of Ant and javac.
(Taken from http://en.wikipedia.org/wiki/Apache_Tomcat on 3/22/2010)
History
Tomcat started off as a servlet reference implementation by James Duncan Davidson, a software architect at Sun Microsystems. He later helped make the project open source and played a key role in its donation by Sun to the Apache Software Foundation. The Apache Ant software build automation tool was developed as a side-effect of the creation of Tomcat as an open source project.
Davidson had initially hoped that the project would become open sourced and, since many open source projects had O'Reilly books associated with them featuring an animal on the cover, he wanted to name the project after an animal. He came up with Tomcat since he reasoned the animal represented something that could fend for itself. Although the tomcat was already in use for another O'Reilly title, his wish to see an animal cover eventually came true when O'Reilly published their Tomcat book with a snow leopard on the cover.[1]
Apache Tomcat versions
Version Release Date Description
3.0.x. (initial release) 1999 Merger of donated Sun Java Web Server code and ASF and Implements Servlet 2.2 and JSP 1.1 specifications.
3.3.2 March 9, 2004 Last of the 3.x releases.
4.1.31 October 11, 2004
4.1.36 March 24, 2007
4.1.39 December 3, 2008
4.1.40 June 25, 2009 Latest 4.x release.
5.0.0 October 9, 2002
5.0.23
5.0.24 May 9, 2004
5.0.28 August 28, 2004
5.0.30 August 30, 2004
5.5.0 August 31, 2004
5.5.1 September 7, 2004
5.5.4 November 10, 2004
5.5.7 January 30, 2005
5.5.9 April 11, 2005
5.5.12 October 9, 2005
5.5.15 January 21, 2006
5.5.16 March 16, 2006
5.5.17 April 28, 2006
5.5.20 September 1, 2006
5.5.23 March 2007
5.5.25 September 2007
5.5.26 February 2008
5.5.27 September 8, 2008
5.5.28 September 4, 2009 Latest 5.x release.
6.0.0 December 1, 2006
6.0.10 March 1, 2007
6.0.13 May 15, 2007
6.0.14 August 13, 2007
6.0.16 February 7, 2008
6.0.18 July 31, 2008
6.0.20 June 3, 2009
6.0.24 January 21, 2010
6.0.26 March 11, 2010 Current version.
(Taken from http://en.wikipedia.org/wiki/Apache_Tomcat on 3/22/2010)
JBoss Application Server (or JBoss AS) is a free software/open-source Java EE-based application server. Because it is Java-based, the JBoss application server operates cross-platform: usable on any operating system that Java supports. JBoss AS was developed by JBoss, now a division of Red Hat.
Versions
JBoss AS 4.0, a Java EE 1.4 application server, features an embedded Apache Tomcat 5.5 servlet container. It supports any Java Virtual Machine between versions 1.4 and 1.6. JBoss can run on numerous operating systems including many POSIX platforms (like Linux, FreeBSD and Mac OS X), Microsoft Windows and others, as long as a suitable JVM is present.
JBoss AS 4.2 also functions as a Java EE 1.4 application server, but deploys Enterprise JavaBeans 3.0 by default. It requires the Java Development Kit version 5. Tomcat 5.5 comes bundled with it.
JBoss AS 5.1, the current version as of 2009, operates as a Java EE 5 application server. It is a minor update of the major release Jboss AS 5.0, which had been in development for 3+ years and is built on top of a new JBoss microcontainer.[1] Jboss AS 5.1 contains a preview of some elements from the not yet released Java EE 6 specification.
Clustering
Failover (including sessions)
Load balancing
Distributed caching (using JBoss Cache, a standalone product)
Distributed deployment (farming)
Deployment API
Management API
Aspect-Oriented Programming (AOP) support
JSP/Servlet 2.1/2.5 (Tomcat)
JavaServer Faces 1.2 (Mojarra)
Enterprise Java Beans versions 3 and 2.1
JNDI (Java Naming and Directory Interface)
Hibernate-integration (for persistence programming; JPA)
JDBC
JTA (Java Transaction API)
Support for Java EE-Web Services like JAX-WS
SAAJ (SOAP with Attachments API for Java)
JMS (Java Message Service) integration
JavaMail
RMI-IIOP (JacORB, alias Java and CORBA)
JAAS (Java Authentication and Authorization Service)
JCA (Java Connector Architecture)-integration
JACC (Java Authorization Contract for Containers)-integration
Java Management Extensions
(From http://en.wikipedia.org/wiki/JBoss 3/22/2010)
Marc Fleury started the JBoss project in 1999 in order to advance his middleware research interests. JBoss Group, LLC was incorporated in 2001 in Atlanta, Georgia. JBoss became a corporation under the name JBoss, Inc. in 2004. It was a C corporation headquartered in Atlanta, GA which owned the copyright and trademarks associated with JBoss.
In early 2006, Oracle Corporation, a major distributor of database software, had been looking to buy JBoss Inc. for an estimated $400 million. The acquisition would have enabled Oracle to compete with rivals BEA Systems and IBM in the middleware market (Oracle eventually acquired BEA in April 2008). On April 10, 2006, however, Red Hat announced that they were buying JBoss for $420 million. Red Hat and JBoss have since completed the acquisition.
(Taken from http://en.wikipedia.org/wiki/JBoss_(company) on March 22, 2010)
Various databases.
Apache CouchDB, commonly referred to as CouchDB, is a free and open source document-oriented database written in the Erlang programming language. It is designed for local replication and to scale vertically along a wide range of devices.
Overview
CouchDB is most similar to other document stores like MongoDB and Lotus Notes. It is not a relational database management system. Instead of storing data in rows and columns, the database manages a collection of JSON documents. The documents in a collection need not share a schema, but retain query abilities via views. Views are defined with aggregate functions and filters are computed in parallel, much like MapReduce.
Views are generally stored in the database and their indexes updated continuously, although queries may introduce temporary views. CouchDB supports a view system using external socket servers and a JSON based protocol. As a consequence, view servers have been developed in a series of languages.
CouchDB exposes a RESTful HTTP API and a large number of pre-written clients are available. Additionally, a plugin architecture allows for using different computer languages as the view server such as JavaScript (default), PHP, Ruby, Python and Erlang. Support for other languages can be easily added.
CouchDB was accepted into Apache incubation in February 2008 and became a top level project in November 2008. Despite its low version number of 0.10, it is already in use in many software projects and web sites, including Ubuntu, where it is used to synchronize address and bookmark data.
(From http://en.wikipedia.org/wiki/CouchDB on January 09, 2010)
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
2. You must cause any modified files to carry prominent notices stating that You changed the files; and
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Original Authors:
Damien Katz, Jan Lehnardt, Noah Slater, Christopher Lenz, J. Chris Anderson
Current committers:
Original developer and remains the project lead.
Worked on the original UNIX port and now works on all ends in CouchDB.
He is a freelancing CouchDB consultant and gives presentations around the
world.
Developed and maintains the Autotools build system and application
infrastructure. He is CouchDB’s release manager and maintains a number of
related packages for Debian GNU/Linux.
Developed and maintains Futon, the Web administration console. He works on
the JavaScript view engine, SpiderMonkey and MochiWeb integration in
addition to an external Python client.
Upgraded the Erlang JSON term format. Integrates community patches,
particularly related to the HTTP API and the MapReduce system. Gives talks and
presentations about CouchDB, with an eye toward recruiting more developers.
Developed features for the HTTP API as well as helped with recent upgrades
to the MapReduce system. Spends time tracking down various bugs reported in
JIRA.
Adam Kocoloski
Maintains and extends the replicator. Hacks on various other parts of the
core database.
Mark Hammond
Windows support.
Developed various authentication features including cookie-based
authentication and OAuth support.
MySQL is a relational database management system (RDBMS) which has more than 11 million installations. The program runs as a server providing multi-user access to a number of databases.
MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now a subsidiary of Sun Microsystems,[3] which holds the copyright to most of the codebase. The project's source code is available under terms of the GNU General Public License, as well as under a variety of proprietary agreements.
"MySQL" is officially pronounced /maɪˌɛskjuːˈɛl/ (My S Q L), not "My sequel" /maɪˈsiːkwəl/. This adheres to the official ANSI pronunciation; SEQUEL was an earlier IBM database language, a predecessor to the SQL language. The company does not take issue with the pronunciation "My sequel" or other local variations.
History
This article or section needs to be updated. Please update the article to reflect recent events or newly available information, and remove this template when finished.
Milestones in MySQL development include:
MySQL was first released internally on 23 May 1995
Windows version was released on January 8, 1998 for Windows 95 and NT
Version 3.23: beta from June 2000, production release January 2001
Version 4.0: beta from August 2002, production release March 2003 (unions)
Version 4.1: beta from June 2004, production release October 2004 (R-trees and B-trees, subqueries, prepared statements)
Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, XA transactions)
Version 5.1: currently pre-production (since November 2005) (event scheduler, partitioning, plugin API, row-based replication, server log tables)
Sun Microsystems acquired MySQL AB on 26 February 2008.
Future releases
The MySQL 5.1 roadmap outlines support for:
Pluggable storage engine API
Partitioning
Event Scheduling
XML functions
Row-based replication
Support for parallelization is also part of the roadmap for future versions.
Support for supplementary Unicode characters, beyond the 65536 characters of the Basic Multilingual Plane (BMP) is announced for MySQL 6.0.
Foreign key support for all storage engines is targeted for release in MySQL 6.1 (although it has been present since version 3.23.44 for InnoDB).
The current MySQL 5.1 development release is 5.1.29.
A new storage engine is also in the works, called Falcon. A preview of Falcon is already available on MySQL's website.
Support and licensing
Via MySQL Enterprise MySQL AB offers support itself, including a 24/7 service with 30-minute response time, the support team has direct access to the developers as necessary to handle problems. In addition it hosts forums and mailing lists, employees and other users are often available in several IRC channels providing assistance.
Buyers of MySQL Enterprise have access to binaries and software that is certified for their particular operating system, and access to monthly binary updates with the latest bug fixes. Several levels of Enterprise membership are available, with varying response times and features ranging from how to and emergency support through server performance tuning and system architecture advice. The MySQL Network Monitoring and Advisory Service monitoring tool for database servers is available only to MySQL Enterprise customers.
MySQL Server is available as free software under the GNU General Public License (GPL), and the MySQL Enterprise subscriptions include a GPL version of the server, with a traditional proprietary version available on request at no additional cost for cases where the intended use is incompatible with the GPL.
Both the MySQL server software itself and the client libraries are distributed under a dual-licensing format. Users may choose the GPL, which MySQL has extended with a FLOSS License Exception. It allows Software licensed under other OSI-compliant Open Source licenses, which are not compatible to the GPL, to link against the MySQL client libraries.
Customers that do not wish to be bound to the terms of the GPL may choose to purchase a proprietary license.
Like many open-source programs, the name "MySQL" is trademarked and may only be used with the trademark holder's permission.
Some users have independently continued to develop earlier versions of the client libraries, which was distributed under the less-restrictive GNU Lesser General Public License (LGPL).
Issues
There has been some controversy regarding the distribution of GPL licensed MySQL library files with other open source applications. The biggest controversy arose with PHP, which has a license incompatible with the GPL. This was later resolved when MySQL created a license exception that explicitly allows the inclusion of the MySQL client library in open source projects that are licensed under a number of OSI-compliant Open Source licenses, including the PHP License.
In September 2005, MySQL AB and SCO forged a partnership for "joint certification, marketing, sales, training and business development work for a commercial version of the database for SCO's new OpenServer 6 version of Unix". SCO raised controversy beginning in 2003 with a number of high-profile lawsuits related to the Linux Operating System. Various MySQL employees expressed that the company was committed to serving its end users, regardless of their operating system choice, that the company would leave it to the courts to resolve the SCO licensing controversy, and that other common open source databases have also been ported to, and support, SCO OpenServer.
In October 2005, Oracle Corporation acquired Innobase OY, the Finnish company that developed the InnoDB storage engine that allows MySQL to provide such functionality as transactions and foreign keys. A press release by Oracle that was issued after the acquisition, mentioned that the contracts that make the company's software available to MySQL AB would be due for renewal (and presumably renegotiation) some time in 2006. During the MySQL Users Conference in April 2006, MySQL issued a press release which confirmed that MySQL and Innobase OY agreed to a multi-year extension of their licensing agreement.
In February 2006, Oracle Corporation acquired Sleepycat Software, makers of the Berkeley DB, a database engine onto which another MySQL storage engine was built.
Criticism
It has been suggested that some of the information in this article's Criticism or Controversy section(s) be merged into other sections to achieve a more neutral presentation. (Discuss)
MySQL's divergence from the SQL standard regarding the treatment of NULL values and default values has been criticized. Its handling of dates in versions prior to 5.0 allows storing a date with a day beyond the last day of a month with fewer than 31 days, and arithmetic operations are vulnerable to either integer overflow or floating point truncation. Since version 5 of the server, the treatment of illegal values varies according to use of the "SQL Mode" set in the server, which is by default set to the unusually tolerant state that critics dislike.
When the beta version of MySQL 5.0 was released in March 2005, David Axmark, a co-founder of MySQL, said that "People have been criticizing MySQL since we started for not having stored procedures, triggers and views," and "We're fixing 10 years of criticism in one release." MySQL 5.0's 13 October build 5.0.15 was released for production use on 24 October 2005, after more than two million downloads in the 5.0 beta cycle.
Critical bugs sometimes do not get fixed for long periods of time. An example is a bug with status critical existing since 2003.
MySQL shows poor performance when used for Data Warehousing; this is partly due to inability to utilize multiple CPU cores for processing a single query.
The developer of the Federated Storage Engine states that "The Federated Storage Engine is a proof-of-concept storage engine" [1], though it was included and turned on by default in the main distributions of MySQL version 5.0. Some of the short-comings are documented in the "MySQL Federated Tables: The Missing Manual".
(From http://en.wikipedia.org/wiki/Mysql on November 25, 2008)
David Axmark is one of the founders of MySQL AB and a developer of the Free Software database server, MySQL. He has been involved with MySQL development from its beginning along with the fellow co-founder Michael Widenius.
David currently focuses on Open Source Licensing aspects, community relations and evangelism.
David has been involved with Free Software since 1980 and is committed to developing a successful business model using Free Open Source Software. [1]
(From wikipedia November 2, 2008)
Ulf Michael Widenius (often called Monty), born March 3, 1962, in Helsinki, Finland, is the main author of the original version of the open-source MySQL database and a founding member of the MySQL AB company.
After studying at (although not graduating from) the Helsinki University of Technology, Widenius started working for Tapio Laakso Oy in 1981. In 1985 he founded TCX DataKonsult AB (a Swedish data warehousing company) with Allan Larsson.[1] In 1995 he began writing the first version of the MySQL database with David Axmark, released in 1996. He is the co-author of the MySQL Reference Manual, published by O'Reilly in June 2002; and in 2003 he was awarded the Finnish Software Entrepreneur of The Year prize. Until MySQL AB's sale to Sun Microsystems in January 2008,[2] he was the chief technical officer of MySQL AB and still one of the primary forces behind the ongoing development of MySQL. During the 2007 MySQL Users Conference & Expo, Michael Widenius was awarded the honor of being the world's first MySQL Fellow [3] — the highest honor one can achieve from MySQL AB.
He lives in Helsinki with his second wife Anna and daughter Maria, and has a daughter My (MySQL is named after Monty Widenius's daughter, according to "History of MySQL") and a son Max (possibly giving the name for MaxDB) from his first marriage. According to the MySQL documentation's history, it is unclear and a mystery to MySQL founders themselves where the "My" prefix originated.
(from wikipedia November 2, 2008)
PostgreSQL is an object-relational database management system (ORDBMS). It is released under a BSD-style license and is thus free software. As with many other open-source programs, PostgreSQL is not controlled by any single company, but relies on a global community of developers and companies to develop it.
Product name
The mixed-capitalization of the PostgreSQL name can confuse some people on first viewing. The several pronunciations of 'SQL' can lead to this confusion. PostgreSQL's developers pronounce it /poːst ɡɹɛs kjuː ɛl/; (Audio sample, 5.6k MP3). It is also common to hear it abbreviated as simply "postgres", which was its original name. Because of ubiquitous support for the SQL Standard amongst most relational databases, the community considered changing the name back to Postgres. However, the PostgreSQL Core Team announced in 2007 that the product would continue to be named PostgreSQL. The name refers to the project's origins as a "post-Ingres" database, the original authors having also developed the Ingres database.
History
PostgreSQL evolved from the Ingres project at University of California, Berkeley. In 1982, the project leader, Michael Stonebraker, left Berkeley to commercialize Ingres. He returned to Berkeley in 1985 and started a post-Ingres project to address the problems with contemporary database systems that had become increasingly clear during the early 1980s. The new project, Postgres, aimed to add the fewest features needed to completely support types. These features included the ability to define types and to fully describe relationships – something used widely before but maintained entirely by the user. In Postgres, the database "understood" relationships, and could retrieve information in related tables in a natural way using rules. Postgres used many ideas of Ingres but not its code.
Starting in 1986, the team published a number of papers describing the basis of the system, and by 1988 had a prototype version. The team released version 1 to a small number of users in June 1989, then version 2 with a re-written rules system in June 1990. Version 3, released in 1991, again re-wrote the rules system, and added support for multiple storage managers and an improved query engine. By 1993 the great number of users began to overwhelm the project with requests for support and features. After releasing version 4 — primarily a cleanup — the project ended.
But open-source developers could obtain copies and develop the system further, because Berkeley had released Postgres under the BSD license. In 1994, Berkeley graduate students Andrew Yu and Jolly Chen replaced the Ingres-based QUEL query language interpreter with one for the SQL query language, creating Postgres95. The code was released on the web.
In July 1996, Marc Fournier at Hub.Org Networking Services provided the first non-university development server for the open source development effort. Along with Bruce Momjian and Vadim B. Mikheev, work began to stabilize the code inherited from Berkeley. The first open source version was released on August 1, 1996.
In 1996, the project was renamed to PostgreSQL to reflect its support for SQL. The first PostgreSQL release formed version 6.0 in January 1997. Since then, the software was maintained by a group of database developers and volunteers around the world, coordinating via the Internet.
Although the license allowed for the commercialization of Postgres, the code did not develop commercially at first — somewhat surprisingly considering the advantages Postgres offered. The main offshoot originated when Paula Hawthorn (an original Ingres team member who moved from Ingres) and Michael Stonebraker formed Illustra Information Technologies to commercialize Postgres.
In 2000, former Red Hat investors created the company Great Bridge to commercialize PostgreSQL and compete against commercial database vendors. Great Bridge sponsored several PostgreSQL developers and donated many resources back to the community, but by late 2001 closed due to tough competition from companies like Red Hat and to poor market conditions.
In 2001, Command Prompt, Inc. released Mammoth PostgreSQL, the oldest surviving commercial PostgreSQL distribution. It continues to actively support the PostgreSQL community through developer sponsorships and projects including PL/Perl, PL/php, and hosting of community projects such as the PostgreSQL Build Farm.
In January 2005, PostgreSQL received backing by database vendor Pervasive Software, known for its Btrieve product which was ubiquitous on the Novell NetWare platform. Pervasive announced commercial support and community participation and achieved some success. But in July 2006, it left the PostgreSQL support market.
In mid-2005 two other companies announced plans to commercialize PostgreSQL with focus on separate niche markets. EnterpriseDB added functionality to allow applications written to work with Oracle to be more readily run with PostgreSQL. Greenplum contributed enhancements directed at data warehouse and business intelligence applications, including the BizGres project.
In October 2005, John Loiacono, executive vice president of software at Sun Microsystems, commented: "We're not going to OEM Microsoft but we are looking at PostgreSQL right now," although no specifics were released at that time. By November 2005, Sun had announced support for PostgreSQL. By June 2006, Sun Solaris 10 (6/06 release) shipped with PostgreSQL.
In August 2007, EnterpriseDB announced the Postgres Resource Center and EnterpriseDB Postgres, designed to be a fully configured distribution of PostgreSQL including many contrib modules and add-on components. EnterpriseDB Postgres was renamed to Postgres Plus in March 2008.
The PostgreSQL project continues to make yearly major releases and minor "bugfix" releases, all available under the BSD license, based on contributions from both commercial vendors, support companies, and open source programmers at large.
(From http://en.wikipedia.org/wiki/Postgres on November 25, 2008)
PostgreSQL is released under the BSD license.
PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)
Portions Copyright (c) 1996-2009, The PostgreSQL Global Development Group
Portions Copyright (c) 1994, The Regents of the University of California
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
Different people involved in PostgreSQL
The founders of Postgres
Michael Stonebraker is a computer scientist specializing in database research and development. His career covers, and helped create, the majority of the existing relational database market today. He is also the founder of Ingres, Illustra, Cohera, StreamBase Systems and Vertica and was previously the CTO of Informix. He is also an editor for the book Readings in Database Systems.
Stonebraker earned his bachelor's degree from Princeton University in 1965 and his master's degree and his Ph.D. from the University of Michigan in 1967 and 1971, respectively. He has received several awards, including the IEEE John von Neumann Medal and the very first SIGMOD Edgar F. Codd Innovations Award. In 1994 he was inducted as a Fellow of the Association for Computing Machinery.
Michael Stonebraker was a Professor of Computer Science at University of California, Berkeley for twenty five years where he developed the INGRES and POSTGRES relational database systems. He is currently an adjunct professor at MIT.
Ingres
In 1973 Stonebraker and his colleague Eugene Wong decided to start researching relational database systems after reading a series of seminal papers published by IBM. By the mid-1970s they had produced, using a rotating team of student programmers, a usable system known as Ingres. At the time Ingres was considered "low end" compared to IBM's similar effort, System R, as it ran on Unix-based DEC machines as opposed to the "big iron" IBM mainframes.
However by the early 1980s the performance and capabilities of these low-end machines was seriously threatening IBM's mainframe market, and with it came the ability of Ingres to be a "real" product for a large number of applications. Ingres was offered using a variation of the BSD license for a nominal fee, and soon a number of companies took advantage of this to create commercial versions of Ingres.
This included Stonebraker, who helped found Relational Technology, Inc., later called Ingres Corporation. Later sold to Computer Associates, Ingres was re-established as an independent company in 2005.
Postgres
Upon his return he started a "post-ingres" effort to address the limitations of the relational model, naming the new project Postgres. Postgres offered a number of features that effectively made the database "understand" the data inside it, dramatically improving programmability. Postgres was also offered using a BSD-like license, and the code forms the basis of today's free software, PostgreSQL.
Stonebraker helped commercialize the code, creating Illustra.
Cohera
In the late 1990s, Mike Stonebraker founded Cohera Software, headquartered in Hayward, California. Cohera's initial mission was to build a federated database, an updated approach to integrating data in multiple databases that began with the first attempts at distributed relational databases in the 1980s. The federated database market had not seen significant customer demand by the 1999-2000 time frame, so Cohera was re-focused on delivering industry-specific capabilities on top of the core integration engine. Cohera was ultimately sold in August 2001 to PeopleSoft.
StreamBase
Mike Stonebraker moved to MIT in the late 1990's and set up a project called Aurora (http://www.cs.brown.edu/research/aurora/). Aurora is about data management for streaming data, using a SQL variant called StreamSQL. StreamBase Systems (http://www.streambase.com) is the company he founded to commercialize the technology.
Vertica and C-Store
Another project Stonebraker has been involved in is C-Store, a column-oriented DBMS. The technology is being commercialized by Vertica Systems, which he co-founded and is serving as Chief Technical Officer.
Additional work
On his second return to academia, he initiated the Mariposa project which became the basis of Cohera which was subsequently sold to PeopleSoft.
(From http://en.wikipedia.org/wiki/Michael_Stonebraker on November 25, 2008)
Root level page for development frameworks.
| License | Kernel type | Kernel programming language | Kernel Thread support | OS family: | Oldest non-EOL version | Forks | |
|---|---|---|---|---|---|---|---|
| Linux | GPL/LGPL | Monolithic with modules | C | 1:1 | Unix-like | 2.4 | µClinux |
| FreeBSD | BSD (Typically, GPL/LGPL software included) | Monolithic with modules | C | 1:1 | BSD, Unix-like | 6.3 | DragonFly BSD |
| OpenBSD | BSD | Monolithic with modules | C | 1:1 | BSD, Unix-like | 4.2 | MirOS |
| NetBSD | BSD | Monolithic with modules | C | 1:1, M:N | BSD, Unix-like | 4 | OpenBSD |
| DragonFly BSD | BSD | Hybrid | C | BSD, Unix-like | No | ||
| OpenSolaris | CDDL | Monolithic with modules | C | 1:1, M:N | Unix | No | |
| AuroraUX | BSD/CDDL | Monolithic with modules | C, Ada | 1:1, M:N | Unix | No | |
| Darwin OpenDarwin PureDarwin | APSL | Hybrid | C, C++ | 1:1 | BSD, Unix, Unix-like, Mac OS X | No | |
| Minix | BSD | Microkernel | C | Unix-like | No | ||
| FreeDOS | GPL | Monolithic | C | MSDOS, PCDOS | 1.0 | ||
| Haiku | MIT | Hybrid | C, C++ | BeOS | No | ||
| House | BSD | Haskell | own/original | No | |||
| KolibriOS | GPL | Monolithic | ASM | own/original | No | ||
| MenuetOS | Menuet 64 | Monolithic | ASM | own/original | No | KolibriOS | |
| GNU Mach GNU Hurd | GPL | Microkernel | Unix-like | No | |||
| ReactOS | GPL/LGPL | Hybrid | C, C++ | Windows-like | No | ||
| L4 Fiasco Pistachio | GPL | Microkernel | C++ | L4 | No | ||
| Plan 9 | LPL | Monolithic | C | 1:1, 1:M Cothread style. | own, unix inspired | No | Inferno, Plan B |
| AROS | APL | Microkernel | C | AmigaOS | No | ||
| Syllable | GPL | Monolithic with modules | C, C++ | 1:1 | Unix-like, BeOS, AmigaOS, POSIX | No | |
| Inferno | GPL/LGPL/MIT | C | Plan 9 | No | OzInferno | ||
| FreeRTOS | modified GPL | RTOS | C | RTOS | No | ||
| eCos | modified GPL/eCos | RTOS | C, C++ | RTOS | No | ||
| pico]OS | BSD | RTOS | C | RTOS | No | ||
| RTEMS | modified GPL, BSD | RTOS | C and ASM with native support for other languages including C++ and Ada | POSIX, RTEID/ORKID, uITRON | RTOS | 4.7.1 | |
| HelenOS | BSD | Microkernel | C | M:N | own/original | No | |
| E/OS | GPLv2 | Monolithic | ASM, C | 1:1 | BeOS, Unix-like | No | |
| License | Kernel type | Kernel programming language | Kernel Thread support | OS family: | Oldest non-EOL version | Forks |
| x86 / i386 / IA-32 | x86 SMP | Xen | IA-64 | x86-64 | PowerPC | PowerPC SMP | SPARC32 | SPARC SMP | Alpha | MIPS | ARM | XScale | M68k | PA-RISC | other | hosted mode | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | FR-V, Cell, ETRAX CRIS, M32R, Xtensa, h8, s390, SuperH | UML, coLinux, MkLinux, Itanium Linux-on-Linux, wombat |
| FreeBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | PC98 | |
| OpenBSD | Yes | Yes | No | No | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | SuperH, VAX, m88k | |
| NetBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | SuperH, ns32k, VAX | |
| DragonFly BSD | Yes | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No | vkernel | |
| OpenSolaris | Yes | Yes | Yes | No | Yes | No | No | Yes | Yes | No | No | No | No | No | No | ||
| AuroraUX | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | ||
| Darwin OpenDarwin | Yes | Yes | No | No | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | No | L4/Darwin | |
| Minix | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| FreeDOS | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Haiku | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| KolibriOS | Yes | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| MenuetOS | Yes | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ||
| GNU Mach GNU Hurd | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | ||
| ReactOS | Yes | Yes | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | ||
| L4 Pistachio | Yes | No | No | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No | ||
| Plan 9 | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | See and | lguest, vx32 |
| AROS | Yes | No | No | No | Yes | Yes | No | No | No | No | No | No | No | Yes | No | i386-linux, i386-freebsd | |
| Syllable | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | ||
| Inferno | Yes | ? | No | No | ? | Yes | ? | Yes | ? | No | Yes | Yes | Yes | Yes | No | AMD Am29000, Texas Instruments OMAP | Microsoft Windows, Linux, FreeBSD, Plan 9, Mac OS X, Solaris, Irix, Unixware, HP-UX, Internet Explorer |
| FreeRTOS | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | AVR, PIC, MSP430, HCS12, 8052, MicroBlaze, Cortex-M3, H8S | |
| eCos | Yes | Yes | No | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | Yes | No | CalmRISC, ColdFire, FR-V, h8, Matsushita AM3x, Nios II, NEC V8xx, SuperH | Microsoft Windows, Linux |
| pico]OS | Yes | No | No | No | No | Yes | No | No | No | No | No | Yes | No | No | No | 6502, AVR | 80x86 DOS, 80x86 WIN32 |
| RTEMS | Yes | No | Xen | No | No | Yes | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Blackfin, Nios II, Coldfire, Texas Instruments C3x/C4x, SuperH, H8S | Linux, Solaris, Cygwin, FreeBSD plus multiple CPU simulators |
| HelenOS | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | No | No | No | ||
| E/OS | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | ||
| x86 / i386 / IA-32 | x86 SMP | Xen | IA-64 | x86-64 | PowerPC | PowerPC SMP | SPARC32 | SPARC SMP | Alpha | MIPS | ARM | XScale | M68k | PA-RISC | other | hosted mode |
| ATA | SATA | SCSI | USB 2.0 | USB 1.1 | FireWire | PCMCIA/PC card | AGP | Nvidia official driver IA32 | Nvidia official driver IA64 | Nvidia official driver AMD64 | ATI official driver x86 | ATI official driver x86_64 | Ati r200 free software driver | Ati r300 free software driver | Nvidia free software driver | Audio | TV tuner, video editing or webcam | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes,nv(2d only),nouveau(3d with mesa) | OSS, ALSA | V4L,V4L2 |
| FreeBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
| OpenBSD | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Yes | 2d only | 2d only | Yes | Yes |
| NetBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | |||
| DragonFly BSD | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | |||||||
| OpenSolaris | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes | ||||
| AuroraUX | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes | ||||
| Darwin and OpenDarwin | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | ||||||||
| Minix | No | No | No | No | No | |||||||||||||
| FreeDOS | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | No | No | Yes | No | |
| Haiku | Yes | Yes | Yes | No | No | No | No | No | Yes | |||||||||
| KolibriOS | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No | ||||
| MenuetOS | Yes | No | No | No | No | No | No | No | No | No | No | No | No | |||||
| GNU Mach and GNU Hurd | Yes | No | No | No | No | No | No | No | No | No | No | |||||||
| ReactOS | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | No | Yes | ||||
| L4, Fiasco and Pistachio | No | No | No | No | No | |||||||||||||
| Plan 9 | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | |||||
| AROS | Yes | Yes | No | No | No | own | No | 2D only | ||||||||||
| Syllable | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | |||||||
| Inferno | Yes | No | Yes | No | No | No | Yes | Yes | No | No | No | No | No | Yes | ||||
| FreeRTOS | No | No | No | No | No | |||||||||||||
| eCos | Yes | Yes | Yes | Yes | No | No | No | No | No | |||||||||
| pico]OS | No | No | No | No | No | |||||||||||||
| RTEMS | Yes | Yes | No | No | No | No | No | |||||||||||
| HelenOS | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| E/OS | Yes | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | |||
| No | No | |||||||||||||||||
| ATA | SATA | SCSI | USB 2.0 | USB 1.1 | FireWire | PCMCIA/PC card | AGP | Nvidia official driver IA32 | Nvidia official driver IA64 | Nvidia official driver AMD64 | ATI official driver x86 | ATI official driver x86_64 | Ati r200 free software driver | Ati r300 free software driver | Nvidia free software driver | Audio | TV tuner, video editing or webcam |
| Networking supported | NE2000/RTL8029 | RTL8139 | Gigabit Ethernet | 10-gigabit Ethernet | Wireless LAN | Bluetooth | IrDA | |
|---|---|---|---|---|---|---|---|---|
| Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| FreeBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| OpenBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| NetBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| DragonFly BSD | Yes | Yes | Yes | Yes | ||||
| OpenSolaris | Yes | Yes | Yes | Yes | Yes | No | No | |
| AuroraUX | Yes | Yes | Yes | Yes | Yes | No | No | |
| Darwin OpenDarwin | Yes | |||||||
| Minix | Yes | Yes | ||||||
| FreeDOS | Yes | Yes | Yes | |||||
| Haiku | Yes | Yes | Yes | Yes | Yes | |||
| KolibriOS | Yes | Yes | Yes | No | Yes | |||
| MenuetOS | Yes | Yes | No | No | ||||
| GNU Mach GNU Hurd | ||||||||
| ReactOS | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| L4 Fiasco Pistachio | ||||||||
| Plan 9 | Yes | Yes | Yes | Yes | Yes | No | No | |
| AROS | Yes | Yes | ||||||
| Syllable | Yes | Yes | Yes | Yes | ||||
| Inferno | Yes | Yes | Yes | Yes | Yes | No | No | |
| FreeRTOS | ||||||||
| eCos | Yes | Yes | Yes | |||||
| pico]OS | ||||||||
| RTEMS | Yes | Yes | Yes | Yes | No | No | No | No |
| HelenOS | Yes | Yes | No | No | No | No | No | No |
| E/OS | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Networking supported | NE2000/RTL8029 | RTL8139 | Gigabit Ethernet | 10-gigabit Ethernet | Wireless LAN | Bluetooth | IrDA |
| Firewall | TCP/IP | IPv6 | IPX | PPP | PPPoE | DHCP | bridge | TUN/TAP | ssh | OpenVPN | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | netfilter/iptables | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| FreeBSD | IPFW2, IPFilter, PF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| OpenBSD | PF | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| NetBSD | IPFilter, PF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| DragonFly BSD | IPFW2, IPFilter, PF | Yes | Yes | Yes | Yes | ||||||
| OpenSolaris | IPFilter | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| AuroraUX | IPFilter | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Darwin OpenDarwin | IPFW | Yes | Yes | Yes | Yes | ||||||
| Minix | Yes | Yes | |||||||||
| FreeDOS | Yes | Yes | Yes | Yes | Yes | Yes | |||||
| Haiku | None | Yes | |||||||||
| KolibriOS | None | Yes | No | Yes | No | Yes | |||||
| MenuetOS | None | Yes | No | No | No | ||||||
| GNU Mach GNU Hurd | |||||||||||
| ReactOS | |||||||||||
| L4 Fiasco Pistachio | |||||||||||
| Plan 9 | ipmux | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No |
| AROS | Yes | ||||||||||
| Syllable | Yes | Yes | Yes | Yes | Yes | ||||||
| Inferno | ipmux | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | No |
| FreeRTOS | |||||||||||
| eCos | Yes | Yes | Yes | Yes | Yes | ||||||
| pico]OS | |||||||||||
| RTEMS | Yes | Yes | Yes | Yes | Yes | Yes | |||||
| HelenOS | Yes | No | No | No | No | No | No | No | No | No | |
| E/OS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |
| Firewall | TCP/IP | IPv6 | IPX | PPP | PPPoE | DHCP | bridge | TUN/TAP | ssh | OpenVPN |
| FAT16 / dosfs, FAT32 / vfat | NTFS | Ext2 | Ext3 | XFS | ReiserFS | UFS | UFS2 | HFS | HFS+ | Minixfs | BFS | ISO 9660 | UDF | NFS | SMBFS | RAM disk / tmpfs | ZFS | Other special file systems | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | 9P, FUSE, sysfs, configfs, Reiser4, JFS, Btrfs, UnionFS, Ext4 | |
| FreeBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | FUSE, nullfs, UnionFS | |
| OpenBSD | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | AFS | ||
| NetBSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | PUFFS, LFS, EFS | |||||||
| DragonFly BSD | Yes | Yes | Yes | Yes | Yes | Yes | No | nullfs | ||||||||||||
| OpenSolaris | Yes | Yes | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | CIFS (native), QFS | ||
| AuroraUX | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | CIFS (native), QFS | ||
| Darwin OpenDarwin | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||
| Minix | Yes | No | Yes | No | ||||||||||||||||
| FreeDOS | Yes | No | No | No | No | No | No | No | No | Yes | Yes | |||||||||
| Haiku | Yes | Yes | Yes | |||||||||||||||||
| KolibriOS | Yes | Yes | Yes | Yes | ||||||||||||||||
| MenuetOS | Yes | |||||||||||||||||||
| GNU Mach GNU Hurd | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||
| ReactOS | Yes | Yes | No | No | No | No | No | No | ||||||||||||
| L4 Fiasco Pistachio | Yes | No | ||||||||||||||||||
| Plan 9 | Yes | Yes | No | No | No | No | No | No | No | No | No | Yes | No | Yes | Yes | Yes | Fossil, Venti, most system services | |||
| AROS | Yes | Yes | SFS, AFFS | |||||||||||||||||
| Syllable | Yes | Yes | Yes | Yes | Yes | Yes | Yes | AFS | ||||||||||||
| Inferno | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | Yes | kfs, most system services | ||
| FreeRTOS | ||||||||||||||||||||
| eCos | Yes | Yes | Yes | MMFS, ROMfs, JFFS2, YAFFS | ||||||||||||||||
| RTEMS | Yes | Yes | Yes | TarFS, TFTP FS, IMFS, miniIMFS | ||||||||||||||||
| HelenOS | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No | devfs | |
| E/OS | Yes | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | ||
| FAT16 / dosfs, FAT32 / vfat | NTFS | Ext2 | Ext3 | XFS | ReiserFS | UFS | UFS2 | HFS | HFS+ | Minixfs | BFS | ISO 9660 | UDF | NFS | SMBFS | RAM disk / tmpfs | ZFS | Other special file systems |
| RAID | quota | Resource access control | encryption | other special file system features | |
|---|---|---|---|---|---|
| Linux | Yes | Yes | Unix, ACL, MAC | Yes | LVM, EVMS |
| FreeBSD | Yes | Yes | Unix, ACL, MAC | Yes | GEOM, snapshots, background fsck, user-mountable file systems |
| OpenBSD | Yes | Yes | Unix | Yes | |
| NetBSD | Yes | Yes | Unix, Veriexec | Yes | |
| DragonFly BSD | Yes | ||||
| OpenSolaris | Yes | Yes | Unix, ACL, MAC | Solaris Volume Manager, ZFS, snapshots, transparent data repair | |
| AuroraUX | Yes | Yes | Unix, ACL, MAC | Solaris Volume Manager, ZFS, snapshots, transparent data repair | |
| Darwin OpenDarwin | Yes | Unix, ACL | Yes | ||
| Minix | Unix | ||||
| FreeDOS | No | ||||
| KolibriOS | No | ||||
| MenuetOS | No | ||||
| GNU Mach GNU Hurd | Unix | ||||
| ReactOS | No | ||||
| L4 Fiasco Pistachio | |||||
| Plan 9 | No | No | Unix-like, no root | No | snapshots, venti archival storage, per-process namespace, user-mountable file systems |
| AROS | |||||
| Syllable | Unix | 64-bit, journaling, extended file attributes | |||
| Inferno | No | No | Unix-like, no root | No | per-process namespace, user-mountable file systems |
| FreeRTOS | |||||
| eCos | |||||
| pico]OS | |||||
| RTEMS | |||||
| HelenOS | No | No | No | No | No |
| E/OS | Yes | Yes | Unix | Yes | No |
| RAID | quota | Resource access control | encryption | other special file system features |
| Operating system | Mandatory access control | Software executable space protection | Operating system-level virtualization | Virtualisation | Userspace protection | Others |
|---|---|---|---|---|---|---|
| Linux | SELinux, AppArmor | Exec Shield , PaX | Chroot, namespace and cgroups, Linux-VServer, OpenVZ, FreeVPS | KVM | IPFilter, IPTables | grsecurity , RSBAC |
| FreeBSD | SeBSD , TrustedBSD | ProPolice/SSP | jail | IPFW, PF | ||
| Darwin | SEDarwin, TrustedBSD | jail | IPFW | |||
| OpenBSD | W^X | sysjail | PF, IPF | |||
| OpenSolaris | TrustedBSD | Solaris Containers | IPF | |||
| AuroraUX | TrustedBSD | Solaris Containers | IPF | |||
| Plan 9 | No | No | per-process namespaces | |||
| Inferno | No | No | per-process namespaces |
History and development
FreeBSD's development began in 1993 with a quickly growing, unofficial patchkit maintained by users of the 386BSD operating system. This patchkit forked from 386BSD and grew into an operating system taken from U.C. Berkeley's 4.3BSD-Lite (Net/2) tape with many 386BSD components and code from the Free Software Foundation. The first official release was FreeBSD 1.0 in December 1993, coordinated by Jordan Hubbard, Nate Williams and Rod Grimes with a name thought up by David Greenman. Walnut Creek CDROM agreed to distribute FreeBSD on CD and gave the project a machine to work on along with a fast Internet connection, which Hubbard later said helped stir FreeBSD's rapid growth. A "highly successful" FreeBSD 1.1 release followed in May 1994.
However, there were legal concerns about the BSD Net/2 release source code used in 386BSD. After a lawsuit between UNIX copyright owner at the time Unix System Laboratories and the University of California, Berkeley, the FreeBSD project re-engineered most of the system using the 4.4BSD-Lite release from Berkeley, which, owing to this lawsuit, had none of the AT&T source code earlier BSD versions had depended upon, making it an unbootable operating system. Following much work, the outcome was released as FreeBSD 2.0 in January 1995.
FreeBSD 2.0 featured a revamp of the original Carnegie Mellon University Mach virtual memory system, which was optimized for performance under high loads. This release also introduced the FreeBSD Ports system, which made downloading, building and installing third party software very easy. By 1996 FreeBSD had become popular among commercial and ISP users, powering extremely successful sites like Walnut Creek CD-ROM (a huge repository of software that broke several throughput records on the Internet), Yahoo! and Hotmail. The last release along the 2-STABLE branch was 2.2.8 in November 1998. FreeBSD 3.0 brought many more changes, including the switch to the ELF binary format. Support for SMP systems and the 64 bit Alpha platform were also added. The 3-STABLE branch ended with 3.5.1 in June 2000.
Beastie
FreeBSD's mascot is the generic BSD daemon, also known as Beastie
For many years FreeBSD's logo was the generic BSD daemon, also called Beastie, a slurred phonetic pronunciation of BSD. First appearing in 1976 on UNIX T-shirts purchased by Bell Labs, the more popular versions of the BSD daemon were drawn by animation director John Lasseter beginning in 1984. Several FreeBSD-specific versions were later drawn by Tatsumi Hosokawa. Through the years Beastie became both beloved and criticized as perhaps inappropriate for corporate and mass market exposure. Moreover it was not unique to FreeBSD. In lithographic terms, the Lasseter graphic is not line art and often requires a screened, four colour photo offset printing process for faithful reproduction on physical surfaces such as paper. However drawn, the BSD daemon was thought to be too graphically detailed for smooth size scaling and aesthetically over dependent upon multiple colour gradations, making it hard to reliably reproduce as a simple, standardized logo in only two or three colours, much less in monochrome. Because of these worries, a competition was held and a new logo designed by Anton K. Gural, still echoing the BSD daemon, was released on October 8, 2005. Meanwhile Lasseter's much known take on the BSD daemon carries forth as official mascot of the FreeBSD Project.
Version History
FreeBSD 4
4.0-RELEASE appeared in March 2000 and the last 4-STABLE branch release was 4.11 in January 2005. FreeBSD 4 was a favorite operating system for ISPs and web provider during the first .com bubble, and is widely regarded as one of the most stable and high performance operating systems of the whole Unix lineage.
FreeBSD 5
After almost three years of development, the first 5.0-RELEASE in January 2003 was widely anticipated, featuring support for advanced multiprocessor and application threading, and for the UltraSPARC and ia64 platforms. The first 5-STABLE release was 5.3 (5.0 through 5.2.1 were cut from -CURRENT). The last release from the 5-STABLE branch was 5.5 in May 2006.
The largest architectural development in FreeBSD 5 was a major change in the low-level kernel locking mechanisms to enable better symmetric multi-processor (SMP) support. This released much of the kernel from the MP lock, which is sometimes called the Giant lock. More than one process could now execute in kernel mode at the same time. Other major changes included an M:N native threading implementation called Kernel Scheduled Entities. In principle this is similar to Scheduler Activations. Starting with FreeBSD 5.3, KSE was the default threading implementation until it was replaced with a 1:1 implementation in FreeBSD 7.0.
FreeBSD 5 also significantly changed the block I/O layer by implementing the GEOM modular disk I/O request transformation framework contributed by Poul-Henning Kamp. GEOM enables the simple creation of many kinds of functionality, such as mirroring (gmirror) and encryption (GBDE and GELI). This work was supported through sponsorship by DARPA.
The 5.4 and 5.5 releases of FreeBSD confirmed the FreeBSD 5.x branch as a highly stable and high-performing release, although it had a long development period due to the large feature set. Earlier releases on the 5.x branch are not considered stable enough for production deployment.
FreeBSD 6
FreeBSD 6.0 was released on November 4, 2005. The most recent FreeBSD 6 release was 6.4, on November 11, 2008. These versions continue work on SMP and threading optimization along with more work on advanced 802.11 functionality, TrustedBSD security event auditing, significant network stack performance enhancements, a fully preemptive kernel and support for hardware performance counters (HWPMC). The main accomplishments of these releases include removal of the Giant lock from VFS, implementation of a better-performing optional libthr library with 1:1 threading and the addition of a Basic Security Module (BSM) audit implementation called OpenBSM, which was created by the TrustedBSD Project (based on the BSM implementation found in Apple's open source Darwin) and released under a BSD-style license.
FreeBSD 7
FreeBSD 7.0 was released on 27 February 2008. The most recent FreeBSD 7 release was 7.1, on January 05, 2009. New features include SCTP, UFS journaling, an experimental port of Sun's ZFS file system, GCC4, improved support for the ARM architecture, jemalloc (a memory allocator optimized for parallel computation, which was ported to Firefox 3), and major updates and optimizations relating to network, audio, and SMP performance. Benchmarks have shown significant speed improvements over previous FreeBSD releases as well as Linux. The new ULE scheduler has seen much improvement but a decision was made to ship the 7.0 release with the older 4BSD scheduler, leaving ULE as a kernel compile-time tunable. In FreeBSD 7.1 ULE was the default for the i386 and AMD64 architectures. Starting from version 7.1 DTrace was integrated.
FreeBSD 8
As of 2008, FreeBSD 8.0 is the "bleeding edge" development version, called -CURRENT in FreeBSD development terminology. It will feature the ability for jails to have more than one IP (with support for IPv6), superpages, Xen DomU support, network stack virtualization, stack-smashing protection, removal of Giant lock from the Tty layer, much improved ZFS support and a new USB stack. FreeBSD 8.0 is planned to be released in the 3rd quarter of 2009.
(From http://en.wikipedia.org/wiki/Freebsd, April 18, 2009)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009 and the second in May 2010.
Haiku is supported by Haiku, Inc., a non-profit organization based in Rochester, New York, that was founded in 2003 for that purpose.
History
Haiku began as the OpenBeOS project in 2001, the year that Be, Inc. was bought by Palm, Inc. and BeOS development was discontinued; the focus of the project was to support the BeOS user community by creating an open-source, backward-compatible replacement for BeOS. The first project by OpenBeOS was a community-created "stop-gap" update for BeOS 5.0.3 in 2002. In 2003, a non-profit organization (Haiku Inc.) was registered in Rochester, New York, to financially support development, and in 2004, after a notification of infringement upon Palm's trademark on the BeOS name was sent to OpenBeOS, the project was renamed as Haiku. However, development would only reach its first milestone in September 2009 with the release of Haiku R1/Alpha 1. This was followed in May 2010 by R1/Alpha 2, which contains more than 300 bug-fixes and improvements.
Development
Haiku is developed in C++ and provides an object-oriented API.
The modular design of BeOS allowed individual components of Haiku to initially be developed in teams in relative isolation, in many cases developing them as replacements for the BeOS components prior to the completion of other parts of the operating system. The original teams developing these components, including both servers and APIs (collectively known in Haiku as "kits"), included:
App/Interface – develops the Interface, App and Support kits.
BFS – develops the Be File System, which is mostly complete with the resulting OpenBFS.
Game – develops the Game Kit and its APIs.
Input Server – the server that handles input devices, such as keyboards and mice, and how they communicate with other parts of the system.
Kernel – develops the kernel, the core of the operating system.
Media – develops the audio server and related APIs.
MIDI – implements the MIDI protocol.
Network – writes drivers for network devices and APIs relating to networking.
OpenGL – develops OpenGL support.
Preferences – recreates the preferences suite.
Printing – works on the print servers and drivers for printers.
Screen Saver – implements screen saver functionality.
Storage – develops the storage kit and drivers for required filesystems.
Translation – recreates the reading/writing/conversion modules for the different file formats.
A few kits have been deemed feature complete and the rest are in various stages of development.
The Haiku kernel is a modular hybrid kernel and a fork of NewOS, a modular kernel written by former Be Inc. engineer Travis Geiselbrecht. Like the rest of the system it is currently still under heavy development. Many features have been implemented, including a virtual file system (VFS) layer and rudimentary symmetric multiprocessing (SMP) support.
Compatibility with BeOS
Haiku aims to be compatible with BeOS at both the source and binary level, allowing software written and compiled for BeOS to compile and run without modification on Haiku. This would provide Haiku users with an instant library of applications to choose from (even programs whose developers were no longer in business or had no interest in updating them), in addition to allowing development of other applications to resume from where they had been terminated following the demise of Be, Inc. This dedication to compatibility also has its drawbacks, though, requiring Haiku to use version 2.95 of the compiler GCC, which is 9 years old. Switching to using the newer GCC version 4 breaks compatibility with BeOS software; therefore, Haiku supports being built as a hybrid GCC4/GCC2 environment. This allows the use of both GCC version 2 and version 4 binaries at the same time.
Note that this compatibility applies to x86 systems only. The PowerPC version of BeOS R5 will not be supported. As a consequence, the ARM, 68k and PPC ports of Haiku use only the gcc4 compiler.
Despite these attempts, compatibility with a number of system add-ons that use private APIs will not be implemented. These include additional filesystem drivers and media codec add-ons, although the only affected add-ons for BeOS R5 not easily re-implemented are Indeo 5 media decoders for which no specification exists.
R5 binary applications that run successfully under Haiku (as of May 2006) include: Opera, Firefox, NetPositive, Quake II, Quake III, SeaMonkey, Vision and VLC media player.
Driver compatibility is incomplete, and unlikely to cover all kinds of BeOS drivers. 2D graphics drivers in general work exactly the same as on R5, as do network drivers. Moreover, Haiku offers a source-level FreeBSD network driver compatibility layer, which means that it can support any network hardware that will work on FreeBSD. Audio drivers using API versions prior to BeOS R5 are as-yet unsupported, and unlikely to be so; however, R5-era drivers work.
Low-level device drivers, namely for storage devices and SCSI adapters, will not be compatible. USB drivers for both the second- (BeOS 5) and third- (BeOS Dano) generation USB stacks will work, however.
In some other aspects, Haiku is already more advanced than BeOS. For example, the interface kit allows the use of a layout system to automatically place widgets in windows, while on BeOS the developer had to specify the exact position of each widget by hand. This allows for GUIs that will render correctly with any font size and makes localization of applications much easier, as a longer string in a translated language will make the widget grow, instead of being partly invisible if the widget size were fixed.
Beyond R1
Initial planning for R2 has started through the "Glass Elevator" project (a reference to the children's novel Charlie and the Great Glass Elevator). The only detail confirmed so far is that it will switch to a current GCC release (namely v4.3.3).
A compatibility layer is planned that will allow applications developed for Haiku R1 to run on Haiku R2 and later. This was mentioned in a discussion on the Haiku mailing list by one of the lead developers, Axel Dörfler. Suggested new features include file indexing on par with Unix's Beagle, Google Desktop and Mac OS X's Spotlight, greater integration of scalable vector graphics into the desktop, proper support for multiple users, and additional kits.
(From http://en.wikipedia.org/wiki/Haiku_(operating_system), May 22, 2010)
Beginnings
The development project began as "OpenBeOS" in 2001 after Palm, Inc. bought Be Inc. and discontinued BeOS, leaving BeOS users without a viable upgrade path and BeOS developers with programs stranded on an unsupported platform. OpenBeOS differed from several other contemporary projects aiming to continue BeOS. For example, Cosmoe and BlueEyedOS (both of which remain incomplete and appear to be inactive at this time) took an existing Linux or BSD kernel and re-implemented Be's APIs on top of it; this broke binary code compatibility with BeOS R5 and significantly deviated from the original design. By contrast, OpenBeOS planned an almost complete rewrite of the system, maintaining binary and source code compatibility. This should allow any existing BeOS R5 programs to run on the new system without being recompiled.
A first release of OpenBeOS was made in 2002. That release was no stand-alone operating system, instead it was a community-created update for BeOS 5.0.3 that contained open source replacements for a few BeOS components.
In 2004 a new project name was chosen in order to avoid infringing on Palm's trademarks. The name was influenced by an official community vote, decided by project leaders and revealed at that year's WalterCon. The name "Haiku" intends to reflect the elegance and simplicity that attracted many to the BeOS platform, and is also a direct reference to the distinctive haiku error messages found in NetPositive, the default BeOS web browser, and many other Be applications.
Haiku, Inc., a non-profit organization based in Rochester, New York, was founded in 2003 by former project leader Michael Phipps to support the project and the development of the Haiku operating system.
Progress
On April 29, 2002 OpenBeOS app_server prototype 5 was released. It was the first release that was able to render windows.
A number of major milestones were achieved in a six week period during March to April 2005, such as the first graphical applications to run on Haiku itself (running with full 2D acceleration), and the first use of a web browser (Links) on Haiku. Haiku does not use any code or binaries belonging to Be, Inc., including the drivers used for the graphics and network card in the original examples. Another major milestone was reached in July 2005, when the system was able to run the BeOS desktop shell, Tracker.
In October 2005, Axel Dörfler, one of the most prolific Haiku developers, became the first full-time paid Haiku developer, working via funds donated by the community. He worked on CD booting, SMP and other kernel and app_server work. His employment continued until December 2005, when the funds allocated ran out.
Work on the operating system continued; Haiku could now be booted and was semi-usable, however much work remained before a release could be made. Network and Universal Serial Bus (USB) functionality were under heavy development, but the media_server lagged behind the other components. Haiku was still quite unstable, as should be expected in its pre-release state, as crashes had been prevalent and no release date had been set. As of January 2006, project developer Stephan Aßmus suggested that at the current level of development, R1 was at least a year away, maybe two.
In August 2006, Haiku celebrated its fifth anniversary. Development on the aforementioned network and USB stacks continues rapidly, and it is expected that once these two last major remaining pieces of the operating system are complete, Haiku will be suitable for day-to-day use by developers and testers.
After a new website was launched, a contest was held to create Haiku's default icon set. The winner was Stephan Aßmus's set, "stippi". Aßmus was also the developer responsible for Haiku's icon creation tool, Icon-O-Matic, and integrating Haiku's own format of scalable vector graphics, Haiku Vector Icon Format (HVIF) into the Deskbar and Tracker. A partial implementation of the set can be found in the latest builds.
In January 2008, an official Java for Haiku team was created and was unanimously accepted by the OpenJDK Porters Group to port OpenJDK to Haiku.
In April 2008, Haiku became self-hosting, which means Haiku can be built from within itself.
On January 31, 2009, Haiku obtained a native GCC4 port; this allows modern applications, like Firefox 3, to be built on Haiku.
On July 12, 2009, a first prototype version of the FreeBSD WLAN-Stack was ported to Haiku, enabling unencrypted WLAN connections as a first step.
Original Haiku R1 Alpha 1 CD. The picture was taken inside of the Microsoft Research & Development Center, Haifa, Israel.
The first alpha release "Haiku R1/Alpha 1" has been released on September 14, 2009.
On October 27, 2009, Haiku obtained Qt4 support via an external 3rd party port.
The second alpha release ("Haiku R1/Alpha 2") has been released on May, 10, 2010.
(From http://en.wikipedia.org/wiki/History_of_Haiku_(operating_system), May 21, 2010)
From http://en.wikipedia.org/wiki/Linux:
Linux (commonly pronounced IPA: /ˈlɪnəks/ in English; variants exist[1]) is a Unix-like computer operating system family which uses the Linux kernel. Linux is one of the most prominent examples of free software and open source development; typically all the underlying source code can be freely modified, used, and redistributed by anyone.[2]
Predominantly known for its use in servers, it is installed on a wide variety of computer hardware, ranging from embedded devices and mobile phones to supercomputers.[3]
The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The system's utilities and libraries usually come from the GNU operating system, announced in 1983 by Richard Stallman. The GNU contribution is the basis for the alternative name GNU/Linux.[4]
| Version | 2.6 |
| Created | In 1991, Torvalds began to work on a non-commercial replacement for MINIX while he was attending the University of Helsinki,[5] which would eventually become the Linux kernel. |
| Packages | Red Hat, Debian, Fedora, Gentoo, Ubuntu |
NetBSD is a freely available open source version of the Unix-derivative Berkeley Software Distribution (BSD) computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design, stability and performance of the system. Due to convenient license and portability, NetBSD is often used in embedded systems.
The current stable release of NetBSD is version 5.0.2 (February 12, 2010).
Contents
1 History
2 Features
2.1 Portability
2.2 Portable build framework
2.3 The pkgsrc packages collection
2.4 Symmetric multiprocessing
2.5 Security
2.6 Virtualization
2.7 Storage
2.8 Compatibility with other operating systems
3 Licensing
4 Releases
5 Logo
6 The NetBSD Foundation
7 Examples of use
8 Hosting
9 See also
10 Notes
11 References
12 External links
History
NetBSD was originally derived from the 4.3BSD release of the Berkeley Software Distribution from the Computer Systems Research Group of the University of California, Berkeley, via their Net/2 source code release and the 386BSD project. The NetBSD project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development. The four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass and Charles Hannum, felt that a more open development model would be beneficial to the project; one which was centered on portable, clean, correct code. Their aim was to produce a unified, multi-platform, production-quality, BSD-based operating system. The name "NetBSD" was suggested by de Raadt, based on the importance and growth of networks such as the Internet at that time, and the distributed, collaborative nature of its development.
The NetBSD source code repository was established on March 21, 1993 and the first official release, NetBSD 0.8, was made in April, 1993. This was derived from 386BSD 0.1 plus the version 0.2.2 unofficial patchkit, with several programs from the Net/2 release missing from 386BSD re-integrated, and various other improvements. The first multi-platform release, NetBSD 1.0, was made in October 1994. Also in 1994, for disputed reasons, one of the founders, Theo de Raadt, left the project. He later founded a new project, OpenBSD, from a forked version of NetBSD 1.0 near the end of 1995. In 1998, NetBSD 1.3 introduced the pkgsrc packages collection.
Until 2004, NetBSD 1.x releases were made at roughly annual intervals, with minor "patch" releases in between. From release 2.0 onwards, each major NetBSD release corresponds to an incremented major version number, i.e. the major releases following 2.0 are 3.0, 4.0 and so on. The previous minor releases are now divided into two categories: x.y "stable" maintenance releases and x.y.z releases containing only security and critical fixes.
Features
Portability
As the project's motto ("Of course it runs NetBSD" ) suggests, NetBSD has been ported to a large number of 32- and 64-bit architectures. These range from VAX minicomputers to Pocket PC PDAs. As of 2009, NetBSD supports 57 hardware platforms (across 15 different processor architectures). Although the Linux 2.6 kernel includes support for more processor architectures, the NetBSD distribution supports more platforms than any single Linux distribution. The kernel and userland for these platforms are all built from a central unified source-code tree managed by CVS. Currently, unlike other kernels such as μClinux, the NetBSD kernel requires the presence of an MMU in any given target architecture.
NetBSD's portability is aided by the use of hardware abstraction layer interfaces for low-level hardware access such as bus input/output or DMA. Using this portability layer, device drivers can be split into "machine-independent" and "machine-dependent" components. This allows a single driver to be easily used on several platforms by hiding details of exactly how the driver accesses the hardware, and reduces the amount of work needed to port it to a new architecture.
This enables, for instance, a driver for a specific PCI card to work whether that card is in a PCI slot on an IA-32, Alpha, PowerPC, SPARC, or other architecture with a PCI bus. Also, a single driver for a specific device can operate via several different buses, for example ISA, PCI, PC card, etcetera.
In comparison, Linux device driver code often needs to be reworked for every new architecture. As a consequence, in recent porting efforts by NetBSD and Linux developers, NetBSD has taken much less time to port to new hardware.
This platform independence aids the development of embedded systems, particularly since NetBSD 1.6, when the entire toolchain of compilers, assemblers, linkers, and other tools fully supported cross-compiling.
In 2005, as a demonstration of NetBSD's portability and suitability for embedded applications, Technologic Systems, a vendor of embedded systems hardware, designed and demonstrated a NetBSD-powered kitchen toaster.
Commercial ports to embedded platforms, including the AMD Geode LX800, Freescale PowerQUICC processors, Marvell Orion, AMCC 405 family of PowerPC processors, Intel XScale IOP and IXP series, were available from and supported by Wasabi Systems (defunct as of March, 2009).
Portable build framework
The NetBSD cross-compiling framework (also known as "build.sh" ) allows a complete NetBSD system for an architecture to be built from another system of different architecture (usually faster or with more hardware resources), even on a different operating system, since the framework supports most POSIX-compliant systems. Several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost.
The pkgsrc packages collection
NetBSD features pkgsrc (short for "package source"), a framework for building and managing third-party application software packages. The pkgsrc collection consists of more than 8100 packages as of January 2009. Building and installing packages such as KDE, GNOME, the Apache HTTP server or Perl is performed through the use of a system of makefiles. This can automatically fetch the source code, unpack, patch, configure, build and install the package such that it can be removed again later. An alternative to compiling from source is to use a precompiled binary package. In either case, any prerequisites/dependencies will be installed automatically by the package system, without need for manual intervention.
pkgsrc supports not only the hardware platforms that run NetBSD, but also — with the help of an autoconf-based bootstrap system — several other Unix-like operating systems, such as Linux, other BSD variants like FreeBSD, Solaris, Darwin/Mac OS X, IRIX, Interix and others. pkgsrc has also been adopted as the official package system for DragonFly BSD.
Symmetric multiprocessing
NetBSD has had support for SMP since the NetBSD 2.0 release in 2004, which was initially implemented using the giant lock approach. During the development cycle of the NetBSD 5 release, major work was done to improve SMP support; most of the kernel subsystems were modified to be MP safe and use the fine-grained locking approach. New synchronization primitives were implemented and scheduler activations was replaced with a 1:1 threading model in February 2007. A scalable M2 thread scheduler was implemented, though the old 4.4BSD scheduler still remains the default but was modified to scale with SMP. Threaded software interrupts were implemented to improve synchronization. The virtual memory system, memory allocator and trap handling were made MP safe. The file system framework, including the VFS and major file systems were modified to be MP safe. Since April, 2008 the only subsystems running with a giant lock are the network protocols and most device drivers.
Security
NetBSD provides various features in the security area. The Kernel Authorization framework (or Kauth) is a subsystem managing all authorization requests inside the kernel, and used as system-wide security policy. It allows external modules to plug-in the authorization process. NetBSD also incorporates exploit mitigation features, ASLR, MPROTECT and Segvguard from PaX project, and GCC Stack Smashing Protection (SSP, or also known as ProPolice, enabled by default since NetBSD 6.0) compiler extensions. Verified Executables (or Veriexec) is an in-kernel file integrity subsystem in NetBSD. It allows the user to set digital fingerprints (hashes) of files, and take a number of different actions if files do not match their fingerprints. For example, one can allow Perl to run only scripts that match their fingerprints. The cryptographic device driver (CGD) allows using disks or partitions (including CDs and DVDs) for encrypted storage.
Virtualization
The Xen virtual-machine monitor is supported in NetBSD since the 3.0 release. To use Xen, the system requires a special pre-kernel boot environment that loads a specialized Xen kernel as the "host OS" (known as Dom0). Any number of "guest OS" (known as DomU) virtualized computers, with or without (using "hypervisor" options) specific Xen/DomU support, can be run in parallel with the appropriate hardware resources.
With NetBSD 5, which greatly improves disk I/O and network I/O performance over NetBSD 4, some guest Operating Systems running under Xen are known to operate faster than when installed natively on the same hardware without NetBSD and Xen behind the scenes. The need for a boot manager, such as GRUB, was also eliminated with NetBSD 5's new built-in Xen-compatible configurable boot manager.
User-space virtualization such as VirtualBox and QEMU are also supported on NetBSD.
Storage
NetBSD includes many enterprise features like iSCSI, a journaling filesystem, logical volume management and the ZFS filesystem.
The WAPBL journalling filesystem, an extension of the BSD FFS filesystem, was contributed by Wasabi Systems in 2008.
The NetBSD Logical Volume Manager is based on a BSD reimplementation of a device-mapper driver and a port of the Linux Logical Volume Manager tools. It was mostly written during the Google Summer of Code 2008.
The ZFS filesystem developed by Sun Microsystems was imported in to the NetBSD base system in 2009. Currently, the NetBSD ZFS port is based on ZFS version 13.
Compatibility with other operating systems
At the source code level, NetBSD is very nearly entirely compliant with POSIX.1 (IEEE 1003.1-1990) standard and mostly compliant with POSIX.2 (IEEE 1003.2-1992).
NetBSD also provides system call-level binary compatibility on the appropriate processor architectures with several UNIX-derived and UNIX-like operating systems, including Linux, other BSD variants like FreeBSD, Apple's Darwin, Solaris and SunOS 4. This allows NetBSD users to run many applications that are only distributed in binary form for other operating systems, usually with no significant loss of performance.
A variety of "foreign" disk filesystem formats are also supported in NetBSD, including FAT, NTFS, Linux ext2fs, Mac OS X UFS, RISC OS FileCore/ADFS, AmigaOS Fast File System, IRIX EFS and many more through FUSE.
Licensing
All of the NetBSD kernel and most of the core userland source code is released under the terms of the BSD License (two, three, and four-clause variants). This essentially allows everyone to use, modify, redistribute or sell it as they wish, as long as they do not remove the copyright notice and license text (the four-clause variants also include terms relating to publicity material). Thus, the development of products based on NetBSD is possible without having to make modifications to the source code public. In contrast, the GPL stipulates that changes to source code of a product must be released to the product recipient when products derived from those changes are released.
On June 20, 2008, the NetBSD Foundation announced a transition to the two clause BSD license, citing concerns with UCB support of clause 3 and industry applicability of clause 4.
NetBSD also includes the GNU development tools and other packages, which are covered by the GPL and other open source licenses. As is the case for the other BSD projects, NetBSD separates those in its base source tree, in order to make removal of code under more restrictive licenses easier. There is no distinction made for ports.
Releases
The following table lists major NetBSD releases and their notable features in reverse chronological order. Minor and patch releases are not included.
Colour Meaning
Green Release still supported
Red Release no longer supported
Major releases Release date Notable features and changes
5.0 April 29, 2009 Rewritten threading subsystem based on a 1:1 model and rewritten scheduler implementation. Support for kernel preemption, POSIX real-time scheduling extensions, processor-sets, and dynamic CPU sets for thread affinity. Added jemalloc memory allocator. A metadata journaling for FFS, known as WAPBL (Write Ahead Physical Block Logging). Rewritten kernel modules framework, which will replace old LKMs.
4.0 December 19, 2007 Added support for slab allocator, iSCSI target, CARP, tmpfs, Xen 3, the Kernel Authorization framework, Veriexec and other security extensions, and a Bluetooth protocol suite.
3.0 December 23, 2005 Support for Xen 2.0 was added. Support for filesystems > 2 terabytes added. Pluggable Authentication Modules added. OpenBSD Packet Filter was integrated as an alternative to IPFilter. UFS directory hash support.
2.0 December 9, 2004 Addition of native POSIX threads and SMP support on i386 and other platforms. AMD64 architecture added. Support for UFS2 and SMBFS, addition of kqueue.
1.6 September 14, 2002 Unified Buffer Cache (UBC) was introduced, which unifies the filesystem and virtual memory caches of file data. Zero-copy support for TCP and UDP transmit path. Ten new platforms supported. New implementation of cross-building (build.sh) infrastructure. Added support for multibyte LC_CTYPE locales.
1.5 December 6, 2000 IPv6 and IPsec were added to the network stack. OpenSSL and OpenSSH imported. New implementation of rc.d system start-up mechanism. Start of migration to ELF-format binaries. A ktruss utility for kernel tracing was added. Six new platforms supported, including SPARC64. Added FFS soft updates and support for NTFS.
1.4 May 12, 1999 UVM, a rewritten virtual memory subsystem, was introduced. Added RAIDframe, a software RAID implementation, and imported IPFilter. Completion of the integration of all remaining 4.4BSD Lite-2 kernel improvements. Ports to Power Macintosh and NeXTcube/station systems added. Added full USB support.
1.3 March 9, 1998 XFree86 source tree was made a supported part of the distribution. Support for ISA Plug and Play, PCMCIA, ATAPI and APM added. ext2fs and FAT32 filesystems added. The pkgsrc packages collection system was introduced.
1.2 October 4, 1996 Support for NFSv3, SCSI scanner and medium changer devices added. NTP phase-locked loop added in kernel. Ports for ARM and Sharp X68k systems added.
1.1 November 26, 1995 Ports for DEC Alpha, Atari TT/Falcon030 and MVME68k systems added. Binary emulation facility added. Generic audio subsystem introduced.
1.0 October 26, 1994 The first multi-platform release, supporting the PC, HP 9000 Series 300, Amiga, 68k Macintosh, Sun-4c series and the PC532. Also in this release, the legally encumbered Net/2-derived source code was replaced with equivalent code from 4.4BSD-lite, in accordance with the USL v BSDi lawsuit settlement. Addition of shared libraries and Kerberos 5.
0.9 August 20, 1993 Contained many enhancements and bug fixes. This was still a PC-platform-only release, although by this time work was underway to add support for other architectures. Support for loadable kernel modules (LKM).
0.8 April 20, 1993 The first official release, derived from 386BSD 0.1 plus the version 0.2.2 unofficial patchkit, with several programs from the Net/2 release missing from 386BSD re-integrated, and various other improvements.
Logo
The NetBSD "flag" logo, designed by Grant Bissett, was introduced in 2004 and is an abstraction of their older logo, designed by Shawn Mueller in 1994. This was based on the famous World War II photograph Raising the Flag on Iwo Jima, which some perceived as culturally sensitive and inappropriate for an international project.
The NetBSD Foundation
The NetBSD Foundation is the legal entity that owns the intellectual property and trademarks associated with NetBSD, and on January 22, 2004, became a 501(c)3 tax-exempt non-profit organization. The members of the foundation are developers who have CVS commit access. The NetBSD Foundation has a Board of Directors, elected by the voting of members for two years.
Examples of use
NetBSD was used in NASA's SAMS-II Project of measuring the microgravity environment on the International Space Station, and for investigations of TCP for use in satellite networks.
NetBSD's clean design, high performance, scalability, and support for many architectures has led to its use in embedded devices and servers, especially in networking applications.
A commercial real-time operating system, QNX, uses a network stack which is based on NetBSD code , and provides various drivers ported from NetBSD.
Force10 Networks uses NetBSD as the underlying operating system that powers FTOS (the Force10 Operating System), which is used in high scalability switch/routers. Force10 also made a donation to the NetBSD Foundation in 2007 to help further research and the open development community.
Wasabi Systems provides a commercial Wasabi Certified BSD product based on NetBSD with proprietary enterprise features and extensions, which are focused on embedded, server and storage applications.
NetBSD was used in NASA's SAMS-II Project of measuring the microgravity environment on the International Space Station, and for investigations of TCP for use in satellite networks.
In 2004, SUNET used NetBSD to set the Internet2 Land Speed Record. NetBSD was chosen "due to the scalability of the TCP code".
NetBSD is also used in Apple's Airport Extreme and Time Capsule products, instead of their own Mac OS X (which uses FreeBSD's userland) platform.
The operating system of the T-Mobile Sidekick LX 2009 smartphone is based on NetBSD.
Hosting
Hosting for the project is provided primarily by the Internet Systems Consortium Inc, the Luleå University of Technology, Columbia University, and Western Washington University. Mirrors for the project are spread around the world and provided by volunteers and supporters of the project.
(From http://en.wikipedia.org/wiki/Netbsd on 05/21/2010)
OpenSolaris is an open source operating system based on Sun Microsystems' Solaris. It is also the name of the project initiated by Sun to build a developer and user community around it.
OpenSolaris is derived from the Unix System V Release 4 codebase, with significant modifications made by Sun since it bought the rights to that code in 1994. It is the only open source System V derivative available. Open sourced components are snapshots of the latest Solaris release under development. Sun has announced that future versions of its commercial Solaris operating system will be based on technology from the OpenSolaris project.
History
OpenSolaris is based on Solaris, which was originally released by Sun in 1991. Solaris is a version of SVR4 (System V Release 4) UNIX, co-developed by Sun and AT&T. It was licensed by Sun from Novell to replace SunOS.
Planning for OpenSolaris started in early 2004. A pilot program was formed in September 2004 with 18 non-Sun community members and ran for 9 months growing to 145 external participants.
The first part of the Solaris codebase to be open sourced was the Solaris Dynamic Tracing facility (commonly known as DTrace), a tracing tool for administrators and developers that aids in tuning a system for optimum performance and utilisation. DTrace was released on January 25, 2005. At that time, Sun also launched the opensolaris.org web site, and announced that the OpenSolaris code base would be released under the CDDL (Common Development and Distribution License). The bulk of the Solaris system code was released on June 14, 2005. There remains some system code that is not open sourced, and is available only as pre-compiled binary files.
A Community Advisory Board was announced on April 4, 2005: two were elected by the pilot community, two were employees appointed by Sun, and one was appointed from the broader free software community by Sun. The members were Roy Fielding, Al Hopper, Rich Teer, Casper Dik, and Simon Phipps. On February 10, 2006 Sun reestablished this body as the independent OpenSolaris Governing Board. The task of creating a governance document or "constitution" for this organization was given to the OGB and three invited members: Stephen Hahn and Keith Wesolowski (developers in Sun's Solaris organization) and Ben Rockwood (a prominent OpenSolaris community member).
On March 19, 2007, Sun announced that it had hired Ian Murdock, founder of Debian, to head "Project Indiana", an effort to produce a complete OpenSolaris distribution, with GNOME and userland tools from GNU, plus a network-based package management system.] Several independent distributions are also available.
On December 1, 2008, OpenSolaris 2008.11 was released, in versions that could be booted as a Live CD or installed directly. It uses the GNOME desktop environment as the primary user interface. The release includes a GUI for ZFS' snapshotting capabilities, that provides functionality similar to Mac OS X's Time Machine.
In December of 2008 Sun Microsystems and Toshiba America Information Systems announced plans to distribute Toshiba laptops pre-installed with OpenSolaris.
License
Main article: Common Development and Distribution License
Sun has released most of the Solaris source code under the Common Development and Distribution License (CDDL), which is based on the Mozilla Public License (MPL) version 1.1. The CDDL was approved as an open source license by the Open Source Initiative (OSI) in January 2005. Files licensed under the CDDL can be combined with files licensed under other licenses, whether open source or proprietary.
During Sun's announcement of Java's release under the GNU General Public License (GPL), Jonathan Schwartz and Rich Green both hinted at the possibility of releasing Solaris under the GPL, with Green saying he was "certainly not" averse to relicensing under the GPL. When Schwartz pressed him (jokingly), Green said Sun would "take a very close look at it." In January of 2007, eWeek reported that anonymous sources at Sun had told them OpenSolaris would be dual-licensed under CDDL and GPLv3.[12] Green responded in his blog the next day that the article was incorrect, saying that although Sun is giving "very serious consideration" to such a dual-licensing arrangement, it would be subject to agreement by the rest of the OpenSolaris community.
(Copied from http://en.wikipedia.org/wiki/OpenSolaris on December 31, 2008)
placement page for system software.
| Server | Developed by | Cost (USD) | Open source | Software license | Last stable version | Release date |
|---|---|---|---|---|---|---|
| And-httpd | James Antill | Free | Yes | LGPL | 0.99.11 | 2006-09-11 |
| AOLserver | NaviSoft | Free | Yes | AOLserver Public License | 4.5.1 | 2009-02-02 |
| Apache HTTP Server | Apache Software Foundation | Free | Yes | Apache License | 2.2.15 | 2010-03-06 |
| Apache Tomcat | Apache Software Foundation | Free | Yes | Apache License | 6.0.26 | 2010-03-11 |
| AppWeb Web Server | Embedthis Software | Free and Commercial Versions | Yes | GPL | 2.4.2 | 2008-03-14 |
| Boa | Paul Phillips | Free | Yes | GPL | 0.94.13 | 2002-07-30 |
| bozohttpd | Matthew R. Green | Free | Yes | BSD variant | 20090522 | 2009-05-22 |
| Caucho Resin Server Open Source | Caucho | Free | Yes | GPL | 3.2.1 | 2008-10-20 |
| Caudium | The Caudium Group | Free | Yes | GPL | 1.4.14 | 2008-03-26 |
| Cherokee HTTP Server | Alvaro Lopez Ortega | Free | Yes | GPL | 1.0.1 | 2010-05-18 |
| Devwex | Seanox Software Solutions | Free | Yes | GPLv2 | 1.2009.0301 | 2009-03-01 |
| Fnord | Felix von Leitner | Free | Yes | GPL | 1.10 | 2005-09-28 |
| GlassFish | Sun Microsystems | Free RTU, Support Subscription plans from Sun - Sun supported version comes with additional Enterprise Manager | Yes | CDDL and GPL and Sun support entitlement license | 2.1 | 2009-01-21 |
| Hiawatha | Hugo Leisink | Free | Yes | GPL | 6.15 | 2009-07-05 |
| HFS | Rejetto | Free | Yes | GPL | 2.2 | 2007-07-18 |
| Jetty | Mort Bay Consulting | Free | Yes | Apache License | 6.1.14 | 2008-11-18 |
| Koala Web Server | The Open Dylan Group | Free | Yes | Functional Object Library Public License | ||
| lighttpd | Jan Kneschke (Incremental) | Free | Yes | BSD variant | 1.4.26 | 2010-02-07 |
| Mongoose (web server) | Sergey Lyubka | Free | Yes | MIT License | 2.8 | 2009-07 |
| Monkey HTTP Daemon | Eduardo Silva | Free | Yes | GPL | 0.9.2 | 2008-01-28 |
| NaviServer | Various | Free | Yes | MPL 1.1 | 4.99.3 | 2009-03-11 |
| NCSA HTTPd | Robert McCool | Non-commercial use free, Commercial use with fee | Yes | Free for Non-Commercial Use | 1.5.2a | |
| nginx | Igor Sysoev | Free | Yes | BSD variant | 0.7.65 | 2009-11-16 |
| nodejs | Ryah Dahl | Free | Yes | MIT | ||
| nhttpd | Marcus Glocker | Free | Yes | BSD variant | 1.9.3 | 2004-03-10 |
| Null httpd | NullLogic | Free | Yes | GPL | 0.5.1 | |
| OpenLink Virtuoso | OpenLink Software | Free & Commercial Versions | Yes | GPL and Commercial Versions | ||
| publicfile | Daniel J. Bernstein | Free | Yes | public domain | ||
| pronghorn | Niklas Schulze | Free | Yes | GPL | 0.8 | |
| Roxen | Roxen Internet Software | Free | Yes | GPL | 5.0 | 2009-06-02 |
| Sun Java System Web Server | Sun Microsystems | Free | Yes | BSD | 7.0u8 | 2010-01-20 |
| thttpd | Jef Poskanzer for ACME Laboratories | Free | Yes | BSD variant | 2.25b | 2003-12-29 |
| Tornado | FriendFeed/Facebook | Free | Yes | Apache License | ||
| TUX web server | Ingo Molnár | Free | Yes | GPL | ||
| WEBrick | Ruby developers | Free | Yes | Ruby license | 1.3.1 | 2003-08-14 |
| Xitami | iMatix Corporation | Free | Yes | GPL | 5.0a0 | 2009-02-19 |
| Yaws | Claes Wikström | Free | Yes | BSD variant | 1.88 | 2010-03-18 |
| Zope | Zope Corporation | Free | Yes | ZPL | ||
| Server | Creator | Cost (USD) | Open source | Software license | Last stable version | Release date |
| Server | Windows | Linux | Mac OS X | BSD | Solaris | eCS | OpenVMS | AIX | z/OS | HP-UX |
|---|---|---|---|---|---|---|---|---|---|---|
| And-httpd | No | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| AOLserver | Yes | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| Apache HTTP Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Apache Tomcat | Yes | Yes | Yes | Yes | Yes | No | ? | Yes | Yes | Yes |
| AppWeb Web Server | Yes | Yes | Yes | Yes | Yes | No | No | No | No | ? |
| Boa | ? | Yes | ? | Yes | ? | No | No | ? | ? | ? |
| bozohttpd | see note | Yes | see note | Yes (see note) | Yes | see note | see note | see note | see note | see note |
| Caucho Resin Server Open Source | Yes | Yes | Yes | Yes | Yes | ? | ? | Yes | ? | Yes |
| Caudium | No | Yes | Yes | Yes | Yes | No | No | Yes | ? | ? |
| Cherokee HTTP Server | Yes, but outdated and dead links | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| Devwex | Yes | Yes | Yes | Yes | Yes | ? | ? | ? | ? | Yes |
| Fnord | ? | Yes | ? | ? | ? | No | No | ? | ? | ? |
| GlassFish | Yes | Yes | ? | ? | Yes | ? | ? | ? | ? | Yes |
| Hiawatha | Yes (cygwin) | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| HFS | Yes | No | No | No | No | No | No | No | No | No |
| Jetty | Yes | Yes | Yes | ? | Yes | ? | No | ? | ? | ? |
| Koala Web Server | Yes | Yes | No | Yes (FreeBSD) | No | No | No | No | No | ? |
| lighttpd | Yes (cygwin) | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes |
| Mongoose (web server) | Yes | Yes | ? | Yes | Yes | ? | ? | ? | ? | ? |
| Monkey HTTP Daemon | No | Yes | No | No | No | No | No | ? | ? | ? |
| NaviServer | Yes | Yes | Yes | Yes | Yes | ? | ? | Yes | ? | ? |
| NCSA HTTPd | ? | Yes | ? | Yes | Yes | No | No | ? | ? | Yes |
| nginx | Yes | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| nhttpd | No | Yes | Yes | Yes | No | No | No | ? | ? | ? |
| Null httpd | Yes | Yes | ? | ? | ? | No | No | ? | ? | ? |
| OpenLink Virtuoso | Yes | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| publicfile | No | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
| pronghorn | Yes | Yes | Yes | Yes | ? | ? | ? | ? | ? | ? |
| Roxen | Yes | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| Sun Java System Web Server | Yes | Yes | No | No | Yes | No | No | Yes | No | Yes |
| thttpd | Yes (cygwin) | Yes | Yes | Yes | Yes | No | No | ? | ? | ? |
| TUX web server | No | Yes | No | No | No | No | No | No | No | No |
| Xitami | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes |
| Yaws | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ? | ? |
| Server | Windows | Linux | Mac OS X | BSD | Solaris | eCS | OpenVMS | AIX | z/OS | HP-UX |
| Development Team | Apache Software Foundation |
| Current Stable Release | 2.2.15 |
| License | Apache License 2.0 |
| Website | http://httpd.apache.org/ |
| iPlanet/Sun ONE to Apache Conversion Guide | Click Here |
The Apache HTTP Server, commonly referred to as Apache (pronounced /əˈpætʃiː/), is web server software notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server software to surpass the 100 million web site milestone. Apache was the first viable alternative to the Netscape Communications Corporation web server (currently known as Oracle iPlanet Web Server), and has since evolved to rival other Unix-based web servers in terms of functionality and performance. The majority of web servers using Apache run a Unix-like operating system.[citation needed]
Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. The application is available for a wide variety of operating systems, including Unix, GNU, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X, Microsoft Windows, OS/2, TPF, and eComStation. Released under the Apache License, Apache is characterized as open source software.
Since April 1996 Apache has been the most popular HTTP server software in use. As of February 2010 Apache served over 54.46% of all websites and over 66% of the million busiest.
History and name
The first version of the Apache web server software was created by Robert McCool, who was heavily involved with the National Center for Supercomputing Applications web server, known simply as NCSA HTTPd. When McCool left NCSA in mid-1994, the development of httpd stalled, leaving a variety of patches for improvements circulating through e-mails. These patches were provided by a number of other developers besides McCool: Brian Behlendorf, Roy Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters and Nicolas Pioch, and they thus helped to form the original "Apache Group".
There have been two explanations of the project's name. According to the Apache Foundation, the name was chosen out of respect for the Native American tribe of Apache (Indé), well-known for their endurance and their skills in warfare. However, the original FAQ on the Apache Server project's website, from 1996 to 2001, claimed that "The result after combining [the NCSA httpd patches] was a patchy server. The first explanation was supported at an Apache Conference and in an interview in 2000 by Brian Behlendorf, who said that the name connoted "Take no prisoners. Be kind of aggressive and kick some ass". Behlendorf then contradicted this in a 2007 interview, stating that "The Apache server isn't named in honor of Geronimo's tribe" but that so many revisions were sent in that "the group called it 'a patchy Web server'". Both explanations are probably appropriate.
Version 2 of the Apache server was a substantial re-write of much of the Apache 1.x code, with a strong focus on further modularization and the development of a portability layer, the Apache Portable Runtime. The Apache 2.x core has several major enhancements over Apache 1.x. These include UNIX threading, better support for non-Unix platforms (such as Microsoft Windows), a new Apache API, and IPv6 support. The first alpha release of Apache 2 was in March 2000, with the first general availability release on April 6, 2002.
Version 2.2 introduced a more flexible authorization API. It also features improved cache modules and proxy modules.
Features
Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. These can range from server-side programming language support to authentication schemes. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular authentication modules include mod_access, mod_auth, mod_digest, and mod_auth_digest, the successor to mod_digest. A sample of other features include SSL and TLS support (mod_ssl), a proxy module (mod_proxy), a URL rewriter (also known as a rewrite engine, implemented under mod_rewrite), custom log files (mod_log_config), and filtering support (mod_include and mod_ext_filter).
Popular compression methods on Apache include the external extension module, mod_gzip, implemented to help with reduction of the size (weight) of web pages served over HTTP. ModSecurity is an open source intrusion detection and prevention engine for web applications. Apache logs can be analyzed through a web browser using free scripts such as AWStats/W3Perl or Visitors.
Virtual hosting allows one Apache installation to serve many different actual websites. For example, one machine with one Apache installation could simultaneously serve www.example.com, www.test.com, test47.test-server.test.com, etc.
Apache features configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs).
Use
Apache is primarily used to serve both static content and dynamic Web pages on the World Wide Web. Many web applications are designed expecting the environment and features that Apache provides.
Apache is redistributed as part of various proprietary software packages including the Oracle Database and the IBM WebSphere application server. Mac OS X integrates Apache as its built-in web server and as support for its WebObjects application server. It is also supported in some way by Borland in the Kylix and Delphi development tools. Apache is included with Novell NetWare 6.5, where it is the default web server. Apache is included with many Linux distributions.
Apache is used for many other tasks where content needs to be made available in a secure and reliable way. One example is sharing files from a personal computer over the Internet. A user who has Apache installed on their desktop can put arbitrary files in Apache's document root which can then be shared.
Programmers developing web applications often use a locally installed version of Apache in order to preview and test code as it is being developed.
Microsoft Internet Information Services (IIS) is the main competitor to Apache, followed by Sun Microsystems' Sun Java System Web Server and a host of other applications such as Zeus Web Server.
Performance
Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (October 2009)
The main design goal of Apache is not to be the "fastest" web server, but rather to implement almost all the standards.
As a result, Apache does not have the performances comparable to lighter, dedicated to "high-performances" web servers.
An open-source test of Apache with Accoria Rock (the 2008 and 2009 SpecWeb winner), Microsoft IIS and TrustLeap G-WAN illustrated where Apache lags behind the top performers.
However, these raw scalability issues must be reconsidered when Apache is used to generate dynamic contents as other tests have shown that Apache was ranking much better than other Web Application servers in this area.
License
Main article: Apache License
The software license under which software from the Apache Foundation is distributed is a distinctive part of the Apache HTTP Server's history and presence in the open source software community. The Apache License allows for the distribution of both open and closed source derivations of the source code.
The Free Software Foundation does not consider the Apache License to be compatible with version 2 of the GNU General Public License (GPL) in that software licensed under the Apache License cannot be integrated with software that is distributed under the GPL:
This is a free software license but it is incompatible with the GPL. The Apache Software License is incompatible with the GPL because it has a specific requirement that is not in the GPL: it has certain patent termination cases that the GPL does not require. We don't think those patent termination cases are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.
However, version 3 of the GPL includes a provision (Section 7e) which allows it to be compatible with licenses that have patent retaliation clauses, including the Apache License.
The name Apache is a registered trademark and may only be used with the trademark holder's express permission.
(From http://en.wikipedia.org/wiki/Apache_httpd July 5, 2010)
| CVE-2010-2068 |
|
Summary: mod_proxy_http.c in mod_proxy_http in the Apache HTTP Server 2.2.9 through 2.2.15, 2.3.4-alpha, and 2.3.5-alpha on Windows, NetWare, and OS/2, in certain configurations involving proxy worker pools, does not properly detect timeouts, which allows remote attackers to obtain a potentially sensitive response intended for a different client in opportunistic circumstances via a normal HTTP request. Published: 06/18/2010
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2010-0434 |
|
Summary: The ap_read_request function in server/protocol.c in the Apache HTTP Server 2.2.x before 2.2.15, when a multithreaded MPM is used, does not properly handle headers in subrequests in certain circumstances involving a parent request that has a body, which might allow remote attackers to obtain sensitive information via a crafted request that triggers access to memory locations associated with an earlier request. Published: 03/05/2010
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2010-0425 |
|
Summary: modules/arch/win32/mod_isapi.c in mod_isapi in the Apache HTTP Server 2.0.37 through 2.0.63, 2.2.0 through 2.2.14, and 2.3.x before 2.3.7, when running on Windows, does not ensure that request processing is complete before calling isapi_unload for an ISAPI .dll module, which allows remote attackers to execute arbitrary code via unspecified vectors related to a crafted request, a reset packet, and "orphaned callback pointers." Published: 03/05/2010
CVSS Severity: 10.0 (HIGH) |
| CVE-2010-0408 |
|
Summary: The ap_proxy_ajp_request function in mod_proxy_ajp.c in mod_proxy_ajp in the Apache HTTP Server 2.2.x before 2.2.15 does not properly handle certain situations in which a client sends no request body, which allows remote attackers to cause a denial of service (backend server outage) via a crafted request, related to use of a 500 error code instead of the appropriate 400 error code. Published: 03/05/2010
CVSS Severity: 5.0 (MEDIUM) |
| CVE-2010-0010 |
|
Summary: Integer overflow in the ap_proxy_send_fb function in proxy/proxy_util.c in mod_proxy in the Apache HTTP Server before 1.3.42 on 64-bit platforms allows remote origin servers to cause a denial of service (daemon crash) or possibly execute arbitrary code via a large chunk size that triggers a heap-based buffer overflow. Published: 02/02/2010
CVSS Severity: 6.8 (MEDIUM) |
| CVE-2009-3555 |
|
Summary: The TLS protocol, and the SSL protocol 3.0 and possibly earlier, as used in Microsoft Internet Information Services (IIS) 7.0, mod_ssl in the Apache HTTP Server 2.2.14 and earlier, OpenSSL before 0.9.8l, GnuTLS 2.8.5 and earlier, Mozilla Network Security Services (NSS) 3.12.4 and earlier, multiple Cisco products, and other products, does not properly associate renegotiation handshakes with an existing connection, which allows man-in-the-middle attackers to insert data into HTTPS sessions, and possibly other types of sessions protected by TLS or SSL, by sending an unauthenticated request that is processed retroactively by a server in a post-renegotiation context, related to a "plaintext injection" attack, aka the "Project Mogul" issue. Published: 11/09/2009
CVSS Severity: 6.4 (MEDIUM) |
| CVE-2009-2699 |
|
Summary: The Solaris pollset feature in the Event Port backend in poll/unix/port.c in the Apache Portable Runtime (APR) library before 1.3.9, as used in the Apache HTTP Server before 2.2.14 and other products, does not properly handle errors, which allows remote attackers to cause a denial of service (daemon hang) via unspecified HTTP requests, related to the prefork and event MPMs. Published: 10/13/2009
CVSS Severity: 5.0 (MEDIUM) |
| CVE-2009-1891 |
|
Summary: The mod_deflate module in Apache httpd 2.2.11 and earlier compresses large files until completion even after the associated network connection is closed, which allows remote attackers to cause a denial of service (CPU consumption). Published: 07/10/2009
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2009-1890 |
|
Summary: The stream_reqbody_cl function in mod_proxy_http.c in the mod_proxy module in the Apache HTTP Server before 2.3.3, when a reverse proxy is configured, does not properly handle an amount of streamed data that exceeds the Content-Length value, which allows remote attackers to cause a denial of service (CPU consumption) via crafted requests. Published: 07/05/2009
CVSS Severity: 5.0 (MEDIUM) |
| CVE-2009-1903 |
|
Summary: The PDF XSS protection feature in ModSecurity before 2.5.8 allows remote attackers to cause a denial of service (Apache httpd crash) via a request for a PDF file that does not use the GET method. Published: 06/03/2009
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2009-1195 |
|
Summary: The Apache HTTP Server 2.2.11 and earlier 2.2 versions does not properly handle Options=IncludesNOEXEC in the AllowOverride directive, which allows local users to gain privileges by configuring (1) Options Includes, (2) Options +Includes, or (3) Options +IncludesNOEXEC in a .htaccess file, and then inserting an exec element in a .shtml file. Published: 05/28/2009
CVSS Severity: 4.9 (MEDIUM) |
| CVE-2009-1191 |
|
Summary: mod_proxy_ajp.c in the mod_proxy_ajp module in the Apache HTTP Server 2.2.11 allows remote attackers to obtain sensitive response data, intended for a client that sent an earlier POST request with no request body, via an HTTP request. Published: 04/23/2009
CVSS Severity: 5.0 (MEDIUM) |
| CVE-2008-2364 |
|
Summary: The ap_proxy_http_process_response function in mod_proxy_http.c in the mod_proxy module in the Apache HTTP Server 2.0.63 and 2.2.8 does not limit the number of forwarded interim responses, which allows remote HTTP servers to cause a denial of service (memory consumption) via a large number of interim responses. Published: 06/13/2008
CVSS Severity: 5.0 (MEDIUM) |
| CVE-2007-6421 |
|
Summary: Cross-site scripting (XSS) vulnerability in balancer-manager in mod_proxy_balancer in the Apache HTTP Server 2.2.0 through 2.2.6 allows remote attackers to inject arbitrary web script or HTML via the (1) ss, (2) wr, or (3) rr parameters, or (4) the URL. Published: 01/08/2008
CVSS Severity: 3.5 (LOW) |
| CVE-2007-6388 |
|
Summary: Cross-site scripting (XSS) vulnerability in mod_status in the Apache HTTP Server 2.2.0 through 2.2.6, 2.0.35 through 2.0.61, and 1.3.2 through 1.3.39, when the server-status page is enabled, allows remote attackers to inject arbitrary web script or HTML via unspecified vectors. Published: 01/08/2008
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2007-6422 |
|
Summary: The balancer_handler function in mod_proxy_balancer in the Apache HTTP Server 2.2.0 through 2.2.6, when a threaded Multi-Processing Module is used, allows remote authenticated users to cause a denial of service (child process crash) via an invalid bb variable. Published: 01/08/2008
CVSS Severity: 4.0 (MEDIUM) |
| CVE-2007-5000 |
|
Summary: Cross-site scripting (XSS) vulnerability in the (1) mod_imap module in the Apache HTTP Server 1.3.0 through 1.3.39 and 2.0.35 through 2.0.61 and the (2) mod_imagemap module in the Apache HTTP Server 2.2.0 through 2.2.6 allows remote attackers to inject arbitrary web script or HTML via unspecified vectors. Published: 12/13/2007
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2007-4465 |
|
Summary: Cross-site scripting (XSS) vulnerability in mod_autoindex.c in the Apache HTTP Server before 2.2.6, when the charset on a server-generated page is not defined, allows remote attackers to inject arbitrary web script or HTML via the P parameter using the UTF-7 charset. NOTE: it could be argued that this issue is due to a design limitation of browsers that attempt to perform automatic content type detection. Published: 09/14/2007
CVSS Severity: 4.3 (MEDIUM) |
| CVE-2007-3847 |
|
Summary: The date handling code in modules/proxy/proxy_util.c (mod_proxy) in Apache 2.3.0, when using a threaded MPM, allows remote origin servers to cause a denial of service (caching forward proxy process crash) via crafted date headers that trigger a buffer over-read. Published: 08/23/2007
CVSS Severity: 5.0 (MEDIUM) |