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

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

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

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

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

  • เพิ่มคำสั่งใหม่: ts (การใช้งานไคลเอนต์และเซิร์ฟเวอร์สำหรับโปรโตคอล TSP (Time-Stamp Protocol)) และ i2ctransfer (การสร้างและการส่งข้อความ I2C);
  • เพิ่มการรองรับตัวเลือก DHCP ให้กับ udhcp 100 (ข้อมูลโซนเวลา) และ 101 (ชื่อโซนเวลาในฐานข้อมูล TZ) สำหรับ IPv6
  • เพิ่มการรองรับการผูกชื่อโฮสต์แบบคงที่กับไคลเอนต์ใน udhcpd
  • Ash และ Hush Shell ใช้ตัวอักษรตัวเลข "BASE#nnnn" การใช้งานคำสั่ง ulimit ได้รับการทำให้เข้ากันได้กับ bash รวมถึงตัวเลือก “-i RLIMIT_SIGPENDING” และ “-q RLIMIT_MSGQUEUE” เพิ่มการสนับสนุนสำหรับ "รอ -n" เพิ่มตัวแปร EPOCH ที่เข้ากันได้กับ bash;
  • เชลล์เงียบใช้ตัวแปร "$-" ที่แสดงรายการตัวเลือกเชลล์ที่เปิดใช้งานตามค่าเริ่มต้น
  • รหัสสำหรับการส่งผ่านค่าโดยการอ้างอิงถูกถ่ายโอนไปยัง bc จากอัปสตรีม เพิ่มการรองรับฟังก์ชันโมฆะและความสามารถในการทำงานกับค่า ibase สูงถึง 36
  • ใน brctl คำสั่งทั้งหมดถูกแปลงให้ทำงานโดยใช้ pseudo-FS /sys;
  • รวมรหัสของยูทิลิตี้ fsync และ sync แล้ว
  • การใช้งาน httpd ได้รับการปรับปรุงแล้ว ปรับปรุงการประมวลผลส่วนหัว HTTP และทำงานในโหมดพร็อกซี รายการประเภท MIME ประกอบด้วย SVG และ JavaScript
  • มีการเพิ่มตัวเลือก “-c” ใน losstup (บังคับให้ตรวจสอบขนาดไฟล์ที่เกี่ยวข้องกับอุปกรณ์วนซ้ำอีกครั้ง) รวมถึงตัวเลือกสำหรับการสแกนพาร์ติชัน mount และ losstup ให้การสนับสนุนการทำงานโดยใช้ /dev/loop-control;
  • ใน ntpd ค่า SLEW_THRESHOLD เพิ่มขึ้นจาก 0.125 เป็น 0.5
  • เพิ่มการรองรับการกำหนดค่า Null ให้กับ sysctl;
  • เพิ่มการรองรับค่าเศษส่วนในตัวเลือก "-n SEC" เพื่อรับชม
  • เพิ่มความสามารถในการรัน mdev เป็นกระบวนการเบื้องหลัง
  • ยูทิลิตี้ wget ใช้แฟล็ก "-o" เพื่อระบุไฟล์ที่จะเขียนบันทึก เพิ่มการแจ้งเตือนเกี่ยวกับการเริ่มต้นและสิ้นสุดการดาวน์โหลด
  • เพิ่มการรองรับคำสั่ง AYT IAC เพื่อ telnetd;
  • เพิ่มคำสั่ง 'dG' ให้กับ vi (ลบเนื้อหาจากบรรทัดปัจจุบันไปยังจุดสิ้นสุดของไฟล์);
  • เพิ่มตัวเลือก 'oflag=append' ให้กับคำสั่ง dd;
  • เพิ่มธง '-H' ลงในยูทิลิตี้ด้านบนเพื่อให้สามารถสแกนแต่ละเธรดได้

เช่นกัน เมื่อสองสัปดาห์ก่อน ไปยังสถานที่ ปล่อย กล่องของเล่น 0.8.1ซึ่งเป็นอะนาล็อกของ BusyBox พัฒนาโดยอดีตผู้ดูแล BusyBox และ กระจาย ภายใต้ใบอนุญาต BSD วัตถุประสงค์หลักของ Toybox คือเพื่อให้ผู้ผลิตสามารถใช้ชุดยูทิลิตี้มาตรฐานที่เรียบง่ายโดยไม่ต้องเปิดซอร์สโค้ดของส่วนประกอบที่แก้ไข ตามความสามารถของ Toybox จนถึงตอนนี้ ล้าหลัง จาก BusyBox แต่มีการนำคำสั่งพื้นฐาน 188 คำสั่งจาก 220 คำสั่งที่วางแผนไว้ไปใช้แล้ว

ในบรรดานวัตกรรมของ Toybox 0.8.1 เราสามารถสังเกตได้:

  • บรรลุระดับของฟังก์ชันการทำงานที่เพียงพอสำหรับการสร้าง Android ในสภาพแวดล้อมที่ใช้ยูทิลิตี้ Toybox
  • มีการรวมคำสั่ง mcookie และ devmem ใหม่ และคำสั่ง tar, gunzip และ zcat ที่เขียนใหม่จะถูกย้ายจากสาขาการทดสอบ
  • มีการเสนอการใช้งาน vi ใหม่สำหรับการทดสอบ
  • คำสั่ง find รองรับตัวเลือก "-wholename/-iwholename" แล้ว
    "-printf" และ "-บริบท";

  • เพิ่มตัวเลือก "--exclude-dir" เพื่อ grep;
  • ตอนนี้ Echo รองรับตัวเลือก "-E" แล้ว
  • เพิ่มการรองรับ "UUID" เพื่อเมานต์
  • คำสั่ง date จะคำนึงถึงโซนเวลาที่ระบุในตัวแปรสภาพแวดล้อม TZ
  • เพิ่มการรองรับช่วงสัมพัทธ์ (+N) ให้กับ sed
  • ปรับปรุงความสามารถในการอ่านของเอาต์พุต ps, top และ iotop

ที่มา: opennet.ru

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