Google
 

μClinux

μClinux stands for "MicroController Linux", and is pronounced "you-see-Linux" as explained in the website and not how the letter mu is normally pronounced. It was a fork of the Linux kernel for microcontrollers (µCs: see embedded systems) without a memory management unit (MMU). It was integrated into the main line of development as of 2.5.46; the project continues to develop patches and tools for microcontrollers.

Introduction
μClinux was originally created by D. Jeff Dionne and Kenneth Albanowski in 1998. Initially they targeted the Motorola DragonBall family of embedded 68k processors (specifically the 68328 series) on a 2.0.33 Linux kernel. After releasing their initial work a developer community soon sprung up to extend their work to newer kernels and other microprocessor architectures. In early 1999 support was added for the Motorola (now Freescale) ColdFire family of embedded microprocessors. ARM processor support also became available later that year.

Although originally targeting 2.0 series Linux kernels, it now has ports based on Linux 2.4 and Linux 2.6. There were never any μClinux extensions applied to the 2.2 series kernels.

Since version 2.5.46 of the Linux kernel the major parts of μClinux have been integrated with the main line kernel for a number of processor architectures. Greg Ungerer (who originally ported μClinux to the Motorola ColdFire family of processors) continues to maintain and actively push core μClinux support into 2.6 series Linux kernels. In this regard μClinux is essentially no longer a separate fork of Linux.

The project continues to develop patches and supporting tools for using Linux on microcontrollers. μClinux has support for many architectures, and forms the basis of many products, like network routers, security cameras, DVD or MP3 players, VoIP phone or Gateways, scanners, and card readers.


Supported architectures

The current list includes:
Altera NIOS
ADI Blackfin
ARM
ETRAX
Freescale M68K (including DragonBall, ColdFire, PowerQUICC and others)
Fujitsu FRV
Hitachi H8
Intel i960
MIPS (example: the Brecis parts)
NEC V850E
Xilinx MicroBlaze

Recent developments
Quality of support varies, with some ports no longer under active development. ARM support is currently being merged, most core support is in later 2.6 series kernels. Microblaze is actively attempting for inclusion in main line Linux kernels. Development for some architectures has occurred outside of the existing μClinux community (typically by commercial interests, but sometimes by individuals), and resources like the uclinux.org web site may not be particularly helpful for all architecture types.

Like any part of the Linux kernel, the extensions (in the form of patches) are licensed under the GPL.

Although strictly speaking μClinux is only the operating system kernel, the μClinux project also produced a C standard library called uClibc (now separately maintained) and a "userland" which can be used as a complete operating system for embedded systems called "μClinux-dist".

The "μClinux-dist" software package contains libraries, applications and tools. It can be configured and built into a kernel with root file system. It was first released by Greg Ungerer in 1999 as the μClinux-coldfire package. In the following years it came to support many architecture families, and now can even build standard Linux architectures (such as x86) as well.

The "μClinux-dist" userland utilities contain tiny http servers, a small 'sh like' shell, and even a fun ascii art Star Wars film. It also contains many other well known Open Source packages, like Samba and FreeS/WAN, all of which run on μClinux systems.

For example, the iPodLinux project uses μClinux for its kernel, and so does Mattel's Juice Box, as well as the well-known Nintendo DS Linux port, DSLinux, the lesser-known PlayStation port Runix, and the PlayStation Portable port.

It has also been used in the Picotux, advertised as the smallest computer running Linux in the world. The Pictotux 100 is 35 mm × 19 mm × 19 mm, but the Blackfin based Minotaur BF537 is smaller, at 26.5mm x 26.5mm x 4.2mm.

DejaGnu

DejaGnu is a framework for testing other programs. It has a main script called runtest that goes through a directory looking at configuration files and then runs some tests with given criteria. The purpose of the DejaGnu package is to provide a single front end for all tests. It is a part of the GNU project and as such is under the GPL. It is based on Expect, which is in turn based on Tcl. The current maintainers are Rob Savoye, and Ben Elliston.


Testing

DejaGnu has a very strong history in testing due to its Tcl base. Tcl is used extensively by companies such as Oracle and Sybase to test their products. DejaGnu allows this work to be much more structured.

The tests can be grouped according to the tool they are testing. The test is run by merely calling runtest in the root project directory.

