電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>busybox詳解

busybox詳解

2017-11-01 | rar | 0.2 MB | 次下載 | 1積分

資料介紹

BusyBox 的誕生
  BusyBox 最初是由 Bruce Perens 在 1996 年為 Debian GNU/Linux 安裝盤(pán)編寫(xiě)的。其目標(biāo)是在一張軟盤(pán)上創(chuàng)建一個(gè)可引導(dǎo)的 GNU/Linux 系統(tǒng),這可以用作安裝盤(pán)和急救盤(pán)。一張軟盤(pán)可以保存大約 1.4-1.7MB 的內(nèi)容,因此這里沒(méi)有多少空間留給 Linux 內(nèi)核以及相關(guān)的用戶應(yīng)用程序使用。
  BusyBox 許可證
  BusyBox 是按照 GNU General Public License(GPL)許可證發(fā)行的。這意味著如果我們?cè)谝粋€(gè)項(xiàng)目中使用 BusyBox,就必須遵守這個(gè)許可證。我們可以在 BusyBox Web 站點(diǎn)(請(qǐng)參看本文后面參考資料一節(jié)的內(nèi)容)上看到這個(gè)許可證的內(nèi)容。BusyBox 團(tuán)隊(duì)似乎正忙于監(jiān)視違反這個(gè)許可證的情況。實(shí)際上,他們維護(hù)了一個(gè) “Hall of Shame” 頁(yè)面來(lái)說(shuō)明違反者的情況。
  BusyBox 揭露了這樣一個(gè)事實(shí):很多標(biāo)準(zhǔn) Linux 工具都可以共享很多共同的元素。例如,很多基于文件的工具(比如grep和find)都需要在目錄中搜索文件的代碼。當(dāng)這些工具被合并到一個(gè)可執(zhí)行程序中時(shí),它們就可以共享這些相同的元素,這樣可以產(chǎn)生更小的可執(zhí)行程序。實(shí)際上, BusyBox 可以將大約 3.5MB 的工具包裝成大約 200KB 大小。這就為可引導(dǎo)的磁盤(pán)和使用 Linux 的嵌入式設(shè)備提供了更多功能。我們可以對(duì) 2.4 和 2.6 版本的 Linux 內(nèi)核使用 BusyBox。
  BusyBox 是如何工作的?
  為了讓一個(gè)可執(zhí)行程序看起來(lái)就像是很多可執(zhí)行程序一樣,BusyBox 為傳遞給 C 的 main 函數(shù)的參數(shù)開(kāi)發(fā)了一個(gè)很少使用的特性。回想一下 C 語(yǔ)言的 main 函數(shù)的定義如下:
  POSIX 環(huán)境盡管 BusyBox 的目標(biāo)是提供一個(gè)相當(dāng)完整的 POSIX(可移植操作系統(tǒng)接口)環(huán)境,這是一個(gè)期望,而不是一種需求。這些工具雖然并不完整,但是它們提供了我們期望的主要功能。
  清單 1. C 的 main 函數(shù)
  int main( int argc, char *argv[] )
  在這個(gè)定義中,argc是傳遞進(jìn)來(lái)的參數(shù)的個(gè)數(shù)(參數(shù)數(shù)量),而argv是一個(gè)字符串?dāng)?shù)組,代表從命令行傳遞進(jìn)來(lái)的參數(shù)(參數(shù)向量)。argv的索引 0 是從命令行調(diào)用的程序名。
  清單 2 給出的這個(gè)簡(jiǎn)單 C 程序展示了 BusyBox 的調(diào)用。它只簡(jiǎn)單地打印argv向量的內(nèi)容。
  清單 2. BusyBox 使用 argv[0] 來(lái)確定調(diào)用哪個(gè)應(yīng)用程序
  // test.c
  #include 《stdio.h》
  int main( int argc, char *argv[] )
  {
  int i;
  for (i = 0 ; i 《 argc ; i++) {
  printf(“argv[%d] = %s\n”, i, argv[i]);
  }
  return 0;
  }
  調(diào)用這個(gè)程序會(huì)顯示所調(diào)用的第一個(gè)參數(shù)是該程序的名字。我們可以對(duì)這個(gè)可執(zhí)行程序重新進(jìn)行命名,此時(shí)再調(diào)用就會(huì)得到該程序的新名字。另外,我們可以創(chuàng)建一個(gè)到可執(zhí)行程序的符號(hào)鏈接,在執(zhí)行這個(gè)符號(hào)鏈接時(shí),就可以看到這個(gè)符號(hào)鏈接的名字。
  清單 3. 在使用新命令更新 BusyBox 之后的命令測(cè)試
  $ gcc -Wall -o test test.c
  $ 。/test arg1 arg2
  argv[0] = 。/test
  argv[1] = arg1
  argv[2] = arg2
  $ mv test newtest
  $ 。/newtest arg1
  argv[0] = 。/newtest
  argv[1] = arg1
  $ ln -s newtest linktest
  $ 。/linktest arg
  argv[0] = 。/linktest
  argv[1] = arg
  BusyBox 使用了符號(hào)鏈接以便使一個(gè)可執(zhí)行程序看起來(lái)像很多程序一樣。對(duì)于 BusyBox 中包含的每個(gè)工具來(lái)說(shuō),都會(huì)這樣創(chuàng)建一個(gè)符號(hào)鏈接,這樣就可以使用這些符號(hào)鏈接來(lái)調(diào)用 BusyBox 了。BusyBox 然后可以通過(guò)argv[0]來(lái)調(diào)用內(nèi)部工具。
  配置并編譯 BusyBox
  我們可以從 BusyBox 的 Web 站點(diǎn)上下載最新版本的 BusyBox(請(qǐng)參看參考資料一節(jié)的內(nèi)容)。與大部分開(kāi)放源碼程序一樣,它是以一個(gè)壓縮的 tarball 形式發(fā)布的,我們可以使用清單 4 給出的命令將其轉(zhuǎn)換成源代碼樹(shù)。(如果我們下載的版本不是 1.1.1,那就請(qǐng)?jiān)谶@個(gè)命令中使用適當(dāng)?shù)陌姹咎?hào)以及特定于這個(gè)版本號(hào)的命令。)
  清單 4. 展開(kāi) BusyBox
  $ tar xvfz busybox-1.1.1.tar.gz
  $
  
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)