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

Ang paglabas ng BusyBox 1.35 na pakete ay ipinakita sa pagpapatupad ng isang hanay ng mga karaniwang UNIX utilities, na idinisenyo bilang isang solong executable na file at na-optimize para sa kaunting pagkonsumo ng mga mapagkukunan ng system na may isang set na laki na mas mababa sa 1 MB. Ang unang release ng bagong branch 1.35 ay nakaposisyon bilang hindi matatag, ang buong stabilization ay ibibigay sa bersyon 1.35.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.34, ang pagkonsumo ng RAM ng tipikal na BusyBox 1.35 na pagpupulong ay tumaas ng 1726 bytes (mula 1042344 hanggang 1044070 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, ay paulit-ulit na matagumpay na naiimpluwensyahan ang mga kumpanyang hindi nagbibigay ng access sa source code ng mga programa ng GPL, sa pamamagitan ng mga korte at sa labas ng -mga kasunduan sa korte. Kasabay nito, ang may-akda ng BusyBox ay mahigpit na tumututol sa naturang proteksyon - sa paniniwalang sinisira nito ang kanyang negosyo.

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

  • Ang find utility ay nagpapatupad ng opsyong "-samefile name" upang tingnan kung ang isang file ay gumagamit ng parehong inode gaya ng file na may tinukoy na pangalan. Pinag-isang code para sa paghahambing ng oras at mga idinagdag na opsyon na "-amin", "-atime", "-cmin" at "-ctime" upang suriin ang oras ng pag-access at paggawa ng file.
  • Ang mktemp utility ay nagdagdag ng "--tmpdir" na opsyon upang tukuyin ang base na direktoryo na may kaugnayan sa kung aling mga path na nauugnay sa mga pansamantalang file ang kinakalkula.
  • Idinagdag ng cpio utility ang mga opsyong β€œ--ignore-devno” para balewalain ang tunay na numero ng device (palaging nakasulat ang 0) at β€œ--renumber-inodes” upang muling lagyan ng numero ang inode bago ito itago sa archive.
  • Sa awk utility, ang expression na "printf %%" ay naayos na.
  • Nagdagdag ng humigit-kumulang isang dosenang pagbabago sa libbb library. Pinahusay na compatibility ng realpath sa katapat nito mula sa coreutils set.
  • 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. Nagdagdag si Ash ng suporta para sa mala-bash na ERR traps, set -E at $FUNCNAME, at mas mabilis na pagkuha ng string gamit ang expression na "${s:}". Sa ash and hush, ang pagpapatupad ng "${x//\*/|}" na mga operasyon ay pinabilis.
  • Ang basename utility ay nagpapatupad ng mga opsyon na "-a" upang magpasa ng maraming pangalan sa isang tawag at "-s SUFFIX" upang alisin ang mga sumusunod na "SUFFIX" na character.
  • Idinagdag ang "-f" (force) na opsyon sa blkdiscard utility.
  • Huminto ang httpd sa pagpapadala ng Last-Modified/ETag/Content-Length na mga header para sa mga page na may mga error.
  • Ang httpd at telnetd ay nagbibigay ng kakayahang baguhin ang default na port ng network.
  • Inayos ang isang kahinaan sa tar na naging sanhi ng pagkonsumo ng lahat ng magagamit na memorya kapag nagpoproseso ng mga archive na may napakahabang mga pangalan ng file.
  • Ang pagpapatupad ng P256 at x25519 ay muling ginawa sa TLS code.
  • Ang wget utility ay nagpapatupad ng "--post-file" na opsyon para sa pagpapadala ng mga file at nagbibigay-daan sa iyong i-customize ang mga nilalaman ng Content-Type header para sa "--post-data" at "--post-file" na mga opsyon.
  • Sinusuportahan na ngayon ng timeout utility ang opsyong "-k KILL_SECS" upang magpadala ng signal ng SIGKILL kung hindi makumpleto ang command sa loob ng karagdagang KILL_SECS segundo.
  • Ang suporta para sa pagtatakda ng netns parameter para sa mga device ay naidagdag sa ip utility.
  • Ang cal utility ay nagpapatupad ng "-m" na opsyon upang ipakita ang tinukoy na buwan.
  • Ang mga kagamitan sa petsa at pagpindot ay nagbibigay-daan sa pagtukoy ng time zone offset sa mga petsa.
  • Sa editor ng vi, idinagdag ang suporta para sa ~/.exrc file, at binago ang paghawak ng β€œ-c” at EXINIT.
  • Sa ed utility, ang resulta ng pagsasagawa ng read/write command ay dinadala sa pagsunod sa POSIX-1.2008 specification. Nagdagdag ng suporta para sa opsyong "-p".
  • Idinagdag ang "-n N" na opsyon sa cmp utility upang limitahan ang paghahambing sa N bytes.

Bilang karagdagan, ilang araw na ang nakalipas, ang Toybox 0.8.6 ay inilabas, isang analogue ng BusyBox, na binuo ng isang dating tagapangasiwa ng BusyBox at ipinamahagi sa ilalim ng lisensyang 0BSD. 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. Sa mga tuntunin ng mga kakayahan, ang Toybox ay nahuhuli pa rin sa BusyBox, ngunit 296 na pangunahing utos ang naipatupad na (217 ganap at 83 bahagyang) mula sa 374 na binalak.

Kabilang sa mga inobasyon ng Toybox 0.8.6 mapapansin natin ang pagpapabuti ng mga script para sa paglikha ng mga imahe ng system, ang pagdaragdag ng mga command na sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace at hexdump. Mga ipinatupad na opsyon β€œdate -s”, β€œpmap -p”, β€œtail -F -s”, β€œkill -0β€³, reboot/halt/poweroff -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".

Pinagmulan: opennet.ru

Magdagdag ng komento