runtest --tool program_to_test

This will look in the testsuite directory for any folders starting with program_to_test and will run all .exp files in that folder.


Embedded Design

One field to which DejaGnu is well suited is that of embedded design. It allows testing to be done remotely on development boards. Also, separate initialization files can be creating for each operating system and board. This focus on embedded targets and remote hosts is the source of its popularity with many GNU projects, universities, and private companies.


Files

Essential Files


testsuite

apache Each directory in testsuite should contain tests for a specific tool. In this example, the tool(program) being tested is apache, the webserver.
apache.test1.exp This will be the file containing some of your tests. In the fictional case of testing apache, these tests might contain such code to change configuration options, then connect to the network and check to make sure the changes have taken effect.

config
unix.exp
lib
whois.exp This file will be run as a tool init file.
Other Files

site.exp This file is a directory specific configuration file for runtest. If you always use the same options, you may want to put them here rather than typing them every time. You can record any variables that you'd be able to use as a command line argument.

set tool apache #run tests on apache
set srcdir ./testsuite #look here fore test files
set outdir ./logs #save the logs in a separate directory
set all 1 #show results from all tests (rather than just ones with errors)


.dejagnurc This is a personal configuration file. Each developer can have their own one to personalize their current DejaGnu operating environment. This file should be located in the user's home directory (~/.dejagnurc)
global_config.exp This is the first configuration file loaded. It can be named anything but must be pointed to by the $DEJAGNU environment variable (set when your terminal loads).

wxWidgets

wxWidgets (formerly wxWindows) is a widget toolkit for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes. It covers systems such as Microsoft Windows, Mac OS, Linux/Unix (X11, Motif, and GTK+), OpenVMS, OS/2 and AmigaOS. A version for embedded systems is under development.

History

wxWidgets (initially wxWindows) was started in 1992 by Julian Smart at the University of Edinburgh. He attained an honours degree in Computational Science from the University of St Andrews in the year 1986, and is still a core developer.

On February 20 2004, the developers of wxWindows announced that the project was changing its name to wxWidgets, as a result of requests from Microsoft of Julian Smart to respect Microsoft's United Kingdom trademark of the term Windows.


License

wxWidgets is distributed under a custom made licence, similar to the GNU Lesser General Public License, with an exception stating that derived works in binary form may be distributed on the user's own terms. This licence is a free software licence, making wxWidgets free software.


Implementation

The wxWidgets library is implemented in C++, with bindings available for many commonly used programming languages, among them, Python (wxPython), Erlang (wxErlang), Haskell (wxHaskell), Lua (wxLua), Perl (wxPerl), Ruby (wxRuby), Smalltalk (wxSqueak), Java (wx4j) and even JavaScript (wxJavaScript). For a complete list, with links to the respective project sites, see the external references at the end of this article. There is also PLT Scheme, which uses an incompatible branch of wxWindows (version 1), created in 1995. The toolkit is deeply integrated with the language run-time (garbage collection, resource administration) unlike in other languages, which simply provide a library binding.

wxWidgets is best described as a native mode toolkit as it provides a thin abstraction to a platform's native widgets, as opposed to emulating the display of widgets using graphic primitives. Calling a native widget on the target platform results in a more native looking interface than toolkits such as Swing (for Java), as well as offering performance and other benefits.

The toolkit is also not restricted to GUI development, having a built-in ODBC-based database library, an inter-process communication layer, socket networking functionality, and more.



Mambo

Mambo (formerly named Mambo Open Source or MOS) is a free software / open source content management system (CMS) for creating and managing websites through a simple web interface. It has attracted many users due to its ease of use. Mambo also includes more advanced features such as page caching to improve performance on busy sites, advanced templating techniques, and a fairly robust API. It can also automate many tasks such as web indexing for static pages. Mambo can provide RSS feeds, printable versions of pages, news flashes, blogs, forums, polls, calendars, website searching, language internationalization, and other possibilities.

Mambo is released under the terms of the GNU General Public License (GPL)Version 2. It is written with the PHP programming language and uses the MySQL database.

The rights to the Mambo CMS codebase, name and copyrights, are protected by the Mambo Foundation, a non-profit corporation formed to support and promote the Mambo Open Source project.

