次序 目次 东西 大年夜 号令 清单 如许 符号 链接 繁杂 源代码 手段 参数 情况 函数 装置 功用 软盘 形式 名字 希冀 内核 子目 定义 状况 需求 任务 站点 文件 别的 向量 数组 相称 小东西 字符串 磁盘 高低 局部 源码 个数 模块 瑞士军刀 索引 言语 用途 特征 本文 团队 内存 完整
busyboxJian∴Hua∴Qian∴Jin∴Shi∴linuxXi∴Tong为小情况准备的壹个小东西包
BusyBox 是很多规范 Linux 东西的壹个单个可施行完成BusyBox 包含了壹些繁杂的东西!例如 cat 和 echo!还包含了壹些更大年夜!更繁杂的东西!例如 grep!find!mount 和 telnet有些人将 BusyBox 称为 Linux 东西里的瑞士军刀本文将根究 BusyBox 的手段!它是若何任务的!和为甚么它对于内存有限的情况来讲是如此主要
BusyBox 的出生
BusyBox 最后是由 Bruce Perens 正在 1996 年为 Debian GNU/Linux 装置盘编写的其手段是正在壹张软盘上创立壹个可指导的 GNU/Linux 系统!这能够用作装置盘和急救盘壹张软盘能够保管大年夜约 1.4-1.7MB 的形式!因此这里没有多少空间留给 Linux 内核和相干的用户使用次序递次使用
BusyBox 容许证
BusyBox 是依照 GNU General Public License容许证发行的这意味着假设我们正在壹个项目中使用 BusyBox!就必须遵守这个容许证我们能够正在 BusyBox Web 站点上看到这个容许证的形式BusyBox 团队仿佛正忙于监看遵守这个容许证的状况实践上!他们保护了壹个 "Hall of Shame" 页面来讲明遵守者的状况
BusyBox 揭发了如许壹个幻想很多规范 Linux 东西都能够共享很多单独的元荤例如!很多基于文件的东西都需求正在目次中搜寻文件的代码当这些东西被吞并到壹个可施行次序递次中时!它们就可以够共享这些相同的元荤!如许能够发生更小的可施行次序递次实践上!BusyBox 能够将大年夜约 3.5MB 的东西包装成大年夜约 200KB 大年夜小这就为可指导的磁盘和使用 Linux 的嵌进式装备供给了更多功用我们能够对 2.4 和 2.6 版本的 Linux 内核使用 BusyBox
BusyBox 是若何任务的
为了让壹个可施行次序递次看起来就像是很多可施行次序递次壹样!BusyBox 为传送给 C 的 main 函数的参数开拓了壹个很少使用的特征回忆壹下 C 言语的 main 函数的定义以下
POSIX 情况
固然 BusyBox 的手段 是供给壹个相称完整的 POSIX情况!这是壹个希冀!而不是壹种需求这些东西固然实在不完整!可是它们供给了我们希冀的主要功用
清单 1. C 的 main 函数
int main
正在这个定义中!argc 是传送进来的参数的个数!而 argv 是壹个字符串数组!代表从号令行传送进来的参数argv 的索引 0 是从号令行调用的次序递次名
清单 2 给出的这个繁杂 C 次序递次展现了 BusyBox 的调用它只繁杂地打印 argv 向量的形式
清单 2. BusyBox 使用 argv0 来肯定调用哪个使用次序递次
// test.c
include lt。stdio.hgt。
int main
int i。
for
printf。
return 0。
调用这个次序递次会浮现所调用的第壹个参数是该次序递次的名字我们能够对这个可施行次序递次从头停止定名!此时再调用就会获得该次序递次的新名字别的!我们能够创立壹个到可施行次序递次的符号链接!正在施行这个符号链接时!就可以够看到这个符号链接的名字
清单 3. 正在使用新号令更新 BusyBox 以后的号令测试
gcc -Wall -o test test.c
./test arg1 arg2
argv0 = ./test
argv1 = arg1
argv2 = arg2
mv test newtest
./newtest arg1
argv0 = ./newtest
argv1 = arg1
ln -s newtest linktest
./linktest arg
argv0 = ./linktest
argv1 = arg
BusyBox 使用了符号链接以便使壹个可施行次序递次看起来像很多次序递次壹样对于 BusyBox 中包含的每个东西来讲!城市如许创立壹个符号链接!如许就可以够使用这些符号链接来调用 BusyBox 了BusyBox 然后能够经过 argv0 来调用外部东西
建设并编译 BusyBox
我们能够从 BusyBox 的 Web 站点高低载最新版本的 BusyBox与大年夜局部关闭源码次序递次壹样!它是以壹个压缩的 tarball 方法公布的!我们能够使用清单 4 给出的号令将其转换成源代码树
清单 4. 展开 BusyBox
tar xvfz busybox-1.1.1.tar.gz
结果会天生壹个目次!名为 busybox-1.1.1!此中包含了 BusyBox 的源代码要编译默许的建设!请使用 defconfig make 手段
BusyBox 源代码树
BusyBox 的源代码树组织得很好这些东西都基于它们的用途停止了分类!并存储正在独自的子目次中例如!收集东西和保护过程都正在 ./networking 目次中规范的模块东西都正在 ./modutils 目次中编纂器都正在 ./editors 目次中makefile 建设!编译和装置所使用的各个文档都正在这个目次树的根目次中为小情况准备的壹个小东西包 BusyBox 是很多规范 Linux 东西的壹个单个可施行完成BusyBox 包含了壹些繁杂的
飞扬黑客网 http://www.gdwkb.cn
busyboxJian∴Hua∴Qian∴Jin∴Shi∴linuxXi∴Tong为小情况准备的壹个小东西包
BusyBox 是很多规范 Linux 东西的壹个单个可施行完成BusyBox 包含了壹些繁杂的东西!例如 cat 和 echo!还包含了壹些更大年夜!更繁杂的东西!例如 grep!find!mount 和 telnet有些人将 BusyBox 称为 Linux 东西里的瑞士军刀本文将根究 BusyBox 的手段!它是若何任务的!和为甚么它对于内存有限的情况来讲是如此主要
BusyBox 的出生
BusyBox 最后是由 Bruce Perens 正在 1996 年为 Debian GNU/Linux 装置盘编写的其手段是正在壹张软盘上创立壹个可指导的 GNU/Linux 系统!这能够用作装置盘和急救盘壹张软盘能够保管大年夜约 1.4-1.7MB 的形式!因此这里没有多少空间留给 Linux 内核和相干的用户使用次序递次使用
BusyBox 容许证
BusyBox 是依照 GNU General Public License容许证发行的这意味着假设我们正在壹个项目中使用 BusyBox!就必须遵守这个容许证我们能够正在 BusyBox Web 站点上看到这个容许证的形式BusyBox 团队仿佛正忙于监看遵守这个容许证的状况实践上!他们保护了壹个 "Hall of Shame" 页面来讲明遵守者的状况
BusyBox 揭发了如许壹个幻想很多规范 Linux 东西都能够共享很多单独的元荤例如!很多基于文件的东西都需求正在目次中搜寻文件的代码当这些东西被吞并到壹个可施行次序递次中时!它们就可以够共享这些相同的元荤!如许能够发生更小的可施行次序递次实践上!BusyBox 能够将大年夜约 3.5MB 的东西包装成大年夜约 200KB 大年夜小这就为可指导的磁盘和使用 Linux 的嵌进式装备供给了更多功用我们能够对 2.4 和 2.6 版本的 Linux 内核使用 BusyBox
BusyBox 是若何任务的
为了让壹个可施行次序递次看起来就像是很多可施行次序递次壹样!BusyBox 为传送给 C 的 main 函数的参数开拓了壹个很少使用的特征回忆壹下 C 言语的 main 函数的定义以下
POSIX 情况
固然 BusyBox 的手段 是供给壹个相称完整的 POSIX情况!这是壹个希冀!而不是壹种需求这些东西固然实在不完整!可是它们供给了我们希冀的主要功用
清单 1. C 的 main 函数
int main
正在这个定义中!argc 是传送进来的参数的个数!而 argv 是壹个字符串数组!代表从号令行传送进来的参数argv 的索引 0 是从号令行调用的次序递次名
清单 2 给出的这个繁杂 C 次序递次展现了 BusyBox 的调用它只繁杂地打印 argv 向量的形式
清单 2. BusyBox 使用 argv0 来肯定调用哪个使用次序递次
// test.c
include lt。stdio.hgt。
int main
int i。
for
printf。
return 0。
调用这个次序递次会浮现所调用的第壹个参数是该次序递次的名字我们能够对这个可施行次序递次从头停止定名!此时再调用就会获得该次序递次的新名字别的!我们能够创立壹个到可施行次序递次的符号链接!正在施行这个符号链接时!就可以够看到这个符号链接的名字
清单 3. 正在使用新号令更新 BusyBox 以后的号令测试
gcc -Wall -o test test.c
./test arg1 arg2
argv0 = ./test
argv1 = arg1
argv2 = arg2
mv test newtest
./newtest arg1
argv0 = ./newtest
argv1 = arg1
ln -s newtest linktest
./linktest arg
argv0 = ./linktest
argv1 = arg
BusyBox 使用了符号链接以便使壹个可施行次序递次看起来像很多次序递次壹样对于 BusyBox 中包含的每个东西来讲!城市如许创立壹个符号链接!如许就可以够使用这些符号链接来调用 BusyBox 了BusyBox 然后能够经过 argv0 来调用外部东西
建设并编译 BusyBox
我们能够从 BusyBox 的 Web 站点高低载最新版本的 BusyBox与大年夜局部关闭源码次序递次壹样!它是以壹个压缩的 tarball 方法公布的!我们能够使用清单 4 给出的号令将其转换成源代码树
清单 4. 展开 BusyBox
tar xvfz busybox-1.1.1.tar.gz
结果会天生壹个目次!名为 busybox-1.1.1!此中包含了 BusyBox 的源代码要编译默许的建设!请使用 defconfig make 手段
BusyBox 源代码树
BusyBox 的源代码树组织得很好这些东西都基于它们的用途停止了分类!并存储正在独自的子目次中例如!收集东西和保护过程都正在 ./networking 目次中规范的模块东西都正在 ./modutils 目次中编纂器都正在 ./editors 目次中makefile 建设!编译和装置所使用的各个文档都正在这个目次树的根目次中为小情况准备的壹个小东西包 BusyBox 是很多规范 Linux 东西的壹个单个可施行完成BusyBox 包含了壹些繁杂的
飞扬黑客网 http://www.gdwkb.cn


