It's also using most of the standard GNU tools - bash, etc. You can open a shell on a rooted android device and use it much like any other distribution.
This is a huge win for Linux.
It's also using most of the standard GNU tools - bash, etc. You can open a shell on a rooted android device and use it much like any other distribution.
This is a huge win for Linux.
Assuming, of course, that you can actually root it.
"This is a huge win for Linux."
Is it? What was won, exactly? If we are not seeing a more vibrant free software ecosystem as a result, then we did not really win anything. The prevalence of app stores, the number of Android devices that are difficult to jailbreak or for which no jailbreaking tools are available yet, and the partitioning of "users" and "developers" in the Android ecosystem are not positive things for Linux or for GNU.
The sad fact is that you simply cannot handle root shell to an average consumer. The only result of that is a security hole because the user is grossly uneducated (the question whether he should be educated is for another time).
Regarding the bootloader lock/root, you have to commend Google for offering great, and easy to unlock & root phones off the shelf. The fact that US cellular market is screwed with subsidies and carriers making it hard to root phones is a whole different issue - that's really not Google's fault. It's also definitely not the case elsewhere (e.g. in Europe, where my experience comes from).
And I also think this is a much better state than if all those phones run Windows ;)
Consider a world without Android, in which the new, dominant computing platform is an Apple monoculture far more locked down and exclusionary than Microsoft ever dreamed of being in their desktop heyday.
Maybe Android is not ideal, but life tends to involve a lot of messy choices. The fact that they are messy doesn't mean that there aren't still important distinctions to be made.
Note that there are several issues: Rooting is often reasonably easy. But rooting is not enough to be able to install custom roms. For that you also need to be able to unlock the bootloader. There's any number of obstacles.
That said, there are tons of easily rootable and unlockable devices out there, so it's not really a big problem for those of us who insists on one or the other.
Especially with more and more higher end devices coming out of non-descript Chinese manufacturers who couldn't give a crap about the carriers desires, and which will start being "good enough" for more and more people (my new phone is Star phone that looks exactly like the Samsung Galaxy SIII, and while it don't perform as an SIII, it beats the pants of my 2 year old HTC Desire HD in every way and cost a fraction of what my Desire HD did)
You can't get shell on the gas station pumps I did either, but they run on linux.
EDIT: This article's extreme focus on the consumer mobile market is pretty narrow-minded, though: "There’s no denying the success of Linux in many areas, with Android being the foremost example." No, if you want to see where Linux really dominates, look to HPC and embedded systems.
As for lacking basic utilities, it seems to be a problem depending on your firmware. CM10+ comes with a lot more basic stuff than just plain busybox. I know my Samsung Galaxy S came with almost nada (meaning I needed to install busybox, it wasn't preloaded).
Anyway I now use the Transformer as my main SSH terminal. From the terminal emulator. Like on a normal Linux desktop.
I also use it for finding and grepping stuff in my user/data-folder. If I am to copy things to or from the SD-card in the Transformer, I also find myself prefering to do things via the command line, much like I do on a normal Linux desktop.
As for the phone, I can't say I use it as much there, more for stuff like looking up my IP and MAC via ifconfig etc.
But lacking tools is a problem which can be solved. If you buy "Better Terminal Emulator Pro" ($5-ish) it will offer to download and install a better, more complete (and cross-firmware consistent) set of user-space tools, including stuff like ssh.
https://play.google.com/store/apps/details?id=com.icecoldapp...
It's a win win :)
I'm not saying Android isn't good for Linux. I also do appreciate the ability to read and learn from the source code and modify it.
They have a version of the Ash shell, Berkeley licensed, with the original notice by Kenneth Almquist. The Busybox Ash is also derived from the same origin.
As others have pointed out, they also have their own libc.
Most of these decisions seem to have been made to avoid using the GPL outside of the kernel. And a custom libc seems to entail that patches have been necessary to enable some of the standard GNU based tools they do have. If I understand correctly, mainly because of Bionic, you often can't just take a standard piece of Linux userland software and make it work without modifications or without including the GNU libc.
Also because of avoiding the GPL, the hardware driver model is different, with most of the driver logic being in closed source userland code.
The filesystem layout is non-POSIX-like, the way the user accounts and processes are handled is non-standard, they have their own dynamic linker, etc. Not to mention that a large part of the system relies on their Dalvik (Java) virtual machine, with a large application framework implemented in C++ and Java through JNI.
I'm not familiar with the embedded Linux landscape, so I don't know if this heavy avoidance of the GPL is common there. But I do know Android does not resemble GNU/Linux for these reasons.
Actually, I'm pretty sure it uses Busybox tools with ash, not GNU with bash.
http://www.gnu.org/philosophy/android-and-users-freedom.html
Android does use GNU gcc, but not glibc or GNU tools - it uses a custom libc called Bionic (BSD-licensed) and mksh + busybox for tools (also BSD-licensed).
You don't even have to root it to play around with the shell (although you can't do much). Much to my dismay, the standard busybox does not even come with awk. :(
> This is a huge win for Linux.
Yup.
Nope. Android does not use GNU. It is not just a GNU/Linux distribution, it is a completely different operating system, even more different than other alternates to GNU such as Busybox if you consider the philosophy of the whole thing. GNU's Not Unix, but a little bit anyway. Android is not Unix, no matter from which angle you view it.
This is the nub of the matter. It's not a free system because of the ludicrous hoops you have to jump through in order to actually get to the Unix underneath.
Just download Terminal Emulator from Google Play and you are good to go. If you have a fancy phone and a USB OTG-adapter, you can actually hook up a keyboard as well, and you now have a text-mode Linux computer with a tiny, tiny screen.