Рэліз мінімалістычнага набору сістэмных утыліт BusyBox 1.35

Прадстаўлены рэліз пакета BusyBox 1.35 з рэалізацыяй набору стандартных утыліт UNIX, аформленых у выглядзе адзінага выкананага файла і аптымізаваных для мінімальнага спажывання сістэмных рэсурсаў пры памеры камплекта меней 1 Мб. Першы выпуск новага адгалінавання 1.35 пазіцыянуецца як нестабільны, поўная стабілізацыя будзе забяспечана ў версіі 1.35.1, якая чакаецца прыкладна праз месяц. Код праекту распаўсюджваецца пад ліцэнзіяй GPLv2.

Модульны характар ​​BusyBox дае магчымасць сфарміраваць адзін уніфікаваны выкананы файл, які змяшчае ў сабе адвольны набор рэалізаваных у пакеце ўтыліт (кожная ўтыліта даступная ў форме сімвалічнай спасылкі на дадзены файл). Памер, склад і функцыянальнасць калекцыі ўтыліт можна вар'іраваць у залежнасці ад запатрабаванняў і магчымасцяў убудаванай платформы, для якой ажыццяўляецца зборка. Пакет самадастатковы, пры статычнай зборцы з uclibc для стварэння працоўнай сістэмы па-над ядром Linux патрабуецца толькі стварыць некалькі файлаў прылад у дырэкторыі /dev і падрыхтаваць файлы канфігурацыі. У параўнанні з мінулым выпускам 1.34 спажыванне аператыўнай памяці тыпавой зборкай BusyBox 1.35 павялічылася на 1726 байт (з 1042344 да 1044070 байт).

BusyBox з'яўляецца асноўным інструментам у барацьбе з парушэннем GPL у прашыўках. Арганізацыі Software Freedom Conservancy (SFC) і Software Freedom Law Center (SFLC) ад асобы распрацоўшчыкаў BusyBox як праз суд, так і шляхам заключэння пазасудовых пагадненняў неаднаразова паспяхова ўздзейнічала на кампаніі, якія не даюць доступ да зыходнага кода GPL-праграм. У той жа час аўтар BusyBox усяляк пярэчыць супраць такой абароны – лічачы што яна ламае яму бізнэс.

У версіі BusyBox 1.35 вылучаюцца наступныя змены:

  • Ва ўтыліце find рэалізавана опцыя "-samefile імя" для праверкі выкарыстаннем у файле таго ж inode, што і ў файла з паказаным імем. Уніфікаваны код для параўнання часу і дададзены опцыі "-amin", "-atime", "-cmin" і "-ctime" для праверкі часу доступу і стварэння файла.
  • Ва ўтыліту mktemp дададзена опцыя «—tmpdir» для ўказання базавага каталога, адносна якога вылічаюцца шляхі, злучаныя з часавымі файламі.
  • Ва ўтыліту cpio дададзены опцыі «—ignore-devno» для ігнаравання рэальнага нумара прылады (заўсёды запісваецца 0) і «—renumber-inodes» для перанумаравання inode перад змяшчэннем у архіў.
  • Ва ўтыліце awk наладжана праца выраза "printf%%".
  • Дададзена каля дзясятка змен у бібліятэку libbb. Палепшана сумяшчальнасць realpath з аналагам з набору coreutils.
  • Прапанавана вялікая порцыя выпраўленняў у камандных абалонках ash і hush, нацэленых на паляпшэнне сумяшчальнасці з іншымі абалонкамі. У ash дададзена падтрымка bash-падобных ERR trap, set -E і $FUNCNAME, а таксама паскорана выманне радкоў пры дапамозе выраза "${s:}". У ash і hush паскорана выкананне аперацый "${x//\*/|}".
  • Ва ўтыліце basename рэалізаваны опцыі "-a" для перадачы некалькіх імёнаў пры адным выкліку і "-s SUFFIX" для выдалення канчатковых знакаў "SUFFIX".
  • Ва ўтыліту blkdiscard дададзена опцыя "-f" (force).
  • У httpd спынена адпраўка загалоўкаў Last-Modified / ETag / Content-Length для старонак з памылкамі.
  • У httpd і telnetd прадстаўлена магчымасць змены сеткавага порта па змаўчанні.
  • У tar ухіленая ўразлівасць, якая прыводзіць да выдаткоўвання ўсёй даступнай памяці пры апрацоўцы архіваў з вельмі доўгімі імёнамі файлаў.
  • У кодзе TLS перароблена рэалізацыя P256 і x25519.
  • Ва ўтыліце wget рэалізавана опцыя "-post-file" для адпраўкі файлаў і дазволена наладжваць змесціва загалоўка Content-Type для опцый "-post-data" і "-post-file".
  • Ва ўтыліту timeout дададзена падтрымка опцыі "-k KILL_SECS" для адпраўкі сігналу SIGKILL, калі каманда не завяршылася на працягу дадатковых KILL_SECS секунд.
  • Ва ўтыліту ip дададзеная падтрымка ўсталёўкі параметру netns для прылад.
  • Ва ўтыліце cal рэалізавана опцыя "-m" для адлюстравання зададзенага месяца.
  • Ва ўтылітах date і touch дазволена ўказанне зрушэння гадзіннага пояса ў датах.
  • У рэдактары vi дададзена падтрымка файла ~/.exrc, зменена апрацоўка "-c" і EXINIT.
  • Ва ўтыліце ed вынік выканання каманд read/write прыведзены ў адпаведнасць са спецыфікацыяй POSIX-1.2008. Дададзена падтрымка опцыі "-p".
  • Ва ўтыліту cmp дададзена опцыя "-n N" для абмежавання параўнання N-байтамі.

Акрамя таго, некалькі дзён таму адбыўся рэліз Toybox 0.8.6, аналага BusyBox, які развіваецца былым мэйнтэйнерам BusyBox і які распаўсюджваецца пад ліцэнзіяй 0BSD. Асноўным прызначэннем Toybox з'яўляецца прадастаўленне вытворцам магчымасці выкарыстання мінімалістычнага набору стандартных утыліт без адкрыцця зыходных тэкстаў мадыфікаваных кампанентаў. Па магчымасцях Toybox пакуль адстае ад BusyBox, але ўжо рэалізавана 296 базавых каманд (217 поўнасцю і 83 часткова) з 374 запланаваных.

З навін Toybox 0.8.6 можна адзначыць паляпшэнне скрыптоў для стварэння сістэмных выяў, даданне каманд sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace і hexdump. Рэалізаваны опцыі "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».

Крыніца: opennet.ru

Дадаць каментар