Lëshimi i një grupi minimalist të shërbimeve të sistemit BusyBox 1.31

prezantuar lëshimi i paketës BusyBox 1.31 me zbatimin e një grupi shërbimesh standarde UNIX, të dizajnuara si një skedar i vetëm i ekzekutueshëm dhe i optimizuar për konsum minimal të burimeve të sistemit me një madhësi të caktuar prej më pak se 1 MB. Lëshimi i parë i degës së re 1.31 pozicionohet si i paqëndrueshëm, stabilizimi i plotë do të sigurohet në versionin 1.31.1, i cili pritet për rreth një muaj. Kodi i projektit shpërndahet nën licencën GPLv2.

Natyra modulare e BusyBox bën të mundur krijimin e një skedari të unifikuar të ekzekutueshëm që përmban një grup arbitrar shërbimesh të zbatuara në paketë (çdo mjet është i disponueshëm në formën e një lidhjeje simbolike për këtë skedar). Madhësia, përbërja dhe funksionaliteti i koleksionit të shërbimeve mund të ndryshojnë në varësi të nevojave dhe aftësive të platformës së ngulitur për të cilën po kryhet montimi. Paketa është e pavarur; kur ndërtohet në mënyrë statike me uclibc, për të krijuar një sistem pune në krye të kernelit Linux, ju duhet vetëm të krijoni disa skedarë pajisjesh në drejtorinë /dev dhe të përgatitni skedarë konfigurimi. Në krahasim me lëshimin e mëparshëm 1.30, konsumi i RAM -it i asamblesë tipike të BusyBox 1.31 u ul me 86 bytes (nga 1008478 në 1008392 bytes).

BusyBox është mjeti kryesor në luftën kundër shkeljeve të GPL në firmware. Software Freedom Conservancy (SFC) dhe Software Freedom Law Center (SFLC) në emër të zhvilluesve BusyBox, të dyja nëpërmjet gjykata, dhe në këtë mënyrë konkluzione marrëveshjet jashtë gjykatës kanë ndikuar vazhdimisht me sukses në kompanitë që nuk ofrojnë akses në kodin burimor të programeve GPL. Në të njëjtën kohë, autori i BusyBox bën çmos për të objektet kundër një mbrojtjeje të tillë - duke besuar se kjo i prish biznesin.

Ndryshimet e mëposhtme theksohen në BusyBox 1.31:

  • U shtuan komanda të reja: ts (zbatimi i klientit dhe serverit për protokollin TSP (Time-Stamp Protocol)) dhe i2ctransfer (krijimi dhe dërgimi i mesazheve I2C);
  • Udhcp u shtua mbështetje për opsionet DHCP 100 (informacioni i zonës kohore) dhe 101 (emri i zonës kohore në bazën e të dhënave TZ) për IPv6;
  • Mbështetje e shtuar për lidhjet statike të emrave të hostit për klientët në udhcpd;
  • Predhat e hirit dhe heshtit zbatojnë fjalëpërfjalët numerike "BASE#nnnn". Zbatimi i komandës ulimit është bërë i pajtueshëm me bash, duke përfshirë opsionet "-i RLIMIT_SIGPENDING" dhe "-q RLIMIT_MSGQUEUE". Mbështetje e shtuar për "prit -n". Shtohen variabla EPOCH të pajtueshme me bash;
  • Hush shell zbaton një variabël "$-" që liston opsionet e guaskës të aktivizuara si parazgjedhje;
  • Kodi për kalimin e vlerave me referencë u transferua në bc nga rrjedha e sipërme, u shtua mbështetja për funksionet void dhe aftësia për të punuar me vlerat ibase deri në 36;
  • Në brctl, të gjitha komandat janë konvertuar në punë duke përdorur pseudo-FS /sys;
  • Kodi i shërbimeve fsync dhe sync është bashkuar;
  • Zbatimi i httpd është përmirësuar. Përpunimi i përmirësuar i titujve HTTP dhe puna në modalitetin e përfaqësuesit. Lista e llojeve MIME përfshin SVG dhe JavaScript;
  • Opsioni "-c" është shtuar në losetup (kontroll i dyfishtë i detyruar i madhësisë së skedarit të lidhur me pajisjen e ciklit), si dhe një opsion për skanimin e ndarjeve. montimi dhe humbja ofrojnë mbështetje për të punuar duke përdorur /dev/loop-control;
  • Në ntpd, vlera SLEW_THRESHOLD është rritur nga 0.125 në 0.5;
  • Mbështetje e shtuar për caktimin e vlerave null në sysctl;
  • Mbështetje e shtuar për vlerat e pjesshme në opsionin "-n SEC" për të parë;
  • U shtua aftësia për të ekzekutuar mdev si një proces sfondi;
  • Shërbimi wget zbaton flamurin “-o” për të specifikuar skedarin ku do të shkruhet regjistri. Njoftimet e shtuara për fillimin dhe përfundimin e shkarkimeve;
  • U shtua mbështetje për komandën AYT IAC në telnetd;
  • U shtua komanda 'dG' në vi (fshini përmbajtjen nga rreshti aktual në fund të skedarit);
  • U shtua opsioni 'oflag=append' në komandën dd;
  • Flamuri '-H' është shtuar në programin kryesor për të aktivizuar modalitetin e skanimit për temat individuale.

Gjithashtu, dy javë më parë Ndodhi lirimin Toybox 0.8.1, një analog i BusyBox, i zhvilluar nga ish mirëmbajtësi i BusyBox dhe të shpërndara nën licencën BSD. Qëllimi kryesor i Toybox është t'u sigurojë prodhuesve aftësinë për të përdorur një grup minimalist të shërbimeve standarde pa hapur kodin burimor të komponentëve të modifikuar. Sipas aftësive të Toybox deri më tani duke mbetur prapa nga BusyBox, por 188 komanda bazë nga 220 të planifikuara tashmë janë zbatuar.

Ndër risitë e Toybox 0.8.1 mund të vërejmë:

  • Është arritur një nivel funksionaliteti që është i mjaftueshëm për të ndërtuar Android në një mjedis të bazuar në shërbimet e Toybox.
  • Përfshihen komandat e reja mcookie dhe devmem dhe komandat e rishkruara tar, gunzip dhe zcat zhvendosen nga dega e testimit.
  • Një zbatim i ri i vi-së është propozuar për testim.
  • Komanda find tani mbështet opsionet "-wholename/-iwholename".
    "-printf" dhe "-context";

  • U shtua opsioni "-exclude-dir" tek grep;
  • Echo tani mbështet opsionin "-E".
  • U shtua mbështetje "UUID" për montim.
  • Komanda data tani merr parasysh zonën kohore të specifikuar në variablin e mjedisit TZ.
  • Mbështetje e shtuar për vargjet relative (+N) në sed.
  • Lexueshmëri e përmirësuar e daljes ps, top dhe iotop.

Burimi: opennet.ru

Shto një koment