Busybox Kullanımı
Önceki Temel Ayarlamalar Sonraki
Busybox Kullanımı
Busybox projesi Debian GNU/Linux dağıtımı kurulum programının çalışabilmesi için oluşturulan 2 disketlik Linux sisteminde kullanılmak üzere geliştirilmiştir. Burada amaç, kurulum için gerekli ufak fakat çok sık kullanılan uygulamaları (cp, mv, tar, ls, sh, find, init vb.) yeniden yazarak tek bir uygulama üretmek ve böylece yerden kazanmaktı. Busybox bu yer kazancını, uygulamaların sık kullanılmayan özelliklerini desteklemeyen sürümlerinin yeniden yazılmasıyla gerçekleştiriyordu. Örnek olarak find komutu normalde onlarca parametre ile çalıştırılabilirken Busybox içerisinden çıkan find, sadece en sık kullanılan beş parametresini desteklemektedir. Bu koşul gözönünde bulundurularak en temel uygulamalar yeniden yazılmış ve sonuçta 300-400 kB büyüklüğündeki bir dosya ile, her biri ayrı ayrı kullanıldığında normalde 4-5 MB toplam yer kaplayacak olan uygulamalar ile aynı işlevsellik büyük ölçüde sağlanabilmiştir.
Sistemimizde busybox kullanımı disk alanından kazanç sağlayacaktır. Busybox'ın bir diğer önemli özelliği modüler yapısı sayesinde istediğimiz parçaları ekleyip çıkarabilmemizdir. Busybox'ı derlemeden önce Config.h dosyasını bir metin düzenleyici ile istediğiniz gibi düzenleyebilirsiniz. Bu dosyanın biçimi aşağıdaki gibidir:
//#define BB_LOGNAME
//#define BB_LOSETUP
#define BB_LS
#define BB_LSMOD
//#define BB_MAKEDEVS
//#define BB_MD5SUM
#define BB_MKDIR
//#define BB_MKFIFO
//#define BB_MKFS_MINIX
#define BB_MKNOD
#define BB_MKSWAP
//#define BB_MKTEMP
Standart bir C başlık dosyası olan Config.h içerisinden istediğiniz özellikleri yukarıdaki örnekte olduğu gibi ekleyebilir ve çıkarabilirsiniz. Böylelikle sadece size gerekli olan bileşenleri içeren bir busybox derleyebilirsiniz.
busybox derlendikten sonra sistemde sadece busybox programının olması, ls, cp vb. gibi desteklenen uygulamaların ise busybox'a sembolik bağ olarak bağlı olması yeterlidir. busybox kendi başına çalıştırıldığında ise içerdiği uygulamaları listeler:
laptop:/usr/src/busybox-0.60.5$ ./busybox
BusyBox v0.60.5 (2003.04.22-14:09+0000) multi-call binary

Usage: busybox [function] [arguments]...
  or: [function] [arguments]...

      BusyBox is a multi-call binary that combines many common Unix
      utilities into a single executable.  Most people will create a
      link to busybox for each function they wish to use, and BusyBox
      will act like whatever it was invoked as.

Currently defined functions:
      [, ash, basename, busybox, cat, chgrp, chmod, chown, chroot, chvt,
      clear, cp, cut, date, dd, df, dirname, dmesg, du, echo, env, false,
      find, free, grep, gunzip, gzip, halt, head, id, init, kill, killall,
      klogd, linuxrc, ln, logger, ls, lsmod, mkdir, mknod, mkswap, modprobe,
      more, mount, mv, pidof, poweroff, ps, pwd, reboot, reset, rm,
      rmdir, sed, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
      tar, test, touch, true, tty, umount, uname, uniq, uptime, wc,
      which, whoami, xargs, yes, zcat

busybox kaynak kodlarını http://www.busybox.net/downloads/ adresinden indirebilirsiniz. tar.gz arşivi indirip açtıktan sonra bu dizine geçip, Config.h dosyasını düzenlemelisiniz. Gene aynı dizindeki Makefile dosyasını inceleyerek programın derlenme aşamasındaki seçenekleri değiştirebilirsiniz. Bu adımları tamamladıktan sonra make ve make install komutlarıyla programın derlenmesini ve kuruluma hazır hale gelmesini sağlıyoruz. make komutunun çalışması bittiğinde elimizde bir busybox uygulaması oluyor. make install ise bulunduğunuz dizinde _install adında bir alt dizin açıyor ve busybox uygulamasını olması gereken sembolik bağlar ile birlikte buraya kopyalıyor:
laptop:/usr/src/busybox-0.60.5$ ls -l _install/usr/sbin
total 0
lrwxrwxrwx   1 demirten demirten     17 May 30 00:05 chroot -> ../../bin/busybox
lrwxrwxrwx   1 demirten demirten     17 May 30 00:05 fbset -> ../../bin/busybox
Burada bin, sbin, usr/bin ve usr/sbin dizinleri oluşturulmuş, bin dizini altına busybox'ın kendisi atılmış, ilgili tüm sembolik bağlar oluşturulmuştur. Bu dizini tgz arşivi haline getirerek disketle SBC üzerine taşıyıp orada açalım:
laptop:/usr/src/busybox-0.60.5$ cd _install
laptop:/usr/src/busybox-0.60.5/_install$ tar cvfz /tmp/busy-bin.tgz .
...
Oluşan busy-bin.tgz arşivinin boyu 180 kB gibi çok küçük bir değer olduğu için disket ile SBC üzerine rahatlıkla taşınabilir. Daha önceden yaptığımız gibi disketi sisteme bağlayıp busy-bin.tgz dosyasını kopyalıyoruz. Ardından bu disketi SBC sistemine takıp bağladıktan sonra aşağıdaki komutlarla arşivi açıyoruz:
# cd /hedef
# cp /floppy/busy-bin.tgz .
# tar zxvf busy-bin.tgz
...
Artık SBC sistemimiz üzerinde onlarca kullanıma hazır temel uygulama var.
Önceki Üst Ana Başlık Sonraki
Gerekli Kütüphanelerin Taşınması Başlangıç Tinylogin Kullanımı
Bir Linux Kitaplığı Sayfası