Wydanie minimalistycznego zestawu narzędzi systemowych BusyBox 1.31

Przesłane przez wydanie pakietu BusyBox 1.31 z implementacją zestawu standardowych narzędzi UNIX, zaprojektowanych jako pojedynczy plik wykonywalny i zoptymalizowany pod kątem minimalnego zużycia zasobów systemowych przy ustawionym rozmiarze mniejszym niż 1 MB. Pierwsze wydanie nowej gałęzi 1.31 jest pozycjonowane jako niestabilne, pełna stabilizacja zostanie zapewniona w wersji 1.31.1, która spodziewana jest za około miesiąc. Kod projektu jest rozpowszechniany na licencji GPLv2.

Modułowa natura BusyBox umożliwia utworzenie jednego, ujednoliconego pliku wykonywalnego zawierającego dowolny zestaw narzędzi zaimplementowanych w pakiecie (każde narzędzie dostępne jest w formie symbolicznego dowiązania do tego pliku). Wielkość, skład i funkcjonalność zbioru narzędzi można zmieniać w zależności od potrzeb i możliwości platformy wbudowanej, dla której realizowany jest montaż. Pakiet jest samowystarczalny; po zbudowaniu statycznym za pomocą uclibc, aby stworzyć działający system na jądrze Linuksa, wystarczy utworzyć kilka plików urządzeń w katalogu /dev i przygotować pliki konfiguracyjne. W porównaniu do poprzedniej wersji 1.30, zużycie pamięci RAM typowego zestawu BusyBox 1.31 spadło o 86 bajtów (z 1008478 do 1008392 bajtów).

BusyBox to główne narzędzie w walce z naruszeniami GPL w oprogramowaniu sprzętowym. Software Freedom Conservancy (SFC) i Software Freedom Law Center (SFLC) w imieniu programistów BusyBox, obie za pośrednictwem sąd, i w ten sposób wnioski umowy pozasądowe wielokrotnie skutecznie wpływały na firmy, które nie udostępniają kodu źródłowego programów GPL. Jednocześnie autor BusyBoxa robi co może przedmioty przeciwko takiej ochronie – wierząc, że rujnuje to jego interesy.

W BusyBox 1.31 wyróżniono następujące zmiany:

  • Dodano nowe komendy: ts (implementacja klienta i serwera dla protokołu TSP (Time-Stamp Protocol)) oraz i2ctransfer (tworzenie i wysyłanie wiadomości I2C);
  • Dodano obsługę opcji DHCP do udhcp 100 (informacje o strefie czasowej) i 101 (nazwa strefy czasowej w bazie TZ) dla protokołu IPv6;
  • Dodano obsługę statycznych powiązań nazw hostów z klientami w udhcpd;
  • Powłoki ash i hush implementują literały numeryczne „BASE#nnnn”. Implementacja polecenia ulimit została dostosowana do bash, włączając opcje „-i RLIMIT_SIGPENDING” i „-q RLIMIT_MSGQUEUE”. Dodano obsługę „czekaj -n”. Dodano zmienne EPOCH kompatybilne z bashem;
  • Powłoka wyciszająca implementuje zmienną „$-”, która zawiera listę domyślnie włączonych opcji powłoki;
  • Kod do przekazywania wartości przez referencję został przeniesiony do bc z upstream, dodano obsługę funkcji void i możliwość pracy z wartościami ibase do 36;
  • W brctl wszystkie polecenia zostały przekonwertowane do działania przy użyciu pseudo-FS /sys;
  • Kod narzędzi fsync i Sync został połączony;
  • Poprawiono implementację httpd. Poprawione przetwarzanie nagłówków HTTP i praca w trybie proxy. Lista typów MIME obejmuje SVG i JavaScript;
  • Do Lostup dodano opcję „-c” (wymuszone ponowne sprawdzenie rozmiaru pliku powiązanego z urządzeniem pętlowym), a także opcję skanowania partycji. mount i Lostup zapewniają wsparcie dla pracy przy użyciu /dev/loop-control;
  • W ntpd wartość SLEW_THRESHOLD została zwiększona z 0.125 do 0.5;
  • Dodano obsługę przypisywania wartości null do sysctl;
  • Dodano obsługę wartości ułamkowych w opcji „-n SEC” do oglądania;
  • Dodano możliwość uruchomienia mdev jako procesu w tle;
  • Narzędzie wget implementuje flagę „-o”, aby określić plik, w którym ma zostać zapisany dziennik. Dodano powiadomienia o rozpoczęciu i zakończeniu pobierania;
  • Dodano obsługę polecenia AYT IAC do telnetd;
  • Dodano komendę 'dG' do vi (usuń zawartość od bieżącej linii do końca pliku);
  • Dodano opcję „oflag=append” do polecenia dd;
  • Do głównego narzędzia dodano flagę „-H”, aby umożliwić skanowanie poszczególnych wątków.

Poza tym dwa tygodnie temu odbyła się wydanie Pudełko na zabawki 0.8.1, odpowiednik BusyBox, opracowany przez byłego opiekuna BusyBox i Rozpowszechniane na licencji BSD. Głównym celem Toybox jest zapewnienie producentom możliwości korzystania z minimalistycznego zestawu standardowych narzędzi bez konieczności otwierania kodu źródłowego modyfikowanych komponentów. Według dotychczasowych możliwości Toybox pozostawać w tyle z BusyBox, ale 188 podstawowych poleceń z 220 zaplanowanych zostało już zaimplementowanych.

Wśród innowacji Toybox 0.8.1 możemy zauważyć:

  • Osiągnięto poziom funkcjonalności wystarczający do zbudowania Androida w środowisku opartym na narzędziach Toybox.
  • Dołączono nowe polecenia mcookie i devmem, a przepisane polecenia tar, gunzip i zcat zostały przeniesione z gałęzi testowej.
  • Do testów zaproponowano nową implementację vi.
  • Polecenie find obsługuje teraz opcje „-wholename/-iwholename”.
    „-printf” i „-kontekst”;

  • Dodano opcję „--exclude-dir” do grep;
  • Echo obsługuje teraz opcję „-E”.
  • Dodano obsługę „UUID” do montażu.
  • Polecenie date uwzględnia teraz strefę czasową określoną w zmiennej środowiskowej TZ.
  • Dodano obsługę zakresów względnych (+N) do sed.
  • Poprawiona czytelność wyników ps, top i iotop.

Źródło: opennet.ru

Dodaj komentarz