BusyBox 1.35 системалык утилиттеринин минималисттик топтомун чыгаруу

BusyBox 1.35 пакетинин чыгарылышы бирдиктүү аткарылуучу файл катары иштелип чыккан жана 1 МБдан кем эмес белгиленген өлчөмү менен системалык ресурстарды минималдуу керектөө үчүн оптималдаштырылган стандарттуу UNIX утилиталарынын комплексин ишке ашыруу менен сунушталат. 1.35 жаңы бутагынын биринчи чыгарылышы туруксуз болуп жайгаштырылган, толук турукташтыруу болжол менен бир айдан кийин күтүлүп жаткан 1.35.1 версиясында камсыздалат. Долбоордун коду GPLv2 лицензиясы боюнча таратылат.

BusyBoxтун модулдук мүнөзү пакетте ишке ашырылган утилиталардын ыктыярдуу топтомун камтыган бирдиктүү аткарылуучу файлды түзүүгө мүмкүндүк берет (ар бир утилита бул файлга символикалык шилтеме түрүндө жеткиликтүү). Коммуналдык кызматтардын коллекциясынын өлчөмү, курамы жана функционалдуулугу чогултуу жүргүзүлүп жаткан камтылган платформанын муктаждыктарына жана мүмкүнчүлүктөрүнө жараша ар кандай болушу мүмкүн. Пакет өзүнөн өзү камтылган; uclibc менен статикалык түрдө курулганда, Linux ядросунун үстүндө иштөө тутумун түзүү үчүн, сиз /dev каталогунда бир нече түзмөк файлдарын түзүп, конфигурация файлдарын даярдашыңыз керек. Мурунку релиз 1.34 менен салыштырганда, типтүү BusyBox 1.35 жыйынынын RAM керектөө 1726 байтка көбөйдү (1042344дөн 1044070 байтка чейин).

BusyBox микропрограммадагы GPL бузууларга каршы күрөштүн негизги куралы. Software Freedom Conservancy (SFC) жана Software Freedom Law Center (SFLC), BusyBox иштеп чыгуучуларынын атынан, GPL программаларынын баштапкы кодуна сот аркылуу да, сыртта да мүмкүнчүлүк бербеген компанияларга бир нече жолу ийгиликтүү таасир эткен. - соттук макулдашуулар. Ошол эле учурда, BusyBox автору мындай коргоого катуу каршы чыгат - бул анын бизнесин бузат деп эсептейт.

Төмөнкү өзгөртүүлөр BusyBox 1.35де белгиленген:

  • Find утилитасы файл көрсөтүлгөн аталыштагы файл менен бир эле инодду колдонуп жатканын текшерүү үчүн "-samefile name" опциясын ишке ашырат. Убакытты салыштыруу үчүн бирдиктүү код жана мүмкүндүк алуу убактысын жана файлды түзүүнү текшерүү үчүн "-amin", "-atime", "-cmin" жана "-ctime" опциялары кошулду.
  • mktemp утилитасы убактылуу файлдар менен байланышкан жолдор эсептелген негизги каталогду көрсөтүү үчүн "--tmpdir" опциясын кошту.
  • Түзмөктүн чыныгы номерине көңүл бурбоо үчүн “-ignore-devno” опциялары cpio утилитасына кошулду (0 дайыма жазылат) жана “-renumber-inodes” архивде сакталганга чейин инодду кайра номерлөө үчүн.
  • awk утилитасында “printf %%” туюнтмасы туураланган.
  • libbb китепканасына онго жакын өзгөртүүлөр кошулду. coreutils топтомундагы анын кесиптеши менен реалдуу жолдун жакшыртылган шайкештиги.
  • Башка снаряддар менен шайкештикти жакшыртууга багытталган күл жана тыйыш командалык снаряддар үчүн көп сандагы оңдоолор сунушталды. Ash bash сыяктуу ERR тузактарын, -E жана $FUNCNAME орнотууларын жана "${s:}" туюнтмасын колдонуу менен сапты тезирээк издөөнү кошту. Күл жана жымжырттыкта ​​"${x//\*/|}" операцияларынын аткарылышы тездетилди.
  • Негизги ат утилитасы бир чакырууда бир нече аттарды өткөрүү үчүн "-a" жана арттагы "SUFFIX" символдорун алып салуу үчүн "-s SUFFIX" опцияларын ишке ашырат.
  • Blkdiscard утилитасына "-f" (күч) опциясы кошулду.
  • httpd каталары бар барактар ​​үчүн Last-Modified/ETag/Content-Length аталыштарын жөнөтүүнү токтотту.
  • httpd жана telnetd демейки тармак портун өзгөртүү мүмкүнчүлүгүн берет.
  • Өтө узун файл аталыштары бар архивдерди иштетүүдө бардык жеткиликтүү эстутумдун сарпталышына алып келген tarдагы аялуу оңдолду.
  • P256 жана x25519 ишке ашыруу TLS кодунда кайра иштелип чыккан.
  • Wget утилитасы файлдарды жөнөтүү үчүн "--post-file" опциясын ишке ашырат жана "--post-data" жана "--post-file" опциялары үчүн Content-Type аталышынын мазмунун ыңгайлаштырууга мүмкүндүк берет.
  • Тайм-аут утилитасы азыр SIGKILL сигналын жөнөтүү үчүн "-k KILL_SECS" опциясын колдойт, эгерде буйрук кошумча KILL_SECS секунданын ичинде аткарылбаса.
  • Түзмөктөр үчүн netns параметрин орнотуу үчүн колдоо IP утилитасына кошулду.
  • cal утилитасы көрсөтүлгөн айды көрсөтүү үчүн "-m" опциясын ишке ашырат.
  • Дата жана тийүү утилиталары даталарда убакыт алкагын алмаштырууга мүмкүндүк берет.
  • vi редакторунда ~/.exrc файлына колдоо кошулду жана "-c" жана EXINIT менен иштөө өзгөртүлдү.
  • ed утилитасында окуу/жазуу буйруктарын аткаруунун натыйжасы POSIX-1.2008 спецификациясына ылайык келтирилет. "-p" опциясы үчүн колдоо кошулду.
  • N байт менен салыштырууну чектөө үчүн cmp утилитасына "-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".

Source: opennet.ru

Комментарий кошуу