最小限のシステム ユーティリティ セット BusyBox 1.35 のリリース

BusyBox 1.35 パッケージのリリースには、単一の実行可能ファイルとして設計され、設定サイズが 1 MB 未満でシステム リソースの消費を最小限に抑えるように最適化された標準 UNIX ユーティリティのセットが実装されています。 新しいブランチ 1.35 の最初のリリースは不安定版として位置付けられており、完全な安定化はバージョン 1.35.1 で提供され、約 2 か月以内に提供される予定です。 プロジェクト コードは GPLvXNUMX ライセンスに基づいて配布されます。

BusyBox のモジュール的な性質により、パッケージに実装された任意のユーティリティ セットを含む 1.34 つの統合された実行可能ファイルを作成できます (各ユーティリティは、このファイルへのシンボリック リンクの形式で利用できます)。 ユーティリティのコレクションのサイズ、構成、および機能は、アセンブリが実行される組み込みプラットフォームのニーズと機能に応じて変更できます。 このパッケージは自己完結型です。uclibc を使用して静的にビルドする場合、Linux カーネル上に動作するシステムを作成するには、/dev ディレクトリにいくつかのデバイス ファイルを作成し、構成ファイルを準備するだけで済みます。 以前のリリース 1.35 と比較して、一般的な BusyBox 1726 アセンブリの RAM 消費量は 1042344 バイト (1044070 バイトから XNUMX バイト) 増加しました。

BusyBox は、ファームウェアにおける GPL 違反との戦いにおける主要なツールです。 Software Freedom Conservancy (SFC) と Software Freedom Law Center (SFLC) は、BusyBox 開発者を代表して、GPL プログラムのソース コードへのアクセスを提供していない企業に対して、裁判所と法外の両方を通じて、繰り返し影響を与えることに成功してきました。 -裁判所の合意。 同時に、BusyBox の作者は、そのような保護には強く反対しており、それが自分のビジネスを台無しにすると考えています。

BusyBox 1.35 では次の変更点が強調表示されます。

  • find ユーティリティは、「-samefile name」オプションを実装して、ファイルが指定された名前のファイルと同じ i ノードを使用しているかどうかを確認します。 時間比較のコードを統合し、アクセス時間とファイル作成をチェックするオプション「-amin」、「-atime」、「-cmin」、「-ctime」を追加しました。
  • mktemp ユーティリティには、一時ファイルに関連付けられたパスが計算される相対的なベース ディレクトリを指定するための「--tmpdir」オプションが追加されました。
  • 実デバイス番号を無視する (常に 0 が書き込まれる) オプション「-ignore-devno」が cpio ユーティリティに追加され、アーカイブに保存する前に i ノードの番号を再設定する「-renumber-inodes」オプションが追加されました。
  • awk ユーティリティでは、「printf %%」という表現が調整されました。
  • libbb ライブラリに約 XNUMX の変更を追加しました。 realpath と coreutils セットの対応する部分との互換性が向上しました。
  • 他のシェルとの互換性を向上させることを目的として、ash および hush コマンド シェルに対して多数の修正が提案されています。 Ash では、bash のような ERR トラップ、set -E および $FUNCNAME、および "${s:}" 式を使用した高速な文字列取得のサポートが追加されました。 Ash and Hush では、「${x//\*/|}」操作の実行が高速化されました。
  • Basename ユーティリティは、XNUMX 回の呼び出しで複数の名前を渡すオプション「-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 秒以内にコマンドが完了しない場合に SIGKILL シグナルを送信する「-k KILL_SECS」オプションをサポートするようになりました。
  • デバイスの netns パラメータ設定のサポートが ip ユーティリティに追加されました。
  • cal ユーティリティは、指定された月を表示する「-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 の追加に注目することができます。 実装されたオプション「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」。

出所: オープンネット.ru

コメントを追加します