BusyBox

**BusyBox** adalah rangkaian perangkat lunak yang menyediakan beberapa utilitas Unix dalam satu file yang dapat dieksekusi. Ini berjalan di berbagai lingkungan POSIX seperti Linux, Android, dan FreeBSD, meskipun banyak alat yang disediakannya dirancang untuk bekerja dengan antarmuka yang disediakan oleh kernel Linux. Itu khusus dibuat untuk sistem operasi tertanam dengan sumber daya yang sangat terbatas. Penulis menjulukinya "Pisau Swiss Army dari Linux Tertanam", karena executable tunggal menggantikan fungsi dasar lebih dari 300 perintah umum. Ini dirilis sebagai perangkat lunak bebas di bawah ketentuan GNU General Public License v2, setelah secara kontroversial memutuskan untuk tidak pindah ke versi 3.

## Sejarah

Awalnya ditulis oleh Bruce Perens pada tahun 1995 dan dinyatakan selesai untuk penggunaan yang dimaksudkan pada tahun 1996, BusyBox awalnya bertujuan untuk menempatkan sistem bootable lengkap pada satu floppy disk yang akan berfungsi sebagai disk penyelamat dan sebagai penginstal untuk distribusi Debian. Sejak saat itu, ini telah diperluas menjadi perangkat ruang pengguna inti standar de facto untuk perangkat Linux tertanam dan penginstal distribusi Linux. Karena setiap executable Linux memerlukan beberapa kilobyte overhead, menggabungkan program BusyBox lebih dari dua ratus program sering kali menghemat banyak ruang disk dan memori sistem.

BusyBox dikelola oleh Enrique Zanardi dan fokus pada kebutuhan sistem penginstal boot-floppy Debian hingga awal tahun 1998, ketika Dave Cinege mengambil alih untuk Linux Router Project (LRP). Cinege membuat beberapa tambahan, menciptakan lingkungan pembangunan termodulasi, dan mengalihkan fokus BusyBox ke sistem tertanam tingkat tinggi secara umum. Ketika pengembangan LRP melambat pada tahun 1999, Erik Andersen, yang saat itu menjabat di Lineo, Inc., mengambil alih proyek tersebut dan menjadi pengelola resmi antara Desember 1999 dan Maret 2006. Pada masa ini, pertumbuhan pasar tertanam Linux meledak, dan BusyBox menjadi sangat matang. memperluas basis pengguna dan fungsionalitasnya. Rob Landley menjadi pengelola pada tahun 2005 hingga akhir tahun 2006, kemudian Denys Vlasenko mengambil alih sebagai pengelola saat ini.

## Fitur
BusyBox dapat dikustomisasi untuk menyediakan subset dari lebih dari dua ratus utilitas. Ini dapat menyediakan sebagian besar utilitas yang ditentukan dalam Spesifikasi Unix Tunggal (SUS) ditambah banyak utilitas lain yang diharapkan dapat dilihat oleh pengguna di sistem Linux. BusyBox menggunakan shell Almquist, juga dikenal sebagai A Shell, ash dan sh. Alternatif untuk penyesuaian adalah cangkang 'hush' yang lebih kecil. "Msh" dan "lash" dulunya tersedia.

Karena ini adalah sistem bootstrap yang lengkap, ia selanjutnya akan menggantikan daemon init dan udev (atau systemd masa kini) yang menggunakan dirinya sendiri untuk dipanggil sebagai init saat startup dan mdev pada waktu hotplug.

Situs web BusyBox menyediakan daftar lengkap utilitas yang diterapkan.

### Binary Tunggal
Program komputer pada umumnya memiliki file biner (yang dapat dieksekusi) terpisah untuk setiap aplikasi. BusyBox merupakan biner tunggal yang merupakan konglomerasi dari banyak aplikasi yang masing-masing dapat diakses dengan memanggil biner tunggal BusyBox tersebut dengan berbagai nama (didukung dengan memiliki symbolic link atau hard link untuk setiap nama berbeda) dengan cara tertentu dan sesuai. argumen.

BusyBox mendapat manfaat dari pendekatan biner tunggal, karena mengurangi overhead yang ditimbulkan oleh format file yang dapat dieksekusi (biasanya ELF), dan memungkinkan kode untuk dibagikan antara beberapa aplikasi tanpa memerlukan perpustakaan. Teknik ini mirip dengan apa yang disediakan oleh perintah crunchgen di FreeBSD, perbedaannya adalah BusyBox menyediakan versi utilitas yang disederhanakan (misalnya, perintah ls tanpa kemampuan menyortir file), sedangkan jumlah semua utilitas yang dihasilkan crunchgen akan menawarkan versi yang berfungsi penuh.

Berbagi kode umum, bersama dengan rutinitas yang ditulis dengan mempertimbangkan pengoptimalan ukuran, dapat membuat sistem BusyBox menggunakan ruang penyimpanan jauh lebih sedikit dibandingkan sistem yang dibangun dengan versi lengkap utilitas terkait yang digantikan oleh BusyBox. Penelitian yang membandingkan implementasi GNU, BusyBox, asmutils dan Perl dari perintah standar Unix menunjukkan bahwa dalam beberapa situasi BusyBox mungkin bekerja lebih cepat dibandingkan implementasi lainnya, tetapi tidak selalu.

## Referensi