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 5.x is basically Bering-uClibc 4.x brought up to date with the latest versions of the main software components and with reworked toolchain. In particular:
- Toolchain is reworked to support 'true' cross-compilation
- gcc has been updated to 4.6.3.
- The Linux kernel has been upgraded from 2.6.35 to 3.2.x (current 4.0 version uses longterm 2.6.35 kernel branch).
- The uClibc library is upgraded from 0.9.30 to 0.9.32.
The main advantages are:
- Kernel-mode PPTP/L2TP/PPPoE server (accel-ppp) which is 'all-in-one' powerful BRAS daemon with shaper like BSD's mpd.
- Possibility to build binaries for any target platform which supports Linux
The key characteristics of Bering-uClibc 5.x are:
- Based on a recent long-term release of the Linux Kernel.
- Targetted to run on industry standard devices even with non-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 storing 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 are no writes on HDD/flash during work (except saving configurations during maintenance) - so a 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.
First commit into new git branch (updated toolchain) was made by Nitr0man in October, 29 2011. In November 2011 most packages were updated, to correctly assemble with the new toolchain. A first, working minimal system image was also assembled in November 2011. First release of 5.0 branch, 5.0-alpha1, was released at November, 10 2012.
Currently the branch is in alpha stage, because it may require some toolchain/init scripts rework for fitting requirements of embedded platforms. It looks stable enough for usage in a test and even in the production environment, but then, it's under active development, so be careful.
For further information see:
- Bering-uClibc 5.x - Developer Guide for Developers of new features or new application Packages.