發布一組簡約的系統實用程式 BusyBox 1.35

BusyBox 1.35 軟體包的發布提供了一組標準 UNIX 實用程式的實現,這些實用程式被設計為單一可執行文件,並針對系統資源消耗最小化進行了最佳化,集合大小小於 1 MB。新分支1.35的首個版本定位為不穩定,將在1.35.1版本中提供全面穩定,預計一個月左右。專案代碼根據 GPLv2 許可證分發。

BusyBox 的模組化特性使得建立一個統一的執行檔成為可能,該檔案包含在套件中實現的任意一組實用程式(每個實用程式都以該檔案的符號連結的形式提供)。 實用程式集合的大小、組成和功能可以根據正在執行組裝的嵌入式平台的需求和功能而變化。 該軟體包是獨立的;當使用 uclibc 靜態建置時,要在 Linux 核心之上建立一個工作系統,您只需在 /dev 目錄中建立幾個裝置檔案並準備設定檔。 與先前的版本 1.34 相比,典型 BusyBox 1.35 組件的 RAM 消耗增加了 1726 位元組(從 1042344 位元組增加到 1044070 位元組)。

BusyBox 是對抗韌體中 GPL 違規行為的主要工具。軟體自由保護協會 (SFC) 和軟體自由法律中心 (SFLC) 代表 BusyBox 開發者,透過法院和外部管道,多次成功地影響了那些不提供 GPL 程式原始碼存取權限的公司。- 法院協議。與此同時,BusyBox 的作者強烈反對這種保護——認為這會毀了他的生意。

BusyBox 1.35 中反白顯示了以下變更:

  • find 實用程式實作「-samefile name」選項來檢查檔案是否使用與指定名稱的檔案相同的 inode。統一時間比較程式碼並新增選項「-amin」、「-atime」、「-cmin」和「-ctime」來檢查存取時間和檔案建立。
  • mktemp 實用程式新增了一個「--tmpdir」選項來指定相對於計算與暫存檔案關聯的路徑的基底目錄。
  • cpio 公用程式中新增了選項「-ignore-devno」以忽略實際裝置編號(始終寫入 0)和「-renumber-inodes」以在將 inode 儲存到存檔之前對其重新編號。
  • 在 awk 實用程式中,表達式「printf %%」已被調整。
  • 對 libbb 庫添加了大約十幾處更改。改進了 realpath 與其 coreutils 集中對應項的兼容性。
  • 針對 ash 和 hush 命令 shell 提出了大量修復,旨在提高與其他 shell 的兼容性。 Ash 新增了對類似 bash 的 ERR 陷阱、set -E 和 $FUNCNAME 的支持,以及使用「${s:}」表達式更快的字串檢索。在 ash and hush 中,「${x//\*/|}」操作的執行速度加快了。
  • basename 實用程式實作選項「-a」以在一次呼叫中傳遞多個名稱,並實作選項「-s SUFFIX」以刪除尾隨「SUFFIX」字元。
  • 在 blkdiscard 實用程式中新增了“-f”(強制)選項。
  • httpd 已停止為有錯誤的頁面發送 Last-Modified/ETag/Content-Length 標頭。
  • httpd 和 telnetd 提供更改預設網路連接埠的功能。
  • 修復了 tar 中的一個漏洞,該漏洞導致在處理具有很長檔案名稱的存檔時消耗所有可用記憶體。
  • P256 和 x25519 的實作已在 TLS 程式碼中進行了重新設計。
  • wget 實用程式實作了用於傳送檔案的「--post-file」選項,並允許您為「--post-data」和「--post-file」選項自訂 Content-Type 標頭的內容。
  • 逾時實用程式現在支援“-k KILL_SECS”選項,以便在命令未在額外的 KILL_SECS 秒內完成時發送 SIGKILL 訊號。
  • ip 實用程式中新增了對裝置 netns 參數設定的支援。
  • cal 實用程式實作「-m」選項來顯示指定的月份。
  • 日期和觸控實用程式允許指定日期中的時區偏移。
  • 在 vi 編輯器中,新增了對 ~/.exrc 檔案的支持,並且更改了「-c」和 EXINIT 的處理。
  • 在 ed 實用程式中,執行讀取/寫入指令的結果符合 POSIX-1.2008 規範。新增了對“-p”選項的支援。
  • 在 cmp 實用程式中新增了「-n 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」。

來源: opennet.ru

添加評論