Bering-uClibc 4.x

From bering-uClibc
Revision as of 20:06, 7 December 2010 by Nitr0man (Talk | contribs) (Development History)

Jump to: navigation, search

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, 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.


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-beta1 was released 28 November 2010.

Version Changelog

Known Issues

Further Documentation

For further information see: