Paglabas ng isang minimalistic na hanay ng mga utility ng system BusyBox 1.32

Ipinasa ni paglabas ng pakete BusyBox 1.32 sa pagpapatupad ng isang hanay ng mga karaniwang UNIX utilities, na idinisenyo bilang isang solong executable na file at na-optimize para sa minimal na pagkonsumo ng mga mapagkukunan ng system na may nakatakdang laki na mas mababa sa 1 MB. Ang unang release ng bagong branch 1.32 ay nakaposisyon bilang hindi matatag, ang buong stabilization ay ibibigay sa bersyon 1.32.1, na inaasahan sa halos isang buwan. Ang code ng proyekto ay ipinamamahagi sa ilalim ng lisensya ng GPLv2.

Ang modular na katangian ng BusyBox ay ginagawang posible na lumikha ng isang pinag-isang executable na file na naglalaman ng isang arbitrary na hanay ng mga utility na ipinatupad sa package (bawat utility ay magagamit sa anyo ng isang simbolikong link sa file na ito). Ang laki, komposisyon at pag-andar ng koleksyon ng mga kagamitan ay maaaring iba-iba depende sa mga pangangailangan at kakayahan ng naka-embed na platform kung saan isinasagawa ang pagpupulong. Ang package ay self-contained; kapag binuo nang statically gamit ang uclibc, upang lumikha ng gumaganang system sa ibabaw ng Linux kernel, kailangan mo lang gumawa ng ilang device file sa /dev directory at maghanda ng mga configuration file. Kung ikukumpara sa nakaraang release 1.31, ang pagkonsumo ng RAM ng tipikal na BusyBox 1.32 na pagpupulong ay tumaas ng 3590 bytes (mula 1011750 hanggang 1015340 bytes).

Ang BusyBox ay ang pangunahing tool sa paglaban sa mga paglabag sa GPL sa firmware. Ang Software Freedom Conservancy (SFC) at Software Freedom Law Center (SFLC) sa ngalan ng mga developer ng BusyBox sa pamamagitan ng hukuman, at sa ganitong paraan mga konklusyon Ang mga kasunduan sa labas ng korte ay paulit-ulit na matagumpay na naiimpluwensyahan ang mga kumpanyang hindi nagbibigay ng access sa source code ng mga programa ng GPL. Kasabay nito, ginagawa ng may-akda ng BusyBox ang kanyang makakaya mga bagay laban sa gayong proteksyon - paniniwalang sinisira nito ang kanyang negosyo.

Ang mga sumusunod na pagbabago ay naka-highlight sa BusyBox 1.32:

  • Nagdagdag ng bagong command mim upang patakbuhin ang mga skippt mula sa isang ibinigay na Mimfile (medyo nakapagpapaalaala sa isang nahubaran na make utility);
  • Ang find utility ay nagdagdag ng "-empty" na opsyon upang suriin kung may mga walang laman na file;
  • Sa wget utility, ang limitasyon sa bilang ng mga pag-redirect ay pinalawak at ang suporta para sa pagsuri sa mga TLS certificate na may ENABLE_FEATURE_WGET_OPENSSL ay ipinatupad;
  • Nagdagdag ng tamang suporta para sa isang listahan ng mga pattern (pattern_list) sa grep at idinagdag ang opsyong "-R" (recursive na pagproseso ng mga nilalaman ng direktoryo);
  • Nalutas ang mga problemang naganap noong nagtatayo sa Clang 9 at inalis ang mga babala ng compiler;
  • Ang isang malaking bilang ng mga pag-aayos ay iminungkahi para sa ash at hush command shell, na naglalayong mapabuti ang pagiging tugma sa iba pang mga shell. Ang kakayahang mag-autocomplete ng mga built-in na command na may mga tab ay idinagdag sa ash at hush. Ang mga bagong built-in na command ay na-stabilize sa abo.
  • Sinusuportahan na ngayon ng fdisk utility ang mga partisyon ng HFS at HFS+;
  • Pinahusay ng init ang paghawak sa mga kondisyon ng lahi kapag natanggap ang mga signal;
  • Sa utility para sa visual na pagsubaybay ng mga parameter ng system nmeter idinagdag ang format ng output na "%NT" (oras na nakahanay sa mga zero);
  • Ang kakayahang magproseso at magpakita ng listahan ng mga CPU ay naidagdag sa taskset (opsyon β€œ-c”);
  • Sa tar, ang pag-uugali ng opsyong "-a" ay binago, na, sa halip na paganahin ang "lzma" compression, ay nauugnay na ngayon sa autodetection sa pamamagitan ng extension ng file;
  • Nagdagdag ang Udhcpc6 ng suporta para sa "walang estadoΒ» para sa DHCPv6 (ang server ay nagpapadala lamang ng mga parameter ng network, nang hindi nagtatalaga ng isang address);
  • Sinusuportahan na ngayon ng nslookup ang pagproseso ng mga tugon nang walang mga RR record at nagdaragdag ng suporta para sa mga SRV record;
  • Ang mga bagong command na "showmacs" at "showstp" ay naidagdag sa bctl;
  • Nagdagdag ng suporta para sa parameter na "relay server" sa dhcpc;
  • Idinagdag ang setting sa syslogd upang ipakita ang oras na may katumpakan ng millisecond;
  • Sa httpd, kapag tumatakbo sa NOMMU mode, pinapayagan ang pagtatakda ng ibang home directory at gumagana ang '-h' na opsyon kapag nagpapatakbo ng proseso sa background;
  • Pinahusay ng xargs ang paghawak ng mga argumento na nakapaloob sa mga quote at tiniyak ang tamang pag-uugali ng opsyong "-n";
  • Inayos ang mga bug sa grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi, mga utility ng ruta.

Gayundin, noong nakaraang buwan naganap pakawalan Toybox 0.8.3, isang analogue ng BusyBox, na binuo ng dating tagapangasiwa ng BusyBox at ipinamahagi sa ilalim ng lisensya ng BSD. Ang pangunahing layunin ng Toybox ay upang bigyan ang mga tagagawa ng kakayahang gumamit ng isang minimalistic na hanay ng mga karaniwang kagamitan nang hindi binubuksan ang source code ng mga binagong bahagi. Ayon sa mga kakayahan ng Toybox sa ngayon nahuhuli mula sa BusyBox, ngunit 272 pangunahing utos ang naipatupad na (204 ganap at 68 bahagyang) sa 343 na binalak.

Kabilang sa mga inobasyon ng Toybox 0.8.3 maaari nating tandaan:

  • Nagdagdag ng mga bagong command na rtcwake, blkdiscard, getopt at readelf;
  • Ang β€œmake root” ay nagbibigay ng kakayahang lumikha ng working boot environment na nakabatay lamang sa Linux kernel at Toybox utilities, na maaaring i-load gamit ang sarili nitong init script;
  • Nagdagdag ng paunang suporta para sa mga module na may hiwalay na pagpapatupad ng mga utility na hindi kasama sa pangunahing ToyBox;
  • Ang command interpreter toysh ay 80% handa na (wala pang suporta para sa mga function, history, terminal management, mga trabaho, $((math)), mga template);
  • Nagdagdag ng suporta para sa mga karagdagang opsyon sa iba't ibang utility, kabilang ang patch, cal, cp, mv, lsattr, chattr, ls, id, netcat at setsid.

Pinagmulan: opennet.ru

Magdagdag ng komento