BusyBox 1.35 системийн хэрэгслүүдийн минималист багцыг гаргасан

BusyBox 1.35 багцын хувилбарыг 1 МБ-аас бага хэмжээтэй системийн нөөцийн хамгийн бага зарцуулалтад зориулж, нэг гүйцэтгэгдэх файл хэлбэрээр зохион бүтээсэн стандарт UNIX хэрэгслүүдийн багцыг танилцуулж байна. Шинэ 1.35 салбарын анхны хувилбар нь тогтворгүй гэсэн байр суурьтай байгаа бөгөөд 1.35.1 хувилбарт бүрэн тогтворжуулалт хийгдэх бөгөөд энэ нь нэг сарын дараа хүлээгдэж байна. Төслийн кодыг GPLv2 лицензийн дагуу түгээдэг.

BusyBox-ийн модульчлагдсан шинж чанар нь багцад хэрэгжсэн дурын хэрэглүүрүүдийг агуулсан нэг нэгдмэл гүйцэтгэгдэх файл үүсгэх боломжийг олгодог (хэрэгсэл бүрийг энэ файлын симбол холбоос хэлбэрээр авах боломжтой). Хэрэгслийн цуглуулгын хэмжээ, найрлага, функциональ байдал нь угсрах ажлыг гүйцэтгэж буй суулгагдсан платформын хэрэгцээ, боломжоос хамааран өөр өөр байж болно. Уг багц нь бие даасан бөгөөд uclibc-тэй статик байдлаар бүтээгдсэн тохиолдолд Линуксийн цөм дээр ажиллах систем үүсгэхийн тулд та /dev директорт хэд хэдэн төхөөрөмжийн файл үүсгэж, тохиргооны файлуудыг бэлтгэхэд л хангалттай. Өмнөх хувилбар 1.34-тэй харьцуулахад ердийн BusyBox 1.35 угсралтын RAM хэрэглээ 1726 байт (1042344-аас 1044070 байт хүртэл) нэмэгдсэн байна.

BusyBox бол програм хангамжийн GPL зөрчлийн эсрэг тэмцэх гол хэрэгсэл юм. Програм хангамжийн эрх чөлөөг хамгаалах байгууллага (SFC) болон Програм хангамжийн эрх чөлөөний хуулийн төв (SFLC) нь BusyBox хөгжүүлэгчдийн нэрийн өмнөөс GPL програмын эх кодыг шүүхээр дамжуулан болон гадаадад ашиглах боломжийг олгодоггүй компаниудад удаа дараа амжилттай нөлөөлсөн. - шүүхийн гэрээ. Үүний зэрэгцээ, BusyBox-ийн зохиогч ийм хамгаалалтыг эрс эсэргүүцэж байгаа бөгөөд энэ нь түүний бизнесийг сүйрүүлдэг гэж үздэг.

BusyBox 1.35 дээр дараах өөрчлөлтүүдийг онцлон тэмдэглэв.

  • Find хэрэгсэл нь файл нь заасан нэртэй файлтай ижил inode ашиглаж байгаа эсэхийг шалгахын тулд "-samefile name" сонголтыг хэрэгжүүлдэг. Хугацаа харьцуулах нэгдсэн код болон "-amin", "-atime", "-cmin" болон "-ctime" гэсэн сонголтуудыг нэмж, хандалтын хугацаа болон файл үүсгэхийг шалгана.
  • mktemp хэрэгсэл нь түр зуурын файлуудтай холбоотой замуудыг тооцоолоход хамаарах үндсэн директорийг зааж өгөх "--tmpdir" сонголтыг нэмсэн.
  • Төхөөрөмжийн жинхэнэ дугаарыг үл тоомсорлохын тулд "-ignore-devno" гэсэн сонголтуудыг cpio хэрэгсэлд нэмсэн (0 нь үргэлж бичигддэг) ба "-renumber-inodes" -ийг архивт хадгалахын өмнө дахин дугаарлах.
  • awk хэрэглүүрт "printf %%" илэрхийллийг тохируулсан.
  • libbb номын санд арав орчим өөрчлөлт нэмсэн. Realpath-ийн coreutils багцын эсрэг заалттай нийцтэй байдал сайжирсан.
  • Бусад бүрхүүлүүдтэй нийцтэй байдлыг сайжруулахад чиглэсэн үнс ба чимээгүй командын бүрхүүлд зориулсан олон тооны засваруудыг санал болгосон. Ash нь "${s:}" илэрхийллийг ашиглан bash-тэй төстэй ERR занга, -E болон $FUNCNAME тохируулж, илүү хурдан мөр татахад дэмжлэг нэмсэн. Үнс болон чимээгүй байдалд "${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 толгой хэсгийн агуулгыг өөрчлөх боломжийг танд олгоно.
  • Хэрэв нэмэлт KILL_SECS секундын дотор команд дуусаагүй бол "-k KILL_SECS" гэсэн сонголт SIGKILL дохиог илгээхийн тулд завсарлагааны хэрэгсэл одоо дэмждэг.
  • IP хэрэгсэлд төхөөрөмжүүдийн netns параметрийг тохируулах дэмжлэг нэмэгдсэн.
  • Калийн хэрэгсэл нь заасан сарыг харуулахын тулд "-m" сонголтыг хэрэгжүүлдэг.
  • Огноо болон мэдрэгчтэй хэрэгслүүд нь огноогоор цагийн бүсийн зөрүүг тодорхойлох боломжийг олгодог.
  • vi засварлагч дээр ~/.exrc файлын дэмжлэг нэмэгдэж, "-c" болон EXINIT-ийн зохицуулалт өөрчлөгдсөн.
  • Ed хэрэглүүрт унших/бичих командуудыг гүйцэтгэсний үр дүнг POSIX-1.2008 техникийн үзүүлэлттэй нийцүүлнэ. "-p" сонголтын дэмжлэгийг нэмсэн.
  • N байтаар харьцуулахыг хязгаарлахын тулд cmp хэрэгсэлд "-n N" сонголтыг нэмсэн.

Нэмж дурдахад, хэдхэн хоногийн өмнө BusyBox-ийн аналог болох Toybox 0.8.6-г өмнө нь BusyBox-ийн засварлагчаар хөгжүүлж, 0BSD лицензийн дагуу түгээсэн. Toybox-ийн гол зорилго нь үйлдвэрлэгчдэд өөрчлөгдсөн бүрэлдэхүүн хэсгүүдийн эх кодыг нээхгүйгээр минималист стандарт хэрэгслүүдийг ашиглах боломжийг олгох явдал юм. Чадавхийн хувьд Toybox нь BusyBox-ын ард хоцорсон хэвээр байгаа ч төлөвлөсөн 296 тушаалаас 217 үндсэн тушаалыг (83 бүрэн, 374 хэсэгчлэн) аль хэдийн хэрэгжүүлсэн байна.

Toybox 0.8.6-ийн шинэлэг зүйлүүдээс бид системийн дүрс үүсгэх скриптүүдийг сайжруулж, sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace болон hexdump командуудыг нэмж оруулсныг тэмдэглэж болно. "огноо -s", "pmap -p", "tail -F -s", "kill -0″, дахин ачаалах/зогсоох/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

сэтгэгдэл нэмэх