Phát hành bộ tiện ích hệ thống tối giản BusyBox 1.35

Việc phát hành gói BusyBox 1.35 được trình bày cùng với việc triển khai một bộ tiện ích UNIX tiêu chuẩn, được thiết kế dưới dạng một tệp thực thi duy nhất và được tối ưu hóa để tiêu thụ tối thiểu tài nguyên hệ thống với kích thước đặt dưới 1 MB. Bản phát hành đầu tiên của nhánh mới 1.35 được coi là không ổn định, tính năng ổn định hoàn toàn sẽ được cung cấp trong phiên bản 1.35.1, dự kiến ​​​​trong khoảng một tháng. Mã dự án được phân phối theo giấy phép GPLv2.

Bản chất mô-đun của BusyBox cho phép tạo một tệp thực thi thống nhất chứa một bộ tiện ích tùy ý được triển khai trong gói (mỗi tiện ích có sẵn ở dạng liên kết tượng trưng đến tệp này). Kích thước, thành phần và chức năng của bộ sưu tập các tiện ích có thể khác nhau tùy thuộc vào nhu cầu và khả năng của nền tảng nhúng mà quá trình lắp ráp đang được tiến hành. Gói này khép kín; khi được xây dựng tĩnh bằng uclibc, để tạo một hệ thống hoạt động trên nhân Linux, bạn chỉ cần tạo một số tệp thiết bị trong thư mục /dev và chuẩn bị các tệp cấu hình. So với bản phát hành 1.34 trước đó, mức tiêu thụ RAM của cụm BusyBox 1.35 điển hình đã tăng thêm 1726 byte (từ 1042344 lên 1044070 byte).

BusyBox là công cụ chính trong cuộc chiến chống vi phạm GPL trong phần sụn. Tổ chức Bảo vệ Tự do Phần mềm (SFC) và Trung tâm Luật Tự do Phần mềm (SFLC), thay mặt cho các nhà phát triển BusyBox, đã nhiều lần gây ảnh hưởng thành công đến các công ty không cung cấp quyền truy cập vào mã nguồn của các chương trình GPL, cả thông qua tòa án và thông qua bên ngoài. -Thỏa thuận của tòa án Đồng thời, tác giả của BusyBox phản đối mạnh mẽ việc bảo vệ như vậy - tin rằng nó sẽ hủy hoại hoạt động kinh doanh của mình.

Những thay đổi sau được đánh dấu trong BusyBox 1.35:

  • Tiện ích find triển khai tùy chọn "-samefile name" để kiểm tra xem tệp có đang sử dụng cùng một nút với tệp có tên được chỉ định hay không. Mã thống nhất để so sánh thời gian và thêm các tùy chọn "-amin", "-atime", "-cmin" và "-ctime" để kiểm tra thời gian truy cập và tạo tệp.
  • Tiện ích mktemp đã thêm tùy chọn "--tmpdir" để chỉ định thư mục cơ sở tương ứng với đường dẫn liên kết với tệp tạm thời được tính toán.
  • Các tùy chọn “-ignore-devno” đã được thêm vào tiện ích cpio để bỏ qua số thiết bị thực (0 luôn được ghi) và “-renumber-inodes” để đánh số lại inode trước khi lưu vào kho lưu trữ.
  • Trong tiện ích awk, biểu thức “printf %%” đã được điều chỉnh.
  • Đã thêm khoảng chục thay đổi vào thư viện libbb. Cải thiện khả năng tương thích của realpath với đối tác của nó từ bộ coreutils.
  • Một số lượng lớn các bản sửa lỗi đã được đề xuất cho các shell lệnh tro và im lặng, nhằm cải thiện khả năng tương thích với các shell khác. Ash đã thêm hỗ trợ cho các bẫy ERR giống bash, đặt -E và $FUNCNAME, đồng thời truy xuất chuỗi nhanh hơn bằng cách sử dụng biểu thức "${s:}". Trong im lặng, việc thực thi các thao tác "${x//\*/|}" đã được tăng tốc.
  • Tiện ích tên cơ sở triển khai các tùy chọn "-a" để chuyển nhiều tên trong một lệnh gọi và "-s SUFFIX" để xóa các ký tự "SUFFIX" ở cuối.
  • Đã thêm tùy chọn "-f" (bắt buộc) vào tiện ích blkdiscard.
  • httpd đã ngừng gửi tiêu đề Last-Modified/ETag/Content-Length cho các trang có lỗi.
  • httpd và telnetd cung cấp khả năng thay đổi cổng mạng mặc định.
  • Đã khắc phục lỗ hổng trong tar khiến toàn bộ bộ nhớ khả dụng bị tiêu thụ khi xử lý các tệp lưu trữ có tên tệp rất dài.
  • Việc triển khai P256 và x25519 đã được làm lại trong mã TLS.
  • Tiện ích wget triển khai tùy chọn "--post-file" để gửi tệp và cho phép bạn tùy chỉnh nội dung của tiêu đề Content-Type cho các tùy chọn "--post-data" và "--post-file".
  • Tiện ích hết thời gian chờ hiện hỗ trợ tùy chọn "-k KILL_SECS" để gửi tín hiệu SIGKILL nếu lệnh không hoàn thành trong vòng KILL_SECS giây bổ sung.
  • Hỗ trợ cài đặt tham số netns cho các thiết bị đã được thêm vào tiện ích ip.
  • Tiện ích cal triển khai tùy chọn "-m" để hiển thị tháng được chỉ định.
  • Tiện ích ngày và cảm ứng cho phép chỉ định độ lệch múi giờ theo ngày.
  • Trong trình soạn thảo vi, hỗ trợ cho tệp ~/.exrc đã được thêm vào và việc xử lý “-c” và EXINIT đã được thay đổi.
  • Trong tiện ích ed, kết quả của việc thực thi các lệnh đọc/ghi được đưa ra tuân thủ đặc tả POSIX-1.2008. Đã thêm hỗ trợ cho tùy chọn "-p".
  • Đã thêm tùy chọn "-n N" vào tiện ích cmp để giới hạn so sánh với N byte.

Ngoài ra, cách đây vài ngày, Toybox 0.8.6 đã được phát hành, một phiên bản tương tự của BusyBox, được phát triển bởi một nhà bảo trì BusyBox trước đây và được phân phối theo giấy phép 0BSD. Mục đích chính của Toybox là cung cấp cho các nhà sản xuất khả năng sử dụng một bộ tiện ích tiêu chuẩn tối giản mà không cần mở mã nguồn của các thành phần đã sửa đổi. Về khả năng, Toybox vẫn thua xa BusyBox, nhưng 296 lệnh cơ bản đã được triển khai (217 lệnh hoàn chỉnh và 83 lệnh một phần) trong tổng số 374 lệnh theo kế hoạch.

Trong số những cải tiến của Toybox 0.8.6, chúng ta có thể lưu ý đến sự cải tiến của tập lệnh tạo hình ảnh hệ thống, việc bổ sung các lệnh sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace và hexdump. Các tùy chọn đã triển khai “date -s”, “pmap -p”, “tail -F -s”, “kill -0”, khởi động lại/tạm dừng/tắt nguồn -d”, “tail –bytes –lines”, “i2c detect -q” , "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep -L".

Nguồn: opennet.ru

Thêm một lời nhận xét