Open source technology

Transcription

Open source technology
Open source technology
www.kankaanpaa.fi/a&o
Version: 19.2.2010
Update: 7.5.2010
Update: 3.8.2010
Open source technology
Open source software — software whose source code is published and made available to the
public, enabling anyone to copy, modify and redistribute the source code without paying royalties
or fees. Open source code evolves through community cooperation. These communities are
composed of individual programmers as well as very large companies. This document includes
some examples of open-source software products. Document is based on Wikipedia, the free
encyclopedia.
INDEX
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Apache — HTTP web server
Tomcat web server — web container
Drupal — content management system
Eclipse — software development environment comprising an integrated
development environment (IDE)
FreeBSD — operating system derived from Unix
GNU Project — “a sufficient body of free software”.
Joomla — content management system
Linux — operating system based on Unix
Mediawiki — wiki server software, the software that runs Wikipedia
MongoDB — document-oriented, non-relational database
Moodle — course management system
Mozilla Firefox — web browser
Mozilla Thunderbird — e-mail client
OpenBSD — operating system derived from Unix
OpenOffice.org — office suite
OpenSolaris — Unix Operating System from Sun Microsystems
osCommerce — ecommerce
PeaZip — File archiver
Stockfish — chess engine series, considered to be one of the strongest chess
programs of the world
Symbian — real time mobile operating system
TYPO3 — content management system
WordPress — content management system — blog software
7-Zip — File archiver
page
3
6
8
13
16
26
30
32
44
61
67
72
89
93
101
116
120
123
126
127
139
142
147
2
1. Apache — HTTP web server
The Apache HTTP Server, commonly referred to as Apache, 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.
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 opensource 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 pre-release versions (before 0.6.2) 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.
The very first version (0.6.2) of publicly distributed Apache was released in April 1995. The 1.0
version was released on December 1, 1995.
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.
3
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.
4
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
Although the main design goal of Apache is not to be the "fastest" web server, Apache does have
performance comparable to other "high-performance" web servers. Instead of implementing a single
architecture, Apache provides a variety of MultiProcessing Modules (MPMs) which allow Apache
to run in a process-based, hybrid (process and thread) or event-hybrid mode, to better match the
demands of each particular infrastructure. This implies that the choice of correct MPM and the
correct configuration is important. Where compromises in performance need to be made, the design
of Apache is to reduce latency and increase throughput, relative to simply handling more requests,
thus ensuring consistent and reliable processing of requests within reasonable time-frames.
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 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.
5
2. Tomcat web server — web container
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 Catalina (a redesigned servlet container), Coyote (an HTTP
connector) and Jasper (a redesigned JSP engine).
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.
6
Features
Tomcat 5.x
Implements the Servlet 2.4 and JSP 2.0 specifications
Reduced garbage collection, improved performance and scalability
Native Windows and Unix wrappers for platform integration
Faster JSP parsing
Deployment
Experienced users can build and install Tomcat manually from source code after installing such
dependencies as the Java Development Kit and the Apache Ant build tool.
Depending on the usage scenario, Tomcat may either be deployed as a standalone pure-Java web
server or as a component in a more complex configuration in which it serves as a back-end which
handles requests passed to it from a general purpose web server such as Apache, using a connector
such as mod_jk.
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.
Communities
Apache software is built in a community process, with both user and developer mailing lists. The
developer list is where discussion on building and testing the next release takes place, while the user
list is where users can discuss their problems with the developers and other users.
A number of free Apache Tomcat resources and communities have developed in 2010 including
Tomcatexpert.com, a SpringSource sponsored community for developers and operators who are
running Apache Tomcat in large-scale production environment's, and MuleSoft's Apache Tomcat
Resource Center, where you can find instructional guides on installing, updating, configuring,
monitoring, troubleshooting and securing various versions of Tomcat.
7
3. Drupal — content management system
Drupal is a free and open source content management system (CMS) written in PHP and
distributed under the GNU General Public License. It is used as a back-end system for at least 1%
of all websites worldwide ranging from personal blogs to larger corporate and political sites
including whitehouse.gov and data.gov.uk.It is also used for knowledge management and business
collaboration.
The standard release of Drupal, known as Drupal core, contains basic features common to most
CMSs. These include user account registration and maintenance, menu management, RSS-feeds,
page layout customization, and system administration. The Drupal core installation can be used as a
brochureware website, a single- or multi-user blog, an Internet forum, or a community website
providing for user-generated content.
Over 5800 free (as of July 20, 2010) third-party community-contributed modules, known as contrib
modules, are available to alter and extend Drupal's core capabilities and add new features or
customize Drupal's behavior and appearance. Because of this plug-in extensibility and modular
design, Drupal is sometimes described as a content management framework.Drupal is also
described as a web application framework, as it meets the generally accepted feature requirements
for such frameworks.
Although Drupal offers a sophisticated programming interface for developers, no programming
skills are required for basic website installation and administration.
Drupal runs on any computing platform that supports both a web server capable of running PHP
4.3.5+ (including Apache, IIS, Lighttpd, and nginx) and a database (such as MySQL or
PostgreSQL) to store content and settings.
History
Originally written by Dries Buytaert as a message board, Drupal became an open source project in
2001. Drupal is an English rendering of the Dutch word “druppel”, which means “drop” (as in “a
water droplet”). The name was taken from the now-defunct Drop.org website, whose code slowly
evolved into Drupal. Buytaert wanted to call the site “dorp” (Dutch for “village”) for its community
aspects, but made a typo when checking the domain name and thought it sounded better.
A large community now helps develop Drupal, and Drupal's popularity is growing rapidly. From
May 2007 to April 2008, Drupal was downloaded from the Drupal.org website more than 1.4
million times, an increase of approximately 125% from the previous year.
As of July 2010, hundreds of well-known organizations use Drupal, including companies, nonprofits, schools, and individuals. No one knows exactly how many websites currently use Drupal,
but it was estimated to be about 7.2 million as of July 2010. Drupal has also won several Packt
Open Source CMS Awards and three times (in a row) won the Webware 100.
Drupal 6.19, released in August 2010, is the latest release. On March 5, 2009, Dries Buytaert
announced a code freeze for Drupal 7 for September 1, 2009. The latest test version, DRUPAL-70-ALPHA-6, was released on July 9, 2010. There is no date announced yet for the final release of
Drupal 7.
8
Drupal core
Drupal core is the stock installation of Drupal, which can be optionally extended by third-party
contributions. In its default configuration, a Drupal website's content can be contributed by either
registered or anonymous users (at the discretion of the administrator) and is made accessible to web
visitors by a variety of selectable criteria. Drupal core also includes a hierarchical taxonomy system,
which allows content to be categorized or tagged with key words for easier access.
Drupal maintains a detailed changelog of core feature updates by version.
Core modules
Drupal core includes core modules which can be enabled by the administrator to extend the
functionality of the core website.
The core Drupal distribution provides a number of features, including:
Access statistics and logging
Advanced search
Blogs, books, comments, forums, and polls
Caching and feature throttling for improved performance
Descriptive URLs
Multiple-level menu system
Multiple-site support
Multiple-user content creation and editing
OpenID support
RSS Feed and Feed Aggregator
Security/new release update notification
User profiles
Various access control restrictions (user roles, IP addresses, email)
Workflow tools (Triggers and Actions)
Core themes
The color editor being used to adjust the "Garland" core theme
9
Drupal core includes selectable core themes, which customize the aesthetic "look and feel" of the
site.
The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme
of certain themes via a Web-browser interface. This feature was added to allow a high level of
customization for administrators.
Localization
By February 2008, Drupal's interface had been made available in 44 languages besides English (the
default). Support is included for right-to-left languages such as Arabic, Persian and Hebrew.
Auto-update notification
Drupal can automatically notify the administrator when a new version of any module, theme, or the
Drupal core itself becomes available. This feature can help keep a Drupal installation up-to-date
with the latest features and security fixes.
Extending Drupal core
Drupal core is designed to be modular with a system of hooks and callbacks, which are accessed
internally via an API. This design allows third-party contributed (often abbreviated to "contrib")
modules and themes to extend or override Drupal's default behaviors without changing Drupal
core's code.
Drupal's modular design, which isolates Drupal core's files from contributed module and themes,
increases flexibility and security and allows Drupal administrators to cleanly upgrade to new
releases of Drupal core without potentially overwriting their site's customizations. To maintain this
separation, Drupal administrators are instructed to avoid altering Drupal core's software.
Contributed modules
Contributed Drupal modules offer a variety of features including image galleries, custom content
types and content listings, WYSIWYG editors, private messaging, third-party integration tools, and
more. The Drupal website lists over 5800 free modules (as of July 20, 2010), written and
contributed to by the Drupal community.
For example, some of the most powerful and commonly used contrib modules include:
Content Construction Kit (CCK): allows site administrators to dynamically create content
types by extending the database schema. A content type describes any kind of information to
be stored in the website's database. These may include, but are not limited to, events,
invitations, reviews, articles, and products.
Views: facilitates the retrieval and presentation, through a database abstraction system, of
content to site visitors.
Panels: drag and drop layout manager that allows site administrators to visually design their
site.
The CCK Fields API has been integrated into Drupal core in the development Drupal 7 branch.
10
Contributed themes
Contributed themes adapt or replace a Drupal site's default look and feel.
Drupal themes use standardized formats that may be generated by common third-party theme
design engines. Many themes for Drupal are written in the PHPTemplate engine or, to a lesser
extent, the XTemplate engine. Some templates use hard-coded PHP.
Although early versions of Drupal's theming system were criticized for being less design-oriented
and more complicated than those for Mambo, Joomla! and Plone, the inclusion of the PHPTemplate
and XTemplate engines in Drupal has addressed some of these concerns.The new Drupal 6 theming
system utilizes a template engine in an attempt to further separate HTML/CSS from PHP. A Drupal
development module, Devel, provides assistance to theme authors who use Drupal 6.
Community-contributed themes at the Drupal website are released under a free GPL license,and
most of them are demonstrated at the Drupal Theme Garden.
Contributed installation profiles
In the past, those wanting a fully-customized installation of Drupal had to download a pre-tailored
version separately from the official Drupal core. Today, however, an installation profile can be
used to create a fresh Drupal installation built to suit a specific purpose.
Installation profiles offer a way to "pre-customize" a new Drupal site without having to manually
seek out and install third-party contrib modules or adjust configuration settings. They are
collections of modules, themes, and associated configuration settings that "build" Drupal to taste.
For example, an installation profile might be used to install Drupal as a "brochureware" site rather
than a "news" site. Another installation profile might be used to install Drupal as an online store.
Popular installation profiles include OpenPublish Open Atrium, Managing News, and Tattler.
Community
Drupal has a large community of users and developers. More than 830,000 user accounts have been
created on Drupal.org, and more than 2000 people have signed up for developer accounts. The
Drupal conference happens twice a year, alternating between North America and Europe.
DrupalCon Szeged 2008, held in August 2008, had an attendance of 500. DrupalCon Washington
DC 2009 attracted over 1400 people. In September 2009, the conference was held in Paris, with 800
attendees. Over 3000 people registered for DrupalCon San Francisco in April 2010. The European
DrupalCon 2010 will take place in August 2010 in Copenhagen, Denmark.
There are a number of active Drupal forums, mailing lists and discussion groups. Drupal also
maintains several IRC channels on the Freenode network.
There are over 20 national communities around drupal.org offering language-specific support.
11
Security
Since early in the project's history, Drupal has adopted a full transparent policy towards security . A
dedicated security team has a transparent and methodical process to review any reported issue—
whether in Drupal core or contrib. If in core, a trusted core contributor is tasked to implement a fix
in an expedited fashion, followed by re-review by the security team. If in contrib, the module
maintainer is asked to implement the fix, followed by a review. Once obtained, the security team
announces the nature of the vulnerability and the availability of the fixed code in a timely manner,
so that site administrators can immediately take remedial action. Though this policy tends to lead
observers to think that Drupal has a high number of security issues, there is no proof that this is the
case; the Drupal project's transparent approach is generally considered superior to the alternative—
security through obscurity.
As security holes are discovered and remedied, the Drupal core is updated to new versions.
Administrators of Drupal sites are automatically notified of these new releases via the Update Status
module. Additionally, Drupal.org maintains a security announcement mailing list, a history of all
security advisories, a security team home page , and an RSS feed with the most recent security
advisories. In 2008, eleven security vulnerabilities were reported and fixed in the Drupal core.
Security holes were also found and fixed in 64 of the 2243 user-contributed modules.
12
4. Eclipse — software development environment comprising an integrated
development environment (IDE)
Eclipse is a multi-language software development environment comprising an integrated
development environment (IDE) and an extensible plug-in system. It is written primarily in Java
and can be used to develop applications in Java and, by means of various plug-ins, other languages
including C, C++, COBOL, Python, Perl, PHP, Scala and Ruby (including Ruby on Rails
framework). The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT
for Java and Eclipse PDT for PHP.
The initial codebase originated from VisualAge. In its default form it is meant for Java developers,
consisting of the Java Development Tools (JDT). Users can extend its capabilities by installing
plug-ins written for the Eclipse software framework, such as development toolkits for other
programming languages, and can write and contribute their own plug-in modules.
Released under the terms of the Eclipse Public License, Eclipse is free and open source software.
Architecture
Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the
runtime system, in contrast to some other applications where functionality is typically hard coded.
The runtime system of Eclipse is based on Equinox, an OSGi standard compliant implementation.
This plug-in mechanism is a lightweight software componentry framework. In addition to allowing
Eclipse to be extended using other programming languages such as C and Python, the plug-in
framework allows Eclipse to work with typesetting languages like LaTeX, networking applications
such as telnet, and database management systems. The plug-in architecture supports writing any
desired extension to the environment, such as for configuration management. Java and CVS support
is provided in the Eclipse SDK, with Subversion support provided by third-party plug-ins.
With the exception of a small run-time kernel, everything in Eclipse is a plug-in. This means that
every plug-in developed integrates with Eclipse in exactly the same way as other plug-ins; in this
respect, all features are "created equal". Eclipse provides plug-ins for a wide variety of features,
some of which are through third parties using both free and commercial models. Examples of plugins include a UML plug-in for Sequence and other UML diagrams, a plug-in for DB Explorer, and
many others.
The Eclipse SDK includes the Eclipse Java Development Tools (JDT), offering an IDE with a builtin incremental Java compiler and a full model of the Java source files. This allows for advanced
refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set
of metadata over a flat filespace allowing external file modifications as long as the corresponding
workspace "resource" is refreshed afterwards.
Eclipse implements widgets through a widget toolkit for Java called SWT, unlike most Java
applications, which use the Java standard Abstract Window Toolkit (AWT) or Swing. Eclipse's user
interface also uses an intermediate GUI layer called JFace, which simplifies the construction of
applications based on SWT.
Language packs provide translations into over a dozen natural languages.
13
Rich Client Platform
Eclipse provides the Eclipse Rich Client Platform (RCP) for developing general purpose
applications. The following components constitute the rich client platform:
Equinox OSGi – a standard bundling framework
Core platform – boot Eclipse, run plug-ins
Standard Widget Toolkit (SWT) – a portable widget toolkit
JFace – viewer classes to bring model view controller programming to SWT, file buffers,
text handling, text editors
Eclipse Workbench – views, editors, perspectives, wizards
History
Eclipse began as an IBM Canada project. It was developed by Object Technology International
(OTI) as a Java-based replacement for the Smalltalk based VisualAge family of IDE products,
which itself had been developed by OTI. In November 2001, a consortium was formed to further
the development of Eclipse as open source. In January 2004, the Eclipse Foundation was created.
Eclipse 3.0 (released on June 21, 2004) selected the OSGi Service Platform specifications as the
runtime architecture.
Eclipse was originally released under the Common Public License, but was later relicensed under
the Eclipse Public License. The Free Software Foundation has said that both licenses are free
software licenses, but are incompatible with the GNU General Public License (GPL). Mike
Milinkovich, of the Eclipse Foundation commented that moving to the GPL would be considered
when version 3 of the GPL was released.
According to Lee Nackman, Chief Technology Officer of IBM's Rational division at that time and
later head of Rational software development and support, the name "Eclipse" was chosen to target
Microsoft's Visual Studio product, and not Sun Microsystems. Ironically, Nackman is now himself
a Microsoft employee.
14
Releases
Since 2006, the Eclipse Foundation has coordinated an annual Simultaneous Release. Each release
includes the Eclipse Platform as well as a number of other Eclipse projects. Releases are named
after the moons of the solar system.
So far, each Simultaneous Release has occurred at the end of June.
Release
Date
Platform version
Projects
Indigo
June 2011 3.7
Indigo projects
Helios
23 June 2010 3.6
Helios projects
Galileo projects
Galileo
24 June 2009 3.5
Ganymede 25 June 2008 3.4
Ganymede projects
Europa
29 June 2007 3.3
Europa projects
Callisto projects
Callisto
30 June 2006 3.2
Eclipse 3.1 28 June 2005 3.1
Eclipse 3.0 28 June 2004 3.0
15
5. FreeBSD — operating system derived from Unix
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via the Berkeley
Software Distribution (BSD). It has been characterized as "the unknown giant among free operating
systems". It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and
system APIs. FreeBSD is generally regarded as reliable and robust.
FreeBSD is a complete operating system. The kernel, device drivers and all of the userland utilities,
such as the shell, are held in the same source code revision tracking tree, whereas with Linux
distributions, the kernel, userland utilities and applications are developed separately, then packaged
together in various ways by others.
Third-party application software may be installed using various software installation systems, the
two most common being source installation and package installation, both of which use the
FreeBSD Ports system.
History
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. After two public beta releases via FTP
(1.0-GAMMA on September 2, 1993, and 1.0-EPSILON on October 3, 1993), the first official
release was FreeBSD 1.0, available via FTP on November 1, 1993 and on CDROM on December
30, 1993. This official release was coordinated by Jordan Hubbard, Nate Williams and Rodney W.
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 2STABLE 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.
16
Features
Networking
FreeBSD's TCP/IP stack is based on the 4.2BSD implementation of TCP/IP which greatly
contributed to the widespread adoption of these protocols. FreeBSD also supports IPv6, SCTP,
IPSec, IPX, AppleTalk and wireless networking.
Storage
FreeBSD has several unique features related to storage. Soft updates maintain filesystem integrity in
the event of a system crash. The GEOM framework provides features such as RAID (levels 0, 1, 3
currently), full disk encryption, and concatenation of drives. Filesystem snapshots allow an image
of a filesystem at an instant in time to be efficiently created. Snapshots allow reliable backup of a
live filesystem. FreeBSD also provides the ZFS filesystem as an alternative to the normal UFS2 file
system.
Security
FreeBSD provides several security-related features including access control lists (ACLs), security
event auditing, extended file system attributes, fine-grained capabilities and mandatory access
controls (MAC). These security enhancements were developed by the TrustedBSD project. The
project was founded by Robert Watson with the goal of implementing concepts from the Common
Criteria for Information Technology Security Evaluation and the Orange Book. This project is
ongoing and many of its extensions have been integrated into FreeBSD.
The project has also ported the NSA's FLASK/TE implementation from SELinux to FreeBSD.
Other work includes the development of OpenBSM, an open source implementation of Sun's Basic
Security Module (BSM) API and audit log file format, which supports an extensive security audit
system. This was shipped as part of FreeBSD 6.2. Other infrastructure work in FreeBSD performed
as part of the TrustedBSD Project has included SYN cookies, GEOM and OpenPAM.
While most components of the TrustedBSD project are eventually folded into the main sources for
FreeBSD, many features, once fully matured, find their way into other operating systems. For
example, OpenPAM and UFS2 have been adopted by NetBSD. Moreover, the TrustedBSD MAC
Framework has been adopted by Apple for Mac OS X.
Much of this work was sponsored by DARPA.
Portability
FreeBSD has been ported to a variety of processor architectures. The FreeBSD project organizes
architectures into tiers that characterize the level of support provided. Tier 1 architectures are
mature and fully supported. Tier 2 architectures are undergoing major development. Tier 3
architectures are experimental or are no longer under active development (as is the case of DEC
Alpha) and tier 4 architectures have no support at all.
17
FreeBSD has been ported to the following architectures:
Notes
Architecture Support Level
x86 (IA-32)
Tier 1
x86-64
Tier 1
known as amd64 in FreeBSD
NEC PC-9801 Tier 1
Sun SPARC
Tier 2
Only support 64-bit (V9) architecture
Itanium (IA-64) Tier 2
PowerPC
Tier 2
ARM
Tier 2
MIPS
Tier 3
Microsoft's Xbox Tier 3
DEC Alpha
Tier 3
Support discontinued from FreeBSD 7.0 on
Third Party Software
For more details on this topic, see FreeBSD Ports.
FreeBSD running GIMP, Firefox, and GNOME installed from the ports collection.
FreeBSD has a repository of thousands of applications that are developed by third parties outside of
the project itself. (Examples include windowing systems, Internet browsers, email programs, office
suites, and so forth.) In general, the project itself does not develop this software, only the
framework to allow these programs to be installed (termed the Ports Collection). Applications may
be installed either from source, if its licensing terms allow such redistribution (these are called
ports), or as compiled binaries if allowed (these are called packages). The Ports Collection supports
the latest release on the -CURRENT and -STABLE branches. Older releases are not supported and
may or may not work correctly with an up-to-date ports collection.
Ports Collection
Each package in the Ports Collection is installed from source. Each port's Makefile automatically
fetches the application source code, either from a local disk, CD-ROM or via ftp, unpacks it on the
system, applies the patches, and compiles. This method can be very time consuming as compiling
large packages can take hours, but the user is able to install a customized program.
18
Packages system
For most ports, precompiled binary packages also exist. This method is very quick as the whole
compilation process is avoided, but the user is not able to install a program with customized
compile time options.
Utilities for managing ports and packages
There are many utilities available for managing ports and packages available in GUIs and CLIs.
These are some of them:
barry - A KDE frontend to the ports system
bpm - A GUI ports collection manager
kports - A KDE frontend to the ports system
pib - A GUI Ports Collection management tool
portbrowser - A GUI frontend for the ports system
Linux compatibility
Most software that runs on Linux can run on FreeBSD without the need for any compatibility layer.
FreeBSD nonetheless still provides a compatibility layer for several other Unix-like operating
systems, including Linux. Hence, most Linux binaries can be run on FreeBSD, including some
proprietary applications distributed only in binary form. Examples of applications that can use the
Linux compatibility layer are StarOffice, the Linux version of Firefox, Adobe Acrobat, RealPlayer,
Oracle, Mathematica, MATLAB, WordPerfect, Skype, Wolfenstein: Enemy Territory, Doom 3 and
Quake 4 (though some of these applications also have a native version). No noticeable performance
penalty over native FreeBSD programs has been noted when running Linux binaries, and, in some
cases, these may even perform more smoothly than on Linux. However, the layer is not altogether
seamless, and some Linux binaries are unusable or only partially usable on FreeBSD. This is often
because the compatibility layer only supports system calls available in the historical Linux kernel
2.4.2. There is support of Linux 2.6.16 system calls, enabled by default since 8.0 and available since
7.0. However, there is currently no support for running 64-bit Linux binaries.
Development
FreeBSD currently has more than 400 active developers and thousands of contributors.
Governance structure
The FreeBSD Project is run by FreeBSD committers, or developers who have CVS/SVN commit
access. There are several kinds of committers, including source committers (base operating system),
doc committers (documentation and web site authors) and ports (third party application porting and
infrastructure). Every two years the FreeBSD committers select a 9-member FreeBSD Core Team
who are responsible for overall project direction, setting and enforcing project rules and approving
new "commit bits", or the granting of CVS/SVN commit access. A number of responsibilities are
officially assigned to other development teams by the FreeBSD Core Team, including responsibility
for security advisories (the Security Officer Team), release engineering (the Release Engineering
Team) and managing the ports collection (the Port Manager team). Developers may give up their
commit rights to retire or for "safe-keeping" after a period of a year or more of inactivity, although
commit rights will generally be restored on request. Under rare circumstances commit rights may be
19
removed by Core Team vote as a result of repeated violation of project rules and standards. The
FreeBSD Project is unusual among open source projects in having developers who have worked
with its source base for over 25 years, owing to the involvement of a number of past University of
California developers who worked on BSD at the Computer Systems Research Group.
Branches
FreeBSD developers maintain at least two branches of simultaneous development. The -CURRENT
branch always represents the "bleeding edge" of FreeBSD development. A -STABLE branch of
FreeBSD is created for each major version number, from which releases are cut about once every
4–6 months. If a feature is sufficiently stable and mature it will likely be backported (MFC or
Merge from CURRENT in FreeBSD developer slang) to the -STABLE branch. FreeBSD's
development model is further described in an article by Niklas Saers.
Foundation
FreeBSD development is supported in part by the FreeBSD Foundation. The foundation is a nonprofit organization that accepts donations to fund FreeBSD development. Such funding has been
used to sponsor developers for specific activities, purchase hardware and network infrastructure,
provide travel grants to developer summits, and provide legal support to the FreeBSD project.
License
FreeBSD is released under a variety of open source licenses. The kernel code and most newly
created code is released under the two-clause BSD license which allows everyone to use and
redistribute FreeBSD as they wish. There are parts released under three- and four-clause BSD
licenses, as well as Beerware license. Some device drivers include a binary blob, such as the
Atheros HAL of FreeBSD versions before 7.2. Some of the code contributed by other projects is
licensed under GPL, LGPL, ISC or CDDL. All the code licensed under GPL and CDDL is clearly
separated from the code under liberal licenses, to make it easy for users such as embedded device
manufacturers to use only permissive free software licences. ClangBSD aims to replace some GPL
dependencies in the FreeBSD base system by replacing the GNU compiler collection with the BSDlicenced LLVM/Clang compiler. ClangBSD became self-hosting on April 16 2010, an important
landmark for further independent development.
Logo
FreeBSD's mascot is the generic BSD daemon, also known as Beastie.
20
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. Moreover, 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.
Derivatives
PC-BSD
There are a number of software distributions based on FreeBSD including:
DesktopBSD (aimed at home users and workstations)
PC-BSD (aimed at home users and workstations)
FreeSBIE (live CD)
Frenzy (live CD)
GhostBSD (Gnome-based live CD)
m0n0wall (firewall)
pfSense (firewall)
FreeNAS (for network attached storage)
AskoziaPBX (an embedded PBX)
All these distributions have no or only minor changes when compared with the original FreeBSD
base system. The main difference to the original FreeBSD is that they come with pre-installed and
pre-configured software for specific use cases. This can be compared with Linux distributions,
which are all binary compatible because they use the same kernel and also use the same basic tools,
compilers and libraries, while coming with different applications, configurations and branding.
21
Besides these distributions there is DragonFly BSD, a fork from FreeBSD 4.8 aiming for a different
multiprocessor synchronization strategy than the one chosen for FreeBSD 5 and development of
some microkernel features. It doesn't aim to stay compatible with FreeBSD and has huge
differences in the kernel and basic userland.
A wide variety of products are directly or indirectly based on FreeBSD. Examples of embedded
devices based on FreeBSD include:
Citrix Netscalers
F5 Networks's 3DNS version 3 global traffic manager and EDGE-FX version 1 web cache
Ironport network security appliances
Juniper Networks routers, switches and security devices
KACE Networks's KBOX 1000 & 2000 Series Appliances and the Virtual KBOX
Appliance
nCircle's IP360
NetApp's Data ONTAP GX (only as a loader for proprietary kernel-space module of
ONTAP GX)
Netasq security appliances
Nokia's firewall operating system
Panasas's and Isilon Systems's cluster storage operating systems
The PlayStation 3 video game console.
Sophos's Email Appliance
St. Bernard Software iPrism web filtering appliances
Other operating systems contain code that originated in FreeBSD such as Linux and the RTOS
VxWorks. Darwin, the core of Apple's Mac OS X, borrows FreeBSD's virtual file system, network
stack and components of its userspace. The now-defunct OpenDarwin project, which was based on
Apple's Darwin operating system, also included substantial FreeBSD code. Debian, known
primarily for using the kernel Linux, also maintains GNU/kFreeBSD, combining the GNU
userspace and C library with the kernel of FreeBSD.
Installers
sysinstall
The sysinstall utility is the installation application provided by the FreeBSD Project. It is TUIbased, and is divided into a number of menus and screens that can be used to configure and control
the installation process. It can also be used to install Ports and Packages as an alternative to the CLI.
finstall
The finstall utility aims to create a user-friendly graphical installer for FreeBSD & FreeBSDderived systems, however development of finstall has stalled.
22
Version history
FreeBSD 1
Released in November 1993. 1.1.5.1 was released in July, 1994.
FreeBSD 2
2.0-RELEASE was announced on November 22, 1994. The last of FreeBSD 2, 2.2.8-RELEASE,
was announced on November 29, 1998. First FreeBSD to be claimed legally free of AT&T UNIX
code with approval of Novell.
FreeBSD 3
Announced on October 16, 1998. 3.5-RELEASE was announced on June 24, 2000.
FreeBSD 4
4.0-RELEASE appeared in March 2000 and the last 4-STABLE branch release was 4.11 in January
2005 supported until January 31, 2007. FreeBSD 4 was a favorite operating system for ISPs and
web hosting providers 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. Among the new features of
FreeBSD 4, kqueue(2) was introduced (which is now part of other major BSD systems).
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 IA-64 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.
23
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.3, on
March 23, 2010. 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 also integrated and FreeBSD 7.2 brought support for multiIPv4/IPv6 jails.
Code supporting the DEC Alpha architecture (supported since FreeBSD 4.0) was removed in
FreeBSD 7.0.
FreeBSD 8
FreeBSD 8.1 is the latest stable release of FreeBSD, having been branched from the trunk in June
2010. It features superpages, Xen DomU support, network stack virtualization, stack-smashing
protection, TTY layer rewrite, much improved ZFS support, a new USB stack, multicast updates
including IGMPv3, and rewritten NFS client/server introducing NFSv4. Inclusion of improved
device mmap() extensions allows the technical implementation of a 64-bit Nvidia display driver for
the x86-64 platform. FreeBSD 8.1 was formally released on July 23rd, 2010.
FreeBSD 9
As of 2009, "bleeding edge" development occurs on -CURRENT, the trunk version of the operating
system, which will result in a future version named FreeBSD 9. Until FreeBSD 8.0 was released,
the trunk was updated with only conservative changes.
24
Timeline
The timeline shows that the span of a single release generation of FreeBSD lasts around 5 years.
Since the FreeBSD project makes effort for binary backward (and limited forward) compatibility
within the same release generation, this allows users 5+ years of support, with trivial-to-easy
upgrading within the release generation.
25
6. GNU Project — “a sufficient body of free software”
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983,
by Richard Stallman at MIT. It initiated the GNU operating system, software development for
which began in January 1984. The founding goal of the project was, in the words of its initial
announcement, to develop "a sufficient body of free software [...] to get along without any software
that is not free." GNU is meant to be free and unrestricted by other distributors. Any programmer is
allowed to have access to the code and projects created using GNU.
To make this happen, the GNU Project began working on an operating system called GNU ("GNU"
is a recursive acronym that stands for "GNU's Not Unix"). This goal of making a free software
operating system was achieved in 1992 when the last gap in the GNU system, a kernel, was filled
by a third-party Unix-like kernel called "Linux" being released as Free Software, under version 2 of
the GNU GPL.
Current work of the GNU Project includes software development, awareness building, political
campaigning and sharing of the new material.
Origins of the project
When the GNU project first started they, "had an Emacs text editor with Lisp for writing editor
commands, a source level debugger, a yacc-compatible parser generator, and a linker". They had an
initial kernel that needed more updates. Once the kernel and the compiler were finished GNU was
able to be used for program development. The main goal was to create many other applications to
be like the Unix system. GNU was able to run Unix programs but was not identical to it. GNU
incorporated longer file names, file version numbers, and a crashproof file system. The GNU
Manifesto was written to gain support and participation from others for the project. Programmers
were encouraged to take part in any aspect of the project that interested them. People could donate
funds, computer parts, or even their own time to write code and programs for the project.
The GNU Manifesto
The GNU Manifesto was written by Richard Stallman to gain support and participation in the GNU
Project. He lays out why he is creating GNU and answers questions participants and supporters may
have about the project. The manifesto starts with why and how GNU will be available along with
answers to objections some may have to the outcome of the GNU project.
Philosophy and activism
Although most of the GNU Project's output is technical in nature, it was launched as a social,
ethical, and political initiative. As well as producing software and licenses, the GNU Project has
published a large number of philosophical writings, the majority of which were authored by Richard
Stallman.
26
Participation
The GNU projects allows other programmers to get involved with the process of creating free
software. A list of projects are laid out on the GNU website and each project has specifics for what
type of developer is able to perform the task needed for a certain piece of the GNU project. The
skill level ranges from project to project but anyone with background knowledge in programming is
encouraged to support the project.
Free software
The GNU project uses free software which refers to the way that it is free for users to copy, edit,
and distribute. Free refers to the freedom that the user has with the ability to use, distribute, study,
and modify the software, rather than the price of the software. It is not always free in cost but it is
free in the sense that one can change the software to however it fits one's needs. The way
programmers obtain the free software depends on where they are getting it from. The software
could be provided to the programmer from friends or over the internet, or the company a
programmer works for may purchase the software. This purchase may then go back and support the
GNU project further. GNU has four kinds of freedom for the software:
Freedom to run the program
Freedom to access the code
Freedom to redistribute the program to anyone
Freedom to improve the software
Copyleft
Copyleft is what helps maintain the free use of this software among other programmers. Copyleft is
intended to give legal rights to everyone to use, edit, and redistribute programs or program's code as
long as the distribution terms do not change. Copyleft allows for the freedom to remain in the way
that programmers may create new code and programs.
27
Operating system development
gNewSense is an example of a GNU/Linux based distribution
The first goal of the GNU project was to create a whole free-software operating system. By 1992,
the GNU project had completed all of the major operating system components except for their
kernel, GNU Hurd. The Linux kernel, started independently by Linus Torvalds in 1991 filled the
last gap, and Linux version 0.12 was released under the GPL in 1992. Together, Linux and GNU
formed the first completely free-software operating system. Though the Linux kernel is not part of
the GNU project, it was developed using GCC and other GNU programming tools.
Strategic projects
From the mid-1990s onward, with many companies investing in free software development, the
Free Software Foundation redirected its funds toward the legal and political support of free software
development. Software development from that point on focused on maintaining existing projects,
and starting new projects only when there was an acute threat to the free software community; see
High Priority Free Software Projects. One of the most notable projects of the GNU Project is the
GNU C compiler, which has been adopted as the standard compiler on almost all UNIX and UNIXlike systems, including Apple's iPhone and iPod.
GNOME
One example is the GNOME desktop. This development effort was launched by the GNU Project
because another desktop system, KDE, was becoming popular but required users to install certain
proprietary software. To prevent people from being tempted to install that proprietary software, the
GNU Project simultaneously launched two projects. One was the Harmony toolkit. This was an
attempt to make a free software replacement for the proprietary software that KDE depended on.
Had this project been successful, the problem with KDE would have been solved. The second
project was GNOME, which tackled the same issue from a different angle. It aimed to make a
replacement for KDE which didn't have any dependencies on proprietary software. The Harmony
project didn't make much progress, but GNOME developed very well. Eventually, the proprietary
component that KDE depended on (Qt) was released as free software.
28
Gnash
Another example is Gnash, software able to play content distributed in the Adobe Flash format.
This has been marked as a priority project by GNU because it was seen that many people were
installing a free software operating system and using a free software web-browser, but were then
also installing the proprietary software plug-in from Adobe.
29
7. Joomla — content management system
Joomla! is a free and open source content management system for publishing content on the World
Wide Web and intranets as well as a model–view–controller (MVC) Web application framework. It
is written in PHP, stores data in MySQL and includes features such as page caching, RSS feeds,
printable versions of pages, news flashes, blogs, polls, search, and support for language
internationalization.
Within its first year of release, Joomla was downloaded 2.5 million times. Over 5,000 free and
commercial plug-ins are available for Joomla.
History
Joomla! was the result of a fork of Mambo by the Joomla! development team on August 17, 2005.
At that time, the Mambo name was trademarked by Miro International Pty Ltd, who formed a nonprofit foundation with the stated purpose to fund the project and protect it from lawsuits. The
Joomla! development team claimed that many of the provisions of the foundation structure went
against previous agreements made by the elected Mambo Steering Committee, lacked the necessary
consultation with key stake-holders and included provisions that violated core open source values.
The Joomla! development team created a web site called OpenSourceMatters.org to distribute
information to users, developers, web designers and the community in general. The project team
leader Andrew Eddie, AKA "MasterChief" wrote an open letter to the community which appeared
on the announcements section of the public forum at mamboserver.com.
A little more than one thousand people had joined the opensourcematters.org web site within a day,
most posting words of encouragement and support, and the web site received the slashdot effect as a
result. Miro CEO Peter Lamont gave a public response to the development team in an article titled
"The Mambo Open Source Controversy - 20 Questions With Miro". This event created controversy
within the free software community about the definition of "open source". Forums at many other
open source projects were active with postings for and against the actions of both sides.
In the two weeks following Eddie's announcement, teams were re-organized, and the community
continued to grow. Eben Moglen and the Software Freedom Law Center (SFLC) assisted the
Joomla! core team beginning in August 2005, as indicated by Moglen's blog entry from that date
and a related OSM announcement. The SFLC continue to provide legal guidance to the Joomla!
project.
On August 18, 2005, Andrew Eddie called for community input on suggested names for the project.
The core team indicated that it would make the final decision for the project name based on
community input. The core team eventually chose a name that was not on the list of suggested
names provided by the community.
On September 1, 2005 the new name, “Joomla!,” was announced. It is the English spelling of the
Swahili word jumla meaning “all together” or “as a whole.”
On September 6, 2005, the development team called for logo submissions from the community,
invited the community to vote on the logo preferred, and announced the community's decision on
September 22, 2005. Following the logo selection, brand guidelines, a brand manual, and a set of
logo resources were then published on October 2, 2005 for the community's use.
30
Joomla! (Joomla 1.0.0) was released on September 16, 2005. It was a re-branded release of Mambo
4.5.2.3 which, itself, was combined with other bug and moderate-level security fixes.
Joomla! won the Packt Publishing Open Source Content Management System Award in both 2006
and 2007.
On October 27, 2008, PACKT Publishing announced Johan Janssens the "Most Valued Person"
(MVP) for his work as one of the lead developers of the 1.5 Joomla Framework and Architecture. In
2009 Louis Landry received the "Most Valued Person" award for his role as Joomla architect and
development coordinator.
Joomla! version 1.5 was released on January 22, 2008. The most recent release (18 July 2010) is
1.5.20.
Since May 2010, beta versions of 1.6 were made available for testing purposes.
Deployment
Joomla can be installed manually from source code on a system running a web server which
supports PHP applications. Manual installation usually requires more time and experience than
other alternatives such as installing Joomla from a package management system or using a TurnKey
Joomla appliance which pre-integrates Joomla and its dependencies as a ready-to-use system.
There are numerous web hosting companies who provide a control panel which automates the
deployment of a basic Joomla web site.
Joomla can also be installed via the Microsoft Web Platform Installer which installs Joomla on
Windows and IIS. The Web PI will automatically detect any missing dependencies such as PHP or
MySQL then install and configure them before installing Joomla.
31
8. Linux — operating system based on Unix
Linux refers to the family of Unix-like computer operating systems using the Linux kernel. Linux
can be installed on a wide variety of computer hardware, ranging from mobile phones, tablet
computers and video game consoles, to mainframes and supercomputers. Linux is predominantly
known for its use in servers; in 2009 it held a server market share ranging between 20–40%. Most
desktop computers run either Microsoft Windows or Mac OS X, with Linux having anywhere from
a low of an estimated 1–2% of the desktop market to a high of an estimated 4.8%. However,
desktop use of Linux has become increasingly popular in recent years, partly owing to the popular
Ubuntu, Fedora, Mint, and openSUSE distributions and the emergence of netbooks and
smartphones running an embedded Linux.
The development of Linux is one of the most prominent examples of free and open source software
collaboration; typically all the underlying source code can be used, freely modified, and
redistributed, both commercially and non-commercially, by anyone under licenses such as the GNU
General Public License. Typically Linux is packaged in a format known as a Linux distribution for
desktop and server use. Linux distributions include the Linux kernel and all of the supporting
software required to run a complete system, such as utilities and libraries, the X Window System,
the GNOME and KDE desktop environments, and the Apache HTTP Server. Commonly used
applications with desktop Linux systems include the Mozilla Firefox web-browser, the
OpenOffice.org office application suite and the GIMP image editor.
The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The
main supporting user space system tools and libraries from the GNU Project (announced in 1983 by
Richard Stallman) are the basis for the Free Software Foundation's preferred name GNU/Linux.
History
Richard Stallman, left, founder of the GNU
project, and Linus Torvalds, right, principal
author of the Linux kernel
32
Unix
The Unix operating system was conceived and implemented in 1969 at AT&T's Bell Laboratories
in the United States by Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. Unix
derived its name as a joke and reference to an experimental operating system that was slow and
ineffective called MULTICS. It was first released in 1971 and was initially entirely written in
assembly language, a common practice at the time. Later, in a key pioneering approach in 1973,
Unix was re-written in the programming language C by Dennis Ritchie, (with exceptions to the
kernel and I/O). The availability of an operating system written in a high-level language allowed
easier portability to different computer platforms. With a legal glitch forcing AT&T to license the
operating system's source code, Unix quickly grew and became widely adopted by academic
institutions and businesses.
GNU
The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a "complete Unixcompatible software system" composed entirely of free software. Work began in 1984. Later, in
1985, Stallman started the Free Software Foundation and wrote the GNU General Public License
(GNU GPL) in 1989. By the early 1990s, many of the programs required in an operating system
(such as libraries, compilers, text editors, a Unix shell, and a windowing system) were completed,
although low-level elements such as device drivers, daemons, and the kernel were stalled and
incomplete. Linus Torvalds has said that if the GNU kernel had been available at the time (1991),
he would not have decided to write his own.
MINIX
Andrew S. Tanenbaum, author of the MINIX operating system
MINIX was an inexpensive minimal Unix-like operating system, designed for education in
computer science, written by Andrew S. Tanenbaum. Starting with version 3, MINIX is free and
redesigned also for “serious” use.
In 1991 while attending the University of Helsinki, Torvalds, curious about the operating systems
and frustrated by the licensing of MINIX limiting it to educational use only (which prevented any
commercial use) began to work on his own operating system which eventually became the Linux
kernel.
33
Torvalds began the development of the Linux kernel on MINIX and applications written for MINIX
were also used on Linux. Later Linux matured and it became possible for Linux to be developed
under itself. Also GNU applications replaced all MINIX ones because, with code from the GNU
system freely available, it was advantageous if this could be used with the fledgling operating
system. Code licensed under the GNU GPL can be used in other projects, so long as they also are
released under the same or a compatible license. In order to make the Linux available for
commercial use, Torvalds initiated a switch from his original license (which prohibited commercial
redistribution) to the GNU GPL. Developers worked to integrate GNU components with Linux to
make a fully functional and free operating system.
Commercial and popular uptake
Today Linux distributions are used in numerous domains, from embedded systems to
supercomputers, and have secured a place in server installations with the popular LAMP application
stack. Use of Linux distributions in home and enterprise desktops has been expanding. They have
also gained popularity with various local and national governments. The federal government of
Brazil is well known for its support for Linux. News of the Russian military creating their own
Linux distribution has also surfaced, and has come to fruition as the G.H.ost Project. The Indian
state of Kerala has gone to the extent of mandating for all state high schools to run Linux on their
computers. China uses Linux exclusively as the operating system for its Loongson processor family
to achieve technology independence. In Spain some regions have developed their own Linux
distributions, which are widely used in education and official institutions, like gnuLinEx in
Extremadura and Guadalinex in Andalusia. Portugal is also using its own Linux distribution Caixa
Mágica, used in the Magalhães netbook and the e-escola government program. France and Germany
have also taken steps towards the adoption of Linux.
Linux distributions have also become popular with the newly founded netbook market, with many
devices such as the ASUS Eee PC and Acer Aspire One shipping with customized Linux
distributions installed.
Current development
Torvalds continues to direct the development of the kernel. Stallman heads the Free Software
Foundation, which in turn supports the GNU components. Finally, individuals and corporations
develop third-party non-GNU components. These third-party components comprise a vast body of
work and may include both kernel modules and user applications and libraries. Linux vendors and
communities combine and distribute the kernel, GNU components, and non-GNU components, with
additional package management software in the form of Linux distributions.
Design
A Linux-based system is a modular Unix-like operating system. It derives much of its basic design
from principles established in Unix during the 1970s and 1980s. Such a system uses a monolithic
kernel, the Linux kernel, which handles process control, networking, and peripheral and file system
access. Device drivers are either integrated directly with the kernel or added as modules loaded
while the system is running.
34
Separate projects that interface with the kernel provide much of the system's higher-level
functionality. The GNU userland is an important part of most Linux-based systems, providing the
most common implementation of the C library, a popular shell, and many of the common Unix
tools which carry out many basic operating system tasks. The graphical user interface (or GUI) used
by most Linux systems is built on top of an implementation of the X Window System.
User interface
Users can control a Linux-based system through a command line interface (or CLI), a graphical user
interface (or GUI), or through controls attached to the associated hardware (this is common for
embedded systems). For desktop systems, the default mode is usually graphical user interface,
where the CLI is available through terminal emulator windows or on a separate virtual console.
On desktop machines, KDE, GNOME, and Xfce are the most popular user interfaces, though a
variety of additional user interfaces exist. Most popular user interfaces run on top of the X Window
System (often simply called "X"), which provides network transparency, enabling a graphical
application running on one machine to be displayed and controlled from another.
Other GUIs include X window managers such as FVWM, Enlightenment, and Window Maker. The
window manager provides a means to control the placement and appearance of individual
application windows, and interacts with the X Window System. This is a more minimalist goal than
KDE, GNOME et al., which are termed desktop environments.
A Linux system typically provides a CLI through a shell, which is the traditional way of interacting
with a Unix system. A Linux distribution specialized for servers may use the CLI as its only
interface.
Most low-level Linux components, including the GNU userland, use the CLI exclusively. The CLI
is particularly suited for automation of repetitive or delayed tasks, and provides very simple interprocess communication. A graphical terminal emulator program is often used to access the CLI
from a Linux desktop.
Development
A summarized history of Unix-like operating systems showing Linux's origins. Note that despite
similar architectural designs and concepts being shared as part of the POSIX standard, Linux does
not share any non-free source code with the original Unix or MINIX.
35
The primary difference between Linux and many other popular contemporary operating systems is
that the Linux kernel and other components are free and open source software. Linux is not the only
such operating system, although it is by far the most widely used. Some free and open source
software licenses are based on the principle of copyleft, a kind of reciprocity: any work derived
from a copyleft piece of software must also be copyleft itself. The most common free software
license, the GNU GPL, is a form of copyleft, and is used for the Linux kernel and many of the
components from the GNU project.
Linux based distributions are intended by developers for interoperability with other operating
systems and established computing standards. Linux systems adhere to POSIX, SUS, ISO, and
ANSI standards where possible, although to date only one Linux distribution has been POSIX.1
certified, Linux-FT.
Free software projects, although developed in a collaborative fashion, are often produced
independently of each other. The fact that the software licenses explicitly permit redistribution,
however, provides a basis for larger scale projects that collect the software produced by stand-alone
projects and make it available all at once in the form of a Linux distribution.
A Linux distribution, commonly called a "distro", is a project that manages a remote collection of
system software and application software packages available for download and installation through
a network connection. This allows the user to adapt the operating system to his/her specific needs.
Distributions are maintained by individuals, loose-knit teams, volunteer organizations, and
commercial entities. A distribution is responsible for the default configuration of the installed Linux
kernel, general system security, and more generally integration of the different software packages
into a coherent whole. Distributions typically use a package manager such as Synaptic, YAST, or
Portage to install, remove and update all of a system's software from one central location.
Community
A distribution is largely driven by its developer and user communities. Some vendors develop and
fund their distributions on a volunteer basis, Debian being a well-known example. Others maintain
a community version of their commercial distributions, as Red Hat does with Fedora.
In many cities and regions, local associations known as Linux Users Groups (LUGs) seek to
promote their preferred distribution and by extension free software. They hold meetings and provide
free demonstrations, training, technical support, and operating system installation to new users.
Many Internet communities also provide support to Linux users and developers. Most distributions
and free software / open source projects have IRC chatrooms or newsgroups. Online forums are
another means for support, with notable examples being LinuxQuestions.org and the Gentoo
forums. Linux distributions host mailing lists; commonly there will be a specific topic such as usage
or development for a given list.
There are several technology websites with a Linux focus. Print magazines on Linux often include
cover disks including software or even complete Linux distributions.
Although Linux distributions are generally available without charge, several large corporations sell,
support, and contribute to the development of the components of the system and of free software.
An analysis of the Linux kernel showed 75 percent of the code from December 2008 to January
2010 was developed by programmers working for corporations, leaving about 18 percent to the
traditional, open source community. Some of the major corporations that contribute include Dell,
36
IBM, HP, Oracle, Sun Microsystems, Novell, Nokia. A number of corporations, notably Red Hat,
have built their entire business around Linux distributions.
The free software licenses, on which the various software packages of a distribution built on the
Linux kernel are based, explicitly accommodate and encourage commercialization; the relationship
between a Linux distribution as a whole and individual vendors may be seen as symbiotic. One
common business model of commercial suppliers is charging for support, especially for business
users. A number of companies also offer a specialized business version of their distribution, which
adds proprietary support packages and tools to administer higher numbers of installations or to
simplify administrative tasks. Another business model is to give away the software in order to sell
hardware.
Programming on Linux
Most Linux distributions support dozens of programming languages. The most common collection
of utilities for building both Linux applications and operating system programs is found within the
GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system.
Amongst others, GCC provides compilers for Ada, C, C++, Java, and Fortran. The Linux kernel
itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++
Compiler, Sun Studio, and IBM XL C/C++ Compiler. BASIC is supported in such forms as
Gambas, FreeBASIC, and XBasic.
Most distributions also include support for PHP, Perl, Ruby, Python and other dynamic languages.
While not as common, Linux also supports C# via the Mono project, sponsored by Novell, C# via
Vala and Scheme. A number of Java Virtual Machines and development kits run on Linux,
including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many
open-source projects like Kaffe.
The two main frameworks for developing graphical applications are those of GNOME and KDE.
These projects are based on the GTK+ and Qt widget toolkits, respectively, which can also be used
independently of the larger framework. Both support a wide variety of languages. There are a
number of Integrated development environments available including Anjuta, Code::Blocks, Eclipse,
KDevelop, Lazarus, MonoDevelop, NetBeans, Qt Creator and Omnis Studio while the longestablished editors Vim and Emacs remain popular.
Uses
As well as those designed for general purpose use on desktops and servers, distributions may be
specialized for different purposes including: computer architecture support, embedded systems,
stability, security, localization to a specific region or language, targeting of specific user groups,
support for real-time applications, or commitment to a given desktop environment. Furthermore,
some distributions deliberately include only free software. Currently, over three hundred
distributions are actively developed, with about a dozen distributions being most popular for
general-purpose use.
Linux is a widely ported operating system kernel. The Linux kernel runs on a highly diverse range
of computer architectures: in the hand-held ARM-based iPAQ and the mainframe IBM System z9,
System z10 in devices ranging from mobile phones to supercomputers. Specialized distributions
exist for less mainstream architectures. The ELKS kernel fork can run on Intel 8086 or Intel 80286
16-bit microprocessors, while the µClinux kernel fork may run on systems without a memory
37
management unit. The kernel also runs on architectures that were only ever intended to use a
manufacturer-created operating system, such as Macintosh computers (with both PowerPC and Intel
processors), PDAs, video game consoles, portable music players, and mobile phones.
There are several industry associations and hardware conferences devoted to maintaining and
improving support for diverse hardware under Linux, such as FreedomHEC.
Desktop
GNOME
KDE SC
Xfce
LXDE
38
The popularity of Linux on standard desktops (and laptops) has been increasing over the years.
Currently most distributions include a graphical user environment. The two most popular such
environments are GNOME and KDE, both of which are mature and support a wide variety of
languages.
The performance of Linux on the desktop has been a controversial topic; for example in 2007 Con
Kolivas accused the Linux community of favoring performance on servers. He quit Linux kernel
development because he was frustrated with this lack of focus on the desktop, and then gave a "tell
all" interview on the topic. Since then a significant effort has been expended improving the desktop
experience. Projects such as upstart aim for a faster boot time. There are several companies that do
port their own or other companies' games to Linux.
Many types of applications available for Microsoft Windows and Mac OS X are also available for
Linux. Commonly, either a free software application will exist which does the functions of an
application found on another operating systems, or that application will have a version that works
on Linux (such as Skype). Furthermore, the Wine project provides a Windows compatibility layer
to run unmodified Windows applications on Linux. CrossOver is a proprietary solution based on the
open source Wine project that supports running Windows versions of Microsoft Office, Intuit
applications such as Quicken and QuickBooks, Adobe Photoshop versions through CS2, and many
popular games such as World of Warcraft and Team Fortress 2. In other cases, where there is no
Linux port of some software in areas such as desktop publishing and professional audio, there is
equivalent software available on Linux.
Many popular applications are available for a wide variety of operating systems. For example
Mozilla Firefox, and OpenOffice.org have downloadable versions for all major operating systems.
Furthermore, some applications were initially developed for Linux (such as Pidgin, and GIMP) and,
due to their popularity, were ported to other operating systems (including Windows and Mac OS
X).
A growing number of proprietary desktop applications are also supported on Linux, see List of
proprietary software for Linux. In the field of animation and visual effects, most high end software,
such as AutoDesk Maya, Softimage XSI and Apple Shake, is available for Linux, Windows and/or
Mac OS X.
The collaborative nature of free software development allows distributed teams to localize Linux
distributions for use in locales where localizing proprietary systems would not be cost-effective. For
example the Sinhalese language version of the Knoppix distribution was available significantly
before Microsoft Windows XP was translated to Sinhalese. In this case the Lanka Linux User
Group played a major part in developing the localized system by combining the knowledge of
university professors, linguists, and local developers.
Installing new software in Linux is typically done through the use of package managers such as
Synaptic Package Manager, PackageKit, and Yum Extender. While major Linux distributions have
extensive repositories (tens of thousands of packages), not all the software that can run on Linux is
available from the official repositories. Alternatively, users can install packages from unofficial
repositories, download pre-compiled packages directly from websites, or compile the source code
by themselves. All these methods come with different degrees of difficulty, compiling the source
code is in general considered a challenging process for new Linux users, but it's hardly needed in
modern distributions.
39
Servers, mainframes and supercomputers
Servers designed for Linux
Linux distributions have long been used as server operating systems, and have risen to prominence
in that area; Netcraft reported in September 2006 that eight of the ten most reliable internet hosting
companies ran Linux distributions on their web servers. (since June 2008, Linux distributions
represented five of the top ten, FreeBSD three of ten, and Microsoft two of ten; since February
2010, Linux distributions represented six of the top ten, FreeBSD two of ten, and Microsoft one of
ten.)
The Oak Ridge National Laboratory's Jaguar supercomputer, since November 2009 the world's
fastest supercomputer. It uses the Cray Linux Environment as its operating system.
Linux distributions are the cornerstone of the LAMP server-software combination (Linux, Apache,
MySQL, Perl/PHP/Python) which has achieved popularity among developers, and which is one of
the more common platforms for website hosting.
Linux distributions have become increasingly popular on mainframes in the last decade due to
pricing, compared to other mainframe operating systems. In December 2009, computer giant IBM
reported that it would predominantly market and sell mainframe-based Enterprise Linux Server.
Linux distributions are also commonly used as operating systems for supercomputers: since June
2010, out of the top 500 systems, 455 (91%) run a Linux distribution. Linux was also selected as the
operating system for the world's most powerful supercomputer, IBM's Sequoia which will become
operational in 2011.
40
Embedded devices
An HTC Dream running Android
Due to its low cost and ease of modification, an embedded Linux is often used in embedded
systems. Linux has become a major competitor of Symbian OS which is used in the majority of
smartphones—16.7% of smartphones sold worldwide during 2006 were using Linux—and it is an
alternative to the proprietary Windows CE and Palm OS operating systems on mobile devices. Cell
phones or PDAs running on Linux and built on open source platform became a trend from 2007,
like Nokia N810, Openmoko's Neo1973, Motorola RAZR2 v8, Motorola ROKR E8, Motorola
MING series, Motorola ZINE and Google Android. The popular TiVo digital video recorder uses a
customized version of Linux. Several network firewall and router standalone products, including
several from Cisco/Linksys, use Linux internally, using its advanced firewall and routing
capabilities. The Korg OASYS, Roland RD-700GX and the Yamaha Motif XS music workstations
also run Linux. Furthermore, Linux is used in the leading stage lighting control system,
FlyingPig/HighEnd WholeHogIII Console.
Market share and uptake
Usage share of web client operating systems. (Source: Median values from Usage share of
operating systems for June 2010.)
Windows XP (49.96%)
Windows Vista (19.42%)
Windows
7 (15.70%)
Mac OS X (6.03%)
Linux (1.30%)
iOS (iPhone) (0.90%)
See also: Usage share of operating systems and List of Linux computers
Many quantitative studies of free / open source software focus on topics including market share and
reliability, with numerous studies specifically examining Linux. The Linux market is growing
rapidly, and the revenue of servers, desktops, and packaged software running Linux was expected to
exceed $35.7 billion by 2008.
IDC's Q1 2007 report indicated that Linux held 12.7% of the overall server market at that time. This
estimate was based on the number of Linux servers sold by various companies and did not include
server hardware purchased separately and had Linux installed on it later. In September 2008
Microsoft CEO Steve Ballmer admitted that 60% of web-servers run Linux versus 40% that run
Windows Server.
41
Primarily based on web server statistics, various companies estimated that the desktop market share
of Linux range from less than 1% to 4.8%. In comparison, Microsoft operating systems hold more
than 85%.
Three factors that have been cited to prevent large-scale Linux adaptation are the frictional cost of
switching operating systems, the lack of support for hardware and applications designed for
Microsoft Windows, and Microsoft's deliberate hampering. Analysts and proponents attribute the
relative success of Linux to its security, reliability, low cost, and freedom from vendor lock-in.,
Since 2009 Google has funded the compatibility layer Wine, allowing users to run most programs
designed for Windows under Linux.
The XO laptop project of One Laptop Per Child is creating a new and potentially much larger Linux
community which is planned to reach millions of schoolchildren and their families in the
developing world. Major supporters of the project include Google, Red Hat, and eBay. Although the
XO will have a Windows option, it will be primarily deployed with Fedora Linux while using Sugar
as the desktop environment.
For years Linux has been the platform of choice in the film industry. The first major film produced
on Linux servers was 1997's Titanic. Since then major studios including Dreamworks Animation,
Pixar and Industrial Light & Magic have migrated to Linux. According to the Linux Movies Group,
more than 95% of the servers and desktops at large animation and visual effects companies use
Linux.
Copyright and naming
Linux and most GNU software are licensed under the GNU General Public License (GPL). The
GPL requires that anyone who distributes Linux must make the source code (and any modifications)
available to the recipient under the same terms. Other key components of a software system may
use other licenses; many libraries use the GNU Lesser General Public License (LGPL), a more
permissive variant of the GPL, and the X Window System uses the MIT License.
Torvalds states that the Linux kernel will not move from version 2 of the GPL to version 3. He
specifically dislikes some provisions in the new license which prohibit the use of the software in
digital rights management, and it would also be impractical to obtain permission from all the
copyright holders, who number in the thousands.
A 2001 study of Red Hat Linux 7.1 found that this distribution contained 30 million source lines of
code. Using the Constructive Cost Model, the study estimated that this distribution required about
eight thousand man-years of development time. According to the study, if all this software had been
developed by conventional proprietary means, it would have cost about $1.36 billion (2010 US
dollars) to develop in the United States.
Most of the code (71%) was written in the C programming language, but many other languages
were used, including C++, assembly language, Perl, Python, Fortran, and various shell scripting
languages. Slightly over half of all lines of code were licensed under the GPL. The Linux kernel
itself was 2.4 million lines of code, or 8% of the total.
In a later study, the same analysis was performed for Debian GNU/Linux version 4.0 (etch, which
was released in 2007). This distribution contained close to 283 million source lines of code, and the
42
study estimated that it would have cost $7.53 billion (2010 US dollars) to develop by conventional
means.
In the United States, the name Linux is a trademark registered to Linus Torvalds. Initially, nobody
registered it, but on 15 August 1994, William R. Della Croce, Jr. filed for the trademark Linux, and
then demanded royalties from Linux distributors. In 1996, Torvalds and some affected
organizations sued him to have the trademark assigned to Torvalds, and in 1997 the case was
settled. The licensing of the trademark has since been handled by the Linux Mark Institute.
Torvalds has stated that he trademarked the name only to prevent someone else from using it. LMI
originally charged a nominal sublicensing fee for use of the Linux name as part of trademarks, but
later changed this in favor of offering a free, perpetual worldwide sublicense.
GNU/Linux
The Free Software Foundation views Linux distributions which use GNU software as GNU variants
and they ask that such operating systems be referred to as GNU/Linux or a Linux-based GNU
system. The media and common usage, however, refers to this family of operating systems simply
as Linux, as do many large Linux distributions (e.g. Ubuntu, SuSE Linux or Mandriva Linux).
Some distributions use GNU/Linux (particularly notable is Debian GNU/Linux, on which Ubuntu is
based), but the term's use outside of the enthusiast community is limited. The naming issue remains
controversial.
43
9. Mediawiki — wiki server software, the software that runs Wikipedia
MediaWiki is a popular free web-based wiki software application developed by and used on all
projects of the Wikimedia Foundation, as well as on many other wiki websites worldwide. It is
written in the PHP programming language with a backend database.
The first version of the software was deployed to serve the needs of the free content Wikipedia
encyclopedia in 2002. It has been deployed since then by many companies as a content management
system for internal knowledge management. Notably, Novell uses it to operate several of its hightraffic websites. As of 2009, more than 2,000 wiki sites used MediaWiki. Some educators have also
assigned students to use MediaWiki for collaborative group projects.
The software is optimized for efficient handling of projects of all sizes, including the largest wikis
which can have terabytes of content and hundreds of thousands of hits per second. Because
Wikipedia is one of the world's largest websites, achieving scalability through multiple layers of
caching and database replication has also been a major concern for developers. Wikipedia and other
Wikimedia projects continue to define a large part of the requirement set for MediaWiki.
The software is highly customizable, with more than 600 configuration settings and more than
1,500 extensions available for enabling various features to be added or changed. More than 600
automated and semi-automated bots and other tools have been developed to assist in editing
MediaWiki sites. Software hacks are also available, although MediaWiki.org lightly discourages
them and does not provide a central repository of them.
License and development
Tim Starling, MediaWiki release manager
MediaWiki is free and open source software and is distributed under the terms of the GNU General
Public License version 2 or any later version while its documentation is released under the Creative
Commons BY-SA 3.0 license and partly in the public domain. Specifically, the manuals and other
content at MediaWiki.org are Creative Commons-licensed, while the set of help pages intended to
be freely copied into fresh wiki installations and/or distributed with MediaWiki software is public
domain. This was done in order to eliminate legal issues arising from the help pages being imported
into wikis with licenses that are incompatible with the Creative Commons license. MediaWiki
development has generally favored the use of open-source media formats.
MediaWiki has an active volunteer community for development and maintenance. Users who have
made meaningful contributions to the project by submitting patches are generally, upon request,
granted access to commit revisions to the project's Apache Subversion repository. There is also a
44
small group of paid programmers who primarily develop projects for the Wikimedia foundation.
Wikimedia participates in the Google Summer of Code by facilitating the assignment of mentors to
students wishing to work on MediaWiki core and extension projects. As of June 2010, there were
143 developers who had committed changes to the MediaWiki core or extensions within the past
year. Major MediaWiki releases are generated approximately every three to eight months by taking
snapshots of the development trunk, which is kept continuously in a runnable state; minor releases,
or point releases, are issued as needed to correct bugs (especially security problems).
History
Brion Vibber, lead developer during most of MediaWiki's history until 2009
The current software was originally written for Wikipedia by Lee Daniel Crocker, based on the user
interface design of Magnus Manske, a developer and student of the University of Cologne.
Wikipedia had originally used a small wiki engine called UseModWiki written in Perl. Wikipedia
was later switched to Manske's PHP-based software to offer more functionality. Increasing usage
caused load problems, leading Crocker to re-write the software with a more scalable MySQL
database backend. Later, Brion Vibber, the Chief Technical Officer of the Wikimedia Foundation,
took up the role of release manager and most active developer.
Since the release of the first version of Manske's script, the software had been given multiple
nicknames representing the state of development—"the PHP script," "phase II," "phase III," "the
new codebase"—but no product name. After the Wikimedia Foundation was announced on June 20,
2003, the name "MediaWiki" was coined by Wikipedia contributor Daniel Mayer as a play on
"Wikimedia", and the name was gradually phased in beginning in August 2003. The name has
frequently caused confusion due to its intentional similarity to the "Wikimedia" name (which itself
is similar to "Wikipedia"). Major milestones in MediaWiki's development have included the
categorization system, added in 2004; parser functions, added in 2006; and flagged revisions, added
in 2008.
The product logo was created by Erik Möller using a flower photograph taken by Florence NibartDevouard, and was originally submitted to an international logo contest for a new Wikipedia logo
held in mid-2003. The logo came in third place, and was chosen to represent MediaWiki instead of
Wikipedia, with the second place logo used for the Wikimedia Foundation. The double square
brackets around the photo of a sunflower symbolize the syntax MediaWiki uses for creating
hyperlinks to other wiki pages.
45
Use
MediaWiki's most famous use has been in Wikipedia and, to a lesser degree, Wikimedia's other
projects. But there have been many other famous sites that used MediaWiki.
Users who became disaffected with the stances taken by Wikipedia and its editing community have
used the same software to form their own wiki encyclopedias; examples include Conservapedia and
Metapedia. MediaWiki bots and other scripts used on Wikipedia can also be reused on other wikis;
the common software also facilitates the import of useful initial articles and templates from
Wikipedia for new wikis, because all MediaWiki sites share the same wiki markup.
The experience made available through MediaWiki was used in the development of the Generic
Model Organism Database. MediaWiki was also used as a comprehensive system for online editing
of database entries in the GermOnline cross-species systems browser. A prototype based on
MediaWiki was also developed that allowed end-users to work with SAP ERP business objects.
United Nations agencies such as the U.N. Development Programme and INSTRAW chose to
implement their wikis using MediaWiki because "[t]his software runs Wikipedia and is therefore
guaranteed to be thoroughly tested, will continue to be developed well into the future, and future
technicians on these wikis will be more likely to have exposure to MediaWiki than any other wiki
software."
Key features
MediaWiki provides a rich core feature set and a mechanism to attach extensions to provide
additional functionality. Due to the strong emphasis on multilingualism in the Wikimedia projects,
internationalization and localization has received significant attention by developers. The user
interface has been fully or partially translated into more than 300 languages, and can be further
customized by site administrators (the entire interface is editable through the wiki).
Installation and configuration
Installation of MediaWiki requires that the user have administrative privileges on a server running
both PHP and a compatible type of SQL database. Some users find that setting up a virtual host is
helpful if the majority of one's site runs under a framework (such as Zope or Ruby on Rails) that is
largely incompatible with MediaWiki. Cloud hosting can enable a user to dispense with task of
building a new server by hand.
An installation PHP script is accessed via a web browser to initialize the wiki's settings. It prompts
the user for a minimal set of required parameters, leaving further changes, such as enabling uploads,
adding a site logo, and installing extensions, can be made by modifying configuration settings
contained in a file called LocalSettings.php. Some aspects of MediaWiki can be configured
through special pages or by editing certain pages; for instance, abuse filters can be configured
through a special page, and certain gadgets can be added by creating javascript pages in the
MediaWiki namespace. The MediaWiki community publishes a comprehensive installation guide.
46
Markup
One of the earliest differences between MediaWiki (and its predecessor, UseModWiki) and other
wiki engines was the use of "free links" instead of CamelCase. When MediaWiki was created, it
was typical for wikis to require text like "WorldWideWeb" in order to create a link to a page about
the World Wide Web: links in MediaWiki, on the other hand, are created by surrounding words
with double square brackets, and any spaces between them are left intact, e.g. [[World Wide
Web]]. This change was logical for the purpose of creating an encyclopedia, where accuracy in
titles is important.
MediaWiki uses an extensible lightweight wiki markup designed to be easier to use and learn than
HTML. Tools exist for converting content such as tables between MediaWiki markup and HTML.
Efforts have been made to create a MediaWiki markup spec, and a consensus seems to have been
reached that Wikicode does not need context-sensitive grammar rules. The following side-by-side
comparison illustrates the differences between wiki markup and HTML:
MediaWiki syntax
Equivalent HTML
Rendered output
"Take some more [[tea]]," <p>"Take some more <a
"Take some more tea,"
href="/wiki/Tea"
the March Hare said to
the March Hare said to
title="Tea">tea</a> ," the March
Alice, very earnestly.
Alice, very earnestly.
Hare said to Alice, very
earnestly.</p>
"I've had nothing yet,"
Alice replied in an
"I've had nothing yet,"
offended tone: "so I
<p>"I've had nothing yet," Alice
Alice replied in an
can't take more."
replied in an offended tone: "so I offended tone: "so I
can't take more."</p>
can't take more."
"You mean you can't take
''less''," said the
<p>"You mean you can't take
Hatter: "it's very easy
"You mean you can't
<i>less</i>," said the Hatter:
to take ''more'' than
"it's very easy to take
take less," said the
nothing."
<i>more</i> than nothing."</p>
Hatter: "it's very easy
to take more than
nothing."
(Quotation above from Alice's Adventures in Wonderland by Lewis Carroll)
Editing interface
Editing interface of MediaWiki 1.7, showing the edit toolbar and some examples of wiki syntax.
47
MediaWiki's page-editing tools have sometimes been described as somewhat challenging to learn.
A survey of students assigned to use a MediaWiki-based wiki found that when they were asked an
open question about main problems with the wiki, 24% cited technical problems with formatting,
e.g. "Couldn't figure out how to get an image in. Can't figure out how to show a link with words; it
inserts a number."
To make editing long pages easier, MediaWiki allows the editing of a subsection of a page (as
identified by its header). A user can also indicate whether or not an edit is minor. Correcting
spelling, grammar or punctuation are examples of minor edits, whereas adding paragraphs of new
text is an example of a non-minor edit.
Sometimes while one user is editing, a second user will save an edit to the same part of the page.
Then, when the first user attempts to save the page, an edit conflict occurs. The second user is then
given an opportunity to merge his content into the page as it now exists following the first user's
page save. An optional extension gives selected user groups priority when edit conflicts occur.
MediaWiki has the user interface in different languages. A language for the wiki content itself can
also be set, to be sent in the "Content-Language" HTTP header and "lang" HTML attribute.
Application Programming Interface
MediaWiki has an extensible Application Programming Interface that provides direct, high-level
access to the data contained in the MediaWiki databases. Client programs can use the API to login,
get data, and post changes. The API supports thin web-based JavaScript clients and end-user
applications (such as vandal-fighting tools). The API can be accessed by the backend of another
web site. An extensive Python bot library, Pywikipediabot, and a popular semi-automated tool
called AutoWikiBrowser, also interface with the API. The API is accessed via URLs such as
http://en.wikipedia.org/w/api.php?action=query&list=recentchanges. In this case, the
query would be asking Wikipedia for information relating to the last 10 edits to the site. One of the
perceived advantages of the API is its language independence; it listens for HTTP connections from
clients and can send a response in a variety of formats, such as XML, serialized PHP, YAML, or
JSON. Client code has been developed to provide layers of abstraction to the API.
48
Rich content
Images can be arranged in galleries, a feature that is used extensively for Wikimedia's media
archive, Wikimedia Commons.
MediaWiki supports rich content generated through specialized syntax. For example, the software
comes with support for rendering mathematical formulas using LaTeX and a special parser written
in OCaml. Similar functionality for other content, ranging from graphical timelines over
mathematical plotting and musical scores to Egyptian hieroglyphs, is available in the form of
extensions and also aesthetic sense has improved considerably.
The software has become more powerful at dealing with a wide variety of uploaded media files. Its
richest functionality is in the area of images, where image galleries and thumbnails can be generated
with relative ease. There is also support for Exif metadata. The use of MediaWiki to operate the
Wikimedia Commons, one of the largest free content media archives, has driven the need for further
functionality in this area.
Because any WYSIWYG editor would have to know wikitext grammar, and no full grammar for
wikitext exists, MediaWiki currently provides no native WYSIWYG support. It does come with a
customizable graphical toolbar for simplifying the process of learning the wiki syntax. Various
extensions exist for handling WYSIWYG editing to different degrees, some using variations of the
popular CKEditor. Wikia, a popular wiki farm, uses a WYSIWYG extension that, being designed to
be a modal editor, allows the user to flip back and forth between WYSIWYG and WikiText and
Preview modes in a single editing session. MediaWiki also has an interface to allow the transparent
use of external editors for uploaded files and wiki pages.
49
Tracking edits
Among the features MediaWiki to assist in tracking edits is a Recent Changes feature that provides
a list of recent edits to the wiki. This list contains basic information about those edits such as the
editing user, the edit summary, the page edited, as well as any tags (e.g. "possible malware link")
added by customizable abuse filters and other extensions to aid in combating unhelpful edits. On
more active wikis, so many edits occur that it is hard to track Recent Changes manually. Antivandal software, including user-assisted tools and fully automated bots, are sometimes employed on
such wikis to process Recent Changes items. Server load can be reduced by sending a continuous
feed of Recent Changes to an IRC channel that these tools can monitor, eliminating their need to
send requests for a refreshed Recent Changes feed to the API.
Another important tool is watchlisting. Each logged-in user has a watchlist to which he can add
whatever pages he wishes. When an edit is made to one of those pages, a summary of that edit will
appear on the watchlist the next time it is refreshed. As with the recent changes page, recent edits
that appear on the watchlist contain clickable links for easy review of the article history and specific
changes made.
There is also capability to review all the edits made by any particular user. In this way, if an edit
made by a user is identified as problematic, it is possible to check his other edits for issues. This
feature is also useful for teachers of classes in which grades for group projects are determined by
the contributions of individual students to a wiki. One teacher notes, "Since all the work is done on
the wiki, the teacher can see everything that is and is not being done. That makes early intervention
possible whenever it is necessary." Another educator who had his students use MediaWiki writes:
“
One thing they didn’t have to worry about—and herein lies, to my mind, one of the
greatest virtues of the wiki as a tool for collaborative work—was that some contributors
might walk away with a high grade in exchange for little effort, freeloading off the
commitment of others. I showed them how the wiki enabled me—and them—to track
each user’s participation in the project. In the end, a student whose contribution
amounted to a few brief, marginal paragraphs earned a C- for the assignment, while two
students who contributed a large quantity of excellent material earned a grade of A+.
Other grades ranged from B- to A.
”
MediaWiki allows one to link to specific versions of articles. This has been useful to the scientific
community, in that expert peer reviewers could analyse articles, improve them and provide links to
the trusted version of that article.
50
Organization and navigation
Links
Navigation through the wiki is largely through internal wikilinks. These implement page existence
detection, in which a link is colored blue if the target page exists on the local wiki and red if it does
not. When a user clicks on a red link, he is prompted to create an article with that title. Page
existence detection makes it practical for users to create "wikified" articles — that is, articles
containing links to other pertinent subjects — without those other articles being yet in existence.
The red/blue distinction alerts readers lacking an interest in creating new articles of broken links
that it would be fruitless for them to click upon. It alerts editors interested in creating new articles of
what topics their efforts might be usefully applied to.
Interwiki links function much the same way as namespaces. A set of interwiki prefixes can be
configured to cause, for instance, a page title of wikiquote:Jimbo Wales to direct the user to the
Jimbo Wales article on Wikiquote. Unlike internal wikilinks, interwiki links lack page existence
detection functionality, and accordingly there is no way to tell whether a blue interwiki link is
broken or not.
Page tabs and associated pages
MediaWiki page tabs. The red coloration of the "discussion" tab indicates that the article does not
yet have a talk page. As with any other red wikilink, clicking on it will prompt the user to create the
page.
Page tabs are displayed at the top of pages. These tabs allow users to perform actions or view pages
that are related to the current page. The available default actions include viewing, editing, and
discussing the current page. The specific tabs displayed depend on whether or not the user is logged
into the wiki and whether the user has sysop privileges on the wiki. For instance, the ability to move
a page or add it to one's watchlist is usually restricted to logged-in users. The site administrator can
add or remove tabs by using JavaScript or installing extensions.
Each page has an associated history page from which the user can access every version of the page
that has ever existed and generate diffs between two versions of his choice. Users' contributions are
displayed not only here, but also via a "user contributions" option on a sidebar. Carl Challborn &
Teresa Reimann note that "While this feature may be a slight deviation from the collaborative, ‘egoless’ spirit of wiki purists, it can be very useful for educators who need to assess the contribution
and participation of individual student users."
Namespaces
MediaWiki provides many features beyond hyperlinks for structuring content. One of the earliest
features is namespaces. One of Wikipedia's earliest problems had been the separation of
encyclopedic content from pages pertaining to maintenance and communal discussion, as well as
personal pages about encyclopedia editors. Namespaces are prefixes before a page title (such as
"User:" or "Talk:") that serve as descriptors for the page's purpose and allow multiple pages with
different functions to exist under the same title. For instance, a page titled "[[The Terminator]]",
in the default namespace, could describe the 1984 movie starring Arnold Schwarzenegger, while a
51
page titled "[[User:The Terminator]]" could be a profile describing a user who chooses this
name as a pseudonym. More commonly, each page and each namespace has an associated "Talk:"
page, which can be used to discuss its contents, such as "User talk:" or "Template talk:". The
purpose of having discussion pages is to allow content to be separated from discussion surrounding
the content.
Namespaces can be viewed as folders that separate different basic types of information or
functionality. Custom namespaces can be added by the site administrators. There are 16 namespaces
by default for content, with 2 "pseudo-namespaces" used for dynamically generated "Special:"
pages and links to media files. Each namespace on MediaWiki is numbered: content page
namespaces have even numbers and their associated talk page namespaces have odd numbers.
Miscellaneous
Users can create new categories and add pages and files to those categories by appending one or
more category tags to the content text. Adding these tags creates links at the bottom of the page that
take the reader to the list of all pages in that category, making it easy to browse related articles. The
use of categorization to organize content has been described as a combination of collaborative
tagging systems like del.icio.us and hierarchical classifications like the Dewey Decimal
Classification.
In addition to namespaces, content can be ordered using subpages. This simple feature provides
automatic breadcrumbs from a page of the pattern [[Page title/Subpage title]] to the
component before the slash (in this case, "Page title").
Customization
Users can configure custom JavaScript that is executed on every pageview. This has led to
JavaScript tools that users can "install", the "navigation popup" tool shown here displays a small
preview of an article when hovering over a link title.
If the feature is enabled, users can customize their stylesheets and configure client-side JavaScript
to be executed with every pageview. On Wikipedia, this has led to a large number of additional
tools and helpers developed through the wiki and shared among users. For instance, Lupin's
navigation popups is a custom JavaScript tool that shows previews of articles when the user hovers
over links, and also provides shortcuts for common maintenance tasks. Another example is wikEd, a
full-featured MediaWiki-integrated text editor that provides syntax highlighting and search and
replace functions.
52
A screenshot of a wiki using Mediawiki with a customized skin
The entire MediaWiki user interface can be edited through the wiki itself by users with the
necessary permissions (typically so-called "administrators"). This is done through a special
namespace with the prefix "MediaWiki:", where each page title identifies a particular user interface
message. Using an extension, it is also possible for a user to create personal scripts, and to choose
whether certain sitewide scripts should apply to him by toggling the appropriate options in the user
preferences page.
Templates
The "MediaWiki:" namespace was also originally used for creating custom text blocks that could
then be dynamically loaded into other pages using a special syntax. This content was later moved
into its own namespace, "Template:".
Templates are text blocks that can be dynamically loaded inside another page whenever that page is
requested. The template is a special link in double curly brackets (for example
"{{Disputed|date=October 2008}}"), which calls the template (in this case located at
Template:Disputed) to load in place of the template. Templates support parameters, so that parts of
the text can be substituted for each specific use case. A related method, called template substitution
(called by adding subst: at the beginning of a template link) inserts (like a copy and paste
operation) the contents of the template into the target page, instead of loading the template contents
dynamically whenever the page is loaded. This can lead to inconsistency when using templates, but
may be useful in certain cases, and in most cases requires less server resources (the actual amount
of savings can vary depending on wiki configuration and the complexity of the template).
Templates have found many different uses. Templates enable users to create complex table layouts
that are used consistently across multiple pages, and where only the content of the tables gets
inserted using template parameters. Templates are often used to identify problems with a Wikipedia
article by putting a template in the article. This template will then output a graphical box stating that
the article content is disputed or in need of some other attention, and also categorize it so that
articles of this nature can be located. Templates are also used on user pages to send users standard
messages welcoming them to the site, giving them awards for outstanding contributions, warning
53
them when their behavior is considered inappropriate, notifying them when they are blocked from
editing, and so on.
Access and groups
MediaWiki offers flexibility in creating and defining user groups. For instance, it would be possible
to create an arbitrary "ninja" group that can block users and delete pages, and whose edits are
hidden by default in the recent changes log. It is also possible to set up a group of "autoconfirmed"
users that one becomes a member of after making a certain number of edits and waiting a certain
number of days. Some groups that are enabled by default are bureaucrats and sysops. Bureaucrats
have power to change other users' rights. Sysops have power over page protection and deletion and
the blocking of users from editing. MediaWiki's available controls on editing rights have been
deemed sufficient for publishing and maintaining important documents such as a manual of
standard operating procedures in a hospital.
When a page consists only of useless content, there are several ways to remove said content. The
simplest way, available to all users, is simply to blank the page. However, this interferes with page
existence detection, unless an extension is installed to treat blanked pages as though they were
nonexistent. Blanking also leaves the content accessible through the history page, an outcome that,
while potentially increasing transparency by allowing non-sysops to easily review the content
removal decision for appropriateness, might be unacceptable or even unlawful in some cases.
Another option is for a sysop to delete the page, and thereby prevent it from being viewed by nonsysops. Another level of deletion, called RevisionDelete, can be used by a group (e.g.
"Oversighters") to prevent a page from being viewed by non-members of that group. It is also
possible, using certain extensions, to remove content from being viewed through any of the normal
channels on the wiki, or even to completely delete revisions from the database.
MediaWiki comes with a basic set of features related to restricting access, but its original and
ongoing design is driven by functions that largely relate to content, not content segregation. As a
result with minimal exceptions (related to specific tools and their related "Special" pages), page
access control has never been a high priority in core development and developers have stated that
users requiring secure user access and authorisation controls should not rely on MediaWiki, since it
was never designed for these kinds of situations. For instance, it is extremely difficult to create a
wiki where only certain users can read and access some pages. Here, wiki engines like TWiki,
MoinMoin and WikkaWiki provide more flexibility by supporting advanced security mechanisms
like access control lists.
Extensibility
The MediaWiki codebase contains various "hooks" using callback functions to add additional PHP
code in an extensible way. This allows developers to write extensions without necessarily needing
to modify the core or having to submit their code for review. Installing an extension typically
consists of adding a line to the configuration file, though in some cases additional changes such as
database updates or core patches are required.
Five main extension points were created to allow developers to add features and functionalities to
MediaWiki. Hooks are run every time a certain event happens; for instance, the
ArticleSaveComplete hook occurs after a save article request has been processed. This can be
used, for example, by an extension that notifies selected users whenever a page edit occurs on the
wiki from new or anonymous users. New tags can be created to process data with opening and
54
closing tags (<newtag>...</newtag>). Parser functions can be used to create a new command
({{#if:...|...|...}}). New special pages can be created to perform a specific function. These
pages are dynamically generated. For example, a special page might show all pages that have one or
more links to an external site or it might create a form providing user submitted feedback. Skins
allow users to customize the look and feel of MediaWiki. A minor extension point allows the use of
Amazon S3 to host image files.
Bugs and feature requests
Bugs in the MediaWiki software can arise for a variety of reasons, including developmental
oversight. These bugs are reported to Bugzilla.wikimedia.org, a Bugzilla (alternatively known as
Mediazilla) bug tracker project for Wikimedia founded in August 2004, where they are assigned a
bug number and later resolved by MediaWiki developers. Feature requests and enhancements to the
software are also requested on Bugzilla.wikimedia.org.
Extensions
The Semantic MediaWiki extension
MediaWiki can be made more advanced and useful for various purposes through its extensions.
These extensions vary greatly in complexity. The Wikimedia Foundation operates a Subversion
server where many extensions are hosted, and a directory of them can be found on the MediaWiki
website. Some other sites also are known for development of — or support for — extensions are
MediaWiki.org, which maintains an extension matrix; and Google Code. Some MediaWiki
developers, especially new ones, are granted access to commit changes to extensions only, rather
than the entire codebase. MediaWiki code review is itself facilitated through a MediaWiki
extension.
55
Parser functions
Among the most popular extensions is a parser function extension, ParserFunctions, that allows
different content to be rendered based on the result of conditional statements. These conditional
statements can perform functions such as evaluating whether a parameter is empty, comparing
strings, evaluating mathematical expressions, and returning one of two values depending on
whether a page exists. It was designed as a replacement for a notoriously inefficient template called
{{Qif}}. Schindler recounts the history of the ParserFunctions extension as follows:
“
In 2006 some Wikipedians discovered that through an intricate and complicated
interplay of templating features and CSS they could create conditional wiki text, i.e. text
that was displayed if a template parameter had a specific value. This included repeated
calls of templates within templates, which bogged down the performance of the whole
system. The developers faced the choice of either disallowing the spreading of an
obviously desired feature by detecting such usage and explicitly disallowing it within
the software, or offer an efficient alternative. The latter was done by Tim Starling, who
announced the introduction of parser functions, wiki text that calls functions
implemented in the underlying software.
At first, only conditional text and the computation of simple mathematical expressions
was implemented, but this already increased the possibilities for wiki editors
enormously. With time further parser functions were introduced, finally leading to a
framework that allowed the simple writing of extension function to add arbitrary
functionalities, like e.g. geo-coding services or widgets. This time the developers were
clearly reacting to the demand of the community, being forced either to fight the
solution of the issue that the community had (i.e. conditional text), or offer an improved
technical implementation to replace the previous practice and achieve an overall better
performance.
”
Another parser functions extension, StringFunctions, was developed to allow evaluation of string
length, string position, and so on. Wikimedia communities, having created awkward workarounds
to accomplish the same functionality, clamored for it to be enabled on their projects. Much of its
functionality was eventually integrated into the ParserFunctions extension, albeit disabled by
default and accompanied by a warning from Tim Starling that enabling string functions would allow
users "to implement their own parsers in the ugliest, most inefficient programming language known
to man: MediaWiki wikitext with ParserFunctions."
Academic and encyclopedia-related data display
Another very popular extension is a citation extension that enable footnotes to be added to pages
using inline references. This extension has, however, been criticized for being difficult to use and
requiring the user to memorize complex syntax. A tool called ProveIt was proposed as a
replacement. A gadget called RefToolbar has also been created to make it easier to create citations
using common templates. MediaWiki has some extensions that are well-suited for academia, such
as mathematics extensions and an extension that allows molecules to be rendered in 3D.
56
Integration
A generic Widgets framework has been created that allows MediaWiki to integrate with virtually
anything. Other examples of extensions that could improve a wiki are category suggestion
extensions and extensions for inclusion of Flash Videos, YouTube videos, and RSS feeds. An
extension to integrate with Facebook is forthcoming. Metavid, a site that archives video footage of
the U.S. Senate and House floor proceedings, was created using code extending MediaWiki into the
domain of collaborative video authoring. One extension, Viskimap, makes use of graphic organizers
to visualize the relationships between content pages, so that students can easily get an
understanding of the content elements and their relations, as they navigate through the wiki pages.
Combating spam
There are many spambots that search the Internet for MediaWiki installations and add linkspam to
them, despite the fact that MediaWiki uses the nofollow attribute to discourage such attempts at
search engine optimization. Part of the problem is that third party republishers, such as mirrors, may
not independently implement the nofollow tag on their websites, so marketers can still get
PageRank benefit by inserting links into pages when those entries appear on third party websites.
Anti-spam extensions have been developed to combat the problem by introducing CAPTCHAs,
blacklisting certain URLs, and allowing bulk deletion of pages recently added by a particular user.
Searches and queries
MediaWiki's weak query functionality, based mostly upon text searches, has inspired the creation of
extensions adding complex new behavior to the wiki syntax. Systems which assist in analyzing
relationships among editors, articles, revisions, topics, and words have attracted considerable
attention from the academic community, both in terms of papers published and programming
projects attempted. They have been deemed necessary in order for the software to be suitable for
applications such as some scientific databases.
Example of extensions facilitating such analyses include Semantic MediaWiki, which provides the
ability to add structured and searchable relations and attributes to wiki pages, and WikiTrust, which
implements a system for checking the author, origin, and reliability of wiki text. SNPedia,
NeuroLex, and DBpedia are projects along these lines. A Software Organization Platform, intended
to support specific software engineering activities such as experience management, requirements
engineering, or project management, was based upon Semantic MediaWiki. Another wiki,
SynBioSS Wiki, whose purpose is to enable the scientific community to store and retrieve
information related to synthetic biology efforts, likewise sought to overcome MediaWiki's
limitations in this regard by creating database fields for species ids, complex ids, etc.; new species
and such could be added through a special page. A modified MediaWiki search engine was also part
of that project. SMW was itself extended by the introduction of content types, bidirectional
relationships, controlled vocabularies, user-friendly user interfaces (including, for instance,
autocompletion), and Web 2.0 techniques for visualization and interaction options.
An extension called Woogle was created in an attempt to combine the advantages of wikis in
capturing new information in a lightweight and collaborative fashion and of enterprise search
engines in locating existing documents and information in an organization. Since by default,
creating and changing tables is a manual process, with inconsistencies likely to occur among tables
that display the same data in different ways, the DynaTable extension was created to provide wiki
users with a convenient way to define data in a separate namespace, resulting in the data being
57
stored in a database table, and have it be dynamically retrieved from the database at the time of the
wiki page parsing or rendering, to pages that have the appropriate tag (and needed parameters). The
extension also allows users to filter tables by selecting a subset of columns and rows to display.
Database
MediaWiki can use either the MySQL or PostgreSQL relational database management system.
There is limited support for Oracle Database. SQLite support is mostly functional, but still in active
development. A MediaWiki database contains several dozen tables, including a page table that
contains page titles, page ids, and other metadata; and a revision table to which is added a new
row every time an edit is made, containing the page id, a brief textual summary of the change
performed, the user name of the article editor (or its IP address the case of an unregistered user) and
a timestamp.
In a 4.5 year period, the MediaWiki database had 170 schema versions. The most complex schema
change was introduced in MediaWiki 1.5. Prior to this version, the cur table stored the content and
metadata of the current revisions of the wiki's pages or articles, and table old stored the previous
revisions. The 1.5 upgrade moved the article-specific metadata into the page table, the revisionspecific metadata into the revision table and the content of the revisions into the text table. The
goals of this major restructuring were to improve performance (e.g., by separating metadata from
content to allow faster aggregation) and to support new features (e.g. renaming articles without
having to modify all their past revisions). When this upgrade was applied to Wikipedia, the
encyclopedia was locked for editing, and the schema was converted to the new version in about 22
hours. Some software enhancement proposals, such as a proposal to allow sections of articles to be
watched via watchlist, have been rejected because the necessary schema changes would have
required excessive Wikipedia downtime.
Performance
Because it is used to run one of the highest-traffic sites on the Web, Wikipedia, MediaWiki
performance and scalability have been highly optimized. MediaWiki supports Squid caches, loadbalanced database replication, client-side caching, memcached or table-based caching for frequently
accessed processing of query results, a simple static file cache, feature-reduced operation, revision
compression, and a job queue for database operations. According to Wikimedia Networking
Coordinator Mark Bergsma, MediaWiki developers have attempted to optimize the software by not
doing anything stupid, avoiding expensive algorithms, database queries, etc., caching every result
that is expensive and has temporal locality of reference, and focusing on the hot spots in the code
through profiling.
MediaWiki code is designed to allow for data to be written to a master database and read from slave
databases, although the master can be used for some read operations if the slaves are not yet up to
date. Metadata, such as article revision history, article relations (links, categories etc.), user
accounts and settings can be stored in core databases and cached; the actual revision text, being
more rarely used, can be stored as append-only blobs in external storage. The software is suitable
for the operation of large scale wiki farms such as Wikimedia, which had about 750 wikis as of
December 2007. However, MediaWiki comes with no built-in GUI to manage such installations.
Empirical evidence shows most revisions in MediaWiki databases tend to differ only slightly from
previous revisions Therefore, subsequent revisions of an article can be concatenated and then
compressed, achieving very high data compression ratios of up to 100x.
58
Limitations
The parser serves as the de facto standard for the MediaWiki syntax as no formal syntax has been
defined. Since the syntax has no formal definition (for example, in Extended Backus–Naur form
(EBNF)) there is an inherent difficulty in creating a WYSIWYG editor or complete porting of the
syntax to another language. Being designed for very high-traffic websites such as Wikipedia,
MediaWiki may not be so suitable for smaller sites, where disk space or memory are bigger
restrictions than bandwidth.
MediaWiki is not designed to be a suitable replacement for dedicated online forum or blogging
software, although extensions do exist to allow the creation of forum threads and to implement
some bliki functionality. It is not uncommon for new MediaWiki users to make certain mistakes,
such as forgetting to sign posts with four tildes (~~~~), or manually entering a plaintext signature,
due to unfamiliarity with the idiosyncratic particulars involved in communication on MediaWiki
discussion pages. On the other hand, the format of these discussion pages has been cited as a
strength by one educator, who stated that it provides "more fine-grain capabilities for discussion
than traditional threaded discussion forums. For example, instead of 'replying' to an entire message,
the participant in a discussion can create a hyperlink to a new wiki page on any word from the
original page. Discussions are easier to follow since the content is available via hyperlinked wiki
page, rather than a series of reply messages on a traditional threaded discussion forum. However,
except in few cases, students were not using this capability, possibly because of their familiarity
with the traditional linear discussion style and a lack of guidance on how to make the content more
'link-rich'."
MediaWiki has little support for creation of dynamically assembled documents, or pages that
monitor other pages. While it is possible to create new "special" pages, it requires coding an
extension in PHP and thus administrative rights to the server running MediaWiki. Work was done
in 2008 on a structural query language (MediaWiki Query Language — MWQL) to allow users to
add dynamically evaluated searches to ordinary wiki-pages. Although this was recognized as being
potentially expensive, solutions such as extending the caching framework to allow parts of pages to
be cached, and performing searches on dedicated search machines replicating the main databases,
were recommended. The Semantic MediaWiki extension also provides similar features. Upgrading
MediaWiki has also historically been a bit troublesome; only 5 out of the 55 possible upgrades
among MediaWiki versions V1.1–V1.11 can be performed online, through a rolling upgrade.
Security
MediaWiki developers have enacted security standards, both for core code and extensions. SQL
queries and HTML output are usually done through wrapper functions that handle validation,
escaping, filtering for prevention of cross-site scripting and SQL injection. As of April 2010,
approximately 50 of MediaWiki's extensions had unresolved security issues. Many security issues
have had to be patched after a MediaWiki version release, and accordingly MediaWiki.org states,
"The most important security step you can take is to keep your software up to date" by subscribing
to the announcement listserv and installing security updates that are announced.
59
Community and support
MediaWiki developers are spread around the world, though with a majority in the United States and
Europe. Face-to-face meetings and programming sessions occur at the annual Wikimania
conference, an event that is mostly Wikipedia-focused. Two events exclusively for MediaWiki
developers has been held so far, in April 2009 and April 2010, both in Berlin. For MediaWiki users,
an unofficial forum exists for support at MWusers.com, as well as an official mailing list,
Mediawiki-l. Several books have been written about MediaWiki administration, including some
free online books.
Comparison to other online collaboration software
Due to MediaWiki's use on Wikipedia, most users are familiar with MediaWiki's functions and
layout. Compared to other wikis, MediaWiki is also fairly aesthetically pleasing, though simple, and
has an easily customized side menu and stylesheet. However, in one assessment, Confluence was
deemed to be a superior product due to its very usable API and ability to better support multiple
wikis. Wiki providers Socialtext and JotSpot have project management features that MediaWiki
lacks.
A study was done at the University of Hong Kong comparing TWiki to MediaWiki. The authors
noted that TWiki has been considered as a collaborative tool for development of educational papers
and technical projects, whereas MediaWiki's fame is mostly due to Wikipedia. Although both
platforms allow discussion and tracking of progress, TWiki has a "Report" part that MediaWiki
lacks. Students perceived MediaWiki as being easier to use and more enjoyable than TWiki. When
asked whether they recommended using MediaWiki for knowledge management course group
project, 15 out of 16 respondents expressed their preference for MediaWiki giving answers of great
certainty, such as “of course”, “for sure”. TWiki and MediaWiki both have flexible plug-in
architecture. A study that compared students' experience with MediaWiki to that with Google
Documents found that students gave the latter a much higher rating on user-friendly layout
60
10. MongoDB — document-oriented, non-relational database
MongoDB (from "humongous") is an open source, scalable, high-performance, schema-free,
document-oriented database written in the C++ programming language.
Overview
The goal of MongoDB is to bridge the gap between key-value stores (which are fast and highly
scalable) and traditional RDBMS systems (which provide rich queries and deep functionality).
MongoDB is designed for problems that aren't easily solved by traditional RDBMSs, including
problems that require databases to span many servers.
MongoDB is a document-oriented database. This means that unlike a relational database
management system, MongoDB manages collections of JSON-like documents. This allows many
applications to model data in a more natural way, as data can be nested in complex hierarchies and
still be query-able and indexable.
Development of MongoDB began in October 2007 by 10gen. The first public release was in
February 2009.
Features
MongoDB supports many features, including:
Consistent encoding: all strings are UTF-8. Non-UTF-8 data can be saved, queried, and
retrieved with a special binary data type.
Cross-platform support: binaries are available for Windows, Linux, OS X, and Solaris.
MongoDB can be compiled on almost any little-endian system.
Type-rich: supports dates, regular expressions, code, binary data, and more (all BSON
types)
Cursors for query results
It also supports some more complex features, described below.
Ad Hoc Queries
Unlike many other non-relational database solutions, any field can be queried at any time.
MongoDB supports range queries, regular expression searches, and other special types of queries in
addition to exactly matching fields. Queries can also include user-defined JavaScript functions (if
the function returns true, the document matches).
Queries can return specific fields of documents (instead of the entire document), as well as sorting,
skipping, and limiting results.
61
Querying Nested Fields
MongoDB's queries can "reach into" embedded objects and arrays. If the following JavaScript
object is inserted into the users collection:
{
"username" : "bob",
"address" : {
"street" : "123 Main Street",
"city" : "Springfield",
"state" : "NY"
}
}
We can query for this document (and all documents with an address in New York) with:
> db.users.find({"address.state" : "NY"})
Array elements can also be queried:
> db.food.insert({"fruit" : ["peach", "pear", "plum"]})
> db.food.find({"fruit" : "pear"})
Indexing
MongoDB supports secondary indexes, including single-key, compound, unique, non-unique, and
geospatial indexes. Nested fields (as described above in the ad hoc query section) can also be
indexed and indexing an array type will index each element of the array.
MongoDB's query optimizer will try a number of different query plans when a query is run and
select the fastest, periodically resampling. Developers can see the index being used with the
`explain` function and chose a different index with the `hint` function.
Indexes can be created or removed at any time.
Aggregation
In addition to ad hoc queries, MongoDB supports a couple tools for aggregation, including
MapReduce and a group function similar to SQL's GROUP BY.
File Storage
MongoDB implements a protocol called GridFS that is used to store and retrieve files from the
database. This file storage mechanism has been used in plugins for NGINX and lighttpd .
62
Server-Side JavaScript Execution
JavaScript is the "lingua franca" of MongoDB. JavaScript can be used in queries, aggregation
functions (such as MapReduce), and sent directly to the database to be executed.
Example of JavaScript in a query:
> db.foo.find({$where : function() { return this.x == this.y; }})
Example of JavaScript sent to the database to be executed:
> db.eval(function(name) { return "Hello, "+name; }, ["Joe"])
This returns "Hello, Joe".
JavaScript variables can also be stored in the database and used by any other JavaScript as a global
variable. Any legal JavaScript type, including functions and objects, can be stored in MongoDB.
This means that JavaScript can be used to write "stored procedures."
Capped Collections
MongoDB supports fixed-size collections called capped collections. A capped collection is created
with a set size and, optionally, number of elements. Capped collections are the only type of
collection that maintains insertion order: once the specified size has been reached, a capped
collection behaves like a circular queue.
A special type of cursor, called a tailable cursor, can be used with capped collections. This cursor
was named after the `tail -f` command, and does not close when it finishes returning results but
continues to wait for more to be returned, returning new results as they are inserted into the capped
collection.
Deployment
MongoDB can be built and installed from source, but it is more commonly installed from a binary
package. Many Linux package management systems now include a MongoDB package, including
CentOS and Fedora, Debian and Ubuntu, Gentoo, and Arch Linux. It can also be acquired through
the official website.
MongoDB uses memory-mapped files, limiting data size to 2GB on 32-bit machines (64-bit
systems have a much larger data size). The MongoDB server can only be used on little-endian
systems, although most of the drivers work on little-endian and big-endian systems.
63
Language Support
MongoDB has official drivers for:
C
C++
Java
Javascript
Perl
PHP
Python
Ruby
There are also a large number of unofficial drivers, for C# and .NET, Coldfusion, Delphi, Erlang,
Factor, Fantom, F#, Go, Haskell, JVM languages (Clojure, Groovy, Scala, etc.) , Lua, node.js,
HTTP REST, Ruby, PLT Scheme, and Smalltalk.
Replication
MongoDB should never be deployed on less than two servers: a master and a slave. A master can
perform reads and writes. A slave copies data from the master and can only be used for reads or
backup (not writes).
MongoDB allows developers to guarantee that an operation has been replicated to at least _N_
servers on a per-operation basis.
Master-Slave
As operations are performed on the master, the slave will replicate any changes to the data.
Example: starting a master/slave pair locally:
$ mkdir -p ~/dbs/master ~/dbs/slave
$ ./mongod --master --port 10000 --dbpath ~/dbs/master
$ ./mongod --slave --port 10001 --dbpath ~/dbs/slave --source
localhost:10000
Replica Sets
Replica sets are similar to master-slave, but they incorporate the ability for the slaves to elect a new
master if the current one goes down.
Sharding
MongoDB scales horizontally using a system called sharding which is very similar to the BigTable
and PNUTS scaling model. The developer chooses a shard key, which determines how the data in a
collection will be distributed. The data is split into ranges (based on the shard key) and distributed
across multiple shards. (A shard is a master with one or more slaves.)
64
A developer's application never needs to know that it is talking to a sharded cluster. The application
talks to a special routing process called `mongos` that looks identical to a single MongoDB server.
This `mongos` process knows what data is on each shard and routes the client's requests
appropriately. All requests flow through this process: it not only forward requests and responses but
performs any necessary final data merges or sorts. Any number of `mongos` processes can be run:
usually one per application server is recommended.
Management and Graphical Frontends
Official Tools
The most powerful and useful management tool is the database shell, mongo. The shell lets
developers view, insert, remove, and update data in their databases, as well as get replication
information, setting up sharding, shut down servers, execute JavaScript, and more. mongo is built on
SpiderMonkey, so it is a full JavaScript shell as well as being able to connect to MongoDB servers.
Administrative information can also be accessed through the admin interface: a simple html
webpage that serves information about the current server status. By default, this interface is 1000
ports above the database port (http://localhost:28017) and it can be turned off with the --norest
option.
mongostat is a command-line tool that displays a simple list of stats about the last second: how
many inserts, updates, removes, queries, and commands were performed, as well as what
percentage of the time the database was locked and how much memory it is using.
mongosniff sniffs network traffic going to and from MongoDB.
Monitoring
There are monitoring plugins available for:
munin
ganglia
scout
cacti
GUIs
Several GUIs have been created to help developers visualize their data. Some popular ones are:
Fang of Mongo - a web-based UI built with Django and jQuery.
Futon4Mongo - a clone of the CouchDB Futon web interface for MongoDB.
Mongo3 - a slick Ruby-based interface.
MongoHub - a native OS X application for managing MongoDB.
Opricot - a browser-based MongoDB shell written in PHP.
PHPMoAdmin - a GUI similar to PHPMyAdmin, written in PHP.
Database Master Modern and Intuitives GUI Tool for Windows
65
Licensing and Support
MongoDB is available for free under the GNU Affero General Public License. The language drivers
are available under an Apache license. Commercial licenses are available through 10gen. 10gen
also offers production support, training, and professional services for MongoDB.
66
11. Moodle — course management system
Moodle (abbreviation for Modular Object-Oriented Dynamic Learning Environment) is a free and
open-source e-learning software platform, also known as a Course Management System, Learning
Management System, or Virtual Learning Environment (VLE). As of January 2010 it had a user
base of 45,721 registered and verified sites, serving 32 million users in 3 million courses.
Moodle is developed by Martin Dougiamas to help educators create online courses with a focus on
interaction and collaborative construction of content.
Moodle Pty Ltd (based in Perth, Western Australia) does most of the development of Moodle.
Moodle's open source license and modular design allow any developer to create additional modules
and features.
Features
Moodle has several features typical of an e-learning platform, plus some original innovations (like
its filtering system). Moodle is very similar to a learning management system, but it has many more
standard features. Moodle can be used in many types of environments such as in education, training
and development, and business settings.
Developers can extend Moodle's modular construction by creating plugins for specific new
functionality. Moodle's infrastructure supports many types of plug-ins:
activities (including word and math games)
resource types
question types (multiple choice, true and false, fill in the blank, etc)
data field types (for the database activity)
graphical themes
authentication methods (can require username and password accessibility)
enrollment methods
content filters
Many freely-available third-party Moodle plugins make use of this infrastructure.
Moodle users can use PHP to author and contribute new modules. Moodle's development has been
assisted by the work of open source programmers. This has contributed towards its rapid
development and rapid bug fixes.
By default Moodle includes the TCPDF library that allows the generation of PDF documents from
pages.
67
Deployment
Users can install Moodle from source, but this requires more technical proficiency than other
automated approaches such as installing from a Debian package, deploying a ready-to-use TurnKey
Moodle appliance or using the Bitnami installer.
Some free Moodle hosting providers allow educators to create Moodle-based online classes without
installation or server knowledge. Some paid Moodle hosting providers provide value-added services
like customization and content-development.
Interoperability
Moodle runs without modification on Unix, Linux, FreeBSD, Windows, Mac OS X, NetWare and
any other systems that support PHP and a database, including most webhost providers.
Data goes in a single database. Moodle version 1.6 could use MySQL or PostgreSQL. Version 1.7,
released November 2006, makes full use of database abstraction so that installers can choose one
from many types of database servers such as Oracle and Microsoft SQL Server.
E-learning systems can have many dimensions of interoperability. Moodle's interoperability
features include:
authentication, using LDAP, Shibboleth, or various other standard methods (e.g. IMAP)
enrollment, using IMS Enterprise among other standard methods, or by direct interaction
with an external database
quizzes and quiz questions, allowing import/export in a number of formats: GIFT (moodle's
own format), IMS QTI, XML and XHTML (NB although export works very well, import is
currently not complete). Moodle provides various types of questions - Calculated,
Description, Essay, Matching, Embedded Answers, Multiple Choice, Short Answer,
Numerical, Random Short-Answer Matching, True/False.
resources, using IMS Content Packaging, SCORM, AICC (CBT), LAMS
integration with other Content Management Systems such as Postnuke (via third-party
extensions)
syndication, using RSS or Atom newsfeeds - external newsfeeds can be displayed in a
course, and forums, blogs, and other features can be made available to others as newsfeeds.
Moodle also has import features for use with other specific systems, such as importing quizzes or
entire courses from Blackboard or WebCT. These import tools are not, however perfect. At the time
of writing (Feb 2010), Moodle will not import Blackboard courses due apparently to some change
in php code-releases.
68
Background
Origins
Martin Dougiamas, a WebCT administrator at Curtin University, Australia, who has graduate
degrees in computer science and education, wrote the first version of Moodle; the combined efforts
of Todd Ballaban and Alex Trivas popularised the system. Dougiamas started a Ph.D. to examine
"The use of Open Source software to support a social constructionist epistemology of teaching and
learning within Internet-based communities of reflective inquiry". Although how exactly social
constructivism makes Moodle different from other eLearning platforms is difficult to show, it has
been cited as an important factor by Moodle adopters . Other Moodle adopters, such as the Open
University in the UK, have pointed out that Learning Management Systems can equally be seen as
"relatively pedagogy-neutral".
Pedagogical approach
The stated philosophy of Moodle includes a constructivist and social constructionist approach to
education, emphasizing that learners (and not just teachers) can contribute to the educational
experience.
Moodle does not necessitate a constructivist teaching approach. Constructivism is sometimes seen
as at odds with accountability-focused ideas about education, such as the No Child Left Behind Act
(NCLB) in the United States. Accountability stresses tested outcomes, not teaching techniques,
educational value, or pedagogy. Moodle supports an outcomes-oriented learning environment.
Origin of the name
The acronym Moodle stands for Modular Object-Oriented Dynamic Learning Environment,
although originally the "M" stood for "Martin's", named after Martin Dougiamas, the original
developer.
The word "Moodle" can also function as a verb which describes the improvisational process of
doing things as it occurs to you to do them, an enjoyable tinkering that often leads to insight and
creativity. As such it applies both to the way Moodle was developed, and to the way a student or
teacher might approach studying or teaching an online course.
"Moodle" is a protected trademark. Only Moodle partners get the right to use the trademark to
market their services like Moodle Hosting, Moodle Customization etc.
69
Moodle statistics and market share
By 9 January 2010, Moodle had a user-base of 46,624 registered sites with 32,464,992 users
in 3,161,291 courses in 209 countries and in more than 75 languages.
The site with the most users, moodle.org, has 63 courses and 838,109 users. Following a £5
million investment in 2005, The Open University, UK is the second-largest Moodle
deployment by user-base, with 607,536 users and 4,731 courses. A comprehensive list of the
top ten Moodle sites (by courses and by users) is maintained at moodle.org.
In Australia, Moodle is used by numerous Universities, including the University of
Canberra, the Australian National University, UniSA, the Central Queensland University
and the University of Southern Queensland, and is scheduled for release in 2011 in La Trobe
University, the University of Ballarat and the University of New England. Moodle is also
used by the largest vocational training institute in the Australian Capital Territory, the
Canberra Institute of Technology.
Birmingham City University has used Moodle as a university-wide VLE since 2004. The
Robert Gordon University, Aberdeen adopted Moodle for all taught programmes across its
12,790 member student body, in 2007. It has more recently been adopted by the University
of Kent for its entire campus, replacing WebCT. Randolph College implemented Moodle as
a course management system in the Summer of 2010.
In Argentina, it's used by the University of San Andrés.
In India, it's being used by the Indian Institute of Technology, Bombay, Goa University,
Goa.
In the Kingdom of Saudi Arabia, the Department of English at Umm al-Qura University
started to use Dr. Ali Abureesh's proprietary moodle makkahelearning.net in the year 2003.
In United Arab Emirates, Ajman University of Science and Technology (AUST) has
adopted Moodle since 2007. AUST is one of the pioneer and the largest user of Moodle in
the UAE. currently, it serves more than 5,000 users in about 500 course. The projected plan
is to serve 10,000 users and about 1,000 course at the end of 2011. (AZ)
Development
Moodle has continued to evolve since 1999 (since 2001 with the current architecture). The current
version is 1.9.9, which was released in June, 2010. It has been translated into 82 different
languages. Major improvements in accessibility and display flexibility were developed in 1.5.
Currently, the work is going on to release Moodle 2.0.
Not having to pay license fees or to limit growth, an institution can add as many Moodle servers as
needed. The Open University of the UK is currently building a Moodle installation for their 200,000
users. It is often known for individual departments of institutions to use the unlimited feature, such
as the maths department of the University of York.
70
The development of Moodle continues as a free software project supported by a team of
programmers and an international user community, drawing upon contributions posted to the online
Moodle Community website that encourages debate and invites criticism.
Users can freely distribute and modify the software under the terms of the GNU General Public
License version 2 or any later version.
Similar platforms
ATutor
Blackboard
CCNet
Claroline
Desire2Learn
eFront
ILIAS
metacoon
OLAT
Sakai Project
WebCT
SharePointLMS
JoomlaLMS
Pass-port
Yacapaca
71
12. Mozilla Firefox — web browser
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application
Suite and managed by Mozilla Corporation. As of July 2010, Firefox was the second most widely
used browser, with 22.91% of worldwide usage share of web browsers, according to Net
Applications. Other sources put Firefox's usage share between 20% and 32%.
To display web pages, Firefox uses the Gecko layout engine, which implements most current web
standards in addition to several features which are intended to anticipate likely additions to the
standards.
Latest Firefox features include tabbed browsing, spell checking, incremental find, live
bookmarking, a download manager, private browsing, location-aware browsing (also known as
"geolocation") based exclusively on a Google service and an integrated search system that uses
Google by default in most localizations. Functions can be added through extensions, created by
third-party developers, of which there is a wide selection, a feature that has attracted many of
Firefox's users.
Firefox runs on various versions of GNU/Linux, Mac OS X, Microsoft Windows and many other
Unix-like operating systems. Its current stable release is version 3.6.8, released on July 23, 2010.
Firefox's source code is free software, released under a tri-license GNU GPL/GNU LGPL/MPL.
History
The Firefox project began as an experimental branch of the Mozilla project by Dave Hyatt, Joe
Hewitt and Blake Ross. They believed the commercial requirements of Netscape's sponsorship and
developer-driven feature creep compromised the utility of the Mozilla browser. To combat what
they saw as the Mozilla Suite's software bloat, they created a stand-alone browser, with which they
intended to replace the Mozilla Suite. On April 3, 2003, the Mozilla Organization announced that
they planned to change their focus from the Mozilla Suite to Firefox and Thunderbird.
The Firefox project has undergone several name changes. Originally titled Phoenix, it was renamed
because of trademark issues with Phoenix Technologies. The replacement name, Firebird, provoked
an intense response from the Firebird free database software project. In response, the Mozilla
Foundation stated that the browser should always bear the name Mozilla Firebird to avoid
confusion with the database software. Continuing pressure from the database server's development
community forced another change; on February 9, 2004, Mozilla Firebird became Mozilla Firefox,
often referred to as simply Firefox. Mozilla prefers that Firefox be abbreviated as Fx or fx, though it
is often abbreviated as FF. The Firefox project went through many versions before 1.0 was released
on November 9, 2004. After a series of stability and security fixes, the Mozilla Foundation released
its first major update, Firefox version 1.5, on November 29, 2005. Mozilla Firefox 1.5.0.12 is the
final version officially supported under Windows 95.
Version 2.0
On October 24, 2006, Mozilla released Firefox 2. This version includes updates to the tabbed
browsing environment; the extensions manager; the GUI (Graphical User Interface); and the find,
search and software update engines; a new session restore feature; inline spell checking; and an
72
anti-phishing feature which was implemented by Google as an extension, and later merged into the
program itself. In December 2007, Firefox Live Chat was launched. It allows users to ask
volunteers questions through a system powered by Jive Software, with guaranteed hours of
operation and the possibility of help after hours. Mozilla Firefox 2.0.0.20 is the final version
officially supported under Windows NT 4.0, Windows 98, and Windows ME.
Version 3.0
Mozilla Firefox 3 was released on June 17, 2008, by the Mozilla Corporation. Firefox 3 uses
version 1.9 of the Mozilla Gecko layout engine for displaying web pages. This version fixes many
bugs, improves standard compliance, and implements new web APIs. Other new features include a
redesigned download manager, a new "Places" system for storing bookmarks and history, and
separate themes for different operating systems. The latest version under 3.0 is Firefox 3.0.19.
Development stretches back to the first Firefox 3 beta (under the codename 'Gran Paradiso') which
had been released several months earlier on 19 November 2007, and was followed by several more
beta releases in spring 2008 culminating in the June release. Firefox 3 had more than 8 million
unique downloads the day it was released, setting a Guinness World Record.
Version 3.5
Version 3.5, codenamed Shiretoko, adds a variety of new features to Firefox. Initially numbered
Firefox 3.1, Mozilla developers decided to change the numbering of the release to 3.5, in order to
reflect a significantly greater scope of changes than originally planned. The final release was on
June 30, 2009. The changes included much faster performance thanks to an upgrade to
SpiderMonkey JavaScript engine called TraceMonkey and rendering improvements, and support for
the <video> and <audio> tags as defined in the HTML 5 specification, with a goal to offer video
playback without being encumbered by patent issues associated with many video technologies.
Cross-site XMLHttpRequests (XHR), which can allow for more powerful web applications and an
easier way to implement mashups, are also implemented in 3.5. A new global JSON object contains
native functions to efficiently and safely serialize and deserialize JSON objects, as specified by the
ECMAScript 3.1 draft. Full CSS 3 selector support has been added. Firefox 3.5 uses the Gecko
1.9.1 engine, which includes a few features that were not included in the 3.0 release. Multi-touch
trackpad support was also added to the release, including gesture support like pinching for zooming
and swiping for back and forward. Firefox 3.5 also features an updated logo.
Version 3.6
Version 3.6 is the release codenamed Namoroka. Development for this version started on December
1, 2008, and it was released on January 21, 2010. This release uses the new Gecko 1.9.2 rendering
engine.
New features for Firefox 3.6 include built-in support for Personas (toolbar skins), notification of
out-of-date plugins, full screen playback of Theora video, support for the WOFF open webfont
format, a more secure plugin system, and many performance improvements.
Out of Process Plug-ins
One minor update to Firefox 3.6, version 3.6.4 (code-named Lorentz) features out-of-process plugins (OOPP) (part of the Electrolysis project), which isolates execution of plug-ins such as Adobe's
73
Flash or Apple's QuickTime into a separate process. This provides an uninterrupted browsing
experience when a plug-in working in OOPP crashes, also known as Crash Protection. Only 3 plugins are isolated by default: Adobe Flash Player, Apple Quicktime, and Microsoft Silverlight. More
plugins can be isolated by configuring browser configuration values. Starting with Lorentz, Mozilla
plans to release non-intrusive changes as minor updates that previously included only stability and
security fixes. OOPP has been implemented only in Windows and Linux build of Firefox 3.6.4,
Mac support will be available in future versions. Firefox 3.6.6 changed the crash protection so it
lengthens the amount of time a plug-in is allowed to be unresponsive to the point before the plug-in
would quit.
Firefox for mobile
Firefox for mobile, codenamed Fennec, is a web browser for smaller non-PC devices, mobile
phones and PDAs. It was released for the Nokia Maemo operating system (specifically the Nokia
N900 and N810) on January 28, 2010, and is under development for Android. Firefox for mobile
1.0 uses the same version of the Gecko layout engine as Firefox 3.6. The user interface is
completely redesigned and optimized for small screens, the controls are hidden away so that only
the web content is shown on screen, and it uses touchscreen interaction methods. It includes the
Awesomebar, tabbed browsing, Add-on support, password manager, location-aware browsing, and
the ability to synchronize with the user's computer Firefox browser using Firefox Sync.
Future developments
The "About Minefield" box from a typical nightly build of Minefield.
The precursory builds of upcoming Firefox releases are usually codenamed "Minefield", as this is
the name of the trunk builds. Development on the Mozilla trunk (mozilla-central) is currently
directed towards Version 4.0.
Version 4.0
Tentatively scheduled for release in November 2010, Firefox 4 is currently in the beta stage with
the third beta released on August 11, 2010. It will bring a new, "faster" user interface. Early
mockups of the new interface on Windows, Mac OS X, and Linux were first made available in July
2009. Other features slated for Firefox 4 include a new Account Manager, improved notifications,
74
application tabs, a redesigned extension manager, and support for multitouch displays and 64-bit
systems.
On October 13, 2006, Brendan Eich, Mozilla's Chief Technology Officer, wrote about the plans for
"Mozilla 2", referring to the most comprehensive iteration (since its creation) of the overall
platform on which Firefox and other Mozilla products run. Most of the objectives were gradually
incorporated into Firefox through versions 3.0, 3.5, and 3.6. The largest changes, however, are
slated to land with Firefox 4.
Firefox 4 is based on the Gecko 2.0 engine, which adds/improves support for HTML5, CSS3,
WebM, and WebGL. Also, it includes a new JavaScript engine (JägerMonkey) and better XPCOM
APIs.
Release history
Browser Gecko
Support
Codename
Version
Release date
Significant changes
name version
status
First release; customizable
Phoenix
0.1
Pescadero September 23, 2002 toolbar, quicksearch, tabbed
browsing.
1.2
Sidebar, extension
0.2
Santa Cruz October 1, 2002
management.
Image blocking, pop-up
0.3
Lucia
October 14, 2002
blocking whitelist.
Themes, pop-up blocking
0.4
Oceano
October 19, 2002 improvements, toolbar
customization.
1.3
Multiple homepages, sidebar
0.5
Naples
December 7, 2002 and accessibility
improvements, history.
New default theme (Qute),
Mozilla
bookmark and privacy
Firebird
improvements, smooth
Glendale May 17, 2003
0.6
scrolling, automatic image
resizing.
1.5
Automatic scrolling,
password manager,
0.7
Indio
October 15, 2003
preferences panel
improvements.
Windows installer, offline
Mozilla
working, bookmarks and
Firefox
1.6
0.8
Royal Oak February 9, 2004 download manager
improvements, rebranded
with new logo.
75
0.9
1.7
1.0
1.8
1.5
1.8.1
2.0
Mozilla
Firefox
2
Mozilla 1.9
3.0
New default theme
(Winstripe), comprehensive
data migration, new
One Tree
extension/theme manager,
June 15, 2004
Hill
reduced download size, new
help system, Linux installer,
mail icon (Windows only).
Added new features such as
RSS/Atom feed support, find
toolbar, plugin finder.
Reached its end of life on
April 13, 2006 with the
Phoenix
November 9, 2004
release of version 1.0.8.
(support for older versions of
Firefox typically ends six
months after a new major
version is available).
Added support for SVG and
canvas, UI adjustments and
improvements in JavaScript
1.5 and CSS 2/3. Reached its
end of life on May 30, 2007
Deer Park November 29, 2005
with the release of Firefox
1.5.0.12. Mozilla Firefox
1.5.0.12 is the final version
officially supported under
Windows 95.
Added new features such as
session restoration after a
browser crash, search
suggestion for Google and
Yahoo!, new search plugin
manager and add-on
manager, web feed
previewing, bookmark
microsummaries and
Google's anti-phishing
Bon Echo October 24, 2006 protection. Winstripe theme
refresh. Included support for
JavaScript 1.7. Reached its
end of life on December 18,
2008 with the release of
Firefox 2.0.0.20. Mozilla
Firefox 2.0.0.20 is the final
version officially supported
under Windows NT 4.0,
Windows 98, and Windows
ME.
Gran
June 17, 2008
Cairo used as a graphics
76
Paradiso
Firefox
3
Mozilla
Firefox 1.9.1
3.5
3.5
3.5.11
Shiretoko
June 30, 2009
July 20, 2010
backend. Cocoa Widgets
included in OS X builds.
APIs implemented from
WHATWG specs. Changes to
how DOM events are
dispatched, how HTML
object elements are loaded,
and how web pages are
rendered. New SVG elements
and filters, and improved
SVG specification
compliance. Acid2 test
compliant. New UI
improvements, including
default themes for different
operating systems and new
download manager.
Introduction of Smart
Location Bar (a.k.a.
Awesome Bar). Windows 95,
98, ME, Mac OS X v10.3.9
and lower, and GTK+ 1.2 and
lower no longer supported.
addons.mozilla.org
integration in the Add-ons
window. Support for APNG
files. Google's "malware
protection". Reached its end
of life on March 30, 2010
with the release of Firefox
3.0.19.
Web standards improvements
in the Gecko layout engine.
Text API for the <canvas>
element. Support for using
border images. Support for
JavaScript query selectors.
Several improvements to the
Smart Location Bar. Private
browsing mode. Googlebased location-aware
browsing (geolocation).
Security and stability update.
Predated by 3.5.1 to 3.5.10
77
Mozilla
Firefox 1.9.2
3.6
3.6
Namoroka January 21, 2010
3.6.8
Mozilla
2.0[Note
4.0b3
Firefox 1]
4
July 23, 2010
N/A[Note 2]
August 11, 2010
Improved performance to the
TraceMonkey JavaScript
engine. Support for -mozbackground-size CSS
property, CSS Gradients, and
multiple background images.
Notification of out-of-date
plugins.
Stability update. Predated by
3.6.1 to 3.6.7
4.0 features changes to the
user interface. The browser
will be given a home tab. The
preferences and add-ons
manager windows will also
be redesigned to better assist
users. The Gecko layout
engine will be improved to
support more HTML5 and
CSS3 features.
1. ^ In Alpha and Nightly builds until June 28, 2010, Gecko version was labeled 1.9.3.
2. ^ Mozilla Firefox 4.0 has not been assigned a codename. Alpha builds were titled "Mozilla
Developer Preview".
Features
Latest Firefox features include tabbed browsing, spell checking, incremental find, live
bookmarking, a download manager, private browsing, location-aware browsing (aka
"geolocation") based on a Google service and an integrated search system that uses Google
by default in most localizations. Functions can be added through extension, created by thirdparty developers, of which there is a wide selection, a feature that has attracted many of
Firefox's users.
Firefox provides an environment for web developers in which they can use built-in tools,
such as the Error Console or the DOM Inspector, or extensions, such as Firebug.
78
Standards
Mozilla Firefox implements many web standards, including HTML, XML, XHTML, MathML,
SVG 1.1 (partial), CSS (with extensions), ECMAScript (JavaScript), DOM, XSLT, XPath, and
APNG (Animated PNG) images with alpha transparency. Firefox also implements standards
proposals created by the WHATWG such as client-side storage, and canvas element.
The results of the Acid3 test on Firefox 3.6
Firefox passes the Acid2 standards-compliance test from version 3.0. Firefox versions 3.6 and 4.0b2
do not pass the Acid3 test; they score 94/100 and 97/100 respectively. It is unlikely that Firefox will
pass the Acid3 test in the near future, since implementing SVG custom font support is a very low
priority for Mozilla, as of May 2010.
Firefox also implements a proprietary protocol from Google called "safebrowsing" (used to
exchange data related with "phishing and malware protection"), which is not an open standard.
Security
Firefox uses a sandbox security model, and limits scripts from accessing data from other web sites
based on the same origin policy. It uses SSL/TLS to protect communications with web servers
using strong cryptography when using the HTTPS protocol. It also provides support for web
applications to use smartcards for authentication purposes.
The Mozilla Foundation offers a "bug bounty" to researchers who discover severe security holes in
Firefox. Official guidelines for handling security vulnerabilities discourage early disclosure of
vulnerabilities so as not to give potential attackers an advantage in creating exploits.
Because Firefox generally has fewer publicly known unpatched security vulnerabilities than
Internet Explorer (see Comparison of web browsers), improved security is often cited as a reason to
switch from Internet Explorer to Firefox. The Washington Post reports that exploit code for critical
unpatched security vulnerabilities in Internet Explorer was available for 284 days in 2006. In
comparison, exploit code for critical security vulnerabilities in Firefox was available for 9 days
before Mozilla shipped a patch to remedy the problem.
A 2006 Symantec study showed that although Firefox had surpassed other browsers in the number
of vendor-confirmed vulnerabilities that year through September, these vulnerabilities were patched
far more quickly than those found in other browsers. Symantec later clarified their statement, saying
79
that Firefox still had fewer security vulnerabilities than Internet Explorer, as counted by security
researchers. As of March 19, 2010, Firefox 3.6 has no (known) unpatched security vulnerabilities
according to Secunia. Internet Explorer 8 has four unpatched security vulnerabilities, the worst
being rated "moderately critical" by Secunia.
In October 2009 Microsoft's security engineers acknowledged that Firefox was vulnerable since
February of that year due to a .NET Framework 3.5 SP1 Windows update that silently installed a
buggy 'Windows Presentation Foundation' plug-in into Firefox. This vulnerability has since been
patched by Microsoft.
All patched vulnerabilities of Mozilla products are publicly listed.
Portable versions
There is a portable edition of Firefox for Windows, which can be used from a USB Flash drive.
This particular distribution makes it possible to run Firefox (and many of its extensions) on
corporate/government networks in lieu of the default browser. This can be especially helpful for any
user who does not possess administrative rights on the system being used.
System requirements
Browsers compiled from Firefox source code may run on various operating systems; however,
officially distributed binaries are meant for the following: Microsoft Windows (Windows 2000,
Windows XP, Windows Server 2003, Windows Vista or Windows 7), Mac OS X 10.4 (or later) and
Linux (with the following libraries installed: GTK+ 2.10 or higher, GLib 2.12 or higher, Pango 1.14
or higher, X.Org 1.0 or higher *or any TinyX server implementation*). Official minimum hardware
requirements are a Pentium 233 MHz and 64 MB RAM for the Windows version or Macintosh
computer with an Intel x86 or PowerPC G3, G4, or G5 processor and 128 MB RAM for Mac
version.
64-bit builds
As of Firefox 3.6, Mozilla does not have any official 64-bit builds available. However, unofficial
third-party builds do exist for Windows. In Linux, both vendor-backed performance optimized
stable 64-bit builds exist (such as for Novell-Suse Linux, Red Hat Linux, and Ubuntu Linux) in
addition to the nightly builds. Official 64-bit builds from Mozilla are being worked on for Windows
and Mac.
64-bit nightly builds for Mac OSX were made available on early April 2010 and 64-bit nightly
builds for Windows were made available on late May 2010. Developer Preview 3.7 Alpha 5 was the
first official release to include 64-bit Mac and Linux versions
80
Firefox 2.0.0.14 on OS/2 Warp 3
Older operating systems
Firefox 1.5.0.12 is the last version to work on Windows 95 and Firefox 2.0.0.20 is the last version
to work on Windows 98, Windows Me and Windows NT 4.0. Although not officially supported, a
utility called KernelEx can run Firefox 3.x versions on Windows 98 and Windows Me (These
versions/lines are no longer supported by Mozilla).
Firefox 2.0.0.14 is the last version to work on OS/2 Warp 3. Later Firefox versions requires a libc
0.6.3 based version of the GCC runtime library (libc 0.6.2 and laters requires Warp 4).
Licensing
Firefox source code is free and open source software, and is tri-licensed under the Mozilla Public
License (MPL), GNU General Public License (GPL), and the GNU Lesser General Public License
(LGPL). These licenses permit anyone to view, modify, and/or redistribute the source code, and
several publicly released applications have been built on it; for example, Netscape, Flock, Miro,
Iceweasel, and Songbird make use of code from Firefox.
In the past, Firefox was licensed solely under the MPL, which the FSF (Free Software Foundation)
criticizes for being weak copyleft; the license permits, in limited ways, proprietary derivative
works. Additionally, code under the MPL cannot legally be linked with code under the GPL or the
LGPL. To address these concerns, Mozilla re-licensed Firefox under the tri-license scheme of MPL,
GPL, and LGPL. Since the re-licensing, developers have been free to choose the license under
which they will receive the code, to suit their intended use: GPL or LGPL linking and derivative
works when one of those licenses is chosen, or MPL use (including the possibility of proprietary
derivative works) if they choose the MPL.
81
Trademark and logo
The generic globe logo used when Firefox is compiled without the official branding
The name "Mozilla Firefox" is a registered trademark; along with the official Firefox logo, it may
only be used under certain terms and conditions. Anyone may redistribute the official binaries in
unmodified form and use the Firefox name and branding for such distribution, but restrictions are
placed on distributions which modify the underlying source code.
Mozilla not only forbids creating derivative works from Firefox logo (i.e. modifying it), but also
strongly discourages creating independent, but similar logos.
There has been some controversy over the Mozilla Foundation's intentions in stopping certain open
source distributions from using the "Firefox" trademark. Former Mozilla CEO Mitchell Baker
explained in an interview in 2007 that distributions could freely use the Firefox trademark if they
did not modify source-code, and that the Mozilla Foundation's only concern was with users getting
a consistent experience when they used "Firefox".
To allow distributions of the code without using the official branding, the Firefox source code
contains a "branding switch". This switch allows the code to be compiled without the official logo
and name, for example to produce a derivative work unencumbered by restrictions on the Firefox
trademark (this is also often used for alphas of future Firefox versions). In the unbranded
compilation the trademarked logo and name are replaced with a freely distributable generic globe
logo and the name of the release series from which the modified version was derived. The name
"Deer Park" is used for derivatives of Firefox 1.5, "Bon Echo" for derivatives of Firefox 2.0, "Gran
Paradiso" for derivatives of Firefox 3.0 and "Shiretoko" is used for derivatives of Firefox 3.5.
Derivatives of Firefox 3.6 will most likely be referred to as "Namoroka". The codename Minefield
and a modified version of the generic logo stylized to look like a bomb is used for unofficial builds
of version 3.0 and later, and for nightly builds of the trunk.
Distributing modified versions of Firefox under the "Firefox" name requires explicit approval from
Mozilla for the changes made to the underlying code, and requires the use of all of the official
branding. For example, it is not permissible to use the name "Firefox" without also using the official
logo. When the Debian project decided to stop using the official Firefox logo in 2006 (because of
copyright restrictions on its use incompatible with the project's guidelines), they were told by a
representative of the Mozilla Foundation that this was not acceptable, and were asked either to
comply with the published trademark guidelines or cease using the "Firefox" name in their
distribution. Ultimately, Debian switched to branding their modified version of Firefox "Iceweasel",
along with other Mozilla software.
82
Advertising
The rapid adoption of Firefox, 100 million downloads in its first year of availability, followed a
series of aggressive marketing campaigns starting in 2004 with a series of events Blake Ross and
Asa Dotzler called "marketing weeks".
On September 12, 2004, a marketing portal dubbed "Spread Firefox" (SFX) debuted along with the
Firefox Preview Release, creating a centralized space for the discussion of various marketing
techniques. A two-page ad in the December 16th edition of the New York Times, placed by Mozilla
Foundation in coordination with Spread Firefox, featured the names of the thousands of people
worldwide who contributed to the Mozilla Foundation's fundraising campaign to support the launch
of the Mozilla Firefox 1.0 web browser. SFX portal enhanced the "Get Firefox" button program,
giving users "referrer points" as an incentive. The site lists the top 250 referrers. From time to time,
the SFX team or SFX members launch marketing events organized at the Spread Firefox website.
As a part of the Spread Firefox campaign, there was an attempt to break the world download record
with the release of Firefox 3.
The "World Firefox Day" campaign started on July 15, 2006, the third anniversary of the founding
of the Mozilla Foundation, and ran until September 15, 2006. Participants registered themselves and
a friend on the website for nomination to have their names displayed on the Firefox Friends Wall, a
digital wall that will be displayed at the headquarters of the Mozilla Foundation.
On February 21, 2008 in honor of reaching 500 million downloads, the Firefox community
celebrated by visiting FreeRice to earn 500 million grains of rice.
Some of Firefox's contributors made a crop circle of the Firefox logo in wheat near Unionvale,
Oregon, near the intersection of Lafayette Highway and Walnut Hill Road.
83
Market adoption
Usage share of (non-IE) web browsers according to Net Applications data:
Firefox
Other
Chrome
Netscape
Safari
Opera Mini
Opera
market share overview
According to Net Applications data
— June 2010[dated info][dead link]
Browser
% of Fx
% of Total
Firefox 1
0.08%
0.02%
Firefox 1.5
0.25%
0.06%
Firefox 2
1.93%
0.46%
Firefox 3
10.37%
2.47%
19.99%
4.76%
Firefox 3.5
67.16%
15.99%
Firefox 3.6
[FF 1]
Other
0.13%
0.03%
100%
23.81%
All variants
1. ^ Other mostly consists of an
unnumbered Firefox version
and Firefox 3.1 which is a series of betas
for 3.5.
This box: view • talk • edit
Mozilla Firefox's usage share has grown for each growth period since inception, mostly at the
expense of Internet Explorer; Internet Explorer has seen a steady decline of its usage share since
Firefox's release. As of July 2010, according to Net Applications, Firefox had 22.91% worldwide
usage share of web browsers, making it the second most-used browser, after Internet Explorer.
According to a study released by the AT Internet Institute in May 2010, European usage share is
slightly higher at 29.6% in March 2010.
84
Downloads have continued at an increasing rate since Firefox 1.0 was released in November 2004,
and as of July 31, 2009 Firefox has been downloaded over one billion times. This number does not
include downloads using software updates or those from third-party websites. They do not represent
a user count, as one download may be installed on many machines, one person may download the
software multiple times, or the software may be obtained from a third party. According to Mozilla,
Firefox had more than 350 million users as of March 2010.
In July 2010, all IBM employees (about 400,000) were asked to use Firefox as their default
browser.
Reception
Forbes.com called Firefox the best browser in a 2004 commentary piece, and PC World named
Firefox "Product of the Year" in 2005 on their "100 Best Products of 2005" list. After the release of
Firefox 2 and Internet Explorer 7 in 2006, PC World reviewed both and declared that Firefox was
the better browser. Magazine named Firefox its "Best Buy" web browser. In 2008, CNET.com
compared Safari, Chrome, Firefox, and Internet Explorer in their "Battle of the Browsers" in terms
of performance, security, and features, where Firefox was selected as a favorite.
Performance
In December 2005, Internet Week ran an article in which many readers reported high memory usage
in Firefox 1.5. Mozilla developers said that the higher memory use of Firefox 1.5 was at least
partially due to the new fast backwards-and-forwards (FastBack) feature. Other known causes of
memory problems were malfunctioning extensions such as Google Toolbar and some older versions
of Adblock, or plug-ins, such as older versions of Adobe Acrobat Reader. When PC Magazine
compared memory usage of Firefox 2, Opera 9, and Internet Explorer 7, they found that Firefox
used approximately as much memory as the other two browsers.
Softpedia noted that Firefox 1.5 took longer to start up than other browsers, which was confirmed
by further speed tests.IE 6 launched more swiftly than Firefox 1.5 on Windows XP since many of
its components were built into the OS and loaded during system startup. As a workaround for the
issue, a preloader application was created that loaded components of Firefox on startup, similar to
Internet Explorer. A Windows Vista feature called SuperFetch performs a similar task of preloading
Firefox if it is used often enough.
Tests performed by PC World and Zimbra in 2006 indicated that Firefox 2 used less memory than
Internet Explorer 7. Firefox 3 used less memory than Internet Explorer 7, Opera 9.50 Beta, Safari
3.1 Beta, and Firefox 2 in tests performed by Mozilla, CyberNet, and The Browser World. In mid
2009, Betanews benchmarked Firefox 3.5 and declared that it performed "nearly ten times better on
XP than Microsoft Internet Explorer 7".
In January 2010, Lifehacker compared the performance of Firefox 3.5, Firefox 3.6, Google Chrome
4 (stable and Dev versions), Safari 4, and Opera (10.1 stable and 10.5 pre-alpha versions).
Lifehacker timed how long browsers took to start and reach a page (both right after boot-up and
after running at least once already), timed how long browsers took to load nine tabs at once, tested
JavaScript speeds using Mozilla's Dromaeo online suite (which implements Apple's SunSpider and
Google's V8 tests) and measured memory usage using Windows 7's process manager. They
concluded that Firefox 3.5 and 3.6 were the fifth and sixth fastest browsers respectively on startup,
3.5 was third and 3.6 was sixth fastest to load nine tabs at once, 3.5 was sixth and 3.6 was fifth
85
fastest on the JavaScript tests. They also concluded that Firefox 3.6 was the most efficient with
memory usage followed by Firefox 3.5.
Relationship with Google
The Mozilla Corporation's relationship with Google has been noted in the popular press, especially
with regard to their paid referral agreement. The release of the anti-phishing protection in Firefox 2
in particular raised considerable controversy: anti-phishing protection enabled by default is based
on a list updated by twice-hourly downloads to the user's computer from Google's server. The user
cannot change the data provider within the GUI, and is not informed who the default data provider
is. The browser also sends Google's cookie with each update request. Some[who?] Internet privacy
advocacy groups have expressed concerns surrounding Google's possible uses of this data,
especially that Firefox's privacy policy states that Google may share information gathered with
"safebrowsing" service with third parties, including business partners. Following Google CEO Eric
Schmidt's comments in December 2009 regarding privacy during a CNBC show, Asa Dotzler,
Mozilla's director of community development advised users to switch Firefox's search from Google
to Bing. Google also promoted Mozilla Firefox through YouTube until the release of Google
Chrome. Recently, Mozilla Security assisted the search giant by pointing out a security flaw in
Google's Chrome browser. Currently, Firefox's default search provider is Google, and its default
homepage, "Firefox Start", uses and is hosted on Google.
In 2005, the Mozilla Foundation and Mozilla Corporation had a combined revenue of US$52.9
million, with approximately 95 percent derived from search engine royalties. In 2006, the Mozilla
Foundation and Mozilla Corporation had a combined revenue of US$66.9 million, with
approximately 90 percent derived from search engine royalties. In 2007, the Mozilla Foundation
and Mozilla Corporation had a combined revenue of US$81 million, with 88 percent of this sum
(US$66 million) from Google. In 2008, both Mozilla organizations had a combined revenue of
US$78.6 million, with 91 percent coming from Google. The Mozilla Foundation and Corporation
are being audited by the IRS with the possibility of having its non-profit status called into question.
Response from Microsoft
Microsoft's head of Australian operations, Steve Vamos, stated in late 2004 that he did not see
Firefox as a threat and that there was not significant demand for the feature set of Firefox among
Microsoft's users. Former Microsoft Chairman Bill Gates has used Firefox, but has commented that
"it's just another browser, and IE [Microsoft's Internet Explorer] is better"
A Microsoft SEC filing on June 30, 2005 acknowledged that "competitors such as Mozilla offer
software that competes with the Internet Explorer Web browsing capabilities of our Windows
operating system products." The release of Internet Explorer 7 was fast tracked, and included
functionality that was previously available in Firefox and other browsers, such as tabbed browsing
and RSS feeds.
Despite the cold reception from Microsoft's top management, the Internet Explorer development
team maintains a relationship with Mozilla. They meet regularly to discuss web standards such as
extended validation certificates. In 2005 Mozilla agreed to allow Microsoft to use its Web feed logo
in the interest of common graphical representation of the Web feeds feature.
In August 2006, Microsoft offered to help Mozilla integrate Firefox with the then-forthcoming
Windows Vista, an offer Mozilla accepted.
86
In October 2006, as congratulations for a successful ship of Firefox 2, the Internet Explorer 7
development team sent a cake to Mozilla. As a nod to the browser wars, some readers joked about
the cake being poisoned, while others jokingly suggested that Mozilla send a cake back along with
the recipe, in reference to the open-source software movement. The IE development team sent
another cake on June 17, 2008, upon the successful release of Firefox 3.
In November 2007, Jeff Jones (a "security strategy director" in Microsoft's Trustworthy Computing
Group) criticized Firefox, claiming that Internet Explorer experienced fewer vulnerabilities and
fewer higher severity vulnerabilities than Firefox in typical enterprise scenarios. Mozilla developer
Mike Shaver discounted the study, citing Microsoft's bundling of security fixes and the study's
focus on fixes, rather than vulnerabilities, as crucial flaws.
Firefox was one of the twelve browsers offered to European Economic Area users of Microsoft
Windows in 2010 – see BrowserChoice.eu.
.Net Framework 3.5 Service Pack 1
In February 2009, Microsoft released Service Pack 1 for version 3.5 of the .NET Framework. This
update also installed Microsoft .NET Framework Assistant add-on (enabling ClickOnce support).
The update received a moderate amount of media attention after users discovered that the add-on
could not be uninstalled through the add-ons interface. Several hours after the website
Annoyances.org posted an article regarding this update, Microsoft employee Brad Abrams posted in
his blog Microsoft's explanation for why the add-on was installed, and also included detailed
instructions on how to remove it.
On 16 October 2009, Mozilla blocked all versions of Microsoft .NET Framework Assistant from
being used with Firefox and from the Mozilla Add-ons service. Two days later, the add-on was
removed from the blocklist after confirmation from Microsoft that it is not a vector for
vulnerabilities. Version 1.1 ( released on June 10, 2009 to the Mozilla Add-ons service) and later of
the Microsoft .NET Framework Assistant allows the user to disable and uninstall in the normal
fashion.
Vulnerability statistics
Firefox security vulnerabilities have been patched relatively quickly. Symantec's Internet Security
Threat Report Vol. 10, based on data from the first half of 2006, reported that while Firefox had
more public vulnerabilities than Internet Explorer during that time period (47 vs. 38), Firefox's
vulnerabilities were fixed on average one day after the exploit code was made available, as
compared to nine days for Internet Explorer.
InfoWorld has cited security experts saying that as Firefox becomes more popular, more
vulnerabilities will be found, a claim that Mitchell Baker, president of the Mozilla Foundation, has
denied: "There is this idea that market share alone will make you have more vulnerabilities. It is not
relational at all."
87
Expert and media coverage
The United States Computer Emergency Readiness Team (US-CERT) stated in October 2004 that
Internet Explorer's design makes it very difficult to secure. In contrast, almost none of their
concerns apply to Firefox.
There are a number of significant vulnerabilities in technologies relating to the IE
domain/zone security model, local file system (Local Machine Zone) trust, the
Dynamic HTML (DHTML) document object model (in particular, proprietary
DHTML features), the HTML Help system, MIME type determination, the graphical
user interface (GUI), and ActiveX... IE is integrated into Windows to such an extent
that vulnerabilities in IE frequently provide an attacker significant access to the
operating system.
Some security experts, including Bruce Schneier and David A. Wheeler, recommended that users
should stop using Internet Explorer for normal browsing, and switch to a different browser instead;
Wheeler specifically recommended Firefox.
Several technology columnists have suggested the same, including Wall Street Journal columnist
Walter S. Mossberg, Washington Post columnist Rob Pegoraro, USA Today’s Byron Acohido and
Jon Swartz, Forbes's Arik Hesseldahl, eWEEK.com Senior Editor Steven J. Vaughan-Nichols, and
Desktop Pipeline’s Scot Finnie.
88
13. Mozilla Thunderbird — e-mail client
Mozilla Thunderbird is a free, open source, cross-platform e-mail and news client developed by
the Mozilla Foundation. The project strategy is modeled after Mozilla Firefox, a project aimed at
creating a web browser. On December 7, 2004, version 1.0 was released, and received over 500,000
downloads in its first three days of release, and 1,000,000 in 10 days.
History
Originally launched as Minotaur shortly after Phoenix (the original name for Mozilla Firefox), the
project failed to gain momentum. With the success of the latter, however, demand increased for a
mail client to go with it, and the work on Minotaur was revived under the new name of
Thunderbird, and migrated to the new toolkit developed by the Firefox team.
Significant work on Thunderbird restarted with the announcement that from version 1.5 onwards,
the main Mozilla suite would be designed around separate applications using this new toolkit. This
contrasts with the previous all-in-one approach, allowing users to mix and match the Mozilla
applications with alternatives. The original Mozilla Suite continues to be developed as SeaMonkey.
On December 23, 2004, Project Lightning was announced which tightly integrated calendar
functionality (scheduling, tasks, etc.) into Thunderbird, and which is now available as an extension.
On October 11, 2006, Qualcomm and the Mozilla Foundation announced that "future versions of
Eudora will be based upon the same technology platform as the open source Mozilla Thunderbird
email program." The project is code-named Penelope.
On July 26, 2007, the Mozilla Foundation announced that Thunderbird would be developed by an
independent organization, because the Mozilla Corporation (a subsidiary of the foundation) was
focusing on Mozilla Firefox development.
On September 17, 2007, the Mozilla Foundation announced the funding of a new internet
communications initiative with Dr. David Ascher of ActiveState. The purpose of this initiative was
"to develop Internet communications software based on the Thunderbird product, code and brand".
On February 19, 2008, Mozilla Messaging started operations as a subsidiary of the Mozilla
Foundation responsible for the development of email and similar communications. Its initial focus
was on the then upcoming version of Thunderbird 3. Alpha Preview releases of Thunderbird 3 were
codenamed "Shredder".
As of 19 August 2010, the current version is Thunderbird 3.1.2, and contains such new features as
tabs, easier installation of add-ons, and better search. One of the notable upgrade features of this
version of Thunderbird is easier account creation, accomplished by using port auto-detection for
incoming and outgoing SMTP/POP connections. This enables accounts to be created by users who
don't know what port to use for outgoing and incoming SMTP/POP connections.
Thunderbird 3 no longer supports versions of Windows prior to Windows 2000 (e.g., Windows 95,
98, ME and NT) and Mac OS X versions prior to 10.4 Tiger. Linux requirements have also
changed.
89
Timeline of Mozilla Thunderbird releases
Features
Thunderbird aims to be a simple e-mail, newsgroup and news feed client. The vanilla version is not
a personal information manager, although the Mozilla Lightning extension added PIM functionality.
Additional features, if needed, are often available via other extensions.
Message management
Thunderbird can manage multiple e-mail, newsgroup and news feed accounts and supports multiple
identities within accounts. Features like quick search, saved search folders ("virtual folders"),
advanced message filtering, message grouping, and labels help manage and find messages. On
Linux-based systems, system mail (movemail) accounts are supported.
Junk filtering
Thunderbird incorporates a Bayesian spam filter, a whitelist based on the included address book,
and can also understand classifications by server-based filters such as SpamAssassin.
Privacy
Thunderbird does not have any Privacy Policies.The Mozilla Privacy Policy excludes any other
products or services other than Firefox.
90
Extensions
Extensions allow the addition of features through the installation of XPInstall modules (known as
"XPI" or "zippy" installation). One example is Lightning, the calendar extension mentioned above.
Extensions and themes (below) available on the Mozilla Update site may be upgraded through the
client.
Themes
Thunderbird supports a variety of themes for changing its overall look and feel. These packages of
CSS and image files can be downloaded from Mozilla Add-ons.
Standards support
Thunderbird supports POP and IMAP. It also supports LDAP address completion. The built-in
RSS/Atom reader can also be used as a simple news aggregator. Thunderbird supports the S/MIME
standard, extensions such as Enigmail and support for the OpenPGP standard.
File formats supported
mbox – Unix mailbox format
Mork – used for internal database
SQLite – also used for internal database (since version 3)
Cross-platform support
Thunderbird runs on a wide variety of platforms. Releases available on the primary distribution site
support the following operating systems:
Windows
Linux
Mac OS X
OS/2
eComStation
OpenSolaris
The source code is freely available and can be compiled and run on a variety of other architectures
and operating systems.
Internationalization and localization
Thunderbird does not yet support UTF8SMTP (RFC 5336) or Email Address Internationalization.
With contributors all over the world, the client is translated into at least 37 languages.
91
Security
Thunderbird provides enterprise and government-grade security features such as SSL/TLS
connections to IMAP and SMTP servers. It also offers native support for S/MIME secure email
(digital signing and message encryption using certificates). Any of these security features can take
advantage of smartcards with the installation of additional extensions.
Other security features can be added through extensions. For instance, Enigmail offers PGP signing,
encryption, and decryption.
Optional security protections also include disabling loading of remote images within messages,
enabling only specific media types (sanitizer), and disabling JavaScript.
The French military uses Thunderbird and contributes to its security features, which are claimed to
match the requirements for NATO's closed messaging system.
92
14. OpenBSD — operating system derived from Unix
OpenBSD is a Unix-like computer operating system descended from Berkeley Software
Distribution (BSD), a Unix derivative developed at the University of California, Berkeley. It was
forked from NetBSD by project leader Theo de Raadt in late 1995. The project is widely known for
the developers' insistence on open source code and quality documentation, uncompromising
position on software licensing, and focus on security and code correctness. The project is
coordinated from de Raadt's home in Calgary, Alberta, Canada. Its logo and mascot is a pufferfish
named Puffy.
OpenBSD includes a number of security features absent or optional in other operating systems, and
has a tradition in which developers audit the source code for software bugs and security problems.
The project maintains strict policies on licensing and prefers the open-source BSD licence and its
variants (the ISC license is the preferred license for new code incorporated into OpenBSD)—in the
past this has led to a comprehensive licence audit and moves to remove or replace code under
licences found less acceptable.
As with most other BSD-based operating systems, the OpenBSD kernel and userland programs,
such as the shell and common tools like cat and ps, are developed together in one source code
repository. Third-party software is available as binary packages or may be built from source using
the ports tree.
The OpenBSD project maintains ports for 17 different hardware platforms, including the DEC
Alpha, Intel i386, Hewlett-Packard PA-RISC, AMD AMD64 and Motorola 68000 processors,
Apple's PowerPC machines, Sun SPARC and SPARC64-based computers, the VAX and the Sharp
Zaurus.
Prerequisites
Computer and operating system
Unix and Unix-like
Software licensing
Computer insecurity
93
History and popularity
In December 1994, NetBSD co-founder Theo de Raadt was asked to resign from his position as a
senior developer and member of the NetBSD core team. The reason for this is not wholly clear,
although there are claims that it was due to personality clashes within the NetBSD project and on its
mailing lists. De Raadt has been criticized for having a sometimes abrasive personality: in his book,
Free For All, Peter Wayner claims that de Raadt "began to rub some people the wrong way" before
the split from NetBSD; Linus Torvalds has described him as "difficult"; and an interviewer admits
to being "apprehensive" before meeting him. Many have different feelings: the same interviewer
describes de Raadt's "transformation" on founding OpenBSD and his "desire to take care of his
team," some find his straightforwardness refreshing, and few deny he is a talented coder and
security "guru".
Bar chart showing the proportion of users of each BSD variant from a 2005 BSD usage survey.
Each participant was permitted to indicate multiple BSD variants.
In October 1995, de Raadt founded OpenBSD, a new project forked from NetBSD 1.0. The initial
release, OpenBSD 1.2, was made in July 1996, followed in October of the same year by OpenBSD
2.0. Since then, the project has followed a schedule of a release every six months, each of which is
maintained and supported for one year. The latest release, OpenBSD 4.7, appeared on May 19,
2010.
On 25 July 2007, OpenBSD developer Bob Beck announced the formation of the OpenBSD
Foundation, a Canadian not-for-profit corporation formed to "act as a single point of contact for
persons and organizations requiring a legal entity to deal with when they wish to support
OpenBSD."
Just how widely OpenBSD is used is hard to ascertain: the developers do not collect and publish
usage statistics and there are few other sources of information. In September 2005 the nascent BSD
Certification Group performed a usage survey which revealed that 32.8% of BSD users (1420 of
4330 respondents) were using OpenBSD, placing it second of the four major BSD variants, behind
FreeBSD with 77% and ahead of NetBSD with 16.3%. The DistroWatch website, well-known in
94
the Linux community and often used as a reference for popularity, publishes page hits for each of
the Linux distributions and other operating systems it covers. As of 12 May 2010 it places
OpenBSD in 69th place, with 142 hits per day. FreeBSD is in 12th place with 632 hits per day,
while NetBSD is in 89th place with 112 hits per day.
Open source and open documentation
When OpenBSD was created, Theo de Raadt decided that the source should be easily available for
anyone to read at any time, so, with the assistance of Chuck Cranor, he set up a public, anonymous
CVS server. This was the first of its kind in the software development world: at the time, the
tradition was for only a small team of developers to have access to a project's source repository.
This practice "runs counter to the open source philosophy" and is inconvenient to contributors. de
Raadt's decision allowed "users to take a more active role", and signaled the project's belief in open
and public access to source code.
A revealing incident regarding open documentation occurred in March 2005, when de Raadt posted
a message to the openbsd-misc mailing list. He announced that after four months of discussion,
Adaptec had not disclosed the documentation required to improve the OpenBSD drivers for its
AAC RAID controllers. As in similar circumstances in the past, he encouraged the OpenBSD
community to become involved and express their opinion to Adaptec. Shortly after this, FreeBSD
committer, former Adaptec employee and author of the FreeBSD AAC RAID support Scott Long,
castigated de Raadt on the OSNews website for not contacting him directly regarding the issues
with Adaptec. This caused the discussion to spill over onto the freebsd-questions mailing list, where
the OpenBSD project leader countered by claiming that he had received no previous offer of help
from Scott Long nor been referred to him by Adaptec. The debate was amplified by disagreements
between members of the two camps regarding the use of binary blob drivers and non-disclosure
agreements (NDAs): OpenBSD developers do not permit the inclusion of closed source binary
drivers in the source tree and are reluctant to sign NDAs. However, the FreeBSD project has a
different policy and much of the Adaptec RAID management code Scott Long proposed as
assistance for OpenBSD was closed source or written under an NDA. As no documentation was
forthcoming before the deadline for the release of OpenBSD 3.7, support for Adaptec AAC RAID
controllers was removed from the standard OpenBSD kernel.
The OpenBSD policy on openness extends to hardware documentation: in the slides for a December
2006 presentation, de Raadt explained that without it "developers often make mistakes writing
drivers", and pointed out that "the [oh my god, I got it to work] rush is harder to achieve, and some
developers just give up". He went on to say that vendor binary drivers are unacceptable to
OpenBSD, that they have "no trust of vendor binaries running in our kernel" and that there is "no
way to fix [them] ... when they break".
95
Licensing
OpenBSD 3.7 running X.Org with the JWM window manager
A goal of the OpenBSD project is to "maintain the spirit of the original Berkeley Unix copyrights",
which permitted a "relatively un-encumbered Unix source distribution". To this end, the Internet
Systems Consortium (ISC) licence, a simplified version of the BSD licence with wording removed
that is unnecessary under the Berne convention, is preferred for new code, but the MIT or BSD
licences are accepted. The widely used GNU General Public License is considered overly restrictive
in comparison with these.
In June 2001, triggered by concerns over Darren Reed's modification of IPFilter's licence wording,
a systematic licence audit of the OpenBSD ports and source trees was undertaken. Code in more
than a hundred files throughout the system was found to be unlicensed, ambiguously licensed or in
use against the terms of the licence. To ensure that all licences were properly adhered to, an attempt
was made to contact all the relevant copyright holders: some pieces of code were removed, many
were replaced, and others, including the multicast routing tools, mrinfo and map-mbone, which
were licensed by Xerox for research only, were relicensed so that OpenBSD could continue to use
them; also removed during this audit was all software produced by Daniel J. Bernstein. At the time,
Bernstein requested that all modified versions of his code be approved by him prior to
redistribution, a requirement to which OpenBSD developers were unwilling to devote time or effort.
The removal led to a clash with Bernstein who felt the removal of his software to be uncalled for.
He cited the Netscape web browser as much less freely licensed and accused the OpenBSD
developers of hypocrisy for permitting Netscape to remain while removing his software. The
OpenBSD project's stance was that Netscape, although not open source, had licence conditions that
could be more easily met. They asserted that Bernstein's demand for control of derivatives would
lead to a great deal of additional work and that removal was the most appropriate way to comply
with his requirements.
The OpenBSD team has developed software from scratch, or adopted suitable existing software,
because of licence concerns. Of particular note is the development, after licence restrictions were
imposed on IPFilter, of the pf packet filter, which first appeared in OpenBSD 3.0 and is now
available in DragonFly BSD, NetBSD and FreeBSD. OpenBSD developers have also replaced GPL
licensed tools (such as diff, grep and pkg-config) with BSD licensed equivalents and founded new
projects including the OpenBGPD routing daemon and OpenNTPD time service daemon.
96
Security and code auditing
Shortly after OpenBSD's creation, Theo de Raadt was contacted by a local security software
company named Secure Networks, Inc. or SNI. They were developing a "network security auditing
tool" called Ballista (later renamed to Cybercop Scanner after SNI was purchased by Network
Associates), which was intended to find and attempt to exploit possible software security flaws.
This coincided well with de Raadt's own interest in security, so for a time the two cooperated, a
relationship that was of particular use leading up to the release of OpenBSD 2.3 and helped to form
security as the focal point of the project.
Until June 2002, the OpenBSD website featured the slogan:
“
Five years without a remote hole in the default install!
”
In June 2002, Mark Dowd of Internet Security Systems disclosed a bug in the OpenSSH code
implementing challenge-response authentication. This vulnerability in the OpenBSD default
installation allowed an attacker remote access to the root account, which was extremely serious not
only to OpenBSD, but also to the large number of other operating systems that were using
OpenSSH by that time. This problem necessitated the adjustment of the slogan on the OpenBSD
website to:
“
One remote hole in the default install, in nearly 6 years!
”
The quote remained unchanged as time passed, until on March 13, 2007 when Alfredo Ortega of
Core Security Technologies disclosed a network-related remote vulnerability. The quote was
subsequently altered to:
“
Only two remote holes in the default install, in a heck of a long time!
”
This statement has been criticized because the default install contains few running services, and
most users will install additional software. The project states that the default install is intentionally
minimal to ensure novice users "do not need to become security experts overnight", which fits with
open source and code auditing practices argued to be important elements of a security system.
97
OpenBSD 3.8-current booting; 3.8 saw security changes to the malloc function.
OpenBSD includes features designed to improve security. These include API additions, such as the
strlcat and strlcpy functions; toolchain alterations, including a static bounds checker; memory
protection techniques to guard against invalid accesses, such as ProPolice and the W^X (W xor X)
page protection feature; and cryptography and randomization features.
To reduce the risk of a vulnerability or misconfiguration allowing privilege escalation, some
programs have been written or adapted to make use of privilege separation, privilege revocation and
chrooting. Privilege separation is a technique, pioneered on OpenBSD and inspired by the principle
of least privilege, where a program is split into two or more parts, one of which performs privileged
operations and the other—almost always the bulk of the code—runs without privilege. Privilege
revocation is similar and involves a program performing any necessary operations with the
privileges it starts with then dropping them. Chrooting involves restricting an application to one
section of the file system, prohibiting it from accessing areas that contain private or system files.
Developers have applied these features to OpenBSD versions of common applications, including
tcpdump and the Apache web server.
OpenBSD developers were instrumental in the birth of—and the project continues to develop—
OpenSSH, a secure replacement for Telnet. OpenSSH is based on the original SSH suite and
developed further by the OpenBSD team. It first appeared in OpenBSD 2.6 and is now the most
popular SSH implementation, available on many operating systems.
The project has a policy of continually auditing code for problems, work that developer Marc Espie
has described as "never finished ... more a question of process than of a specific bug being hunted".
He went on to list several typical steps once a bug is found, including examining the entire source
tree for the same and similar issues, "try[ing] to find out whether the documentation ought to be
amended", and investigating whether "it's possible to augment the compiler to warn against this
specific problem".
Linux kernel creator Linus Torvalds has expressed the view that development efforts should be
focused on fixing general problems rather than targeting security issues, as non-security bugs are
more numerous ("all the boring normal bugs are _way_ more important, just because there's a lot
more of them"). On July 15, 2008, he criticised the OpenBSD policy: "[T]hey make such a big deal
about concentrating on security that they pretty much admit that nothing else matters to them".
OpenBSD developer Marc Espie replied to Torvalds' statement: "It's a totally misinformed opinion
... [Fixing normal bugs] is exactly what people in the OpenBSD project do, all the time". Developer
Artur Grabowski also expressed surprise: "That's the funniest part about this ... [Torvalds] was
saying the same things we say".
98
Uses
OpenBSD's security enhancements, built-in cryptography and the pf packet filter suit it for use in
the security industry, for example on firewalls, intrusion-detection systems and VPN gateways.
OpenBSD 3.8 running X.Org with the default FVWM 2.2.5 window manager
Proprietary systems from several manufacturers are based on OpenBSD, including devices from
Calyptix Security, GeNUA mbH, RTMX Inc,, and .vantronix GmbH. Code from many of the
OpenBSD system tools has been used in recent versions of Microsoft's Services for UNIX, an
extension to the Windows operating system which provides some Unix-like functionality, originally
based on 4.4BSD-Lite. Core Force, a security product for Windows, is based on OpenBSD's pf
firewall.
OpenBSD ships with the X window system and is suitable for use on the desktop. Packages for
popular desktop tools are available, including desktop environments GNOME, KDE, and Xfce; web
browsers Konqueror, Mozilla Firefox and Opera; and multimedia programs MPlayer, VLC media
player and xine. Also provided are compatibility layers, which allow binary code compiled for some
other operating systems to be run.
OpenBSD's performance and usability is occasionally criticised. Felix von Leitner's performance
and scalability tests indicated that OpenBSD lagged behind other operating systems. In response,
OpenBSD users and developers criticised von Leitner's objectivity and methodology, and asserted
that although performance is given consideration, security and correct design are prioritised, with
developer Nick Holland commenting: "It all boils down to what you consider important." OpenBSD
is also a relatively small project, particularly when compared with FreeBSD and Linux, and
developer time is sometimes seen as better spent on security enhancements than performance
optimization. Critics of usability say that OpenBSD has a lack of user-friendly configuration tools, a
bare default installation, and a "spartan" and "intimidating" installer. These see much the same
rebuttals as performance: a preference for simplicity, reliability and security. As one reviewer puts
it, "running an ultra-secure operating system can be a bit of work."
99
Distribution and marketing
OpenBSD is available freely in various ways: the source can be retrieved by anonymous CVS or
CVSup, and binary releases and development snapshots can be downloaded either by FTP or HTTP.
Prepackaged CD-ROM sets can be ordered online for a small fee, complete with an assortment of
stickers and a copy of the release's theme song. These, with its artwork and other bonuses, are one
of the project's few sources of income, funding hardware, bandwidth and other expenses.
OpenBSD 4.4 running Xfce
In common with other operating systems, OpenBSD provides a package management systems for
easy installation and management of programs which are not part of the base operating system.
Packages are binary files which are extracted, managed and removed using the package tools. On
OpenBSD, the source of packages is the ports system, a collection of Makefiles and other
infrastructure required to create packages. In OpenBSD, the ports and base operating system are
developed and released together for each version: this means that the ports or packages released
with, for example, 4.6 are not suitable for use with 4.5 and vice versa.
OpenBSD at first used the BSD daemon mascot created by Marshall Kirk McKusick. Subsequent
releases saw variations, eventually settling on Puffy, described as a pufferfish. Since then Puffy has
appeared on OpenBSD promotional material and featured in release songs and artwork. The
promotional material of early OpenBSD releases did not have a cohesive theme or design but later
the CD-ROMs, release songs, posters and tee-shirts for each release have been produced with a
single style and theme, sometimes contributed to by Ty Semaka of the Plaid Tongued Devils. These
have become a part of OpenBSD advocacy, with each release expanding a moral or political point
important to the project, often through parody. Past themes have included: in OpenBSD 3.8, the
Hackers of the Lost RAID, a parody of Indiana Jones linked to the new RAID tools featured as part
of the release; The Wizard of OS, making its debut in OpenBSD 3.7, based on the work of Pink
Floyd and a parody of The Wizard of Oz related to the project's recent wireless work; and
OpenBSD 3.3's Puff the Barbarian, including an 80s rock-style song and parody of Conan the
Barbarian, alluding to open documentation.
100
15. OpenOffice.org — office suite
OpenOffice.org, commonly known as OOo or OpenOffice, is an open-source software application
suite available for a number of different computer operating systems. It is distributed as free
software and written using its own GUI toolkit. It supports the ISO/IEC standard OpenDocument
Format (ODF) for data interchange as its default file format, as well as Microsoft Office formats
among others. As of November 2009, OpenOffice supports over 110 languages.
OpenOffice.org originated as StarOffice, an office suite developed by StarDivision and acquired by
Sun Microsystems in August 1999. The source code of the suite was released in July 2000 with the
aim of reducing the dominant market share of Microsoft Office by providing a free and open
alternative; later versions of StarOffice are based upon OpenOffice.org with additional proprietary
components. The OpenOffice.org project is primarily sponsored by Oracle Corporation (initially by
Sun Microsystems). Other major corporate contributors include Novell, RedHat, RedFlag CH2000,
IBM, Google and others.
The project and software are commonly known as OpenOffice, but this term is a trademark held by
a company in the Netherlands co-founded by Wouter Hanegraaff and is also in use by Orange UK,
requiring the project to adopt OpenOffice.org as its formal name. Although branded as
OpenOffice.org, the office suite included in most Linux distributions (including Ubuntu, openSUSE
and Mandriva Linux) is actually a fork or an unofficial branch called Go-oo.
History
Version
Build 638c
1.0
1.0.3.1
1.1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
OpenOffice.org versions
Release
Description
Date
2001-10 The first milestone release
2002-0501
2003-05- Recommended for Windows
02
95
2003-0902
2004-03Bundled with TheOpenCD
30
2004-06
2004-1004
2004-1222
Last release for 1.x product
line
2005-09Final version for Windows
14
95 It can edit
OpenOffice.org 2 files
101
1.1.5secpatch
2.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.2.0
2.2.1
2.3.0
2.3.1
2.4.0
2.4.1
2.4.2
2.4.3
3.0.0
3.0.1
3.1.0
3.1.1
3.2
3.2.1
3.3
2006-0704
2005-1020
2005-1221
2006-0308
2006-0629
2006-1013
2006-1212
2007-0328
2007-0612
2007-0917
2007-1204
2008-0327
2008-0610
2008-1029
2009-0901
2008-1013
2009-0127
2009-0507
2009-0831
2010-0211
Security patch (macros)
Milestone, with major
enhancements
Included a security update;
Reintroduced font kerning
Updated charting component
Stability and security update
Bug fixes and new features
Security fix, minor
enhancements, and bug fixes
Security fix, minor
enhancements, and bug fixes
Bug fixes and minor
enhancements
Milestone, with major
enhancements
Bug fixes
Overlining and transparent
dragging added
Security fix, bug fixes
New features, and
performance enhancements.
Updated Oracle Start Center
2010-06and OpenDocument Format
04
Icons
Release motto: "Fit and
Q3 2010
Trim"
102
Originally the German company StarDivision developed the application as the proprietary software
suite StarOffice. In 1999 Sun Microsystems purchased the code. In August 1999 version 5.2 of
StarOffice was made available free of charge.
OpenOffice.org 1.0
On July 19, 2000, Sun Microsystems announced that it would make the source code of StarOffice
available for download under both the LGPL and the Sun Industry Standards Source License
(SISSL) with the intention of building an open-source development community around the
software. The new project was known as OpenOffice.org, and its website went live on October 13,
2000. The OpenOffice.org 1.0 was released on May 1, 2002 for MS Windows, Linux and Solaris.
OpenOffice.org 1.0 for MacOS X (X11) was released on June 23, 2003.
OpenOffice.org 1.1
This version introduced One-click Export to PDF and can Export presentations to Flash (.SWF). It
also added the 3rd Party Add-ons ability.
OpenOffice.org 2.0
Work on version 2.0 began in early 2003 with the following goals: better interoperability with
Microsoft Office; better performance, with improved speed and lower memory usage; greater
scripting capabilities; better integration, particularly with GNOME; an easier-to-find and use
database front-end for creating reports, forms and queries; digital signatures (only in ODF format;
this feature is not defined in ODF 1.1 specification); a new built-in SQL database; and improved
usability. Sun released a beta version on March 4, 2005.
On September 2, 2005 Sun announced that it was retiring the SISSL. As a consequence, the
OpenOffice.org Community Council announced that it would no longer dual-license the office
suite, and future versions would use only the LGPL.
On October 20, 2005, Sun formally released OpenOffice.org 2.0 to the public. Eight weeks after the
release of Version 2.0, an update, OpenOffice.org 2.0.1, was released. It fixed minor bugs and
introduced new features.
As of the 2.0.3 release, OpenOffice.org changed its release cycle from 18 months to releasing
updates, feature enhancements and bug fixes every three months. As of 2010, new versions
(including new features) are released every six months (so-called "feature releases") alternating
with so-called "bug fix releases" which are being released between two feature releases (every three
months).
103
OpenOffice.org 3.0
The Sun Start Center from version 3.0
In October 2008, version 3.0 was released, featuring the ability to import, but not export, Office
Open XML documents, support for the new ODF 1.2 document format, improved support for VBA
macros, and a native port for Mac OS X. It also introduces the new Start Center.
OpenOffice.org 3.2
Version 3.2 included support for PostScript-based OpenType fonts.
The software will now warn users when ODF 1.2 Extended features have been used. An
improvement to the document integrity check will determine if an ODF document conforms to the
ODF specification and offer a repair if necessary.
OpenOffice.org 3.2 Calc and Writer both have a reduced "cold start" time by 46% compared to
version 3.0
The about screen in this version now reads, in part, "Copyright © 2000, 2010 Oracle and/or its
affiliates. All rights reserved."
104
Future developments
OpenOffice.org 3.3
In future versions, the user interface will receive incremental improvements beginning with
Impress, the presentation application. New features in version 3.3 should include an updated print
form, a FindBar in Writer and Base being upgraded to hsqldb 2.0 from version 1.8.
An OpenOffice.org Impress Prototype written in Java
Oracle Open Office
OpenOffice.org inherited many features from the original StarOffice upon which it was based,
including the OpenOffice.org XML file format which it retained until version 2, when the ISO/IEC
standard OpenDocument Format (ODF) replaced it.
Sun subsidized the development of OpenOffice.org in order to use it as a base for its commercial
proprietary StarOffice application software. Releases of StarOffice from version 6.0 were based on
the OpenOffice.org source code, with some additional proprietary components, including the
following:
additional bundled fonts (especially East Asian language fonts)
Adabas D database. (The OpenOffice database module does not use Adabas)
additional document templates
clip art
sorting functionality for Asian versions
additional file filters
migration assessment tool (Enterprise Edition)
macro migration tool (Enterprise Edition)
configuration management tool (Enterprise Edition)
Following the acquisition of Sun by Oracle, StarOffice and StarSuite became known as Oracle
Open Office and the Oracle ODF Plug-In for Microsoft Office, which was free (and slightly
differently named) under Sun, now costs US$90 per user. A minimum purchase quantity of 100
now puts the minimum purchase price for the previously free plug-in at US$9000. (The plug-in
allows Microsoft Office 2007 (SP1 or Gold), 2003, XP (aka 2002) and 2000 to open ODF files
(specifically: files with .ODP, .ODS and .ODT extensions), and to provide Office 2007 with SP2
and 2010 "better ODF support than [either provide natively]". Office 2007 with SP2 and 2010 are
105
both capable of opening and saving ODF files natively, though only to some degree of formatting
accuracy).
Features
OpenOffice.org 1.0 was launched under the following mission statement:
To create, as a community, the leading international office suite that will run on all
major platforms and provide access to all functionality and data through opencomponent based APIs and an XML-based file format.
OpenOffice.org 3 is promoted as being available in many languages, working on all common
computers, storing data in an international open standard format and being able to read and write
files from other common office software packages, as well as being available for download and use
completely free of charge for any purpose.
In particular, the publishers of the office suite stress that it is the result of over twenty years'
software engineering, it is easy to use, and it is free, released under the LGPL licence.
Platforms
Platforms on which OO.o runs include Microsoft Windows, Linux, Solaris, BSD, OpenVMS, OS/2
and IRIX. The current primary development platforms are Microsoft Windows, Linux and Solaris.
Support for Mac OS X exists for OS X's native Aqua user interface, as of version 3.0. Previous
versions required installing the X Window System component. NeoOffice is an independent fork of
OpenOffice, specially adapted for Mac OS X.
Operating system compatibility
FreeBSD: v3.2.0
Linux
OpenBSD
NetBSD
Solaris: v3.2
Mac OS X v10.2: up to v1.1.2
Mac OS X v10.3: up to v2.1
Mac OS X v10.4–v10.5
(PowerPC): up to v3.2
Mac OS X v10.4–v10.5 (Intel): v3.2
Mac OS X v10.6: v3.1
Windows 95: up to v1.1.5
Windows NT4 Service Pack 6 – up to v2.10
Windows 98 – Windows ME: up to v2.4.3
Windows 2000 – Windows 7: v3.2 (Tablet
PC input is not supported)
OS/2 and eComStation: up to v3.1.1
IRIX (mips4): up to v1.0.3
106
Components
OpenOffice.org comprises a collection of applications that work together closely to provide the
features commonly included in modern office suites. Many of the components mirror those
available in Microsoft Office. The components available include:
Module
Notes
A word processor similar to Microsoft Word and WordPerfect. It can export
Writer Portable Document Format (PDF) files with no additional software, and can
function as a basic WYSIWYG editor for creating and editing web pages.
A spreadsheet similar to Microsoft Excel and Lotus 1-2-3. Calc provides a number
of features not present in Excel, including a system which automatically defines
Calc
series for graphing, based on the layout of the user’s data. Calc can also export
spreadsheets to the PDF format. (See ooWriter entry, above, for details of PDF).
A presentation program similar to Microsoft PowerPoint and Apple Keynote.
Impress can export presentations to Adobe Flash (SWF) files, allowing them to be
played on any computer with a Flash player installed. It also includes the ability to
Impress create PDF files, and the ability to read Microsoft PowerPoint's .ppt format.
Impress lacks ready-made presentation designs. However, this can be overcome
by downloading the Sun_ODF_Template_Pack2_en-US from the Openoffice.org
Extensions website..
A database management program similar to Microsoft Access. Base allows the
creation and manipulation of databases, and the building of forms and reports to
provide easy access to data for end-users. As with MS Access, Base can function
as a front-end to a number of different database systems, including Access
databases (JET), ODBC data sources and MySQL/PostgreSQL. Base became part
Base
of the suite starting with version 2.0. Native to the OpenOffice.org suite is an
adaptation of HSQL. While Base can be a front-end for any of the databases listed,
there is no need to install any of them. Raw SQL code can be entered by those
who prefer it, or graphical user interfaces can be used.
A vector graphics editor comparable in features to early versions of CorelDRAW.
It features versatile "connectors" between shapes, which are available in a range of
line styles and facilitate building drawings such as flowcharts. It has similar
Draw
features to desktop-publishing software such as Scribus and Microsoft Publisher.
Draw can also export its creations to the PDF format. (See ooWriter entry, above,
for details of PDF).
A tool for creating and editing mathematical formulae, similar to Microsoft
Equation Editor. OOo users can embed formulae inside other OpenOffice.org
Math
documents, such as those created by Writer. It supports multiple fonts and can
export to PDF.
QuickStarter
A small program for Windows and Linux that runs when the computer starts for the first
time. It loads the core files and libraries for OpenOffice.org during computer startup and
allows the suite applications to start more quickly when selected later. The amount of time it
takes to open OpenOffice.org applications occasioned complaints at version 1.0 of the suite.
Substantial improvements were made in this area for version 2.2.
107
The macro recorder
Can record user actions and replay them later to help with automating tasks, using
OpenOffice.org Basic (see below).
It is not possible to download these components individually for Microsoft Windows environments,
though they can be installed separately. Most Linux distributions break the components into
individual packages which may be downloaded and installed separately.
Fonts
OpenOffice.org includes DejaVu fonts and OpenSymbol font in its installation packages.
Installation packages for different operating systems may also contain Liberation fonts
(starting with OpenOffice.org 2.4) or Gentium fonts (since OpenOffice.org 3.2). Older
versions of OpenOffice.org (up to versions 2.3.x) included Bitstream Vera fonts.
OpenOffice.org applications use the default fonts of the running operating system. For
example, as of 2010, recent versions of GNU/Linux distributions (Mandriva Linux, Ubuntu
and OpenSUSE) use the Liberation fonts or DejaVu fonts as default fonts for new
documents (when a new document is created).
OpenOffice.org Basic
OpenOffice.org Basic is a programming language similar to Microsoft Visual Basic for
Applications (VBA) but based on StarOffice Basic. In addition to the macros, the Novell edition of
OpenOffice.org has Microsoft VBA macros support from version 2.0, a feature partly incorporated
into the mainstream version with version 3.0.
OpenOffice.org Basic is available in the Writer and Calc applications. It is written in functions
called subroutines or macros, with each macro performing a different task, such as counting the
words in a paragraph. OpenOffice.org Basic is especially useful in doing repetitive tasks that have
not been integrated in the program.
As the OpenOffice.org database, called "Base", uses documents created under the Writer
application for reports and forms, one could say that Base can also be programmed with
OpenOffice.org Basic.
Connectivity
OOo can interact with databases (local or remote) using:
ODBC: Open Database Connectivity
JDBC: Java Database Connectivity
SDBC: StarOffice Database Connectivity
108
File formats
OpenOffice.org pioneered the ISO/IEC standard OpenDocument file formats (ODF), which it uses
natively, by default. It also supports reading (and in some cases writing) many legacy and current
proprietary file formats (e.g.: WordPerfect through libwpd, StarOffice, Lotus Software, MS Works
through libwps, Rich Text Format, Hangul WP 97 format, etc.), most notably including Microsoft
Office formats. Since version 3.0 the default format of OpenOffice.org is based on draft versions for
OASIS ODF 1.2 (but this setting can be changed to ODF 1.0/1.1 in application settings). Versions
2.0–2.3.0 of OpenOffice.org default to the ODF 1.0 file format; OpenOffice.org versions 2.3.1–
2.4.3 default to ODF 1.1. The OpenDocument 1.0 specification was approved for release as an ISO
and IEC International Standard under the name ISO/IEC 26300:2006.
OpenOffice.org used the OpenOffice.org XML file format in its 1.x versions as the native file
format and default format for saving files. OpenOffice.org developers contributed the
OpenOffice.org XML File Format to OASIS. On the basis of OpenOffice.org XML file format, the
OASIS developed the OpenDocument format, which became native file format of OpenOffice.org.
OpenOffice.org XML file format is supported in all future versions of OpenOffice.org.
OpenOffice.org also supports Unified Office Format since version 3, DocBook since versioin 1.1,
Data Interchange Format, TXT, Comma-separated values and many others.
Development
Governance
The OpenOffice.org project is governed by the Community Council, comprising members from the
OpenOffice.org community, which created the charter establishing the Community Council. The
Community Council suggests OpenOffice.org project goals, coordinate with Sun Microsystems on
StarOffice, with producers of other derivative commercial products and with Open Source projects
on long-term development planning issues, represents the project, gathers and allocates funds,
adjudicates conflicts, offers a forum for community members, etc..
The Council have no power over intellectual-property ownership of OpenOffice.org, licenses under
which OpenOffice.org is released, resources controlled by Sun Microsystems, sponsors or the
contributing individuals. The Council also may not sign contracts or enter into binding legal
agreements. The Council will not attempt to directly manage individual projects, except where
strictly necessary in pursuing other Council's duties.
Overview
The OpenOffice.org API is based on a component technology known as Universal Network Objects
(UNO). It consists of a wide range of interfaces defined in a CORBA-like interface description
language.
The document file format used is based on XML and several export and import filters.
OpenOffice.org converts all external formats which it reads - back and forth from an internal XML
representation. By using compression when saving XML to disk, files are generally smaller than the
equivalent binary Microsoft Office documents. The native file format for storing documents in
version 1.0 was used as the basis of the OASIS OpenDocument file format standard, which became
the default file format in version 2.0.
109
Development versions of the suite are releasedevery few weeks on the developer zone of the
OpenOffice.org website. The releases are meant for those who wish to test new features or are
simply curious about forthcoming changes; they are not suitable for production use.
Native desktop integration
OpenOffice.org 1.0 was criticized for not having the look and feel of applications developed
natively for the platforms on which it runs. Starting with version 2.0, OpenOffice.org uses native
widget toolkit, icons, and font-rendering libraries across a variety of platforms, to better match
native applications and to provide a smoother experience for the user. Projects have started to
further improve this integration on both GNOME and KDE desktop environments.
This issue has been particularly pronounced on Mac OS X, whose standard user interface looks
noticeably different from either Windows or X11-based desktop environments and requires the use
of programming toolkits initially unfamiliar to most OpenOffice.org developers. Early versions of
OpenOffice.org required the installation of X11.app or XDarwin. Version 3.0 runs natively using
Apple's Aqua GUI.
Other projects
A number of products derive from OpenOffice.org. The more well-known ones include Sun
StarOffice, NeoOffice and IBM's Symphony. The OpenOffice.org site also lists a large variety of
complementary products, including groupware systems.
OOo4Kids, An Open Office.org Education Project designed for 7-12 year-old age range
with specific adaptations to the world of education such as a simpler to learn interface, less
highly complex math, word-formatting and other functions such as standard deviations,
cosine functions... in spreadsheets disabled and group collaboration.
NeoOffice, an independent port, offered a native OS X’s Aqua user interface even before
such integration was available in OpenOffice.org. Its releases lag behind the official
releases, due to its small development team and the concurrent development of the
technology used to port the user interface.
OpenGroupware.org is a set of extension programs to allow the sharing of OpenOffice.org
documents, calendars, address books, e-mails, instant messaging and blackboards, and to
provide access to other groupware applications.
A set of Perl extensions (available through the CPAN) allows external programs to process
OpenOffice.org documents. These libraries do not use the OpenOffice.org API. They
directly read or write the OpenOffice.org files using Perl standard file
compression/decompression, XML access and UTF-8 encoding modules.
PortableApps.com and LiberKey distribute versions of OpenOffice.org designed to run the
suite under Microsoft Windows from a USB flash drive.
OxygenOffice Professional extends OpenOffice.org, adding the ability to run Visual Basic
for Application (VBA) macros in Calc (for testing), improved Calc HTML export, enhanced
Access support for Base, enhanced color-palette, enhanced help and documentation,
additional clip art, several templates and sample documents and over 90 fonts.
110
Extensions
Since version 2.0.4, OpenOffice.org has supported extensions in a similar manner to Mozilla
Firefox. Extensions make it easy to add new functionality to an existing OpenOffice.org
installation. As of September 2009 the OpenOffice.org Extension Repository lists more than 390
extensions. Developers can easily build new extensions for OpenOffice.org, for example by using
the OpenOffice.org API Plugin for NetBeans.
Security
The OpenOffice.org project includes a security team, and as of June 2008 the security organization
Secunia reports no known unpatched security flaws for the software. Kaspersky Lab has shown a
proof of concept virus for OpenOffice.org. This shows OOo viruses are possible, but there is no
known virus "in the wild".
In a private meeting of the French Ministry of Defense, macro-related security issues were raised.
OpenOffice.org developers have responded and noted that the supposed vulnerability had not been
announced through "well defined procedures" for disclosure and that the Ministry had revealed
nothing specific. However, the developers have had discussions with the researcher[who?] concerning
the supposed vulnerability.
Ownership
The project and software are informally referred to as OpenOffice, but report that this term is a
trademark held by another party, requiring them to adopt OpenOffice.org as its formal name. Due to
a similar trademark issue, the Brazilian Portuguese version of the suite is distributed under the name
BrOffice.org. Staff members of StarOffice manage the development of OpenOffice.org.Some delay
and difficulty in implementing external contributions to the core codebase (even those from the
project's corporate sponsors) has been noted. Another potential turnoff is that third-party developers
are required to sign an agreement (Sun Microsystems, Inc. Contributor Agreement) that effectively
transfers copyright of their code to Sun Microsystems Inc.
As of 2010 several derived and/or proprietary works exist based on OOo, including:
Sun Microsystems' StarOffice, with various complementary add-ons.
IBM's Lotus Symphony, with a new interface based on Eclipse (based on OO.o 1.x).
OpenOffice.org Novell edition, integrated with Evolution and with an OOXML filter.
Beijing Redflag Chinese 2000's RedOffice, fully localized in Chinese characters and with
support for English.
Planamesa's NeoOffice for Mac OS X with Aqua support via Java.
Go-oo, a branch of OpenOffice.org.
On May 23, 2007, the OpenOffice.org community and Redflag Chinese 2000 Software Co, Ltd.
announced a joint development effort focused on integrating the new features that have been added
in the RedOffice localization of OpenOffice.org, as well as quality assurance and work on the core
applications. Additionally, Redflag Chinese 2000 made public its commitment to the global OO.o
community stating it would "strengthen its support of the development of the world's leading free
and open source productivity suite", adding around 50 engineers (who have been working on
RedOffice since 2006) to the project.
111
In September 10, 2007, the OO.o community announced that IBM had joined to support the
development of OpenOffice.org. "IBM will be making initial code contributions that it has been
developing as part of its Lotus Notes product, including accessibility enhancements, and will be
making ongoing contributions to the feature richness and code quality of OpenOffice.org. Besides
working with the community on the free productivity suite's software, IBM will also leverage
OpenOffice.org technology in its products" as seen with Lotus Symphony. Sean Poulley, the vice
president of business and strategy in IBM's Lotus Software division, said that IBM plans to take a
leadership role in the OpenOffice.org community together with other companies such as Sun
Microsystems. IBM will work within the leadership structure that exists.
Go-oo
Main article: Go-oo
On October 2, 2007, Michael Meeks announced (and generated an answer by Sun's Simon Phipps
and Mathias Bauer) a derived OpenOffice.org work, under the wing of his employer Novell, with
the purpose of including new features and fixes that do not get easily integrated in the OOo-build
up-stream core. The work is called Go-OO a name under which a set of patches for OO.o software
has been available for five years. The new features, shared with Novell's edition of OOo, include:
VBA macros support
faster start-up time
improved GTK theme handling (especially dark-coloured)
"A linear optimization solver to optimize a cell value based on arbitrary constraints built
into Calc".
multimedia content support in documents, using the gstreamer multimedia framework
support for Microsoft Works formats, WordPerfect graphics (WPG format) and T602 files
imports
export for Office Open XML files such as docx, xlsx, pptx by using Novell OpenXML
Converter
Details about the patch handling (including metrics) appear on the OpenOffice.org site.
Reviews
In September 2005 Federal Computer Week listed OpenOffice.org as one of the "5 stars of opensource products." In contrast, OpenOffice.org was used in 2005 by The Guardian newspaper to
illustrate what it sees as the limitations of open-source software, although the article does finish by
stating that the software may be better than MS Word for books. OpenOffice.org was featured by
eWeek several times, version 2.0 was reviewed by Linux Magazine and previewed by other media.
A PC Pro review awarded OOo Version 2.0 6 stars out of 6 and stated: "Our pick of the low-cost
office suites has had a much-needed overhaul, and now battles Microsoft in terms of features, not
just price." The reviewer also concluded:
For personal use, there are even fewer reasons to choose Microsoft. OpenOffice
certainly doesn't lack features compared to the market leader, and most of its easeof-use issues stem from people's familiarity with Microsoft Office rather than an
inherent problem with the program itself. As such, you should certainly try
OpenOffice's offering before donating another £100 or more to Microsoft's coffers.
After all, it's free.
112
In early October 2005, ComputerWorld of IDG reported that for large government departments,
migration to OpenOffice.org 2.0 cost one tenth of the price of upgrading to Microsoft Office 12.
The Computerworld story quoted Con Zymaris of Cybersource, who in turn referred to the
Massachusetts' Secretary of Administration and Finance Eric Kriss, who presented the estimate of
costs in a meeting hosted by the Massachusetts Technology Leadership Council on September 16,
2005.
The above information dates from January 2006 or earlier. Links to reviews of the October 2008
version 3 and earlier releases appear on the Oo.o website.
Market share
Problems arise in estimating the market share of OpenOffice.org because OpenOffice.org can be
freely distributed via download sites (including mirrors), peer-to-peer networks, CDs, Linux
distributions and so forth. Nevertheless, the OpenOffice.org tries to capture key adoption data in a
market-share analysis.
A weekly updated report from exo.performance.network shows a market share among Windows
users of between 13% and 14% as October 2009.
A market-share analysis conducted by a web analytics service in 2010, based on over 200,000
Internet users, showed a wide range of adoption in different countries: between 0.2% in China, 9%
in the US and the UK and over 20% in Poland, the Czech Republic and Germany.
Although Microsoft Office retained 95% of the general market as measured by revenue as of
August 2007, OpenOffice.org and StarOffice had secured 15-20% of the business market as of
2004. The OpenOffice.org web site reported more than 98 million downloads as of September
2007. OpenOffice.org 3.x reached one hundred million downloads, just over a year since its release.
On October 4, 2005, Sun and Google announced a strategic partnership. As part of this agreement,
Sun will add a Google search bar to OpenOffice.org, Sun and Google will engage in joint marketing
activities as well as joint research and development, and Google will help distribute
OpenOffice.org. StarOffice was formerly distributed with the Google Pack.
Besides StarOffice, a number of other commercial products derive from OpenOffice.org. Most of
them are developed under SISSL license (which is valid up to OpenOffice.org 2.0 Beta 2). In
general they are targeted at local or niche markets, with proprietary add-ons such as speech
recognition module, automatic database connection, or better CJK support.
In July 2007 Everex, a division of First International Computer and the 9th-largest PC supplier in
the U.S., began shipping systems preloaded with OpenOffice.org 2.2 into Wal-Mart and Sam's Club
outlets in North America.
In September 2007 IBM announced that it would supply and support OpenOffice.org branded as
Lotus Symphony, and integrated into Lotus Notes. IBM also announced 35 developers would be
assigned to work on OpenOffice.org, and that it would join the OpenOffice.org foundation.
Commentators noted parallels between IBM's 2000 support of Linux and this announcement.
113
Notable users
Large-scale users of OpenOffice.org include Singapore’s Ministry of Defence, Bristol City Council
in the UK and Banco do Brasil. In France, OpenOffice.org has attracted the attention of both local
and national government administrations who wish to rationalize their software procurement, as
well as have stable, standard file formats for archival purposes. As of 2006 OOo is the official
office suite for the French Gendarmerie. Several government organizations in India, such as IIT
Bombay, National Bank for Agriculture and Rural Development, the Supreme Court of India, the
Allahabad High Court, which use Linux, completely rely on OpenOffice.org for their
administration. In 2008 Grafton Fraser Inc, a Canadian Men's Wear company, dropped Microsoft
Office for its store computers and now run OpenOffice.org exclusively.
Use of Java
In the past OpenOffice.org was criticized by the Free Software Foundation for an increasing
dependency on the Java Runtime Environment which was not free software. Because Sun
Microsystems was both the creator of Java and the chief supporter of OpenOffice.org, the software
maker drew accusations of ulterior motives.
Version 1 depended on the Java Runtime Environment (JRE) being present on the user’s computer
for some auxiliary functions, but version 2 increased the suite’s use of Java requiring a JRE. In
response, Red Hat increased their efforts to improve free Java implementations. Red Hat’s Fedora
Core 4 (released on June 13, 2005) included a beta version of OpenOffice.org version 2, running on
GCJ and GNU Classpath.
The issue of OpenOffice.org’s use of Java came to the fore in May 2005, when Richard Stallman
appeared to call for a fork of the application in a posting on the Free Software Foundation website.
This led to discussions within the OpenOffice.org community and between Sun staff and developers
involved in GNU Classpath, a free replacement for Sun’s Java implementation. Later that year, the
OpenOffice.org developers also placed into their development guidelines various requirements to
ensure that future versions of OpenOffice.org could run on free implementations of Java and fixed
the issues which previously prevented OpenOffice.org 2.0 from using free-software Java
implementations.
On November 13, 2006, Sun committed to release Java under the GNU General Public License in
the near future. This process would end OpenOffice.org's dependence on non-free software.
Between November 2006 and May 2007, Sun Microsystems made available most of their Java
technologies under the GNU General Public License, in compliance with the specifications of the
Java Community Process, thus making almost all of Sun's Java also free software.
114
The following areas of OpenOffice.org 2.0 depend on JRE installation:
the media player on Unix-like systems
all document wizards in Writer
accessibility tools
Report Autopilot
JDBC driver support
HSQL database engine (used in OpenOffice.org Base)
XSLT filters
BeanShell, the NetBeans scripting language and the Java UNO bridge
export filters to the Aportis.doc (.pdb) format for the Palm OS or Pocket Word (.psw) format
for the Pocket PC
export filter to LaTeX
export filter to MediaWiki's wikitext
A common point of confusion focuses on the need for the Java API JavaMail in mail merge to
generate emails in StarOffice; however, as of version 2.0.1, OpenOffice.org uses a Pythoncomponent instead.
115
16. OpenSolaris — Unix Operating System from Sun Microsystems
OpenSolaris (pronounced /
.p nso
la .ris/) is an open source computer operating system
based on Solaris created by Sun Microsystems, now a part of Oracle Corporation. It is also the
name of the project initiated by Sun to build a developer and user community around the software.
OpenSolaris is a descendent of the UNIX System V Release 4 (SVR4) codebase developed by Sun
and AT&T in the late 1980s. It is the only version of System V available as open source.
OpenSolaris is developed as a combination of several software consolidations which were open
sourced subsequent to Solaris 10. It includes a variety of free software, including popular desktop
and server software. Sun has announced that future versions of its commercial Solaris operating
system will be based on the OpenSolaris project.
History
OpenSolaris is based on Solaris, which was originally released by Sun in 1991. Solaris is a version
of UNIX System V Release 4 (SVR4), jointly developed by Sun and AT&T to merge features from
several existing Unix systems. 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.
Sun submitted the CDDL (Common Development and Distribution License) to the OSI, which
approved it on January 14, 2005.
The first part of the Solaris code base to be open sourced was the Solaris Dynamic Tracing facility
(commonly known as DTrace), a tool that aids in the analysis, debugging, and tuning of
applications and systems. DTrace was released under the CDDL on January 25, 2005 on the newly
launched opensolaris.org website. 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 precompiled binary files.
To direct the newly-fledged project, 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 approved The
OpenSolaris Charter, which 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).
Initially, Sun's Solaris Express program provided a distribution based on the OpenSolaris code in
combination with software found only in Solaris releases. The first independent distribution was
released on June 17, 2005, and many others have emerged since.
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. The new distribution
was planned to refresh the user experience, and would become the successor to Solaris Express as
the basis for future releases of Solaris.
116
On May 5, 2008, OpenSolaris 2008.05 was released, in a format that could be booted as a Live CD
or installed directly. It uses the GNOME desktop environment as the primary user interface. The
later OpenSolaris 2008.11 release included a GUI for ZFS' snapshotting capabilities, known as
Time Slider, that provides functionality similar to Mac OS X's Time Machine.
In December 2008 Sun Microsystems and Toshiba America Information Systems announced plans
to distribute Toshiba laptops pre-installed with OpenSolaris. On April 1, 2009, the Tecra M10 and
Portégé R600 came preinstalled with OpenSolaris 2008.11 release and several supplemental
software packages.
On June 1, 2009, OpenSolaris 2009.06 was released, with support for the SPARC platform.
On January 13, 2010, Sun discontinued the Solaris Express program to focus on the OpenSolaris
distribution.
Version history
End of support phase
Post End SunSpectrum
Release
General
Version Build
of
End of
date
Availability
Version Service Life
(GA)
(EOV) (SS-EOSL)
13
13 May
13 May
November
2008.05 86
2011
2008
2008
25
25
25 May
2008.11 101b November
November
2009
2008
2011
1 June 1 December 1 June
1 June 2014
2009.06 111b
2009
2009
2012
TBA
-
Meaning
Release no longer
Red
supported
Green Release still supported
Blue Future release
Colour
Release model
117
OpenSolaris 2009.06 x86 LiveCD GNOME with terminal.
OpenSolaris is offered as both development (unstable) and production (stable) releases.
Development releases are built from the latest OpenSolaris codebase (consolidations) and
include newer techologies, security updates and bug fixes, and more applications, but may
not have undergone extensive testing.
Production releases are branched from a snapshot of the development codebase (following
a code freeze) and undergo a QA process that includes backporting security updates and bug
fixes.
OpenSolaris can be installed from CD-ROM, USB drives, or over a network with the Automated
Installer. CD, USB, and network install images are made available for both types of releases.
Repositories
OpenSolaris uses a network-aware package management system called the Image Packaging
System (also known as pkg(5)) to add, remove, and manage installed software and to update to
newer releases.
Packages for development releases of OpenSolaris are published by Oracle typically every two
weeks to the /dev repository. Production releases use the /release repository which does not receive
updates until the next production release. Only Sun customers with paid support contracts have
access to updates for production releases.
Paid support for production releases which allows access to security updates and bug fixes is
offered by Sun through the /support repository on pkg.sun.com.
Documentation
A hardware compatibility list (HCL) for OpenSolaris can be consulted when choosing hardware for
OpenSolaris deployment.
Extensive OpenSolaris administration, usage, and development documentation is available online,
including community-contributed information.
118
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 2007,
eWeek reported that anonymous sources at Sun had told them OpenSolaris would be dual-licensed
under CDDL and GPLv3. 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.
Conferences
The first annual OpenSolaris Developer Conference (abbreviated as OSDevCon) was organized by
the German Unix User Group (GUUG) and took place from February 27 to March 2, 2007 at the
Freie Universität Berlin in Germany. The 2008 OSDevCon was a joint effort of the GUUG and the
Czech OpenSolaris User Group (CZOSUG) and look place June 25–27, 2008 in Prague, Czech
Republic. The 2009 OSDevCon look place October 27–30, 2009, in Dresden, Germany.
In 2007, Sun Microsystems organized the first OpenSolaris Developer Summit, which was held on
the weekend of October 13, 2007, at the University of California, Santa Cruz in the United States.
The 2008 OpenSolaris Developer Summit returned to UCSC on May 2–3, 2008, and took place
immediately prior to the launch of Sun's new OpenSolaris distribution on May 5, 2008, at the
CommunityOne conference in San Francisco, California.
The first OpenSolaris Storage Summit was organized by Sun and held September 21, 2008,
preceding the SNIA Storage Developer Conference (SDC), in Santa Clara, California. The second
OpenSolaris Storage Summit preceded the USENIX Conference on File and Storage Technologies
(FAST) on February 23, 2009, in San Francisco, United States.
On November 3, 2009, a Solaris/OpenSolaris Security Summit was held by Sun in the Inner Harbor
area of Baltimore, Maryland, preceding LISA '09.
119
17. osCommerce — ecommerce
osCommerce (“open source Commerce”) is an e-commerce and online store-management software
program. It can be used on any web server that has PHP and MySQL installed. It is available as free
software under the GNU General Public License.
Key Features
osCommerce MS2.2 provides a basic set of functionality that meets the common needs of online
businesses. Beyond the basic functionality, osCommerce is able to be augmented, via either
community-supplied add-ons or custom code, meaning that it can be customized to meet the
specific needs of any business.
The following is a list of key features of osCommerce MS2.2 as stated on the osCommerce site:
Compatible with PHP 4 and MySQL - easily portable to version 5.
Compatible with all major browsers.
Multi-lingual English, German and Spanish by default.
Automatic web-based installation.
Unlimited number of products and categories.
Automatic setup of e-commerce payment systems: Authorize.net, Netbilling.com,
2Checkout.com, iPayment.de, PayPal.com, PsiGate.com, SECPay.com, and
TrustCommerce.com; Many other add-on ecommerce payment systems, off-line (manual)
credit card payments, and on-line payment processing.
Multi-currency support via manual update from exchange rate server.
Support for dynamic images (one image per product).
Supports physical products as well as product downloads.
Web-based administration module.
Database backup and restore.
Temporary and permanent shopping carts.
Secure transactions with SSL (Secure Sockets Layer) support.
Many shipping options including by weight, price, or destination.
Real-time shipping quote integration with UPS, USPS.
Zone-based shipping options as well as a free shipping option as part of Order Totals
Module.
Full tax functionality, included compounded taxes, different zones for different products.
In implementing an osCommerce-based site one key decision is how to integrate the design. Unlike
its forks, osCommerce MS2.2 does not come with a template system, though third party
osCommerce templates are available. This has been seen as a negative for some. However it does
mean that designs can be hand-coded or a template system installed. There are several well-known
template systems, including STS, BTS and SMARTY.
120
Limitations
Since its release in 2003, a number of issues regarding its functionality have been identified by the
user community and recognized, in part, by the development team. For example:
1.
2.
3.
4.
5.
6.
UPS is no longer a standard shipping module but can be added.
The manual Credit Card payment is not PCI Compliant and should be used for testing only.
Downloadable products are not fully secure but can be secured via Add On.
Image thumbnails are in fact full size images reduced for display which impacts bandwidth.
The PSI Gate module is no longer operable and needs to be replaced with an XML version.
Stock is not applied to product options but there is an Add On that will allow this
Criticisms
There are some minor security vulnerabilitiesregarding possible SQL injection via unchecked PHP
code. Patches are available for affected programs.
Customization via Add On or Custom Code means that installation of additional Add Ons may
require manual rather than automated installation.
History
osCommerce was started in March 2000 in Germany by project founder and leader Harald Ponce de
Leon as The Exchange Project. While osCommerce is still officially in its development stage, the
current Milestone 2.2 release (Release Candidate 2a) is considered stable. As of August 2008 the
osCommerce site says that there are over 14,000 'live' websites using the program. This number is
almost certainly conservative, given the inclusion of osCommerce in hosting panel application
installers such as Fantastico (web hosting) and its dependency on osCommerce users linking their
sites into the osCommerce Live Stores listings.
The planned Milestone 3.0 is expected to be a major re-write of the program to incorporate an
object-oriented backend, a template system to allow easy layout changes, and inclusion of an
administration-area username and password definition during installation . An early release
candidate of osCommerce 3.0 (osCommerce Online Merchant 3.0A4) has been available for
download since Mar 31 2007, 03:11 AM
On 29 October, 2008 it was announced by Harald Ponce de Leon (Project Leader) that the goal is to
get v2.2 finalized and to release v3.0 Alpha 5 as soon as possible.
On March 15, 2009 osCommerce made the first official release of osCommerce Online Merchant V
3.0 as a stable, production ready alpha release.. Introduced along with this release is a new "Social
Coding on Github" initiative introduced by osCommerce to liven up a previously slow development
cycle.
121
Branches
Distributed under the GNU General Public License, osCommerce is one of the earliest PHP based
Open Source shopping cart software distributions. As such, it has spawned a number of forks
including ozEcommerce, CRE Loaded, osCMax, Zen Cart, Suocommerce, Batavi and xtcModified.
122
18. PeaZip — File archiver
PeaZip is a file manager and file archiver for Microsoft Windows and Linux. It supports its native
PEA archive format (featuring compression, multi volume split and flexible authenticated
encryption and integrity check schemes) and other mainstream formats, with special focus on
handling open formats. It supports 123 file extensions (Version 3.0).
PeaZip is mainly written in Free Pascal, using Lazarus. PeaZip is released under the terms of the
GNU Lesser General Public License.
Features
The program features an archive browser interface with search and history features for intuitive
navigation in archive's content, and allows to apply fine-grained multiple exclusion and inclusion
filter rules to the archive; a flat browsing mode is possible as alternative archive browsing method.
PeaZip allows users to run extracting and archiving operations automatically using command-line
generated exporting the job defined in the GUI front-end. It can also create, edit and restore an
archive's layout for speeding up archiving or backup operation's definition.
Other notable features of the program includes archive conversion, file splitting and joining, secure
file deletion, byte-to-byte file comparison, archive encryption, checksum/hash files, system
benchmarking, random passwords/keyfiles generation, and integration in the Windows Explorer
context menu. In addition, the program's user interface (including icons and color scheme) can be
customized.
PeaZip is available as installable package for Windows and Linux (DEB, RPM and TGZ, compiled
both for GTK2 and Qt widgetset), and as natively standalone, portable application for both
platforms. In the latter form it is available also as PortableApps package (.paf.exe).
Along with more popular and general-purpose archive formats like 7z, Tar, ZIP etc., PeaZip
supports the PAQ and LPAQ formats. Although usually not recommended for general purpose use
(due to high memory usage and low speed), those formats are included for the value as cutting edge
compression technology, providing compression ratio amongst the best for most data structures.
PeaZip supports encryption with AES 256-bit cipher in 7z, ZIP and PEA archive formats. In
FreeArc's ARC format, supported ciphers are AES 256-bit, Blowfish, Twofish 256 and Serpent 256.
Limitations
The graphical frontend's progress bar is less reliable than the native console's progress indicator for
the various backend utilities. If it is critical to follow the real time progress of the work it is possible
to set the program to use the native console interface, or both graphical and console interfaces, for
the backend utilities.
123
Native archive format
PEA, an abbreviation for Pack Encrypt Authenticate, is an archive file format. It is a general
purpose archiving format featuring compression and multiple volume output. The developers' goal
is to offer a flexible security model through Authenticated Encryption, that provides both privacy
and authentication of the data, and redundant integrity checks ranging from checksums to
cryptographically strong hashes, defining three different levels of communication to control:
streams, objects, and volumes.
It was developed in conjunction with the PeaZip file archiver. PeaZip and Universal Extractor are
currently the only archive utilities that support the PEA archive format.
Third-party technologies
PeaZip acts as a graphical front-end for numerous third-party open source or royalty-free utilities,
including:
Igor Pavlov's 7z executable and Myspace's POSIX port of 7z under Linux
Bulat Ziganshin's FreeArc archiver (to not be confused with SEA's ARC)
PAQ8, ZPAQ and LPAQ executables, maintained by Matt Mahoney and various
contributors
Ilia Muraviev's QUAD and BALZ compressors
GNU strip and UPX
UNACEV2.DLL 2.6.0.0 (royalty-free UNACEV2.DLL license) and UNACE for Linux
(royalty-free UNACE for Linux license) (maintained by Marcel Lemke, ACE Compression
Software)
Most of these utilities can run both in console mode or through a graphical wrapper that allows
more user-friendly handling of output information.
Supported formats
Full archiving and extraction support
7z
7z-SFX
FreeArc's ARC/WRC
bzip2: bz2, tar.bz2, tbz, tb2
gzip: gz, tar.gz, tgz
PAQ8F/JD/L/O, LPAQ, ZPAQ
PEA
QUAD/BALZ
split (.001)
tar
ZIP
124
Browse/test/extract support
ACE
ARJ
CAB
CHM
Compound File (MSI, DOC, PPT, XLS, etc.)
CPIO
DEB
EAR
ISO CD/DVD images
JAR
LZMA
LZH
NSIS installers
OpenOffice's OpenDocument file types
PET/PUP (Puppy Linux installers)
PAK/PK3/PK4
RAR
RPM
SMZIP
U3P
WAR
WIM
XPI
Z (compress)
Repair
125
19. Stockfish — chess engine series, considered to be one of the strongest chess
programs of the world
Stockfish is an open source chess engine, developed by Tord Romstad, Joona Kiiski and Marco
Costalba and licensed under the GNU General Public License version 3. The current version 1.8 (as
of June 2, 2010) is available as C++ source code, and also has precompiled versions for Microsoft
Windows, Linux 32-bit/64-bit and Mac OS X Snow Leopard 64-bit available. The program uses the
UCI protocol and can therefore be operated under various graphical interfaces. It can use up to eight
CPU cores in multiprocessor systems. The maximum size of the transposition tables is eight
gigabytes. Stockfish implements an advanced alpha-beta search and uses bitboards.
In various computer chess rankings Stockfish 1.7.1 is second behind the top commercial program
Rybka and just ahead of Naum.
The program originated from another open source program by Romstad named Glaurung. Stockfish
was forked from the 2.1 version of Glaurung; the latest Glaurung version 2.2 was released
December 2008 but is no longer developed.
126
20.
Symbian — real time mobile operating system
Symbian OS is one of Nokia's mobile operating systems for mobile devices and smartphones, with
associated libraries, user interface, frameworks and reference implementations of common tools,
originally developed by Symbian Ltd. It was a descendant of Psion's EPOC and runs exclusively on
ARM processors, although an unreleased x86 port existed.
In 2008, the former Symbian Software Limited was acquired by Nokia and a new independent nonprofit organisation called the Symbian Foundation was established. Symbian OS and its associated
user interfaces S60, UIQ and MOAP(S) were contributed by their owners to the foundation with the
objective of creating the Symbian platform as a royalty-free, open source software. The platform
has been designated as the successor to Symbian OS, following the official launch of the Symbian
Foundation in April 2009. The Symbian platform was officially made available as open source code
in February 2010.
Devices based on Symbian OS account for 46.9% of smartphone sales, making it the world's most
popular mobile operating system.
Design
Symbian features pre-emptive multitasking and memory protection, like other operating systems
(especially those created for use on desktop computers). EPOC's approach to multitasking was
inspired by VMS and is based on asynchronous server-based events.
Symbian OS was created with three systems design principles in mind:
the integrity and security of user data is paramount,
user time must not be wasted, and
all resources are scarce.
To best follow these principles, Symbian uses a microkernel, has a request-and-callback approach
to services, and maintains separation between user interface and engine. The OS is optimised for
low-power battery-based devices and for ROM-based systems (e.g. features like XIP and reentrancy in shared libraries). Applications, and the OS itself, follow an object-oriented design:
Model-view-controller (MVC).
Later OS iterations diluted this approach in response to market demands, notably with the
introduction of a real-time kernel and a platform security model in versions 8 and 9.
There is a strong emphasis on conserving resources which is exemplified by Symbian-specific
programming idioms like descriptors and a cleanup stack. There are similar techniques for
conserving disk space (though the disks on Symbian devices are usually flash memory).
Furthermore, all Symbian programming is event-based, and the CPU is switched into a low power
mode when applications are not directly dealing with an event. This is achieved through a
programming idiom called active objects. Similarly the Symbian approach to threads and processes
is driven by reducing overheads.
The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a single-core
phone around it — that is, a phone in which a single processor core executes both the user
127
applications and the signalling stack. This has allowed Symbian EKA2 phones to become smaller,
cheaper and more power efficient than their predecessors.
Competition
In the number of "smart mobile device" sales, Symbian devices are the market leaders. Statistics
published for the second quarter of 2010 showed that Symbian devices comprised a 41.2% share of
smart mobile devices sold, with RIM having 18.2%, Android having 17.2%, and Apple having
15.1% (through iPhone OS)
Previous reports on device shipments as published in February 2010 showed that the Symbian
devices comprised a 47.2% share of the smart mobile devices shipped in 2009, with RIM having
20.8%, Apple having 15.1% (through iPhone OS), Microsoft having 8.8% (through Windows CE
and Windows Mobile) and Android having 4.7%. Other competitors include webOS, Qualcomm's
BREW, SavaJe, Linux and MontaVista Software.
Although the share of the global smartphone market dropped from 52.4% in 2008 to 47.2% in 2009,
the shipment volume of Symbian devices grew 4.8%, from 74.9 million units to 78.5 million units.
From Q2 2009 to Q2 2010, the shipment volume of Symbian devices grew 41.5%, by 8.0 million
units, from 19,178,910 units to 27,129,340; compared with an increase of 9.6 million units for
Android, but 3.3 million units for RIM and 3.2 million units for Apple.
Structure
The Symbian System Model contains the following layers, from top to bottom:
UI Framework Layer
Application Services Layer
o Java ME
OS Services Layer
o generic OS services
o communications services
o multimedia and graphics services
o connectivity services
Base Services Layer
Kernel Services & Hardware Interface Layer
The Base Services Layer is the lowest level reachable by user-side operations; it includes the File
Server and User Library, a Plug-In Framework which manages all plug-ins, Store, Central
Repository, DBMS and cryptographic services. It also includes the Text Window Server and the
Text Shell: the two basic services from which a completely functional port can be created without
the need for any higher layer services.
Symbian has a microkernel architecture, which means that the minimum necessary is within the
kernel to maximise robustness, availability and responsiveness. It contains a scheduler, memory
management and device drivers, but other services like networking, telephony and filesystem
support are placed in the OS Services Layer or the Base Services Layer. The inclusion of device
drivers means the kernel is not a true microkernel. The EKA2 real-time kernel, which has been
termed a nanokernel, contains only the most basic primitives and requires an extended kernel to
implement any other abstractions.
128
Symbian is designed to emphasise compatibility with other devices, especially removable media file
systems. Early development of EPOC led to adopting FAT as the internal file system, and this
remains, but an object-oriented persistence model was placed over the underlying FAT to provide a
POSIX-style interface and a streaming model. The internal data formats rely on using the same
APIs that create the data to run all file manipulations. This has resulted in data-dependence and
associated difficulties with changes and data migration.
There is a large networking and communication subsystem, which has three main servers called:
ETEL (EPOC telephony), ESOCK (EPOC sockets) and C32 (responsible for serial
communication). Each of these has a plug-in scheme. For example ESOCK allows different ".PRT"
protocol modules to implement various networking protocol schemes. The subsystem also contains
code that supports short-range communication links, such as Bluetooth, IrDA and USB.
There is also a large volume of user interface (UI) Code. Only the base classes and substructure
were contained in Symbian OS, while most of the actual user interfaces were maintained by third
parties. This is no longer the case. The three major UIs - S60, UIQ and MOAP - were contributed to
Symbian in 2009. Symbian also contains graphics, text layout and font rendering libraries.
All native Symbian C++ applications are built up from three framework classes defined by the
application architecture: an application class, a document class and an application user interface
class. These classes create the fundamental application behaviour. The remaining required
functions, the application view, data model and data interface, are created independently and
interact solely through their APIs with the other classes.
Many other things do not yet fit into this model – for example, SyncML, Java ME providing
another set of APIs on top of most of the OS and multimedia. Many of these are frameworks, and
vendors are expected to supply plug-ins to these frameworks from third parties (for example, Helix
Player for multimedia codecs). This has the advantage that the APIs to such areas of functionality
are the same on many phone models, and that vendors get a lot of flexibility. But it means that
phone vendors needed to do a great deal of integration work to make a Symbian OS phone.
Symbian includes a reference user-interface called "TechView". It provides a basis for starting
customisation and is the environment in which much Symbian test and example code runs. It is very
similar to the user interface from the Psion Series 5 personal organiser and is not used for any
production phone user interface.
129
History
Psion
In 1980, Psion was founded by David Potter.
EPOC
Osaris PDA by Oregon Scientific with EPOC operating system
EPOC is a family of graphical operating systems developed by Psion for portable devices,
primarily PDAs. EPOC came from epoch, the beginning of an era, but was backfitted by the
engineers to "Electronic Piece Of Cheese".
EPOC16
EPOC16, originally simply named EPOC, was the operating system developed by Psion in the late
1980s and early 1990s for Psion's "SIBO" (SIxteen Bit Organisers) devices. All EPOC16 devices
featured an 8086-family processor and a 16-bit architecture. EPOC16 was a single-user pre-emptive
multitasking operating system, written in Intel 8086 assembler language and C and designed to be
delivered in ROM. It supported a simple programming language called Open Programming
Language (OPL) and an integrated development environment (IDE) called OVAL. SIBO devices
included the: MC200, MC400, Series 3 (1991–1998), Series 3a, Series 3c, Series 3mx, Siena,
Workabout and Workabout mx. The MC400 and MC200, the first EPOC16 devices, shipped in
1989.
EPOC16 featured a primarily 1-bit-per-pixel, keyboard-operated graphical interface (the hardware
for which it was designed did not have pointer input).
In the late 1990s, the operating system was referred to as EPOC16 to distinguish it from Psion's
then-new EPOC32 OS.
EPOC32
The first version of EPOC32, Release 1 appeared on the Psion Series 5 ROM v1.0 in 1997. Later,
ROM v1.1 featured Release 3 (Release 2 was never publicly available.) These were followed by the
Psion Series 5mx, Revo / Revo plus, Psion Series 7 / netBook and netPad (which all featured
Release 5).
130
The EPOC32 operating system, at the time simply referred to as EPOC, was later renamed Symbian
OS. Adding to the confusion with names, before the change to Symbian, EPOC16 was often
referred to as SIBO to distinguish it from the "new" EPOC. Despite the similarity of the names,
EPOC32 and EPOC16 were completely different operating systems, EPOC32 being written in C++
from a new codebase with development beginning during the mid 1990s.
EPOC32 was a pre-emptive multitasking, single user operating system with memory protection,
which encourages the application developer to separate their program into an engine and an
interface. The Psion line of PDAs come with a graphical user interface called EIKON which is
specifically tailored for handheld machines with a keyboard (thus looking perhaps more similar to
desktop GUIs than palmtop GUIs ). However, one of EPOC's characteristics is the ease with which
new GUIs can be developed based on a core set of GUI classes, a feature which has been widely
explored from Ericsson R380 and onwards.
EPOC32 was originally developed for the ARM family of processors, including the ARM7, ARM9,
StrongARM and Intel's XScale, but can be compiled towards target devices using several other
processor types.
During the development of EPOC32, Psion planned to license EPOC to third-party device
manufacturers, and spin off its software division as Psion Software. One of the first licensees was
the short-lived Geofox, which halted production with less than 1,000 units sold. Ericsson marketed a
rebranded Psion Series 5mx called the MC218, and later created the EPOC Release 5.1 based
smartphone, the R380. Oregon Scientific also released a budget EPOC device, the Osaris (notable
as the only EPOC device to ship with Release 4).
In June 1998, Psion Software became Symbian Ltd., a major joint venture between Psion and phone
manufacturers Ericsson, Motorola, and Nokia. As of Release 6, EPOC became known simply as
Symbian OS.
EPOC OS Releases 1–5
Work started on the 32-bit version in late 1994.
The Series 5 device, released in June 1997, used the first iterations of the EPOC32 OS, codenamed
"Protea", and the "Eikon" graphical user interface.
The Oregon Scientific Osaris was the only PDA to use the ER4.
The Psion Series 5mx, Psion Series 7, Psion Revo, Diamond Mako, Psion netBook and Ericsson
MC218 were released in 1999 using ER5. A phone project was announced at CeBIT, the Phillips
Illium/Accent, but did not achieve a commercial release. This release has been retrospectively
dubbed Symbian OS 5.
The first phone using ER5u, the Ericsson R380 was released in November 2000. It was not an 'open'
phone – software could not be installed. Notably, a number of never-released Psion prototypes for
next generation PDAs, including a Bluetooth Revo successor codenamed Conan were using ER5u.
The 'u' in the name refers to the fact that it supported Unicode.
131
Symbian OS 6.0 and 6.1
The OS was renamed Symbian OS and was envisioned as the base for a new range of smartphones.
This release is sometimes called ER6. Psion gave 130 key staff to the new company and retained a
31% shareholding in the spun-out business.
The first 'open' Symbian OS phone, the Nokia 9210 Communicator, was released in June 2001.
Bluetooth support was added. Almost 500,000 Symbian phones were shipped in 2001, rising to 2.1
million the following year.
Development of different UIs was made generic with a "reference design strategy" for either
'smartphone' or 'communicator' devices, subdivided further into keyboard- or tablet-based designs.
Two reference UIs (DFRDs or Device Family Reference Designs) were shipped – Quartz and
Crystal. The former was merged with Ericsson's 'Ronneby' design and became the basis for the UIQ
interface; the latter reached the market as the Nokia Series 80 UI.
Later DFRDs were Sapphire, Ruby, and Emerald. Only Sapphire came to market, evolving into the
Pearl DFRD and finally the Nokia Series 60 UI, a keypad-based 'square' UI for the first true
smartphones. The first one of them was the Nokia 7650 smartphone (featuring Symbian OS 6.1),
which was also the first with a built-in camera, with VGA (0.3 Mpx = 640×480) resolution.
Despite these efforts to be generic, the UI was clearly split between competing companies: Crystal
or Sapphire was Nokia, Quartz was Ericsson. DFRD was abandoned by Symbian in late 2002, as
part of an active retreat from UI development in favour of 'headless' delivery. Pearl was given to
Nokia, Quartz development was spun off as UIQ Technology AB, and work with Japanese firms
was quickly folded into the MOAP standard.
Symbian OS 7.0 and 7.0s
First shipped in 2003. This is an important Symbian release which appeared with all contemporary
user interfaces including UIQ (Sony Ericsson P800, P900, P910, Motorola A925, A1000), Series 80
(Nokia 9300, 9500), Series 90 (Nokia 7710), Series 60 (Nokia 3230, 6260, 6600, 6670, 7610) as
well as several FOMA phones in Japan. It also added EDGE support and IPv6. Java support was
changed from pJava and JavaPhone to one based on the Java ME standard.
One million Symbian phones were shipped in Q1 2003, with the rate increasing to one million a
month by the end of 2003.
Symbian OS 7.0s was a version of 7.0 special adapted to have greater backward compatibility with
Symbian OS 6.x, partly for compatibility between the Communicator 9500 and its predecessor the
Communicator 9210.
In 2004, Psion sold its stake in Symbian. The same year, the first worm for mobile phones using
Symbian OS, Cabir, was developed, which used Bluetooth to spread itself to nearby phones. See
Cabir and Symbian OS threats.
132
Symbian OS 8.0
First shipped in 2004, one of its advantages would have been a choice of two different kernels
(EKA1 or EKA2). However, the EKA2 kernel version did not ship until Symbian OS 8.1b. The
kernels behave more or less identically from user-side, but are internally very different. EKA1 was
chosen by some manufacturers to maintain compatibility with old device drivers, while EKA2 was
a real-time kernel. 8.0b was deproductised in 2003.
Also included were new APIs to support CDMA, 3G, two-way data streaming, DVB-H, and
OpenGL ES with vector graphics and direct screen access.
Symbian OS 8.1
An improved version of 8.0, this was available in 8.1a and 8.1b versions, with EKA1 and EKA2
kernels respectively. The 8.1b version, with EKA2's single-chip phone support but no additional
security layer, was popular among Japanese phone companies desiring the real-time support but not
allowing open application installation. The first and maybe the most famous smartphone featuring
Symbian OS 8.1a was Nokia N90 in 2005, Nokia's first in Nseries.
Symbian OS 9
Symbian OS 9.0 was used for internal Symbian purposes only. It was de-productised in 2004. 9.0
marked the end of the road for EKA1. 8.1a is the final EKA1 version of Symbian OS.
Symbian OS has generally maintained reasonable binary code compatibility. In theory the OS was
BC from ER1-ER5, then from 6.0 to 8.1b. Substantial changes were needed for 9.0, related to tools
and security, but this should be a one-off event. The move from requiring ARMv4 to requiring
ARMv5 did not break backwards compatibility.
Symbian OS 9.1 and open source development
Released early 2005. It includes many new security related features, including platform security
module facilitating mandatory code signing. The new ARM EABI binary model means developers
need to retool and the security changes mean they may have to recode. S60 platform 3rd Edition
phones have Symbian OS 9.1. Sony Ericsson is shipping the M600 and P990 based on Symbian OS
9.1. The earlier versions had a defect where the phone hangs temporarily after the owner sent a
large number of SMS'es. However, on 13 September 2006, Nokia released a small program to fix
this defect. Support for Bluetooth 2.0 was also added.
Symbian 9.1 introduced capabilities and a Platform Security framework. To access certain APIs,
developers have to sign their application with a digital signature. Basic capabilities are usergrantable and developers can self-sign them, while more advanced capabilities require certification
and signing via the Symbian Signed program, which uses independent 'test houses' and phone
manufacturers for approval. For example, file writing is a user-grantable capability while access to
Multimedia Device Drivers require phone manufacturer approval. A TC TrustCenter ACS Publisher
ID certificate is required by the developer for signing applications.
133
Symbian OS 9.2
Released Q1 2006. Support for OMA Device Management 1.2 (was 1.1.2). Vietnamese language
support. S60 3rd Edition Feature Pack 1 phones have Symbian OS 9.2. Nokia phones with Symbian
OS 9.2 OS include the Nokia E90, Nokia N95, Nokia N82, Nokia N81 and Nokia 5700.
Symbian OS 9.3
Released on 12 July 2006. Upgrades include improved memory management and native support for
Wifi 802.11, HSDPA. The Nokia E72, Nokia 5730 XpressMusic, Nokia N79, Nokia N96, Nokia
E52, Nokia E75, Nokia 5320 XpressMusic, Sony Ericsson P1 and others feature Symbian OS 9.3.
Symbian OS 9.4
Announced in March 2007. Provides the concept of demand paging which is available from v9.3
onwards. Applications should launch up to 75% faster. Additionally, SQL support is provided by
SQLite. Ships with the Samsung i8910 Omnia HD, Nokia N97, Nokia 5800 XpressMusic, Nokia
5530 XpressMusic, Nokia 5230, Nokia 5233, Nokia 5235, Nokia C6 and Sony Ericsson Satio. Used
as the basis for Symbian^1, the first Symbian platform release. The release is also better known as
S60 5th edition, as it is the bundled interface for the OS.
Symbian OS 9.5
In 26 March 2007 Symbian Ltd. announced v9.5 which includes native support for mobile digital
television broadcasts in DVB-H and ISDB-T formats and also location services.
Released as Free and Open Source Software
The Symbian Foundation was announced in June 2008 and came into existence in 2009. Its
objective was to publish the source for the entire Symbian platform under the OSI- and FSFapproved Eclipse Public License (EPL). The release of the Symbian platform deprecated Symbian
OS as a standalone product.
Symbian^3
Full HD output, Nokia N8 first device.
134
Devices that use Symbian OS
On 16 November 2006, the 100 millionth smartphone running the OS was shipped. As of 21 July
2009, more than 250 million devices running Symbian OS had been shipped.
The Ericsson R380, in 2000, was the first commercially available phone based on Symbian
OS. As with the modern "FOMA" phones, this device was closed, and the user could not
install new C++ applications. Unlike those, however, the R380 could not even run Java
applications, and for this reason, some have questioned whether it can properly be termed a
'smartphone'.
The UIQ interface was used for PDAs such as Sony Ericsson P800, P900, P1, W950 and the
RIZR Z8 and RIZR Z10.
The Nokia S60 interface is used in various phones, the first being the Nokia 7650. The
Nokia N-Gage and Nokia N-Gage QD gaming/smartphone combos are also S60 platform
devices. It was also used on other manufacturers' phones such as the Siemens SX1 and
Samsung SGH-Z600. Recently, more advanced devices using S60 include the Nokia 6xxx,
the Nseries (except Nokia N8xx and N9xx), the Eseries and some models of the Nokia
XpressMusic mobiles.
The Nokia 9210, 9300 and 9500 Communicator smartphones used the Nokia Series 80
interface.
The Nokia 7710 is the only device currently using the Nokia Series 90 interface.
Fujitsu, Mitsubishi, Sony Ericsson and Sharp developed phones for NTT DoCoMo in Japan,
using an interface developed specifically for DoCoMo's FOMA "Freedom of Mobile
Access" network brand. This UI platform is called MOAP "Mobile Oriented Applications
Platform" and is based on the UI from earlier Fujitsu FOMA models.
Security
Malware
Symbian OS was subject to a variety of viruses, the best known of which is Cabir. Usually these
send themselves from phone to phone by Bluetooth. So far, none have taken advantage of any flaws
in Symbian OS – instead, they have all asked the user whether they would like to install the
software, with somewhat prominent warnings that it can't be trusted.
However, with a view that the average mobile phone user shouldn't have to worry about security,
Symbian OS 9.x adopted a UNIX-style capability model (permissions per process, not per object).
Installed software is theoretically unable to do damaging things (such as costing the user money by
sending network data) without being digitally signed – thus making it traceable. Commercial
developers who can afford the cost can apply to have their software signed via the Symbian Signed
program. Developers also have the option of self-signing their programs. However, the set of
available features does not include access to Bluetooth, IrDA, GSM CellID, voice calls, GPS and
few others. Some operators have opted to disable all certificates other than the Symbian Signed
certificates.
135
Some other hostile programs are listed below, but all of them still require the input of the user to
run.
Drever.A is a malicious SIS file trojan that attempts to disable the automatic startup from
Simworks and Kaspersky Symbian Anti-Virus applications.
Locknut.B is a malicious SIS file trojan that pretends to be patch for Symbian S60 mobile
phones. When installed, it drops a binary that will crash a critical system service component.
This will prevent any application from being launched in the phone.
Mabir.A is basically Cabir with added MMS functionality. The two are written by the same
author, and the code shares many similarities. It spreads using Bluetooth via the same
routine as early variants of Cabir. As Mabir. A activates it will search for the first phone it
finds, and starts sending copies of itself to that phone.
Fontal.A is an SIS file trojan that installs a corrupted file which causes the phone to fail at
reboot. If the user tries to reboot the infected phone, it will be permanently stick on the
reboot, and cannot be used without disinfection – that is, the use of the reformat key
combination which causes the phone to lose all data. Being a trojan, Frontal cannot spread
by itself – the most likely way for the user to get infected would be to acquire the file from
untrusted sources, and then install it to the phone, inadvertently or otherwise.
Hacking Symbian
S60 v3 and v5 (OS 9.x) devices can be hacked to remove the platform security introduced in OS 9.1
onwards thus allowing users to install "unsigned" files (files without certificates validated by
Symbian) and allowing access to previously locked system files. This allows changing of how the
operating system works, allowing hidden applications etc. to be viewable and possibly increases the
threat posed by mobile viruses as the operating system files are now exposed.
Developing on Symbian OS
Qt
As of 2010, the SDK for Symbian is standard C++, using Qt. It can be used with either Qt Creator,
or Carbide (the older IDE previously used for Symbian development). A phone simulator allows
testing of Qt apps. Apps compiled for the simulator are compiled to native code for the
development platform, rather than having to be emulated.
Symbian C++
It is also possible to develop using Symbian C++, although it is not a standard implementation.
Prior to the release of the Qt SDK, this was the standard development environment. There were
multiple platforms based upon Symbian OS that provided SDKs for application developers wishing
to target Symbian OS devices – the main ones being UIQ and S60. Individual phone products, or
families, often had SDKs or SDK extensions downloadable from the manufacturer's website too.
The SDKs contain documentation, the header files and library files required to build Symbian OS
software, and a Windows-based emulator ("WINS"). Up until Symbian OS version 8, the SDKs
also included a version of the GCC compiler (a cross-compiler) required to build software to work
on the device.
136
Symbian OS 9 and the Symbian platform use a new ABI and require a different compiler – a choice
of compilers is available including a newer version of GCC (see external links below).
Unfortunately, Symbian C++ programming has a steep learning curve, as Symbian C++ requires the
use of special techniques such as descriptors, active objects and the cleanup stack. This can make
even relatively simple programs harder to implement than in other environments. Moreover, it was
questionable whether these techniques, such as the memory management paradigm, were actually
beneficial. It is possible that the techniques, developed for the much more restricted mobile
hardware of the 1990s, simply caused unnecessary complexity in source code because programmers
are required to concentrate on low-level routines instead of more application-specific features.
These issues however are no longer the case when using standard C++, with the Qt SDK.
Symbian C++ programming is commonly done with an IDE. For earlier versions of Symbian OS,
the commercial IDE CodeWarrior for Symbian OS was favoured. The CodeWarrior tools were
replaced during 2006 by Carbide.c++, an Eclipse-based IDE developed by Nokia. Carbide.c++ is
offered in four different versions: Express, Developer, Professional, and OEM, with increasing
levels of capability. Fully featured software can be created and released with the Express edition,
which is free. Features such as UI design, crash debugging etc. are available in the other, chargedfor, editions. Microsoft Visual Studio 2003 and 2005 are also supported through the Carbide.vs
plugin.
Other languages
Symbian devices can also be programmed using Python, Java ME, Flash Lite, Ruby, .NET, Web
Runtime (WRT) Widgets and Standard C/C++.
Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition and UIQ 3
devices.
In the past, Visual Basic, VB.NET, and C# development for Symbian were possible through
AppForge Crossfire, a plugin for Microsoft Visual Studio. On 13 March 2007 AppForge ceased
operations; Oracle purchased the intellectual property, but announced that they did not plan to sell
or provide support for former AppForge products. Net60, a .NET compact framework for Symbian,
which is developed by redFIVElabs, is sold as a commercial product. With Net60, VB.NET and C#
(and other) source code is compiled into an intermediate language (IL) which is executed within the
Symbian OS using a just-in-time compiler. (As of 18/1/10 RedFiveLabs has ceased development of
Net60 with this announcement on their landing page: ”At this stage we are pursuing some options
to sell the IP so that Net60 may continue to have a future”.)
There is also a version of a Borland IDE for Symbian OS. Symbian OS development is also
possible on Linux and Mac OS X using tools and techniques developed by the community, partly
enabled by Symbian releasing the source code for key tools. A plugin that allows development of
Symbian OS applications in Apple's Xcode IDE for Mac OS X is available.
Java ME applications for Symbian OS are developed using standard techniques and tools such as
the Sun Java Wireless Toolkit (formerly the J2ME Wireless Toolkit). They are packaged as JAR
(and possibly JAD) files. Both CLDC and CDC applications can be created with NetBeans. Other
tools include SuperWaba, which can be used to build Symbian 7.0 and 7.0s programs using Java.
137
Nokia S60i phones can also run Python scripts when the interpreter Python for S60 is installed, with
a custom made API that allows for Bluetooth support and such. There is also an interactive console
to allow the user to write python scripts directly from the phone.
Deployment
Once developed, Symbian applications need to find a route to customers' mobile phones. They are
packaged in SIS files which may be installed over-the-air, via PC connect, Bluetooth or on a
memory card. An alternative is to partner with a phone manufacturer and have the software
included on the phone itself. Applications must be Symbian Signed for Symbian OS 9.x in order to
make use of certain capabilities (system capabilities, restricted capabilities and device manufacturer
capabilities). Applications not using these capabilities (including only requiring user capabilities)
can instead be self-signed for free. There are various hacks, which allow installing unsigned
programs with any capabilities to Symbian OS 9.x. Nokia also plan to reduce the cost for Symbian
Signed to zero.
138
21. TYPO3 — content management system
TYPO3 is a free and open source content management system as well as a Model–view–controller
(MVC) Web Application Development framework written in PHP. It is released under the GNU
General Public License. It can run on Apache or IIS on top of Linux, Microsoft Windows, OS/2 or
Mac OS X.
History
TYPO3 was initially authored by Kasper Skårhøj. It is now developed by two teams. The
maintenance tree, version 4.x, team leader is Oliver Hader. The development tree, version 5.x, team
leader is Robert Lemke.
More than 4500 pluggable extensions are avaiblable for TYPO3. Most of them have been written by
third party developers and are available for free.
Features
Along with a set of ready-made interfaces, functions and modules TYPO3 has a large repository of
extensions. More than 4500 extensions are available for download under the GNU General Public
License from a repository called the TYPO3 Extension Repository, or TER.
TYPO3 has a web frontend, which presents a TYPO3 based website to its users, along with a web
based backend, used by authors and site administrators to manage content for the website. TYPO3
can run on Apache or IIS on top of Linux, Microsoft Windows or Mac OS X. It uses PHP 5.2 or
newer and any relational database supported by the TYPO3 DBAL including MySQL, Oracle,
PostgreSQL, and others. The system can be run on any web server, with a modern CPU and 256
MB RAM. The Backend (TYPO3 administration interface) can be displayed in any modern browser
(such as Mozilla Firefox) on any OS, with JavaScript. There is no browser restriction for displaying
user–oriented content generated by TYPO3.
Design
The system uses a special language called TypoScript. TypoScript can be used to fetch data from
the database, process this data and generate web content. Usually TypoScript includes one of
available template engines (such as automaketemplate or TemplaVoila). These template engines
create output based on one or more HTML templates.
TYPO3 defines various types of data. Standard types include: text, image, text with image, html,
table, video, lists, etc. These types can be extended by a user through plugins. The most
fundamental type is "page". Every element that can appear to the user, belongs to a certain page.
Pages are hierarchical with no limit to nesting level. There are special page types such as shortcuts
(viewing this page directs the user to another page), mount points (allows to mount a part of the
page tree at the mount point), external URL, etc.
Logically TYPO3 consists from two parts: the Frontend and the Backend. The Frontend is a part
responsible for generation and display of web content. The Backend is responsible for
administration.
139
Almost everything in TYPO3 is made to be pluggable and extendable. For example, TYPO3
includes many user authentication methods (such as RSA shared keys or OpenID). They are
implemented as extension to the main system.
TYPO3 is a complex framework with almost unlimited possibilities. Developers may find
information at various places, such as:
the official developer's resource (typo3.org)
TYPO3 wiki (wiki.typo3.org)
TYPO3 mailing lists (lists.typo3.org). Lists also have a usenet interface and are readable
with a newsreader.
TypoScript
The basic syntax is:
[objectpath].[attribute]
[operator]
[value]
Operators include:
= assignment of a value
< copy a whole object
=< insert a reference
> remove object
Examples:
page.10 = TEXT
page.10.value = Hello, world!
It must be noted that TypoScript is not a programming language. The following code will trigger no
action in TYPO3 while it will trigger item creation and removal in programming languages:
page.10 = TEXT
page.10.value = Hello, world!
page.10 >
In this example a TypoScript object "page.10" was created and immediately removed. When
TYPO3 parses TypoScript, it will remove object declaration of "page.10" before actually
processing created objects.
TemplaVoila
TemplaVoila is an alternative template engine extension for TYPO3. A graphical mapping tool for
creating templates is included, an alternative page module, the ability to create flexible content
elements and an API for developers. New content element types can be created without
programming.
TemplaVoila facilitates more flexibility for maintaining web pages than TYPO3's standard
templating, while making it possible to enforce a strict corporate design and allowing editors to
work with content more intuitively.
140
License Controversy
Starting with TYPO3 version 5, the TYPO3 Association asks all contributors of ideas, code, or
documentation to the TYPO3 projects (including FLOW3) to complete, sign, and submit an
individual Contributor License Agreement (CLA). Signing such an agreement is not necessary (but
recommended) for contributions to the version 4 branch of TYPO3.
For a corporation that has assigned employees to work on a TYPO3 project, a Corporate CLA
(CCLA) is available for contributing intellectual property via the corporation, that may have been
assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need
for every developer to sign their own CLA as an individual, to cover any of their contributions
which are not owned by the corporation signing the CCLA.
This kind of agreement on top of GNU General Public License v.3 makes additional obligations to
developers, either individuals, companies and its employees. For example, GPL only requires
developers to distribute the source with the binaries, however this CLA obligates developers to send
identify the complete details of its source and of any license or other restriction (including, but not
limited to, related patents, trademarks, and license agreements). Another additional obligation is to
notify the association of any facts or circumstances of which you become aware that would make
these representations inaccurate in any respect. In this case who accepts the agreement may inform
the association against others not following this agreement, for example.
Another important point is the need on TYPO3 version 5 to have a signed CLA on file before
TYPO3.org can give someone commit rights to one of the TYPO3 v5 projects.
141
22.
WordPress — content management system — blog software
WordPress is an open source CMS, often used as a blog publishing application powered by PHP
and MySQL. It has many features including a plugin architecture and a templating system. Used by
over 300 of the 10,000 biggest websites, WordPress is the most popular blog software in use today.
It was first released on May 27, 2003, by Matt Mullenweg as a fork of b2/cafelog. As of September
2009, it was being used by 202 million websites worldwide.
Features
WordPress has a templating system, which includes widgets that can be rearranged without editing
PHP or HTML code, as well as themes that can be installed and switched between. The PHP and
HTML code in themes can also be edited for more advanced customizations. WordPress also
features integrated link management; a search engine-friendly, clean permalink structure; the ability
to assign nested, multiple categories to articles; and support for tagging of posts and articles.
Automatic filters that provide for proper formatting and styling of text in articles (for example,
converting regular quotes to smart quotes) are also included. WordPress also supports the
Trackback and Pingback standards for displaying links to other sites that have themselves linked to
a post or article. Finally, WordPress has a rich plugin architecture which allows users and
developers to extend its functionality beyond the features that come as part of the base install.
Native applications exist for Android, iPhone/iPod Touch, and BlackBerry which provide access to
some of the features in the WordPress Admin panel and work with WordPress.com and many
WordPress.org blogs.
Deployment
WordPress can be deployed using various methods on a hosting environment. Users have the option
to download the current version of WordPress from WordPress.org. From there, they can upload the
source code and its dependencies to their hosting environment.
WordPress can also be installed via package management system or deploying a ready-to-use
TurnKey WordPress appliance, which does not require any manual setup or configuration.
WordPress can also be installed via the Microsoft Web Platform Installer which installs WordPress
on Windows and IIS. The Web PI will automatically detect any missing dependencies such as PHP
or MySQL then install and configure them before installing WordPress.
Advanced users have the option to have WordPress downloaded to their server and consistently
updated using SVN. This will allow users to remain updated easily.
Free hosting services such as WordPress.com offer users an easy way to deploy a WordPress blog
on-line without having to install WordPress on your own web server. Many shared web hosting
services also offer automated WordPress installation through their control panel.
142
History
b2/cafelog, more commonly known as simply b2 or cafelog, was the precursor to WordPress.
b2/cafelog was estimated to have been employed on approximately 2,000 blogs as of May 2003. It
was written in PHP for use with MySQL by Michel Valdrighi, who is now a contributing developer
to WordPress. Although WordPress is the official successor, another project, b2evolution, is also in
active development.
WordPress first appeared in 2003 as a joint effort between Matt Mullenweg and Mike Little to
create a fork of b2. The name WordPress was suggested by Christine Selleck, a friend of
Mullenweg.
In 2004 the licensing terms for the competing Movable Type package were changed by Six Apart
and many of its users migrated to WordPress, causing a marked and continuing growth in
WordPress's popularity.By October, 2009, the 2009 Open Source CMS Market Share Report
reached the conclusion that WordPress enjoys the greatest brand strength of any open source
content management systems. That conclusion was based on an extensive analysis of rate of
adoption patterns and brand strength and was backed by a survey of users.
Awards
In 2007 WordPress won a Packt Open Source CMS Award.
In 2009 WordPress won the best Open Source CMS Award.
Removal of sponsored themes
On July 10, 2007, following a discussion on the WordPress ideas forum and a post by Mark Ghosh
in his blog Weblog Tools Collection, Matt Mullenweg announced that the official WordPress theme
directory at http://themes.wordpress.net would no longer host themes containing sponsored links.
Although this move was criticized by designers and users of sponsored themes,it was applauded by
WordPress users who consider such themes to be spam.The official WordPress theme directory
ceased to accept any new themes, including those without sponsored links, shortly after the
announcement was made. Sponsored themes are still available elsewhere, as well as free themes
with additional sponsored links added by third parties.
On July 18, 2008, a new theme directory opened at http://wordpress.org/extend/themes/. It was
styled along the same lines as the plug-ins directory, Any theme that is uploaded to it will be vetted,
first by an automated program and then by a human.
On December 12, 2008, over 200 themes were removed from the WordPress theme directory as
they did not comply with GPL License requirements. Today, author mentions are permitted in each
theme but the official policy does not allow for sponsorships or links to sites distributing non-GPL
compatible themes. Non-GPL compliant themes are now hosted on other theme directories.
143
Releases
Most WordPress releases are code named after well-known jazz musicians starting after version 1.0.
Version
0.70
1.2
1.5
2.0
2.1
2.2
2.3
2.5
2.6
2.7
2.8
2.9
Code
Name
Release
Date
Notes
contained the same file structure as its predecessor, b2/cafelog.
Only 0.71-gold is available for download in the official
WordPress Release Archive page.
It's notable for containing the support of Plugins. The same
22 May
Plugin identification headers are still used unchanged in the latest
Mingus
2004
WordPress releases.
Strayhorn added a range of vital features, such as the ability to
17 February manage static pages and a template/theme system. It was also
Strayhorn
equipped with a new default template (code named Kubrick)
2005
designed by Michael Heilemann.
This version added rich editing, better administration tools, image
31
uploading, faster posting, an improved import system, and
Duke
December
completely overhauled the back end. WordPress 2.0 also offered
2005
various improvements to plugin developers.
In addition to correcting security issues, version 2.1 featured a
22 January redesigned interface, enhanced editing tools (including integrated
Ella
spell check and auto save), and improved content management
2007
options.
16 May
Version 2.2 featured widget support for templates, updated Atom
Getz
2007
feed support, and speed optimizations.
Version 2.3 featured native tagging support, new taxonomy
24
system for categories, and easy notification of updates. 2.3 also
Dexter
September
fully supports Atom 1.0 along with the publishing protocol, and
2007
included some much needed security fixes.
Developers skipped the release of version 2.4 so version 2.5
29 March contained two releases worth of new code. WordPress 2.5 saw a
Brecker
complete overhaul of the administration interface and the
2008
WordPress website was also redesigned to match the new style.
Tyner contained new features that made WordPress a more
15 July
powerful CMS: you can now track changes to every post and
Tyner
2008
page and easily post from wherever you are on the web.
It once again saw the administration interface completely
11
redesigned. It also introduces an automated upgrade feature, and
Coltrane December
automatic installation of plugins from within the administration
2008
interface.
Baker offered improvements in speed, and automatic installation
of themes from within the administration interface. It also
10 June
Baker
introduces the CodePress editor for syntax highlighting and a
2009
redesigned widget interface.
19
Carmen offers a global undo feature, a built-in image editor,
Carmen
December batch plugin updating, and numerous under-the-hood tweaks.
27 May
2003
144
2009
3.0
Thelonious
17 June
2010
Thelonious offers a new default theme called "Twenty Ten" along
with new theme APIs; the merge of WordPress and WordPress
MU, creating the new multi-site functionality; and numerous
under-the-hood tweaks.
Future
After the release of Wordpress 3.0, Matt Mullenweg updated the Wordpress blog letting the
community know that his team will be taking a release cycle off from the Wordpress software to
focus on expanding and improving the Wordpress community.
Vulnerabilities
Many security issues were uncovered in the software, particularly in 2007 and 2008. According to
Secunia, WordPress in April 2009 had 7 unpatched security advisories (out of 32 total), with a
maximum rating of "Less Critical". Secunia maintains an up-to-date list of WordPress
vulnerabilities.
In January 2007, many high-profile Search engine optimization (SEO) blogs, as well as many lowprofile commercial blogs featuring AdSense, were targeted and attacked with a WordPress exploit.
A separate vulnerability on one of the project site's web servers allowed an attacker to introduce
exploitable code in the form of a back door to some downloads of WordPress 2.1.1. The 2.1.2
release addressed this issue; an advisory released at the time advised all users to upgrade
immediately.
In May 2007, a study revealed that 98% of WordPress blogs being run were exploitable because
they were running outdated and unsupported versions of the software.
In a June 2007 interview, Stefen Esser, the founder of the PHP Security Response Team, spoke
critically of WordPress's security track record, citing problems with the application's architecture
that made it unnecessarily difficult to write code that is secure from SQL injection vulnerabilities,
as well as some other problems.
Multi-blogging
Prior to WordPress 3.0, WordPress supported one blog per installation, although multiple
concurrent copies may be run from different directories if configured to use separate database
tables. WordPress Multi-User (WordPress MU, or just WPMU) was a fork of WordPress created to
allow multiple blogs to exist within one installation that is able to be administered by a centralized
maintainer. WordPress MU makes it possible for those with a website to host their own blogging
community, as well as control and moderate all the blogs from a single dashboard. WordPress MU
adds eight new data tables for each blog.
WordPress MU merged with WordPress as part of the 3.0 release.
145
Key developers
WordPress development is led by Ryan Boren and Matt Mullenweg. Mullenweg and Mike Little
were co-founders of the project.
The core contributing developers include Dougal Campbell, Mark Jaquith, Donncha Ó Caoimh,
Andy Skelton, Michel Valdrighi and Peter Westwood.
Though largely developed by the community surrounding it, WordPress is closely associated with
Automattic, where 50% of WordPress's core commiters are employees.
WordPress is also developed by its community, including WP testers, a group of volunteers who
test each release. They have early access to nightly builds, beta versions and release candidates.
Errors are documented in a special mailing list, or the project's Trac tool.
146
23. 7-Zip — File archiver
7-Zip is an open source file archiver designed originally for Microsoft Windows. 7-Zip operates
with the 7z archive format, and can read and write to several other archive formats. The program
can be used from a command line interface, graphical user interface, or Windows shell integration.
7-Zip began in 1999 and is actively developed by Igor Pavlov. It is related to a cross-platform port,
p7zip.
7-Zip is distributed under the GNU Lesser General Public License. It was the winner of the
SourceForge.net 2007 community choice awards for "Technical Design" and for "Best Project".
Formats
The 7z archive format
By default, 7-Zip creates 7z format archives with a .7z file extension. Each archive can contain
multiple directories and files. As a container format, security or size reduction are achieved using a
stacked combination of filters. These can consist of pre-processors, compression algorithms, and
encryption filters.
The core .7z compression uses a variety of algorithms, the most common of which are bzip2,
LZMA2, and LZMA. Developed by Igor Pavlov, LZMA is a relatively new system, making its
debut as part of the 7z format. LZMA consists of a large LZ-based sliding dictionary up to 4 GB in
size, backed by a range coder.
The native 7z file format is open and modular. All filenames are stored as Unicode.
The official 7z file format specification is distributed with the program's source code. The
specification can be found in plain text format in the doc\ subdirectory of the source code
distribution.
Other supported formats
7-Zip supports a number of other compression and non-compression archive formats including:
Packing/unpacking of ZIP, gzip, bzip2, tar and, in betas for version 9, xz.
Unpacking only: Microsoft cabinet (CAB) files, RAR, MSLZ, SWF, FLV, ARJ, Z, LHA, cpio,
smzip, JAR, ISO CD/DVD images (7Zip version 4.42 and up), DMG, HFS, rpm and Debian deb
archives.
According to the 7-Zip website, since version 4.65 (from 2009-02-03), 7-Zip can unpack the
following formats in addition to the formats it fully supports: ARJ, CAB, CHM, cpio, DEB, DMG,
HFS, ISO, LZH, LZMA, MSI, NSIS, RAR, RPM, UDF, WIM, XAR and Z.
7-Zip is able to open some MSI files, allowing access to the meta-files within along with the main
contents. Some Microsoft CAB (LZX compression) and NSIS (LZMA) installer formats can be
147
opened, meaning that 7-Zip can be used to check if a binary file is an archive. Similarly, some
executable programs (.EXEs) may be opened as archives and have their contents extracted by 7-Zip.
Since the 7-Zip 9.14 beta, 7-Zip can open and view the content of virtual hard disks.
When compressing ZIP or gzip files, 7-Zip uses a home-brewed DEFLATE encoder which is often
able to achieve higher compression levels than the more common DEFLATE implementation of
zlib, at the expense of compression speed. The 7-Zip deflate encoder implementation is available
separately as part of the AdvanceCOMP suite of tools.
Variants
In the form of p7zip, the command line version has been ported for use on Unix-like systems
including Linux, FreeBSD, Mac OS X and AmigaOS 4. There are several GUI frontends for p7zip
such as Q7Z. An alternate GUI for 7-Zip on Windows, #7Z, has been released by the same
developers. A GUI frontend for p7zip on the Mac OS X operating system named keka is also
available.
Two command line versions are provided: 7z.exe, using external libraries; and a standalone
executable 7za.exe containing built-in modules. However, 7za's compression/decompression
support is limited to 7z, ZIP, gzip, bzip2, Z and tar formats. A 64-bit version is available for 64-bit
editions of Windows, with support for large memory maps leading to faster compression. All
versions support multi-threading.
A repackaged version for Windows is available by PortableApps.com.
Also, jZip is an alternative (proprietary) GUI for windows
Features
7-Zip supports many features, including:
Support for the 256-bit AES cipher. Encryption can be enabled for both files and the 7z
directory structure. When the directory structure is encrypted, users are required to supply a
password to see the filenames contained within the archive, unless only the data was
encrypted but not the filenames. WinZip-developed AES encryption standard is also
available in 7-Zip to encrypt ZIP archives with AES 256-bit, but it doesn't offer filename
encryption as in 7z archives.
Volumes of dynamically variable sizes, allowing use for backups on removable media such
as writable CDs and DVDs.
Usability as a basic orthodox file manager when used in 2-panel mode.
Multiple CPU / core / threading settings can be configured.
The ability to attempt to open EXE files as archives, allowing the decompression of data
from inside many "SetUp" or "Installer" or "Extract" type programs without having to
launch them.
The ability to unpack archives with corrupted filenames, renaming the files as required.
The ability to create self-extracting archives although cannot do so for multi-volume
archives.
148