5 Answers
5

"Rooting" allows you access to the internal Android environment, which of course consists of more than just the Linux kernel. So you are running Linux, but you should consider it as though you are running under a different distribution than say Debian or Redhat.

There's a different set of standard libraries and some files are in different locations. At least on my Droid ext2 support is not built-in by default. There is also no init or cron. The full set of Linux modules is not available unless you compile them yourself and put then in /system/lib/modules. Important ones you may miss on standard ROMs are cifs, ext2, tun, and others.

Most, if not all, phones running Android are ARM CPUs. So the binaries you run on them must be ARM "EABI" "soft-float" binaries. If you have the source you can cross-compile whatever utilities you need, but read on.

There are many standard commands and utilities available in the /system/bin directory such as grep, ps, cp, rm, mv, ls, ip, even vi. You have enough to get by until you...

...use the "Linux Installer" utility to install a chroot'ed Debian environment. Debian has supported ARM for a while. It takes some work, but if you can root your phone, and have a sizeable enough SD card, this is the way to go.

This is close to a standard Linux system and under it you can install and run Ruby. Of course CPU and RAM limitations come into play.

Ruby has not been ported to Android, though you might want to check out Ruboto. For simple editing there are a few options, but I don't believe emacs has been ported either, there are no Market results anyways.

Rooting might provide you the ability to run Linux on your phone, but Android is not Linux. Its kernel is largely based on the Linux kernel but that's about it. You cannot run any Linux application with a GUI on Android, it would need to be rewritten. I'm not sure to what extent native command line apps would need to be rewriten, though of course they would need to be recompiled.

You can install a working debian distro on your phone without upsetting the distribution on the phone already. This way you'll have a full userland with stuff you're used to on any other Linux box. You should ssh into your phone to use this comfortably.