Difference between revisions of "Bering-uClibc 4.x"

From bering-uClibc
Jump to: navigation, search
(Added an initial, brief summary of the main changes from 3.x)
m (Development History)
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
===Overview===
+
==Overview==
 +
[[Bering-uClibc]] is one of the branches of the [[LEAF]] (Linux Embedded Appliance Framework) project, delivering on [[LEAF]]'s ambition to provide a secure, feature-rich, customizable embedded Linux network appliance for use in a variety of network topologies. Although it can be used in other ways, its primary goal is as a Internet gateway, BRAS, router, firewall and wireless access point.
 +
 
 
[[Bering-uClibc 4.x]] is basically [[Bering-uClibc 3.x]] brought up to date with the latest versions of the main software components.
 
[[Bering-uClibc 4.x]] is basically [[Bering-uClibc 3.x]] brought up to date with the latest versions of the main software components.
 
In particular:
 
In particular:
* The Linux Kernel is upgraded from 2.4.x to 2.6.x.
+
* The Linux kernel is upgraded from 2.4.x to 2.6.x (current 4.0 version uses longterm 2.6.35 kernel branch).
 
* The Shorewall package is upgraded from 3.x to 4.x.
 
* The Shorewall package is upgraded from 3.x to 4.x.
 +
* The uClibc library is upgraded from 0.9.28 to 0.9.30.
 
These changes bring both advantages and disadvantages compared to [[Bering-uClibc 3.x]].
 
These changes bring both advantages and disadvantages compared to [[Bering-uClibc 3.x]].
The main disadvantage is that the distribution is much larger which means it no longer has any chance of being hosted on floppy disk media and consumes more RAM and CPU when running.
+
The main disadvantage is that the distribution is much larger which means it no longer has any chance of being hosted on floppy disk media.
 +
The main advantages are:
 +
