-------------------------------------------------------
本文系本站原创,欢迎转载!
转载请注明出处:http://sjj0412.cublog.cn/
-------------------------------------------------------
我们知道当我们在shell下键入命令时,是shell创建一个进程运行对应你键入的程序,可想而知,这些命令程序之间没什么联系,故他们之间公共的代码需要在每个命令二进制程序中都有拷贝,而busybox相当于shell下各种命令的集合体,我们可以看成是它们链接而成的,这样这些命令之间公共的部分就只有一份拷贝了,从而可以减少这些命令程序的二进制文件总量,这些在象嵌入式系统这些资源紧张的系统中是很有必要的。那busybox又是怎样区分不同命令的呢。有两种方法:
1.用busybox 命令(如ls) 命令的参数
2.通常用的一种是
ln -s busybox ls
ls -s busybox 命令
为每个命令建立一个链接文件
执行时就执行./ls命令就可以
第一种方式实现原理很容易知道,命令是作为busybox的参数传入,然后就可以调用具体参数对应的名利。
第二种方式可能难理解一点,由符号链接我们可知,当键入具体命令时,都是执行busybox,如当键入ls是,由于ls是busybox的链接,其实执行的是busybox,那怎样来区分不同命令呢,其实当我们键入ls,ls这个字符串就作为busybox的第一个参数传入了,只是它隐晦一点,在第一种情况下,命令是通过第二个参数传入了。
阅读(2986) | 评论(0) | 转发(2) |