[lug] Android comparisons

Jeffrey Haemer jeffrey.haemer at gmail.com
Mon Aug 16 06:01:35 MDT 2010


> Android if a far cry from "just a LInux box".  Yes, it runs Linux, the
> kernel.  But that's about it.  You won't find any of the usual Linux
> utilities installed.  The start-up is very different.  I don't even
> know if bash is installed.
>

Android uses busybox, whose shell is ash.

Busybox wraps together all sorts of Linux commands into a single, statically
linked executable.  How it acts depends on argv[0].  Link it to /bin/mv and
it acts like mv; link it to /bin/cal and it acts like cal; and so on.

(It comes from Bruce Perens, a high-profile, open-source guy who also wrote
Electric Fence, which was, I think, the first, popular memory-leak
detector.)

Embedded Linux devices typically install busybox, for the basics, then build
from there. Standalone utils on desktop boxes or servers have more
functionality than their busybox equivalents, but pouring each, one-by-one,
into a phone or a TV or a router would take up even more space and be a lot
more work.

It's about 50% bigger than bash, but (1) the shell's just one piece of it
and (2) that's comparing a statically linked exe to a dynamically linked
one.

I can get to the shell on my Android, and run exciting commands like "date",
but the phone comes with a big clock in the middle of the display, so who
cares?   Knowing that didn't stop my obsessing about doing so until I'd
found a way, but you know how that is.

You don't need an embedded system to play with busybox.  I've installed it
on desktop boxes with yum or apt-get.

It doesn't replace the utils you have, though I suppose you could do that,
too, if you wanted to.  Once you install it, you can play with busybox
versions of commands with invocations like "busybox ls" and "busybox sh".

The busybox I've installed on this netbook says it supplies these utilities:

[, [[, addgroup, adduser, adjtimex, ar, arping, ash, awk,
 basename, brctl, bunzip2, bzcat, bzip2, cal, cat, chgrp,
chmod, chown, chroot, chvt, clear, cmp, cp, cpio, crond,
 crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap,
 echo, ed, egrep, eject, env, expand, expr, false, fbset,
fdflush, fdisk, fgrep, find, fold, free, freeramdisk, fsck.minix,
 ftpget, ftpput, getopt, getty, grep, gunzip, gzip, halt,
head, hexdump, hostid, hostname, httpd, hwclock, id, ifconfig,
 ifdown, ifup, init, ip, ipcalc, kill, killall, klogd, last,
length, less, linuxrc, ln, loadfont, loadkmap, logger, login,
 logname, logread, losetup, ls, lzmacat, makedevs, md5sum,
mdev, mesg, microcom, mkdir, mkfifo, mkfs.minix, mknod,
 mkswap, mktemp, more, mount, mt, mv, nameif, nc, netstat,
nslookup, od, openvt, passwd, patch, pidof, ping, ping6,
 pivot_root, poweroff, printf, ps, pwd, rdate, readlink,
realpath, reboot, renice, reset, rm, rmdir, route, rpm,
 rpm2cpio, run-parts, sed, setkeycodes, sh, sha1sum, sleep,
sort, start-stop-daemon, static-sh, strings, stty, su, sulogin,
 swapoff, swapon, sync, syslogd, tac, tail, tar, tee, telnet,
telnetd, test, tftp, time, top, touch, tr, traceroute, true,
 tty, udhcpc, umount, uname, uncompress, unexpand, uniq,
unix2dos, unlzma, unzip, uptime, usleep, uudecode, uuencode,
 vconfig, vi, vlock, watch, watchdog, wc, wget, which, who,
whoami, xargs, yes, zcat

Geez.

-- 
Jeffrey Haemer <jeffrey.haemer at gmail.com>
720-837-8908 [cell], http://seejeffrun.blogspot.com [blog],
http://www.youtube.com/user/goyishekop [vlog]
פרייהייט? דאס איז יאַנג דינען וואָרט.
*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lug.boulder.co.us/pipermail/lug/attachments/20100816/d9719b06/attachment.html>


More information about the LUG mailing list