Edit: from the linked Seattle Times article:
I asked Goldman Sachs about what happened in the 2004-2005 time frame -- as seen in the above chart -- that made Apple's vendor share jump, Microsoft's share plummet and the "other" category to go from zero to 29 percent. Goldman Sachs replied that it has to do with more mainstream adoption of non-PC consumer computing devices but declined to elaborate beyond that.
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.
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.
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 ;)
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.
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)
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.
It's a win win :)
You can't get shell on the gas station pumps I did either, but they run on linux.
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.
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.
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.
The article splits the world in a way which justifies the desired conclusion. It reminds me of the way the Amiga press used to hype even the most indirect cultural references as evidence of its impending success (yes, I know the scale was different, it's the behavior which is parallel).
Traditionally, programmability has been the consideration when determining what constitutes a general computing device. Browsing the web or reading email are not.
What deserves analysis are the premises upon which the conclusion about Linux has been reached. The basis upon which the conclusion about Linux has been reached relies on a special definition. When an argument relies on changing the meaning of words, its honesty is suspect.
But considering the source (Gartner) it's not surprise really.
Microsoft's share of the pie has dropped, but the pie has exploded in size.
FY 2000: $22.96 billion
FY 2012: $73.72 billion
Now, I'm sure financial geeks will pick holes in this simple comparison. And of course I realize that company revenue is heavily weighted by Windows and Office, and increasingly servers and tools, and much less so by direct consumer purchases.
I use Linux, I like it, but please stop to remember every day that Linux is the best and in a position of global leading.
And while the Mach project used a BSD userland, Mach is not really "BSD-based" other than in terms of interfaces to userland - it is based on Carnegie-Mellon's earlier "Accent" project.
And Wikipedia disagrees with you about Mach. It says Mach was the "logical successor to Carnegie Mellon's Accent kernel" and that Mach was based on BSD4.2. Though Wikipedia could obviously be wrong.
What was the question again?
The important bit is "right now". It used to be competitive before IE6's stranglehold. And today, we can see a single implementation rapidly rising in marketshare, if that continues then we may have a non-competitive marketplace in the not-so-far future.
In fact already right now WebKit has a dominant position in mobile, and many sites only work in WebKit.
So even if the market is fairly healthy right now, we still need to be careful that doesn't change. The current trend hints that it will.
That's when you do really want to go back to the late nineties, on Usenet, where all the MS fanbois kept singing: "Nothing to see, move along, Unix is dying and Windows is going to conquer everything, including the server space".
How farsighted these where uh!?
And that's in not even 20 years. I can't imagine how the landscape shall look like in another twenty.
"90's" with "teens."
"Usenet" with "HN."
"MS" and "Windows" with "Linux."
"Unix" with "Windows."
In the nineties, Linux/OSS wasn't as mature/widespread and hardware for small devices sucked in performance and price. People wanted OSes and shit that just "worked". Installing and configuring "alternate" OSes in the '90s was painful even for experienced professionals and hobbyists. And the applications and user experience wasn't that great compared to what we have now.
Now days I can install Linux on a mainstream laptop, restrict Windows to a VM and actually get shit done without any or that much pain.
Though Linux has gotten easier to install, the average computer user is relatively less proficient than they were a dozen years ago.
Linux is not tailored for most people because of its fragmentation and the depth to which FOSS ideology drives its development. Supporting Linux is bothersome to the point that Red Hat run a lucrative business doing so.
I'm not sure what you're trying to say with this.
Supporting Windows is bothersome, to the point that thousands of companies run lucrative businesses doing so.
My personal experience is that supporting Linux in a business setting can be done with far fewer people than supporting Windows, and that seems to be a common experience.
Have you tried installing Linux lately? The Ubuntu installation is simpler and faster than a Windows install and on par with OS X. At best, it's hard to get users to download an ISO and know how to burn it (even though that functionality is built into Windows/OSX/Linux), but even then Wubi is dead-simple to use.
But installing software being easy at Windows? The main reason I switched to using Linux as my main system is due to the vastly improved process of installing software. Windows has not improved in this area much in recent years (though many other aspects of it has).
>Installing additional software on Windows 8 is vastly easier.
huh? Besides the fact that I can install every application I need in a single command in a few minutes, or despite USC's one-click install of all software... Windows requires either independent one-off nuanced installers or require using the Store that has hardly any apps and requires you have and link a Microsoft Account.
Get it straight because as the article stands, it's unresearched garbage.
Perhaps this is just the operating systems course I took in college talking, but I recall that an operating system is defined not by the programs in user space, but rather by how everything is handled behind the scenes; in kernel space.
Process management, threads, interprocess communication, memory management, the file system structure, input/output, network primitives... Aren't these responsibilities of the operating system? All of these programs and low level interfaces are provided by the operating system, and thus by Linux and not by the GNU utilities.
Perhaps some people consider the kernel to be the OS and the userland to be whatever else. I am much more bent towards the thought of an actual distribution being the OS, and the underlying kernel being just one part of the OS as a whole.
> Process management, threads, interprocess communication, memory management, the file system structure, input/output, network primitives... Aren't these responsibilities of the operating system?
they are, and they don't need to be in the kernel, which would be enough to say that a kernel is not an OS.
Even ignoring stuff like user space drivers/FS/network/threads, you usually use some user space APIs to interface with the kernel.
And maybe you need something to actually be able to launch programs, an init system, some login process etc..
FWIW, the definition I had in school(s) was more loose, on the likes of "the OS provides the basic functionalities to run and control programs".
Your statement is pretty condescending. I'm not sure what I said to deserve that.
"The OS is way more than the kernel. Device drivers for example. Compilers..."
Your first sentence makes a broad generalization. As far as device drivers go; the operating system provides the interface for such drivers to be programmed and work together with other devices in a way that should be transparent to the programmer. This is part of the I/O system that an OS should provide. Classic OS responsibility, but not "way more than the kernel". The interfaces are provided by the kernel.
As far as compilers go, I obviously agree they are a necessary component of any extensible platform; but they are not 'technically' ran in user-land. They ARE application/user programs! They are not part of the operating system.
If you insist on playing the "technicality" card here, you can't have it both ways.
There are tons of devices that run Linux that don't include GNU tools.
I've personally ported Linux to devices that didn't run any GNU userland at all, yet that had a recognizable Linux/Unix-y interface.
For many applications, the differences in kernel will in fact matter more in terms of portability than the userland will - I've written more than one application where I had to deal with differences between BSD vs. Linux kernels, for example, but where the userland didn't matter one iota.
Hmm. Does anyone know if someone has tried to make a Linux dist based on the similar tools the BSD world have?
I realize they probably would have to be modified quite heavily considering the architechture of BSD, but I've seen stranger things done in computing :)
A world of Android-devices disagree with your definition of "useless". And so does my router and NAS (which both comes with Busybox, not GNU tools).