BusyBox

BusyBox, https://busybox.net/about.html adresteki bilgilere göre birçok temel Unix aracını tek bir ikili dosya içinde sunan, küçük ve esnek bir programdır. Çoğunlukla initramfs sistemlerinde ve gömülü Linux dağıtımlarında tercih edilir. BusyBox ile komutlar şu şekilde çalıştırılabilir:

busybox [komut]

Bir komutu doğrudan çalıştırabilmek için BusyBox’u o komut adıyla sembolik bağlamak mümkündür. Örneğin, tar komutunu BusyBox üzerinden çalıştırmak için:

ln -s /bin/busybox ./tar
./tar

Burada busybox içindeki gömülü olan tar kullanmayı gördük. Aslında aklımaza gelen her komutun busybox içinde gömülü hali vardır. Ama bu tüm komutlar için ve tüm parametreleri için geçerli değildir. Busybox içindeki tüm komutların kısayolunu(sembolik bağı) eklemek için aşağıdaki komut kullanılır.

busybox --install -s /bin

Derleme

Gömülü sistem tasarımı veya initramfs içinde kullanılacak busybox paylaşımsız(static) derlenir. Bu şekilde derlendiğinde glibc kütüphanelerine ihtiyaç duymadan çalışacaktır.

Şimdi busybox derlemek için https://busybox.net/ adresinden stable başlığı altındaki kaynak kodlarını indiriniz.

# kaynak kod indirilir
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2

# indirilen dosya açılır
tar -xvjf busybox-1.36.1.tar.bz2

# açılan kaynak dosyalarının bulunduğu dizine geçilir
cd busybox-1.36.1/

Şimdi kodlarımızı indirdik. derlemek için aşağıdaki komutları çalıştıralım.

# varsayılan yapılandırmayı uygula
make defconfig

# static derleme yapacaksak  sed ile .config dosyasını düzenliyoruz.
sed -i "s|.*CONFIG_STATIC_LIBGCC .*|CONFIG_STATIC_LIBGCC=y|" .config
sed -i "s|.*CONFIG_STATIC .*|CONFIG_STATIC=y|" .config

# derliyoruz
make

# Static derleme sonucu aşağıdaki gibi görünür.
ldd /bin/busybox
özdevimli bir çalıştırılabilir değil

Derleme tamamlandığında, oluşturulan busybox ikili dosyası kaynak dizininde bulunur.