The project site and downloads can be found at http://source.mambo-foundation.org, and an online demo of Mambo is available at Open Source CMS Demo.


Requirements

As of 24 April 2007, the minimum requirements for Mambo consist of:

* Apache (version 1.3.19 or above) or Windows IIS
* MySQL (version 4.x or above)
* PHP (version 4.3.x or above with extensions: mysql, xml, zlib, ftp)

Mambo is thoroughly tested on Linux, FreeBSD, Mac OS X and Windows NT/2000/XP/Vista. Linux or one of the BSD's are recommended, but anything else that can run the three pieces of software listed above should work. Additionally, Mambo displays properly in most major browsers: Internet Explorer (version 5.5+), Netscape, Opera and Mozilla/Firefox.

PHP must have been compiled with support for MySQL and Zlib in order to successfully run Mambo. Mambo works on Microsoft IIS, but Apache is recommended for running Mambo on Windows.

Mambo Foundation

The Mambo Foundation is a non-profit entity established under the laws of Australia. The Foundation is based on Eclipse and GNOME and is controlled by the members of the Foundation via an elected Board of Directors. The Mambo Foundation's brief is to foster the development of the Mambo system and to shelter the project from threats and misuse. The Foundation was formed in August 2005. The Mambo Foundation also has forums addressing the latest issues within Mambo, including the deployment of Mambo 5.

Timeline of Mambo History

* 2000: Miro Construct Pty Ltd, registered in March 2000 in Melbourne, and headed up by CEO Peter Lamont, a former advertising executive, starts development of Mambo, a closed-source, proprietary content management system.

* 2001: The company adopted a dual licensing policy, releasing Mambo Site Server under the GPL on Sourceforge in April 2001.

* May 2001: The mamboserver.com domain name is registered.

* From this time until the middle of 2002, Miro was the only developer of Mambo, contributing bug-fixes and security patches but not really extending the code or adding to the feature sets.

* 2002: Miro releases the commercial CMS called Mambo 2002.

* With version 3.0.x, the open source Mambo Site Server becomes "Mambo Open Source" (commonly referred to as "MOS").

* Robert Castley becomes Project Director of Mambo Open Source.

* By the end of 2002, Robert Castley had pulled together a volunteer team of developers.

* Mambo Open Source 4.0 is released.

* 2003: Early in 2003, Miro hands off the responsibility of the code fully to the Open Source project Development Team.
* Miro concentrates on its commercial products and Mambo Open Source goes from strength to strength under the leadership of Robert Castley.

* Miro released Mambo CMS, a commercial version of Mambo Open Source. Miro claims that Mambo CMS does not contain any source added to Mambo after it was made open source.

* Miro Construct Pty Ltd goes into voluntary liquidation in February 2003 and in August, Miro International Pty Ltd is formed. Source code for Mambo Open Source shows copyright 2000 - 2003 Miro Construct Pty Ltd.

* Mambo Open Source 4.5 released in December 2003. By this time, almost all of the original Miro code had disappeared during refactoring.

* 2004: mamboforge.net starts in March, 2004.

* Linux Format awards Mambo “Best Free Software Project” of the Year.

* Linux User and Developer names it “Best Linux or Open Source Software”.

* In mid-2004, the name "Mambo Open Source" (which was commonly referred to as MOS) was changed to just "Mambo", causing concern in the community over apparent confusion this would cause between the open source, community-developed CMS and Miro's commercial offering, "Mambo CMS".

* In late 2004, Mambo was targeted by legal threats concerning the intellectual property rights to certain pieces of code contained in the core. The problem was severe and cost money, man hours, and eventually the loss of some key community leaders. Miro came to the aid of Mambo, offering legal and corporate resources to protect the development team and preserve the program.

* September 2004: Mambo version 4.5.1 is released, followed a month later by version 4.5.1a stable.

* Robert Castley resigns as Project Director and in November, Andrew Eddie takes on the role.

* December 2004: the Mambo Steering Committee was established with representatives from both Miro and the Mambo development team. This committee was designed to govern the Mambo project.

* January 2005: Andrew Eddie announces a strategic partnership between Mambo and Miro International Pty Ltd, with Miro proposing to offer financial support for the open source project, plus training, commercial support services, and developer certification.

