30 lines
2.3 KiB
Plaintext
30 lines
2.3 KiB
Plaintext
= About
|
|
|
|
https://alpinelinux.org[Alpine Linux] is a lightweight Linux distribution based on the https://www.musl-libc.org[musl libc] and https://busybox.net/[BusyBox].
|
|
The base is extremely small, builds as a Docker image in a matter of seconds, and has a full-featured package index.
|
|
|
|
== Musl Libc
|
|
Musl is consistent and provides high implementation quality regardless of whether the user is a tiny embedded system or a full-fledged server.
|
|
Minimal machine-specific code means less chance of breakage on minority architectures and better success with “write once run everywhere” C development.
|
|
Designed from the ground up for static linking, musl carefully avoids pulling in large amounts of code or data that the applications will not use.
|
|
|
|
Using musl maximizes application deployability.
|
|
Binaries statically linked with musl have no external dependencies, even for features like DNS lookups or character set conversions that are implemented with dynamic loading on glibc.
|
|
An application truly can be deployed as a single binary file and run on any machine with the appropriate instruction set architecture and Linux kernel or Linux syscall ABI emulation layer.
|
|
|
|
== BusyBox
|
|
BusyBox combines tiny versions of many common UNIX utilities into a single small executable.
|
|
It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc.
|
|
The utilities in BusyBox generally have fewer features than their full-featured GNU cousins.
|
|
However, the otions that *are* included provide the expected functionality and are tuned to behave like their GNU counterparts.
|
|
BusyBox provides a fairly complete environment for any small or embedded system.
|
|
|
|
BusyBox has been written with size-optimization and limited resources in mind.
|
|
It is also extremely modular so you can easily include or exclude commands (or features) at compile time.
|
|
This makes it easy to customize your embedded systems.
|
|
To create a working system, just add some device nodes in `/dev`, a few configuration files in `/etc`, and a Linux kernel.
|
|
|
|
== Match made in heaven
|
|
Pairing musl libc with BusyBox to combine common UNIX utilities into a single small executable, it makes for an excellent Docker image base.
|
|
We get extremely small builds (the base image is only 5 MB) that end up cutting time during push and pull.
|