Minimalist sistem yardımcı programları setinin piyasaya sürülmesi BusyBox 1.35

BusyBox 1.35 paketinin piyasaya sürülmesi, tek bir yürütülebilir dosya olarak tasarlanmış ve 1 MB'tan küçük bir set boyutuyla sistem kaynaklarının minimum tüketimi için optimize edilmiş bir dizi standart UNIX yardımcı programının uygulanmasıyla sunulmaktadır. Yeni 1.35 şubesinin ilk sürümü kararsız olarak konumlandırılmış olup, yaklaşık bir ay içinde beklenen 1.35.1 sürümünde tam stabilizasyon sağlanacaktır. Proje kodu GPLv2 lisansı altında dağıtılmaktadır.

BusyBox'un modüler yapısı, pakette uygulanan isteğe bağlı bir dizi yardımcı program içeren birleştirilmiş bir yürütülebilir dosya oluşturmayı mümkün kılar (her yardımcı program, bu dosyaya sembolik bir bağlantı biçiminde mevcuttur). Yardımcı program koleksiyonunun boyutu, bileşimi ve işlevselliği, montajın gerçekleştirildiği gömülü platformun ihtiyaçlarına ve yeteneklerine bağlı olarak değişebilir. Paket kendi kendine yetmektedir; uclibc ile statik olarak oluşturulduğunda, Linux çekirdeği üzerinde çalışan bir sistem oluşturmak için /dev dizininde birkaç aygıt dosyası oluşturmanız ve yapılandırma dosyalarını hazırlamanız yeterlidir. Önceki sürüm 1.34 ile karşılaştırıldığında, tipik BusyBox 1.35 düzeneğinin RAM tüketimi 1726 bayt arttı (1042344'den 1044070 bayta).

BusyBox, ürün yazılımındaki GPL ihlallerine karşı mücadelede ana araçtır. BusyBox geliştiricileri adına Yazılım Özgürlüğünün Korunması (SFC) ve Yazılım Özgürlüğü Hukuk Merkezi (SFLC), GPL programlarının kaynak koduna erişim sağlamayan şirketleri hem mahkemeler hem de mahkemeler aracılığıyla defalarca başarılı bir şekilde etkiledi. - mahkeme anlaşmaları. Aynı zamanda BusyBox'ın yazarı, işini mahvettiğine inanarak bu tür bir korumaya şiddetle karşı çıkıyor.

BusyBox 1.35'de aşağıdaki değişiklikler vurgulanmıştır:

  • Find yardımcı programı, bir dosyanın belirtilen ada sahip dosyayla aynı inode'u kullanıp kullanmadığını kontrol etmek için "-aynı dosya adı" seçeneğini uygular. Zaman karşılaştırması için birleştirilmiş kod ve erişim süresini ve dosya oluşturmayı kontrol etmek için "-amin", "-atime", "-cmin" ve "-ctime" seçenekleri eklendi.
  • Mktemp yardımcı programı, geçici dosyalarla ilişkili yolların hesaplandığı temel dizini belirtmek için bir "--tmpdir" seçeneği ekledi.
  • Cpio yardımcı programı, gerçek aygıt numarasını (0 her zaman yazılır) göz ardı etmek için “--ignore-devno” seçeneklerini ve inode'u arşive kaydetmeden önce yeniden numaralandırmak için “--renumber-inodes” seçeneklerini ekledi.
  • awk yardımcı programında “printf %%” ifadesi düzenlendi.
  • Libbb kütüphanesine yaklaşık bir düzine değişiklik eklendi. Realpath'in coreutils setindeki karşılığıyla geliştirilmiş uyumluluğu.
  • Ash ve Hush komut kabukları için, diğer kabuklarla uyumluluğu artırmayı amaçlayan çok sayıda düzeltme önerildi. Ash, bash benzeri ERR tuzakları, set -E ve $FUNCNAME desteği ve "${s:}" ifadesini kullanarak daha hızlı dize alımı desteği ekledi. Kül ve sessizlik içinde "${x//\*/|}" işlemlerinin yürütülmesi hızlandırıldı.
  • Basename yardımcı programı, bir çağrıda birden fazla adı iletmek için "-a" seçeneklerini ve sondaki "SUFFIX" karakterlerini kaldırmak için "-s SUFFIX" seçeneklerini uygular.
  • Blkdiscard yardımcı programına "-f" (zorla) seçeneği eklendi.
  • httpd, hatalı sayfalar için Last-Modified/ETag/Content-Length başlıklarını göndermeyi durdurdu.
  • httpd ve telnetd, varsayılan ağ bağlantı noktasını değiştirme olanağı sağlar.
  • Çok uzun dosya adlarına sahip arşivler işlenirken kullanılabilir belleğin tamamının tüketilmesine neden olan tar'daki bir güvenlik açığı düzeltildi.
  • P256 ve x25519'un uygulanması TLS kodunda yeniden düzenlendi.
  • wget yardımcı programı, dosya göndermek için "--post-file" seçeneğini uygular ve "--post-data" ve "--post-file" seçenekleri için İçerik Türü başlığının içeriğini özelleştirmenize olanak tanır.
  • Zaman aşımı yardımcı programı artık, komutun ek KILL_SECS saniye içinde tamamlanmaması durumunda bir SIGKILL sinyali göndermek için "-k KILL_SECS" seçeneğini destekliyor.
  • IP yardımcı programına, cihazlar için netns parametresini ayarlama desteği eklendi.
  • Cal yardımcı programı belirtilen ayı görüntülemek için "-m" seçeneğini uygular.
  • Tarih ve dokunma yardımcı programları, tarihlerde saat dilimi farkının belirlenmesine olanak tanır.
  • Vi düzenleyicisine ~/.exrc dosyası desteği eklendi ve “-c” ile EXINIT'in işlenmesi değiştirildi.
  • Ed yardımcı programında, okuma/yazma komutlarının yürütülmesinin sonucu POSIX-1.2008 spesifikasyonuyla uyumlu hale getirilir. "-p" seçeneği için destek eklendi.
  • Karşılaştırmayı N baytla sınırlamak için cmp yardımcı programına "-n N" seçeneği eklendi.

Ek olarak, birkaç gün önce, BusyBox'un bir benzeri olan, eski bir BusyBox bakımcısı tarafından geliştirilen ve 0.8.6BSD lisansı altında dağıtılan Toybox 0 piyasaya sürüldü. Toybox'ın temel amacı üreticilere, değiştirilmiş bileşenlerin kaynak kodunu açmadan minimalist bir dizi standart yardımcı programı kullanma yeteneği sağlamaktır. Yetenekler açısından Toybox hala BusyBox'ın gerisinde kalıyor, ancak planlanan 296 komuttan 217'sı (83'si tamamen ve 374'ü kısmen) halihazırda uygulandı.

Toybox 0.8.6'nın yenilikleri arasında sistem görüntüleri oluşturmaya yönelik komut dosyalarının geliştirilmesini, sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace ve hexdump komutlarının eklenmesini sayabiliriz. Uygulanan seçenekler “date -s”, “pmap -p”, “tail -F -s”, “kill -0″, yeniden başlatma/durdurma/kapatma -d”, “tail –bytes –lines”, “i2cdetect -q” , "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep -L".

Kaynak: opennet.ru

Yorum ekle