* February 2005: Discussions begin over the formation of a non-profit foundation for the Mambo project.

* Versions 4.5.2 and later, 4.5.2.1 are released.

* April 2005: The commercial Mambo CMS is renamed "Jango".

* “Best Open Source Solution” and “Best of Show - Total Industry Solution” at LinuxWorld Boston.

* “Best Open Source Solution” at LinuxWorld San Francisco.

* July 2005: mambo-foundation.org domain is established.

* August 2005: Mambo Foundation, Inc is legally constituted on 8th August, 2005. Miro CEO Peter Lamont appoints himself President of the Board of the new Foundation.

* 12th August: Robert Castley, who is an inaugural member of the Mambo Foundation Board of Regents, states: "The Foundation allows for everything to be placed outside of Miro incl. Domain Names, hosting etc. " and goes on to say that with him, the original founder of Mambo Open Source, and Andrew Eddie both being on the Board of the Mambo Foundation, Mambo would continue as a successful, open source project. He concluded his statement with,"So there you have it two very key people in the overall success of Mambo are at the helm. Trust me, Mambo is in very, very safe hands!"

* A few days later, the entire team of core programmers publicly announced they had abandoned Mambo and shortly after this, Robert Castley steps down from the Board of Regents.

* The former core development team members regroup under the name "Open Source Matters" and the open source community at mamboserver.com fractures over allegations that the Mambo Foundation was formed without community input and with insufficient developer control. People express suspicion over the level of involvement by Miro International. By the end of August, the new project is named Joomla! and most of the former Mambo community has relocated to Open Source Matters. By the end of September, Open Source Matters Inc is a duly constituted non-profit corporation registered in New York.

* Joomla! positions itself as a "rebranding of Mambo" and releases its first fork of Mambo as Joomla 1.0 in September, 2005. The two code-bases are almost identical at this stage.

* Mambo forms a new core development team with Martin Brampton appointed as Core Development Team leader.

* Miro assigns all rights in the copyright of Mambo to the Mambo Foundation.

* November 2005: Mambo version 4.5.3 is released.

* December 2005: Miro International Pty Ltd is voluntarily deregistered as a company on 31st December, 2005.

* January 2006: The rights to Miro International Pty Ltd are sold by Peter Lamont and a new business entity called Miro Software Solutions is created. Miro Software Solutions continues to develop Jango and other proprietary software under new ownership.

* March 2006: Mambo named "Best Open Source Software Solution" at LinuxWorld Australia.

* April 2006: Core developer team leader, Martin Brampton, resigns and leaves the project. Chad Auld takes over the role as Core Developer Team leader.

* Mambo 4.5.4 is released.

* July 2006: The Mambo Foundation websites become independent from Mambo Communities Pty Ltd.

* Following elections, the new Board of the Mambo Foundation takes office. The Mambo Foundation is now completely independent of any corporate interest.

* September 2006: Mambo version 4.6 is released.

* October 2006: Mambo 4.6.1 is released.

* February 2007: Mambo 4.5.5 is released. This is a maintenance release for the 4.5.x branch.

* April 2007: Mambo 4.6.2 is released. This is a maintenance release for the 4.6.x branch and enables localisation of Mambo.
* December 2007: Mambo 4.6.3 is released. This is a security and maintenance release.
* January 2008: Mambo 4.5.6 is released. This is the final release of the Mambo 4.5 branch.
* February 2008: Chad Auld leaves the project.
* March 2008: John Messingham becomes Project Leader. Ozgur Cem Sen becomes core development team leader. Ozgur Cem Sen leaves the project shortly thereafter.

Future development

The next major release of Mambo (5.0) will undertake a complete rewrite, and it will be based upon the open source web application framework CakePHP.

Awards

* "Best Free Software Project of the Year" - Linux Format Magazine, 2004
* "Best Linux or Open Source Software" - LinuxUser & Developer 2004
* "Best Open Source Solution" - LinuxWorld, Boston 2005
* "Best of Show - Total Industry Solution" - LinuxWorld, Boston 2005
* "Best Open Source Solution" - LinuxWorld, San Francisco 2005
* "Best Open Source Solution" LinuxWorld, Sydney, Australia 2006

All text is available under the terms of the GNU Free Documentation License.