fbpx
维基百科

BusyBox

BusyBox是一個遵循GPL協議、以自由軟體形式發行的應用程式。Busybox在单一的可执行文件中提供了精简的Unix工具集,可运行于多款POSIX环境的操作系统,例如Linux(包括Android[7])、Hurd[8]、FreeBSD[8][9]等等。由於BusyBox執行檔的檔案比較小,使得它非常適合使用於嵌入式系统。作者将BusyBox稱為「嵌入式Linux的瑞士軍刀」。[10]

BusyBox
原作者布鲁斯·佩伦斯
開發者Erik Andersen[1]、Rob Landley[2]、Denys Vlasenko[3]及其他人
首次发布1999年11月4日,​24年前​(1999-11-04[4]
当前版本
  • 1.36.0 (2023年1月3日;預發佈版本)[5]
  • 1.36.1 (2023年5月19日;穩定版本)[5]
源代码库
  • git.busybox.net/busybox
编程语言C
操作系统类Unix系统
文件大小2.1 MB
类型
  • 嵌入式Linux
  • 行動裝置上的Linux英语Linux for mobile devices
许可协议GNU GPL第二版(1.2.3版或更新[6]
网站www.busybox.net

歷史 编辑

BusyBox最初是由布魯斯·斐倫斯在1996年為Debian GNU/Linux的軟碟安装編寫的[11],其原始構想是希望在一張軟碟上能放入一個開機系統,以作為急救盤和安裝盤。後來它變成了嵌入式Linux裝置和系統和Linux發行版安裝程序的實質標準,因為每個Linux執行檔需要數KB的空間,而整合兩百多個程式的BusyBox可以節省大量空間。例如:Debian GNU/Linux的安裝光碟以BusyBox作為Shell程式。

Enrique Zanardi負責維護BusyBox並專注在Debian启动软盘英语Boot disk安裝系統的需求直到1998年,再由負責Linux路由器计划英语Linux Router Project的Dave Cinege 接手。Cinege做了一些增加:建立了一個模組化的Build環境、轉移BusyBox的目標到一般高階的嵌入式系統。當1999年LRP開發進度趨緩時,Lineo, Inc.英语Lineo的Erik Andersen在1999年開始正式地接手這個專案繼續維護它到2006年三月。在這段期間,Linux的嵌入式系統的市場明顯地成長,連帶使BusyBox轉趨成熟,同時擴展二者的使用群和功能。

丹尼斯·弗拉先科英语Denis Vlasenko是目前BusyBox的維護者。

功能 编辑

BusyBox可以被自訂化以提供一個超過兩百種功能的子集。它可以提供多數詳列在單一UNIX規範裡的功能,以及許多使用者會想在Linux系統上看到的功能。BusyBox使用ash[12][13]在 BusyBox的網站上可以找到所有功能的列表。[14]

單一執行檔 编辑

典型的電腦程式對每個應用程式都有個別的二進制執行檔)檔案。BusyBox 是單一二進制程式,這是許多應用程式的集合,在適當參數的特定方法下,每個都可透過以不同的名稱(每個不同的名字藉由符号链接硬連結支援[15])呼叫單一 BusyBox 二進制程式來存取。

BusyBox受惠於單一執行檔策略,如此一來省去了每個執行檔必需有的檔頭(特別是ELF的執行檔),這也讓Busybox不需要函式庫便可達成程式碼共用。這個技巧與FreeBSD中的crunchgen[16]指令相似。與使用crunchgen建立的合併工具程式不同在於,Busybox只提供每個工具程式的簡化版(例如:ls指令不提供排序功能)。

共享通用的程式碼,並以程式大小最佳化為目標,使以BusyBox建構的系統所需要的空間遠小於使用對應的完整工具所需要的空間。研究[17]比較了GNU、Busybox、asmutils及Perl實作的標準Unix指令發現特定狀況下,BusyBox的執行速度會優於其他實作,但並非總是如此。

範例 编辑

BusyBox所包含的程式只需要簡單的將名稱附加在第一個參數即可執行:

/bin/busybox ls

更常見的作法是,這些指令會以連結(使用硬連結或者符号链接)至BusyBox執行檔,BusyBox會偵測其被連結時的名稱,並執行對應的指令。舉例來說,只要將/bin/ls連結到/bin/busybox,即可執行

/bin/ls

命令 编辑

实际的命令列表按编译时的设置决定,在有Busybox的系统上执行busybox --list即可看到一个列表。

  • ash - 符合POSIX的一个简单的shell
  • awk - 将文件解析为记录及字段后,按模式匹配操作其内容
  • cat - 将多个文件首尾相连显示于标准输出
  • chmod - 更改文件的权限设置
  • cp - 拷贝文件或目录
  • date - 打印/设置日期时间
  • dd
  • df - 印出檔案系統的使用統計
  • dmesg - 查看内核信息
  • echo - 打印指定内容
  • egrep - 接受扩展正则表达式的grep
  • fgrep - 接受固定字符串模式的grep
  • grep - 列出文件或标准输入中符合模式的行
  • gzip
  • kill - 關閉一個程序
  • ln - 创建链接
  • login - 以某个用户身份登录
  • ls - 列出目錄或檔案
  • mdu
  • mkdir - 建立一個目錄
  • more
  • mount 掛載儲存裝置
  • mv - 移動檔案
  • netstat - 查看 TCP/IP 连接信息
  • ntpc
  • ntpsync
  • nvram
  • pidof
  • ping
  • ps - 印出程序狀態
  • pwd - 印出工作目錄
  • rm - 刪除檔案
  • rmdir - 移除目錄
  • rstats
  • sed
  • sh
  • sleep
  • sync - 将缓存写入到硬盘中
  • tar
  • touch
  • umount 移除掛載的儲存裝置
  • uname - 查看系统信息
  • usleep
  • vi - 一个带有简单的模式提示的精简版仿vi编辑器
  • watch
  • wget - HTTP或FTP下载工具
  • zcat

參見 编辑

  • toybox英语toybox - complete implementation of the standard Linux command line utilities, with minimal external dependencies. by Rob Landley.

註釋 编辑

  1. ^ Erik Andersen's Homepage. [2010-07-28]. (原始内容于2010-06-13). 
  2. ^ 活躍的專案 (页面存档备份,存于互联网档案馆),Rob Landley的網頁
  3. ^ Denys Vlasenko (页面存档备份,存于互联网档案馆),BusyBox維護者
  4. ^ (PDF). [2015-10-30]. (原始内容 (PDF)存档于2015-10-30). 
  5. ^ 5.0 5.1 https://busybox.net/news.html.
  6. ^ BusyBox. [2015-07-15]. (原始内容于2015-09-01). 
  7. ^ 存档副本. [2017-02-23]. (原始内容于2016-11-28). 
  8. ^ 8.0 8.1 存档副本. [2014-03-31]. (原始内容于2013-01-06). 
  9. ^ 存档副本. [2014-03-31]. (原始内容于2014-01-02). 
  10. ^ http://www.busybox.net/downloads/BusyBox.html (页面存档备份,存于互联网档案馆) The self-dubbed slogan for 'The Swiss Army Knife of Embedded Linux' source. The slogan is right under the header.
  11. ^ 存档副本. [2020-09-18]. (原始内容于2018-06-15). 
  12. ^ http://busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/shell/Config.in?rev=11083[永久失效連結] The 'ash' shell adds about 60k in the default configuration and is the most complete and most pedantically correct shell included with busybox. This shell is actually a derivative of the Debian 'dash' shell (by Herbert Xu), which was created by porting the 'ash' shell(written by Kenneth Almquist) from NetBSD.
  13. ^ . [2010-07-28]. (原始内容存档于2010-03-10). 
  14. ^ BusyBox - The Swiss Army Knife of Embedded Linux. [2010-07-28]. (原始内容于2010-06-11). 
  15. ^ 存档副本. [2010-07-28]. (原始内容于2008-12-09). 
  16. ^ crunchgen man page (页面存档备份,存于互联网档案馆) at freebsd.org (页面存档备份,存于互联网档案馆
  17. ^ Doug Thayer, Keith Miller. Four UNIX Programs in Four UNIX Collections: Seeking Consistency in an Open Source Icon (PDF). Proceedings of Midwest Instruction and Computing Symposium. University of Minnesota, Morris. 16–17 April 2004. [永久失效連結]

外部連結 编辑

  • Project home page(页面存档备份,存于互联网档案馆
  • Products known to be using BusyBox(页面存档备份,存于互联网档案馆
  • Busybox simplifies embedded Linux systems(页面存档备份,存于互联网档案馆) a developerWorks article by M. Tim Jones

busybox, 是一個遵循gpl協議, 以自由軟體形式發行的應用程式, busybox在单一的可执行文件中提供了精简的unix工具集, 可运行于多款posix环境的操作系统, 例如linux, 包括android, hurd, freebsd, 等等, 由於執行檔的檔案比較小, 使得它非常適合使用於嵌入式系统, 作者将稱為, 嵌入式linux的瑞士軍刀, 原作者布鲁斯, 佩伦斯開發者erik, andersen, landley, denys, vlasenko, 及其他人首次发布1999年11月4日, 24年前. BusyBox是一個遵循GPL協議 以自由軟體形式發行的應用程式 Busybox在单一的可执行文件中提供了精简的Unix工具集 可运行于多款POSIX环境的操作系统 例如Linux 包括Android 7 Hurd 8 FreeBSD 8 9 等等 由於BusyBox執行檔的檔案比較小 使得它非常適合使用於嵌入式系统 作者将BusyBox稱為 嵌入式Linux的瑞士軍刀 10 BusyBox原作者布鲁斯 佩伦斯開發者Erik Andersen 1 Rob Landley 2 Denys Vlasenko 3 及其他人首次发布1999年11月4日 24年前 1999 11 04 4 当前版本1 36 0 2023年1月3日 預發佈版本 5 1 36 1 2023年5月19日 穩定版本 5 源代码库git wbr busybox wbr net wbr busybox编程语言C操作系统类Unix系统文件大小2 1 MB类型嵌入式Linux行動裝置上的Linux 英语 Linux for mobile devices 许可协议僅GNU GPL第二版 1 2 3版或更新 6 网站www wbr busybox wbr net 目录 1 歷史 2 功能 2 1 單一執行檔 3 範例 4 命令 5 參見 6 註釋 7 外部連結歷史 编辑BusyBox最初是由布魯斯 斐倫斯在1996年為Debian GNU Linux的軟碟安装編寫的 11 其原始構想是希望在一張軟碟上能放入一個開機系統 以作為急救盤和安裝盤 後來它變成了嵌入式Linux裝置和系統和Linux發行版安裝程序的實質標準 因為每個Linux執行檔需要數KB的空間 而整合兩百多個程式的BusyBox可以節省大量空間 例如 Debian GNU Linux的安裝光碟以BusyBox作為Shell程式 Enrique Zanardi負責維護BusyBox並專注在Debian启动软盘 英语 Boot disk 安裝系統的需求直到1998年 再由負責Linux路由器计划 英语 Linux Router Project 的Dave Cinege 接手 Cinege做了一些增加 建立了一個模組化的Build環境 轉移BusyBox的目標到一般高階的嵌入式系統 當1999年LRP開發進度趨緩時 Lineo Inc 英语 Lineo 的Erik Andersen在1999年開始正式地接手這個專案繼續維護它到2006年三月 在這段期間 Linux的嵌入式系統的市場明顯地成長 連帶使BusyBox轉趨成熟 同時擴展二者的使用群和功能 丹尼斯 弗拉先科 英语 Denis Vlasenko 是目前BusyBox的維護者 功能 编辑BusyBox可以被自訂化以提供一個超過兩百種功能的子集 它可以提供多數詳列在單一UNIX規範裡的功能 以及許多使用者會想在Linux系統上看到的功能 BusyBox使用ash 12 13 在 BusyBox的網站上可以找到所有功能的列表 14 單一執行檔 编辑 典型的電腦程式對每個應用程式都有個別的二進制 執行檔 檔案 BusyBox 是單一二進制程式 這是許多應用程式的集合 在適當參數的特定方法下 每個都可透過以不同的名稱 每個不同的名字藉由符号链接或硬連結支援 15 呼叫單一 BusyBox 二進制程式來存取 BusyBox受惠於單一執行檔策略 如此一來省去了每個執行檔必需有的檔頭 特別是ELF的執行檔 這也讓Busybox不需要函式庫便可達成程式碼共用 這個技巧與FreeBSD中的crunchgen 16 指令相似 與使用crunchgen建立的合併工具程式不同在於 Busybox只提供每個工具程式的簡化版 例如 ls指令不提供排序功能 共享通用的程式碼 並以程式大小最佳化為目標 使以BusyBox建構的系統所需要的空間遠小於使用對應的完整工具所需要的空間 研究 17 比較了GNU Busybox asmutils及Perl實作的標準Unix指令發現特定狀況下 BusyBox的執行速度會優於其他實作 但並非總是如此 範例 编辑BusyBox所包含的程式只需要簡單的將名稱附加在第一個參數即可執行 bin busybox ls更常見的作法是 這些指令會以連結 使用硬連結或者符号链接 至BusyBox執行檔 BusyBox會偵測其被連結時的名稱 並執行對應的指令 舉例來說 只要將 bin ls連結到 bin busybox 即可執行 bin ls命令 编辑实际的命令列表按编译时的设置决定 在有Busybox的系统上执行busybox list即可看到一个列表 ash 符合POSIX的一个简单的shell awk 将文件解析为记录及字段后 按模式匹配操作其内容 cat 将多个文件首尾相连显示于标准输出 chmod 更改文件的权限设置 cp 拷贝文件或目录 date 打印 设置日期时间 dd df 印出檔案系統的使用統計 dmesg 查看内核信息 echo 打印指定内容 egrep 接受扩展正则表达式的grep fgrep 接受固定字符串模式的grep grep 列出文件或标准输入中符合模式的行 gzip kill 關閉一個程序 ln 创建链接 login 以某个用户身份登录 ls 列出目錄或檔案 mdu mkdir 建立一個目錄 more mount 掛載儲存裝置 mv 移動檔案 netstat 查看 TCP IP 连接信息 ntpc ntpsync nvram pidof ping ps 印出程序狀態 pwd 印出工作目錄 rm 刪除檔案 rmdir 移除目錄 rstats sed sh sleep sync 将缓存写入到硬盘中 tar touch umount 移除掛載的儲存裝置 uname 查看系统信息 usleep vi 一个带有简单的模式提示的精简版仿vi编辑器 watch wget HTTP或FTP下载工具 zcat參見 编辑 nbsp 自由软件主题 toybox 英语 toybox complete implementation of the standard Linux command line utilities with minimal external dependencies by Rob Landley 註釋 编辑 Erik Andersen s Homepage 2010 07 28 原始内容存档于2010 06 13 活躍的專案 页面存档备份 存于互联网档案馆 Rob Landley的網頁 Denys Vlasenko 页面存档备份 存于互联网档案馆 BusyBox維護者 存档副本 PDF 2015 10 30 原始内容 PDF 存档于2015 10 30 5 0 5 1 https busybox net news html BusyBox 2015 07 15 原始内容存档于2015 09 01 存档副本 2017 02 23 原始内容存档于2016 11 28 8 0 8 1 存档副本 2014 03 31 原始内容存档于2013 01 06 存档副本 2014 03 31 原始内容存档于2014 01 02 http www busybox net downloads BusyBox html 页面存档备份 存于互联网档案馆 The self dubbed slogan for The Swiss Army Knife of Embedded Linux source The slogan is right under the header 存档副本 2020 09 18 原始内容存档于2018 06 15 http busybox net cgi bin viewcvs cgi trunk busybox shell Config in rev 11083 永久失效連結 The ash shell adds about 60k in the default configuration and is the most complete and most pedantically correct shell included with busybox This shell is actually a derivative of the Debian dash shell by Herbert Xu which was created by porting the ash shell written by Kenneth Almquist from NetBSD ash variants 2010 07 28 原始内容存档于2010 03 10 BusyBox The Swiss Army Knife of Embedded Linux 2010 07 28 原始内容存档于2010 06 11 存档副本 2010 07 28 原始内容存档于2008 12 09 crunchgen man page 页面存档备份 存于互联网档案馆 at freebsd org 页面存档备份 存于互联网档案馆 Doug Thayer Keith Miller Four UNIX Programs in Four UNIX Collections Seeking Consistency in an Open Source Icon PDF Proceedings of Midwest Instruction and Computing Symposium University of Minnesota Morris 16 17 April 2004 永久失效連結 外部連結 编辑維基教科書中的相關電子教程 BusyBox viProject home page 页面存档备份 存于互联网档案馆 Products known to be using BusyBox 页面存档备份 存于互联网档案馆 Building Tiny Linux Systems with BusyBox Busybox simplifies embedded Linux systems 页面存档备份 存于互联网档案馆 a developerWorks article by M Tim Jones 取自 https zh wikipedia org w index php title BusyBox amp oldid 81585996, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。