ash applet and other applets
Denis Vlasenko
vda.linux at googlemail.com
Mon May 21 17:27:53 PDT 2007
On Monday 21 May 2007 19:43, William Thompson wrote:
> When I configured older versions of busybox (v1.0), I enabled
> CONFIG_FEATURE_SH_STANDALONE_SHELL so that I wouldn't have to have links for
> all the applets I compiled in.
>
> I'm now trying 1.5.0 but I'm not having any luck with this.
>
> To test it, I chroot'd into the busybox directory like this:
> chroot . busybox ash
>
> Here's what I'm seeing:
> %m:%~%# ln
> %m:%~%# cp
> %m:%~%# ping
> ash: ping: not found
> %m:%~%# busybox ping
> %m:%~%#
PREFER_APPLETS + STANDALONE_SHELL has three modes of excuting applets:
1. NOFORK: just call <applet>_main()
2. NOEXEC: fork, call <applet>_main(), exit
3. fork + exec /proc/self/exe
(1) and (2) do not require /proc, but work only for limited
number of applets (because applet's code should be written with
special care if applet is eligible to NOEXEC/NOFORK trick).
(3) requires /proc
If you want ping to work without /proc, send a patch which will
make it NOEXEC. Or NOFORK, but that is harder to do right
(and code is sligtly bigger).
--
vda
More information about the busybox
mailing list