环球速读:busybox怎么使用?busybox的作用和功能
第一篇:
1,busybox简介
【资料图】
busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.
Busybox的小身材大作用的特性,给制作一张软盘的linux带来了及大方便.
2,busybox的用法
可以这样用busybox
#busybox ls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln -s busybox ls
#ln -s busybox rm
#ln -s busybox mkdir
然后分别运行这三个链接:
#./ls
#./rm
#./mkdir
就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox
但是只要链接名不同,完成的功能就不同,busybox就是这么的神奇.
很多linux网站都提供busybox的源代码下载.目前版本是busybox1.0正式版.
3,配置busybox
busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.
#cp busybox-1.00.tar.gz /babylinux
#cd /babylinux
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig
下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.
General Configuration应该选的选项
Show verbose applet usage messages
Runtime SUID/SGID configuration via /etc/busybox.conf
Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.
Installation Options
Don"t use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.
其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.
配置好后退出并保存.
4,编译并安装busybox
#make
#make install
编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
我编译出来的busybox可执行文件是935K,加上符号链接,整个_install目录是952K.加上845K的内核不是已经超过1440K了吗?别担心,我们将对整个根文件系统做大幅度的压缩.
第二篇:
BusyBox是很多标准 Linux 工具的一个单个可执行实现,主要应用于嵌入式linux系统,是一个开源的“万能工具”。接下来我们一起来看看这个工具的魅力。
万能的BusyBox
BusyBox最为一个可执行文件,却集成了「cp」「init」「ping」等基本的shell命令。 基于嵌入式linux的系统上,比如数字电视,MP3,音响,小型服务器,路由器等等机器上都会搭载 BusyBox。可以说嵌入式linux世 界中,BusyBox是一个最基本的工具模块。
为什么在嵌入式系统中使用 BusyBox
在嵌入式linux领域,BusyBox被广泛使用,其理由可以总结为以下两点:
减小文件尺寸
在嵌入式系统中,做为文件系统保存的辅助记忆装置,考虑到信赖性和成本问题,Flash ROM被经常使用(数Mbytes~数十Mbytes)。这一来就限制了辅助记忆装置的容量大小。 作为嵌入式的工程师,你是否也是是追求最小尺寸的系统,和最优化的性能組呢?通常,linux系统中导入了很多的命令。这些命令中也许有许多你不需要的,或者命令中不需要的参数,又或者虽是不同命令却拥有相同的处理函数,对于嵌入式系统来说,这些都是没用的资源浪费。另外在这之上,每个命令若要执行,系统还需要一个管理信息(2~4kbytes),随着命令的增多,这个尺寸也是非常可观的。 正是由于这些原因,BusyBox将没用的功能彻底的去处,管理信息也做到只有一个,这样最大限度的节省了文件的尺寸。
减轻编译工作量
如果是为PC安装程序,只要将二进制文件安装在Linux分区上面即可。但是,在嵌入式系统上,由于硬件,和其用途多种多样,是不会有那样的二进文件的。所以,为了使用不同的应用程序,必须从不同的源代码来编译。并且,根据不同应用程序的需要,编译的方法也可能不同,使编译工作变得更加繁琐。 另一方面,BusyBox自己就集成了各种应用程序的功能,所以说只要编译了BusyBox,就解决了很多的编译问题。
BusyBox的构造
BusyBox的构造如下图所示:
图1 BusyBox的构成
Applet是一个命令的集合。比如,“init Applet”提供了init的功能。“ping Applet”提供了ping的功能。另外,libbb是 各个Applet间公用的函数集合。各个Applet尽量使用libbb中定义的函数,使BusyBox的尺寸达到最小。另外,各个Applet的程 序基本上不使用原有相同命令的源代码,而是为了减小文件尺寸重新编写过的。
除此之外,BusyBox除了利用libbb来消减文件尺寸外,还有其他的优化措施。比如,将不常用的命令参数省略,错误代码也减 小到1个字节。甚至还有省掉释放内存的free函数等等。
BusyBox的功能
BusyBox就是一柄锋利的瑞士军刀
BusyBox集成了各种linux的标准命令,毫不夸张的说,BusyBox可以简单地作为一个linux的发布环境(distribution)。 比如,shell,editor(vi,sed,awk等), 系统管理(coreutils、tar、bzip等),网络应用(ping、ifconfig、wget等),用 户管理(login、su、useraddな等),各种服务(crond、syslogd、httpd等),SELinux管理(load_policy、restorecon等)。
不用考虑BusyBox而执行各种命令
以下是BusyBox在系统目录下的构造:
1234
# ls -l /bin(...)/bin/cat -> /bin/busybox/bin/ls -> /bin/busybox
从其构造可以看出,/bin/cat或者/bin/ls都是指向/bin/busybox的符号链接。/bin/busybox是BusyBox的实体。作为参 数,/bin/busybox的argv[0]被设置为各个命令的名字。
比如,当执行/bin/cat的时候,实际执行的是/bin/busybox。这里busybox的argv[0]为/bin/cat。/bin/busybox内部,利用 argv[0]将cat Applet启动,执行cat命令。
安装BusyBox
将下载的BusyBox源代码解压,编译:
12
$ tar jxvf busybox-1.9.0.tar.bz2$ cd busybox-1.9.0
编译之前,可以设置包含applet的项目。
1
$ make menuconfig
这个画面和编译Linux内核是的画面是一样的。通过它,我们可以指定包含的项目。 比如,选择「Coreutils」之后,进入下面的画面。
从图中可以看到cat和cp等命令已经被选择。你可以通过[Y]键来选择,[N]键来解除选择。全部选好后选择[Exit]退出,点击下图的[Yes]保存。
接下来执行 make ; make install 来编译和安装BusyBox。 缺省情况下BusyBox被安装在当前目录下的「_install」目录。
1234567891011
$ ls -l _install/binlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 addgroup -> busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 adduser -> busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 ash -> busybox-rwxr-xr-x 1 ynakam ynakam 626080 Jan 7 22:36 busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 cat -> busyboxrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 chgrp -> busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 chmod -> busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 chown -> busyboxlrwxrwxrwx 1 ynakam ynakam 7 Jan 7 22:36 cp -> busybox(...)
在实际的嵌入式系统上,必须使用和系统CPU相吻合的编译器编译。比如arm上编译的时候,我们就像以下在host上指定跨平台编译器。
此处直接修改makefile 中 CROSS_COMPILE=arm-linux- 之后安装还是 make install ,同样在_install目录下生产编译好的结果,你只要拷贝到目标机就行了。
其他
BusyBox是以GPL发布的。所以,如果修改了BusyBox后移植到嵌入式系统机器,并贩卖的情况下,必须公开你的BusyBox源码。 正在开发中BusyBox的subversion目录是这里。
篇三: 报错处理
错误1:applets/applets.c:21:2: error: #error Aborting compilation. make[1]: *** [applets/applets.o] Error 1
解决办法: 修改文件 applets/applets.c 第 21 行, 将 #error Aborting compilation.
注释掉:
错误2:
make[1]: *** [ipsvd/tcpudp.o] 错误 1 make: *** [ipsvd] 错误 2
解决办法: arm-linux 交叉编译工具链 在 usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h 头文件的开头 添加缺少的头文件: 注意:此处为交叉编译器的链接地址,需要根据自己的地址更改 #include
标签:
相关推荐:
最新新闻:
- 世界实时:多功能电脑管理工具——fantool安装教程
- DATEADD怎么使用?SQL中DATEADD用法介绍-世界观点
- 什么是二分法?一个有序数组中找某个数是否存在?
- 环球热讯:python创建画布?python生成白色画布的方法
- 环球速读:busybox怎么使用?busybox的作用和功能
- 华硕A450C触控板失灵怎么办?华硕解决办法 全球短讯
- 微软和IBM联合开发的WAFF文件格式 如何使用?
- 如何修复LSP协议?教你一招_最新
- 洗衣机购买多大功率的好?洗衣机功率选择说明
- 如何安装工行网银助手?工行网银助手无法安装的方法|热点聚焦
- 如何选用高压电容补偿器?高压电容补偿器的使用方法-世界速读
- 手机刷卡器怎么用?手机刷卡器使用方法
- 天天热消息:NSBundle怎么使用?注意mainBundle和Custom Bundle的区别
- 天天时讯:如何用interface实施接口?阿里架构师讲解Java接口的继承与抽象类
- 自学培训机构哪家强?市面上的云计算机构有哪些?
- 如何确定电视吊架的位置?安装方法有哪些?|当前滚动
- 【热闻】如何在Windows上清除/刷新DNS缓存?全平台详细教程
- dota2:Dota2OMG模式强力技能组合推荐
- 手机上网需要做哪些事儿?手机上网的关键流程_每日头条
- 16比9尺寸是多少厘米?液晶显示器16比9计算公式 焦点短讯
- 天天新消息丨怎么在线压缩视频文件?视频压缩方法分享
- 驱动精灵有哪些特点?如何使用驱动程序?:环球新资讯
- 如何在代码中设置WIFI静态IP?设置WIFI静态IP流程:当前热议
- 环球热资讯!怎样美容?最全面的美容大法
- 如何拍出漂亮的满月?八招教你记录中秋节的美
- 全球快看:qq扩列功能怎么找不到了?2021新版功能在哪?
- ie浏览器哪个版本好用?最好用的IE是什么?:环球今日讯
- 世界信息:什么是M档?单反相机的全手动模式解读
- 天天微速讯:如何定期清洗油烟净化器?详细步骤来了
- 浴霸开关接线的方法有哪些?如何安装?
- 头条:支付宝和微信免费提现有什么不同?支付宝和微信免费提现的区别
- iOS11.0.3怎么升级?iOS11.0.3升级方法教程
- 如何免费压缩PDF文件?这几个方法帮你搞定_世界聚焦
- hdmi接口有什么用?笔记本电脑常见接口科普
- 涡轮式离心风机有哪些特点?涡轮式离心风机特点介绍
- 百度指数是怎样计算的?百度指数计算方法
- 环球报道:win10怎么查看端口是否开启?教你win10查看端口是否开启的方法
- Msi微星怎么样?游戏本的品牌效应有哪些? 速递
- 世界焦点!地热供暖系统好不好?地热供暖系统有哪些优势?
- 全民英雄游戏怎么玩?全民英雄游戏攻略新手入门必看
- 酷派大神9976A怎么刷机?酷派大神9976刷机教程:独家
- 【干货】PLC之间的通信怎么入门?PLC之间的通信怎么学?:世界新消息
- 笔记本电脑wifi怎么连接?联想小新air12教程-天天即时看
- 怎么在电脑上玩口袋妖怪新世代手游?口袋妖怪新世代电脑版玩法攻略|环球今日讯
- 步步高工具高通版刷机救砖教程(安装驱动)
- 电脑中了病毒有什么症状?电脑感染病毒的10种症状及简单处理办法:全球微头条
- linux怎么安装svn服务器?linux安装svn服务器的两种方式
- 如何操作现货原油期货?操作流程步骤
- 怎么找不到局域网查看工具?如何正确使用? 当前看点
- 获取ajax里面的数组内容——实现异步列表
- 【世界新视野】钞能力真香?宝马高管大呼我们的家在中国
- 全球观天下!NVIDIA显卡降价开启:RTX 4090居然破发
- 18万买特斯拉Model 3?官方紧急辟谣想得美
- 天天看热讯:小米13 Ultra首销破10万?秘密就是价格定低了
- 小米11青春版8+256G只要1319元 世界最新
- 罗素兄弟《惊天营救3》有望立项 欲打造系列宇宙
- 第三方展示蜘蛛侠主题定制rtx4070 红蓝配色经典logo
- 观热点:《新无主之地:传说》D加密被移除 历时约半年
- 新增武器技能《神之亵渎2》2023年夏季全平台发售
- PS三档会员新福利:试玩2小时《迪士尼无限飞车》_讯息
- 硬盘减负难!曝《星战绝地幸存者》PS5版大小为147G
- 环球观点:《星球大战绝地:幸存者》PS5版超147GB
- 胆小慎入!《潜伏5:红门》首曝港版中字预告 世界新要闻
- 买来收藏!近半数玩家选择《王国之泪》实体版
- 《红霞岛》新角色预告:武器发明家 花式杀僵尸-快讯
- 外媒:游戏中黑人女主比例正在上升 但仍有增长空间
- 移动游戏的魅力壹号本PC掌机与你相约ZOL“武汉潮好玩”嘉年华_当前看点
- 初心如磐,奋楫笃行,共赢数字化未来
- 国家一级演员宗利群去世 生前曾扮演六十多次彭德怀|独家焦点
- 焦点快报!开发者爆料暴雪人才流失严重:高层无视意见独断专行
- 当前热议!《魔戒:咕噜》开发商为付费精灵语DLC辩护:只有真爱粉才懂
- 系列销售总监询问玩家:你希望《消逝的光芒3》主角是什么职业?-天天热消息
- 天天速读:《地平线:西之绝境》埃洛伊性取向确定:是女同性恋
- 恐怖新游《10 Dead Doves》开启众筹 生化寂静岭风格
- 精选!新《仙剑奇侠传》电视剧过审 杨雨潼何与等主演