* Proper stateful connection tracking for IPv6 is only supported from kernel version [http://www.shorewall.net/FAQ.htm#faq80a 2.6.24] onwards.
 +
* Fully supported MSI/MSI-X interrupts handling, also supported RPS/RFS - that makes LEAF useful for high-performance routers/BRAS.
 +
* Kernel-mode PPTP server and client (accel-pptp) will highly improve performance of PPTP data transferring and reduce CPU load.
 +
* Hardware-specific kernel module loading has been partially automated, resulting in less of a requirement to understand which combination of modules is required on a particular hardware platform.
 +
* The upgraded version of Shorewall requires a full installation of the Perl interpreter. This makes it possible to run other services which require Perl.
  
The development of [[Bering-uClibc 4.x]] started in April 2010, with [[User:Nitr0man|Nitr0man]] as the lead developer.
 
  
 +
==Main Features==
 +
The key characteristics of [[Bering-uClibc 4.x]] are:
 +
* Based on a recent release of the Linux Kernel.
 +
* Runs on industry standard devices with x86 processors.
 +
* Designed to perform well on relatively low-specification hardware. In particular:
 +
** The system runs from an in-memory filesystem. Disk storage is only required for booting and for holding configuration settings.
 +
** The [http://www.uclibc.org/ uClibc] C library is used in place of the [http://www.gnu.org/software/libc/libc.html GNU C Library] since uClibc is much smaller in size.
 +
** Considerable use is made of [http://www.busybox.net/ BusyBox] utilities as replacements for larger applications.
 +
* Focussed on providing excellent networking facilities.
 +
* Designed to have high fault tolerance:
 +
** There is no writes on HDD/flash during work (except config saving during maintenance) - so power failure will not break file system.
 +
** Corrupted/erased config file, or even 'rm -rf /' isn't a problem - changes are stored permanently only when user requires that, and reboot will restore all as it was before.
 +
** Enabled by default watchdog, reboot on kernel panic and kernel soft-lockup detection will help to have minimum downtime of router.
 +
** Backup scripts will help to restore system state on storage failure/operator mistake.
  
 +
 +
==Development History==
 +
First experiments with fresh 2.6.32 kernels are made by [[User:Nitr0man|Nitr0man]] in March 2010, and were caused mostly by troubles with new hardware support in 2.4 kernel. Kernel upgrade was not very hard task, and in March first working image with 2.6 kernel was assembled.
 +
Team work on [[Bering-uClibc 4.x]] started in April 2010, with [[User:Nitr0man|Nitr0man]] as the lead developer and contributions from [[User:Kapeka|Kapeka]], [[User:Etitl|Etitl]] and [[User:Davidmbrooke|davidMbrooke]] among others. First Alpha release was running in production also in April, and was quite stable.
 +
The development was mostly completed by early November 2010, with multiple Alpha test systems running successfully "in production".
 +
 +
<!--
 +
Version 4.0-beta1 was released 28 November 2010.
 +
 +
Version 4.0-beta2 was released 23 January 2011.
 +
 +
Version 4.0-beta3 was released 9 March 2011.
 +
 +
Version 4.0-rc1 was released 4 April 2011.-->
 +
 +
[[Bering-uClibc 4.0|Version 4.0]] was released 15 May 2011.
 +
<!--
 +
Version 4.0.1 was released 9 July 2011.
 +
 +
Version 4.1-beta1 was released 30 July 2011.
 +
 +
Version 4.1-beta2 was released 1 September 2011.
 +
 +
Version 4.1-rc1 was released 1 October 2011.-->
 +
 +
[[Bering-uClibc 4.1|Version 4.1]] was released 8 October 2011.
 +
<!--
 +
Version 4.1.1-rc1 was released 26 November 2011.-->
 +
<!--
 +
Version 4.1.1 was released 7 December 2011.
 +
 +
Version 4.2-beta2 was released 4 February 2012.-->
 +
 +
[[Bering-uClibc 4.2|Version 4.2]] was released 9 March 2012.
 +
 +
Version 4.2.1 was released 13 May 2012.
 +
 +
Version 4.3 was released 28 July 2012.
 +
 +
Version 4.3.1 was released 9 Oct 2012.
 +
 +
Version 4.3.2 was released 9 Dec 2012.
 +
 +
Version 4.3.3 was released 29 Dec 2012.
 +
 +
Version 4.3.4 was released 27 Mar 2013.
 +
 +
===Version Changelog===
 +
* [[Bering-uClibc 4.x - Changelog]]
 +
 +
===Known Issues===
 +
* [[Bering-uClibc 4.x - Known Issues]]
 +
 +
==Further Documentation==
 
For further information see:
 
For further information see:
* [[Bering-uClibc 4.x - User Guide]]
+
* [[Bering-uClibc 4.x - User Guide]] for Installers, Administrators and general Users.
* [[Bering-uClibc 4.x - Developer Guide]]
+
* [[Bering-uClibc 4.x - Developer Guide]] for Developers of new features or new application Packages.
 +
 
  
 
[[Category:Bering-uClibc_4.x]]
 
[[Category:Bering-uClibc_4.x]]

Latest revision as of 15:13, 27 March 2013

Overview

Bering-uClibc is one of the branches of the LEAF (Linux Embedded Appliance Framework) project, delivering on LEAF's ambition to provide a secure, feature-rich, customizable embedded Linux network appliance for use in a variety of network topologies. Although it can be used in other ways, its primary goal is as a Internet gateway, BRAS, router, firewall and wireless access point.

Bering-uClibc 4.x is basically Bering-uClibc 3.x brought up to date with the latest versions of the main software components. In particular:

  • The Linux kernel is upgraded from 2.4.x to 2.6.x (current 4.0 version uses longterm 2.6.35 kernel branch).
  • The Shorewall package is upgraded from 3.x to 4.x.
  • The uClibc library is upgraded from 0.9.28 to 0.9.30.

These changes bring both advantages and disadvantages compared to Bering-uClibc 3.x. The main disadvantage is that the distribution is much larger which means it no longer has any chance of being hosted on floppy disk media. The main advantages are:

  • Proper stateful connection tracking for IPv6 is only supported from kernel version 2.6.24 onwards.
  • Fully supported MSI/MSI-X interrupts handling, also supported RPS/RFS - that makes LEAF useful for high-performance routers/BRAS.
  • Kernel-mode PPTP server and client (accel-pptp) will highly improve performance of PPTP data transferring and reduce CPU load.
  • Hardware-specific kernel module loading has been partially automated, resulting in less of a requirement to understand which combination of modules is required on a particular hardware platform.
  • The upgraded version of Shorewall requires a full installation of the Perl interpreter. This makes it possible to run other services which require Perl.


Main Features

The key characteristics of Bering-uClibc 4.x are:

  • Based on a recent release of the Linux Kernel.
  • Runs on industry standard devices with x86 processors.
  • Designed to perform well on relatively low-specification hardware. In particular:
    • The system runs from an in-memory filesystem. Disk storage is only required for booting and for holding configuration settings.
    • The uClibc C library is used in place of the GNU C Library since uClibc is much smaller in size.
    • Considerable use is made of BusyBox utilities as replacements for larger applications.
  • Focussed on providing excellent networking facilities.
  • Designed to have high fault tolerance:
    • There is no writes on HDD/flash during work (except config saving during maintenance) - so power failure will not break file system.
    • Corrupted/erased config file, or even 'rm -rf /' isn't a problem - changes are stored permanently only when user requires that, and reboot will restore all as it was before.
    • Enabled by default watchdog, reboot on kernel panic and kernel soft-lockup detection will help to have minimum downtime of router.
    • Backup scripts will help to restore system state on storage failure/operator mistake.


Development History

First experiments with fresh 2.6.32 kernels are made by Nitr0man in March 2010, and were caused mostly by troubles with new hardware support in 2.4 kernel. Kernel upgrade was not very hard task, and in March first working image with 2.6 kernel was assembled. Team work on Bering-uClibc 4.x started in April 2010, with Nitr0man as the lead developer and contributions from Kapeka, Etitl and davidMbrooke among others. First Alpha release was running in production also in April, and was quite stable. The development was mostly completed by early November 2010, with multiple Alpha test systems running successfully "in production".


Version 4.0 was released 15 May 2011.

Version 4.1 was released 8 October 2011.

Version 4.2 was released 9 March 2012.

Version 4.2.1 was released 13 May 2012.

Version 4.3 was released 28 July 2012.

Version 4.3.1 was released 9 Oct 2012.

Version 4.3.2 was released 9 Dec 2012.

Version 4.3.3 was released 29 Dec 2012.

Version 4.3.4 was released 27 Mar 2013.

Version Changelog

Known Issues

Further Documentation

For further information see: