การเปิดตัวชุดยูทิลิตี้ระบบที่เรียบง่าย BusyBox 1.35

การเปิดตัวแพ็คเกจ BusyBox 1.35 นำเสนอพร้อมกับการใช้งานชุดยูทิลิตี้ UNIX มาตรฐานซึ่งออกแบบให้เป็นไฟล์ปฏิบัติการไฟล์เดียวและปรับให้เหมาะสมสำหรับการใช้ทรัพยากรระบบน้อยที่สุดโดยมีขนาดที่ตั้งไว้น้อยกว่า 1 MB การเปิดตัวครั้งแรกของสาขา 1.35 ใหม่อยู่ในตำแหน่งที่ไม่เสถียร โดยจะมีความเสถียรเต็มรูปแบบในเวอร์ชัน 1.35.1 ซึ่งคาดว่าจะใช้เวลาประมาณหนึ่งเดือน รหัสโครงการได้รับการเผยแพร่ภายใต้ใบอนุญาต GPLv2

ลักษณะโมดูลาร์ของ BusyBox ทำให้สามารถสร้างไฟล์ปฏิบัติการแบบรวมหนึ่งไฟล์ที่มีชุดยูทิลิตี้ตามอำเภอใจที่ใช้งานในแพ็คเกจ (แต่ละยูทิลิตี้มีอยู่ในรูปแบบของลิงก์สัญลักษณ์ไปยังไฟล์นี้) ขนาด องค์ประกอบ และฟังก์ชันการทำงานของคอลเลกชันยูทิลิตี้อาจแตกต่างกันไป ขึ้นอยู่กับความต้องการและความสามารถของแพลตฟอร์มฝังตัวที่กำลังดำเนินการประกอบ แพ็คเกจนี้มีอยู่ในตัวเอง เมื่อสร้างแบบคงที่ด้วย uclibc เพื่อสร้างระบบการทำงานบนเคอร์เนล Linux คุณจะต้องสร้างไฟล์อุปกรณ์หลายไฟล์ในไดเร็กทอรี /dev และเตรียมไฟล์การกำหนดค่า เมื่อเปรียบเทียบกับรุ่นก่อนหน้า 1.34 ปริมาณการใช้ RAM ของแอสเซมบลี BusyBox 1.35 ทั่วไปเพิ่มขึ้น 1726 ไบต์ (จาก 1042344 เป็น 1044070 ไบต์)

BusyBox เป็นเครื่องมือหลักในการต่อสู้กับการละเมิด GPL ในเฟิร์มแวร์ Software Freedom Conservancy (SFC) และ Software Freedom Law Center (SFLC) ในนามของนักพัฒนา BusyBox ประสบความสำเร็จในการมีอิทธิพลต่อบริษัทต่างๆ ที่ไม่ได้ให้การเข้าถึงซอร์สโค้ดของโปรแกรม GPL ทั้งผ่านทางศาลและผ่านทางภายนอก -ข้อตกลงศาล ในเวลาเดียวกัน ผู้เขียน BusyBox คัดค้านการคุ้มครองดังกล่าวอย่างยิ่ง โดยเชื่อว่าเป็นการทำลายธุรกิจของเขา

การเปลี่ยนแปลงต่อไปนี้ถูกเน้นใน BusyBox 1.35:

  • ยูทิลิตีการค้นหาใช้ตัวเลือก "-samefile name" เพื่อตรวจสอบว่าไฟล์ใช้ไอโหนดเดียวกันกับไฟล์ที่มีชื่อที่ระบุหรือไม่ รหัสรวมสำหรับการเปรียบเทียบเวลาและเพิ่มตัวเลือก "-amin", "-atime", "-cmin" และ "-ctime" เพื่อตรวจสอบเวลาการเข้าถึงและการสร้างไฟล์
  • ยูทิลิตี้ mktemp ได้เพิ่มตัวเลือก "--tmpdir" เพื่อระบุไดเร็กทอรีฐานที่เกี่ยวข้องกับเส้นทางที่เกี่ยวข้องกับไฟล์ชั่วคราวที่ถูกคำนวณ
  • ตัวเลือก “-ignore-devno” ได้รับการเพิ่มลงในยูทิลิตี้ cpio เพื่อละเว้นหมายเลขอุปกรณ์จริง (0 จะถูกเขียนเสมอ) และ “-reumber-inodes” เพื่อกำหนดหมายเลขใหม่ของ inode ก่อนที่จะจัดเก็บไว้ในไฟล์เก็บถาวร
  • ในยูทิลิตี้ awk นิพจน์ "printf %%" ได้รับการปรับแล้ว
  • เพิ่มการเปลี่ยนแปลงประมาณหนึ่งโหลในไลบรารี libbb ปรับปรุงความเข้ากันได้ของ realpath กับคู่จากชุด coreutils
  • มีการนำเสนอการแก้ไขจำนวนมากสำหรับเชลล์คำสั่ง ash และ hush โดยมีจุดมุ่งหมายเพื่อปรับปรุงความเข้ากันได้กับเชลล์อื่นๆ Ash ได้เพิ่มการรองรับกับดัก ERR ที่มีลักษณะคล้าย bash ตั้งค่า -E และ $FUNCNAME และการดึงสตริงที่เร็วขึ้นโดยใช้นิพจน์ "${s:}" ในความเงียบ การดำเนินการของการดำเนินการ "${x//\*/|}" ได้รับการเร่งให้เร็วขึ้น
  • โปรแกรมอรรถประโยชน์ basename ใช้ตัวเลือก "-a" เพื่อส่งหลายชื่อในการเรียกครั้งเดียว และ "-s SUFFIX" เพื่อลบอักขระ "SUFFIX" ที่ต่อท้าย
  • เพิ่มตัวเลือก "-f" (บังคับ) ให้กับยูทิลิตี้ blkdiscard
  • httpd หยุดส่งส่วนหัว Last-Modified/ETag/Content-Length สำหรับเพจที่มีข้อผิดพลาด
  • httpd และ telnetd ให้ความสามารถในการเปลี่ยนพอร์ตเครือข่ายเริ่มต้น
  • แก้ไขช่องโหว่ใน tar ที่ทำให้หน่วยความจำที่มีอยู่ทั้งหมดถูกใช้เมื่อประมวลผลไฟล์เก็บถาวรที่มีชื่อไฟล์ยาวมาก
  • การใช้งาน P256 และ x25519 ได้รับการแก้ไขใหม่ในโค้ด TLS
  • ยูทิลิตี้ wget ใช้ตัวเลือก "--post-file" สำหรับการส่งไฟล์และอนุญาตให้คุณปรับแต่งเนื้อหาของส่วนหัว Content-Type สำหรับตัวเลือก "--post-data" และ "--post-file"
  • ขณะนี้ยูทิลิตี้การหมดเวลาสนับสนุนตัวเลือก "-k KILL_SECS" เพื่อส่งสัญญาณ SIGKILL หากคำสั่งไม่เสร็จสิ้นภายใน KILL_SECS วินาทีเพิ่มเติม
  • เพิ่มการรองรับการตั้งค่าพารามิเตอร์ netns สำหรับอุปกรณ์ลงในยูทิลิตี้ ip แล้ว
  • ยูทิลิตี้ cal ใช้ตัวเลือก "-m" เพื่อแสดงเดือนที่ระบุ
  • ยูทิลิตี้วันที่และการสัมผัสช่วยให้สามารถระบุโซนเวลาชดเชยวันที่ได้
  • ในเครื่องมือแก้ไข vi มีการเพิ่มการรองรับไฟล์ ~/.exrc และการจัดการ "-c" และ EXINIT มีการเปลี่ยนแปลง
  • ในยูทิลิตี้ ed ผลลัพธ์ของการดำเนินการคำสั่งอ่าน/เขียนจะสอดคล้องกับข้อกำหนด POSIX-1.2008 เพิ่มการรองรับสำหรับตัวเลือก "-p"
  • เพิ่มตัวเลือก "-n N" ให้กับยูทิลิตี้ cmp เพื่อจำกัดการเปรียบเทียบกับ 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″, รีบูต/หยุด/poweroff -d”, “tail –bytes –lines”, “i2cdetect -q” , "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "แยก -n", "grep -L".

ที่มา: opennet.ru

เพิ่มความคิดเห็น