1.24.2版本busybox扩充命令及函数集讲解||扩充applet命令

本文详细介绍了如何在BusyBox 1.24.2版本中扩展命令,以tcpdump为例,涉及添加命令到编译菜单、制作命令原型、修改Makefile、移植命令函数集以及调试过程。通过这一过程,读者可以理解BusyBox中命令扩展的完整流程。
摘要由CSDN通过智能技术生成

BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军;简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。

命令执行中的函数调用梳理

BusyBox中实际执行的各个命令都是link到/bin/busybox,其关键代码就是libbb/appletlib.c


在这能够看到主函数main,然后就是根据命令匹配对应需要执行的函数了。

该main函数是BusyBox的main函数。argv[0]是applet_name,即实际的命令名称。比如「/bin/ls」的情况下,applet_name就是「/bin/ls」。用bb_basename函数去除applet_name中的目录名,得到命令名。「/bin/ls」的情况下,就是「ls」。通过run_applet_and_exit调用对应的Applet。实际调用的是<Applet名>_main这样的一个函数。比如applet_name是「ls」的情况下,调用的函数就是ls_main。

如果在源代码文件「coreutils/ls.c」下,我们就可以找到以下的函数定


上面简单的介绍了bosybox命令的调用流程,那么要添加命令还要增加命令对应的函数集,增加了函数集,还要增加函数集的编译链接及所需的依赖关系。

下面是扩充命令的步骤:

1,编译菜单中添加命令。

2,制作扩充Applet命令的原型。

3,修改Makefile增加函数集依赖关系

4,移植命令函数集

5,调试扩充Applet命令。

那么下面以增加tcpdump为例,一一对步骤进行实例讲解。

1,编译菜单中添加

在bosybox目录下增加二级目录tcpdump,

然后增加Config.src

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值