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.
The key characteristics of Bering-uClibc 6.x are:
- Based on a recent long-term release of the Linux Kernel.
- Hardware detection during boot, necessary modules enabling the hardware will be loaded automatically.
- Load modules when needed for various Packages - e.g. netfilter modules for
- Check for and receive updates with command line utility (
upgrade) or Web GUI (
webconf) from the Packages repository. (This feature has been introduced in the late 5.2 cycle for testing.)
- Targeted 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-ng C library is used in place of the GNU C Library since uClibc-ng 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.
Bering-uClibc 6.x is basically Bering-uClibc 5.x brought up to date with the latest versions of the main software components and with reworked toolchain.
Bering-uClibc 6.0 provides in particular:
- gcc update to 5.3.0.
- The Linux kernel has been upgraded to 4.4.x.
- The uClibc library is upgraded from uClibc 0.9.32 to uClibc-ng 1.0.17.
- initmod.lrp has been removed; kernel modules are included in the kernel or loaded automatically on demand
- a new WRAP optimized kernel and image is provided
- logrotation has been improved
Version 6.0.0 was released in October 2016.
Version 6.0.1 was released in December 2016.
Version 6.0.2 was released in January 2017.
Version 6.0.3 was released in April 2017.
Version 6.0.4 was released in June 2017.
Version 6.0.5 was released in August 2017.
Version 6.0.6 was released in October 2017.
Version 6.0.7 was released in November 2017.
Bering-uClibc 6.1 provides in particular:
- gcc update to 5.5.0.
- Update to major Linux kernel version 4.9
- uClibc-ng update to 1.0.25
- Supports armv8a architecture aka Raspberry Pi 3
Version 6.1.0 was released in Oct 2017.
Version 6.1.1 was released in Dec 2017.
Version 6.1.2 was released in Mar 2018.
Version 6.1.3 was released in May 2018.
Version 6.1.4 was released in July 2018.
Version 6.1.5 was released in Sept 2018.
Version 6.1.6 was released in Nov 2018.
Version 6.1.7 was released in January 2019.
Bering-uClibc 6.2 provides in particular:
- gcc update to 6.5.0.
- Update to major Linux kernel version 4.14
- uClibc-ng update to 1.0.31
- a major cleanup rework of init to use apkg and support signed Packages
For further information see:
- Bering-uClibc 6.x - Developer Guide for Developers of new features or new application Packages.