Forum: Apps
Topic: Busybox
started by: brymway

Posted by brymway on Mar. 06 2008,00:46
I'm so new I don't even know if this is in the right sub-forum.  Someone told me that DSL uses Busybox as opposed to Bash.  I read on past post's that it did and I wanted to make sure that it still uses Busybox; which would explain why some commands from my new Bash book don't work.  I'll make this easy.

yes-means we still use Busybox

no-means we now use Bash or something else.



Posted by mikshaw on Mar. 06 2008,01:24
Sorry, but we can't answer with "yes" or "no" if you are going to interpret it that way.  Bash and Busybox are unrelated.  Bash is a command shell, which is necessary in any nix system. DSL includes bash, ash, and ....uh...something else.

Busybox is a program that is used to replace some of the standard nix tools with a smaller package. DSL also has Busybox.

There is no "Busybox as opposed to Bash", since they are two separate tools that provide two separate functions.

Posted by brymway on Mar. 06 2008,02:28
ROFL....and to think I thought I was getting somewhere.  WOW.

OK, nevermind, for now.  I can't even ask an intelligent question in response to your response.  LOL...

Thanks for the response, though.

Posted by ^thehatsrule^ on Mar. 06 2008,04:10
Perhaps you were looking at shell built-ins?  Since some of which will override binaries (such as echo I think) depending on the setup.

Or perhaps the fact that busybox can also be compiled so that it can be a shell? (iirc ash).

For DSL, there has always been the option of 'upgrading' to the coreutils to their gnu counterparts (gnu-utils) to replace busybox ones, and there are also various other shells available.

So I guess I can see how it can be confusing for you!

Posted by brymway on Mar. 06 2008,04:37
*howling* stop, you're killing me.  LOL  They're coming to take me away, haha, hoho,heehee.....
Posted by mikshaw on Mar. 06 2008,13:34
Or perhaps the fact that busybox can also be compiled so that it can be a shell? (iirc ash)
I didn't know that. This bit of info is plenty to make the original question a possible "yes" or "no" in some cases.

Posted by curaga on Mar. 06 2008,13:48
I'm guessing some commands don't work as they were added in Bash 3.0 and DSL has 2.04. For example this needs the newer bash:
echo {1..3}

Posted by mikshaw on Mar. 07 2008,00:04
DSL (4.x anyway) has Bash version 2.05b, which has been used in practically every distro for years. Only recently as version 3 been becoming common.

I can't think of any situation that isn't distro-specific where Bash 3 commands are used yet.  Generally I'd encourage not using Bash-specific (much less Bash-version-specific) commands for anything but personal scripts or those that are written specifically for a system with Bash3 as the default. Anything you can do with Bash3 can be done with other bourne-compatible shells, just not always in the same way.

Bash built-ins might make things easier for the individual user, but they make things more complicated when you try to write for multiple users of multiple systems. sh is available in *every* Linux system (except maybe for a few that are custom-built, but the users of those had better know something about their shell). If you make any script that you hope to be portable to another distro, you definitely should stick to pure bourne.

Posted by ^thehatsrule^ on Mar. 07 2008,03:12
I agree with you mikshaw.  Afaik certain shell-specific built-ins can take up more resources too.  For larger, mainstream distros I think I've seen bash v3 become the standard over ~2 years or so.

For DSL, I played around with replacing bash entirely by a replacement (bourne) sh shell, but I forget whether I posted about the idea of replacing bash v2 in the base DSL.  Could be that I didn't because there was an existing thread or that I had no "real" benchmark (perhaps Curaga's thread on bootchart would help here).  In any case, I am pushing the idea out here.  Didn't do much testing though.

A real-world distro example would be how Ubuntu included 'dash' in edgy - iirc it's a BSD port and is what /bin/sh defaults to.  For now, all I can say that it requires fewer libs and is smaller in size, and that it could result in speed-ups.  Saying that, it does have it's own problems and differences from my experience with it.

Posted by brymway on Mar. 07 2008,04:21
So if someone wanted a solid list of what we are using, I'm using DSL 4.2.5, is there a better list of the commands and their clear usage or could that someone just muddle thru with the basic Bash commands?  I have seen quite a few "Bash" commands that don't work in dsl, that's why I'm asking.
Posted by andrewb on Mar. 07 2008,05:18
try 'bash -c help' and 'busybox' this will give you a complete list of the commands in use.
Posted by brymway on Mar. 07 2008,05:28
Ok I did that.  The common "ls" command was found in the busybox list, not the bash list.  Does that mean when I type "ls" it is linking to busybox for that function?
Posted by curaga on Mar. 07 2008,08:49
Posted by chaostic on Mar. 07 2008,09:10
Just to note, DSL 3.x has Bash 2.05b, just like OSX.3 and OSX.4 have Bash 2.05b. I think OSX.5 has Bash 3, but eh.
Posted by jpeters on Mar. 07 2008,16:18
Quote (brymway @ Mar. 07 2008,00:28)
Ok I did that.  The common "ls" command was found in the busybox list, not the bash list.  Does that mean when I type "ls" it is linking to busybox for that function?

to find the path:
"which ls"

to see the link:
"ls -l /bin/ls"

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.