busybox
der Favorit unter den Embedded-Linux-Systemen.
BusyBox kombiniert winzige Versionen vieler gängiger UNIX-Dienstprogramme in einer einzigen kleinen ausführbaren Datei. Es bietet Ersatz für die meisten Dienstprogramme, die Sie normalerweise in GNU-Fileutils, Shellutils usw. finden. Die Dienstprogramme in BusyBox haben im Allgemeinen weniger Optionen als ihre voll ausgestatteten GNU-Cousins; Die enthaltenen Optionen bieten jedoch die erwartete Funktionalität und verhalten sich sehr ähnlich wie ihre GNU-Pendants. BusyBox bietet eine ziemlich vollständige Umgebung für jedes kleine oder eingebettete System.
BusyBox wurde im Hinblick auf Größenoptimierung und begrenzte Ressourcen geschrieben. Es ist auch extrem modular, sodass Sie Befehle (oder Funktionen) zur Kompilierungszeit problemlos ein- oder ausschließen können. Dies macht es einfach, Ihre eingebetteten Systeme anzupassen. Um ein funktionierendes System zu erstellen, fügen Sie einfach einige Geräteknoten in /dev, ein paar Konfigurationsdateien in /etc und einen Linux-Kernel hinzu.
Sie können so ziemlich jeden Coreutil-Namen zu einem Link zur Busybox-Binärdatei machen, und es wird funktionieren. Sie können auch busybox <command>
ausführen und es wird funktionieren. Beispiel:wenn Sie auf Gentoo sind und Ihren vi
nicht installiert haben dennoch können Sie busybox vi filename
ausführen und Sie werden in vi sein. Es ist
-
Arch Linux - Community/Busybox
-
Gentoo Linux - sys-apps/busybox
-
Alpine Linux - basierend auf BusyBox und uClibc, hier eine Übersicht
Das ist ein älteres Thema, ist mir klar. Diese Lösung wurde jedoch nie erwähnt und taucht bei Google relativ weit oben für "Linux with bsd userland" auf.
Es gibt eine andere Lösung:Erbstück. Ich weiß, dass es auf Arch funktioniert, und es ist im AUR verpackt (siehe zum Beispiel gnu2sysv). Dies wird Archs Coreutils-Paket ersetzen und die Erbstück-Äquivalente bereitstellen. Sie können das Ganze im Wiki von Arch nachlesen:https://wiki.archlinux.org/index.php/Base2heirloom
Sehen Sie sich Uutils an.
Dies ist eine plattformübergreifende Implementierung der GNU-Coreutils, die in Rust geschrieben ist. Es ist MIT-lizenziert. Zum Zeitpunkt des Schreibens dieser Antwort ist sie nicht 100℅ vollständig (es fehlen einige wichtige wie ls
und cp
), aber viele andere sind fertig.