There’s more to the platform wars than mobile – Android is starting to take off in non-mobile markets in a massive way – Internet of Things, Television (Chromecast), etc. To date Linux has been the dominant OS but Android is now taking some embedded designs which would have run Linux. The effective decoupling of Android from carriers for non-mobile markets + the richness of tools and the existing developer ecosystem will likely cement Android as the definitive open source OS of the next decade. This will have pluses for Google but also unintended consequences.
A common misconception among people who don’t really understand what Linux is – one that I’m seeing pop up more and more now that people are trying to paint Android in a negative light – i.e., as competition to not just iOS, but also the noble and open source Linux.
Repeat after me: Android is just as much ‘Linux’ as Ubuntu, Debian, Red Hat, or anything else that uses the Linux kernel. Technically, a better term would be ‘Linux distribution’, since Linux in and of itself is just a kernel. Wikipedia defines ‘Linux distribution’ quite well:
A Linux distribution (often called distro for short) is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications. These operating systems consist of the Linux kernel and, usually, a set of libraries and utilities from the GNU Project, with graphics support from the X Window System. Distributions optimized for size may not contain X and tend to use more compact alternatives to the GNU utilities, such as BusyBox, uClibc, or dietlibc.
Android is a Linux distribution, and is an addition to the Linux ecosystem – not a challenger. Painting it as such is just a sign of ignorance.
Try running a couple software which you can run without trouble in any conventional linux distribution. Open office? Gimp? Nano? Vim?
Saying android is linux is like saying rolls royce is a car. So is trabant. The statement is literally true, but devoid of any meaningful purpose.
Thanks for clearing that up. Can you now help me install Open Office on my new linux-powered rifle?
Edited 2013-08-19 17:59 UTC
Suddenly all the work RMS did to properly prefix system with “GNU” makes sense. GNU/Linux is as much Linux as Android/Linux. We need to clearly state _which_ Linux we are talking about.
Except that Stallman is just sore about how, with all the effort he put into GNU, Linux got all the glory. GNU is a relatively small portion of the codebase these days and GCC is most of that. By his logic, it should always be called (at minimum) “X11/GNU/Linux”, spoken as “X11 on GNU on Linux”.
Obviously, not something that’s ever going to happen when the average human looks for two- or three-syllable names. (Win-dows, Lin-ux, Mac-OS, O-S-X, An-droid, U-bun-tu, etc.)
(It’s one reason I’m glad things like LLVM are slowly squeezing the remaining “fewer LOCs than X11” of GNU out of Linux distros. It’ll end this pointless nomenclature argument.)
Hence why people use “Android” to refer to the Java-centric, bootloader-locked platform with the “incomplete but liberally licensed” libc and “Linux” to refer to the ABI of the X11+glibc+Linux stack which usually also comes with the rest of the GNU userland.
As long as your glibc replacement is good enough to meet the needs of the applications you’re running on it, the use or non-use of a GNU userland has little to no effect on the “Linux” ABI.
The ABI we care about is more correctly named “X11/Linux” if we’re going by Stallman’s “GNU on Linux” pronunciation. In fact, if you look at build identifier strings (or similar things like browser User-Agent strings), that’s how it’s identified.
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20130731 Firefox/24.0
What name should we use for people running “Android” on an unlocked ‘phone?
That’s the way I’ve always seen it; Android is the userland, Linux is the kernel.
However, the kernel used in Android –especially of late– is heavily modified from the stock Linux kernel, particularly compared to other mobile Linux-based platforms like Maemo and WebOS. This is not a complaint or negative criticism, just pointing it out.
What are you talking about, Open Office/ Gimp all use X-server, so those are out because it doesn’t use X-server. Neither do my production servers… Are they not linux?
And actually my cyanogen phone here *does* run vim and nano. Thank you very much.
Saying Android is *not* linux is like saying that a Rolls Royce is *not* a car. Its not devoid of any meaningful purpose, its just wrong.
Yeah, put words in people’s mouths. That’s the way to go.
Who said “android is not linux”?
What is the point of that statement if not a counter argument to “Android is Linux”?
None of those applications are linux or even *nix specific.
I going to say this maybe in another way.
What makes Windows for example Windows? It certainly isn’t the kernel for most people … it is the user interface, system libraries etc.
I think that is how some people feel about Android. I think GNU/Linux is silly.
But like MacOSX and iOS it doesn’t necessarily have to have unix underpinnings to work like it does for most of the people that use it.
I think the truth of the matter is: end users don’t care about kernels as long as they work.
That makes a lot of sense. I think I’m coming to the conclusion that nothing else will in this conversation, other than what Thom said. There is very little room for logical argument here as its about definition. And Thom is being very textbook. Countering that with an attempt to redefine things based on one’s feelings or experiences isn’t fertile ground for productive discussions.
I agree somewhat.
I think it is okay for it to be subjective, and I think it is a fertile ground for discussion. People’s perception of what something is, is something that is important IMO.
But tbh this is turning into a different discussion.
I disagree. There is nothing fertile about a “discussion” that devolves into my-opinion-is-superior-to-yours, when one of the camps sticks to pedantic text-book definition and the other camp sticks to the subjective definition of what they’re used to calling what. It just makes no sense. Both of the camps are right; Linux IS just the kernel and nothing more, and yet Linux IS generally associated with a GNU/X11/Linux – distro and comes with a certain way of behaviour and operational requirements.
Well then both sides are being childish … that doesn’t mean it can never be productive.
Apps.
Without apps Windows is just another OS like you can see with Windows RT.
True, calling Android Linux is like calling a Nokia phone a “Windows” Phone.
Actually, no, saying that Android is not Linux is not at all like saying that a Rolls Royce is not a car.
Unless you are going to make up a new definition of the word “Linux” then it refers to one of two things (I think two things are already enough).
The first thing that “Linux” can mean is the kernel (you can argue that technically this is the only meaning). In that context an operating system is more than its kernel. Saying that Android is Linux would be like saying that a car is an engine. Obviously a car is not an engine, though a working car will contain an engine. So in this sense Android is not Linux.
The second thing that “Linux” can refer to is the operating system that has been popularized under the term “Linux.” Android is a different operating system than the operating system known as Linux, so in this sense also Android is not Linux. To continue with the analogy, if you take a Jeep and put a Ford engine or a Chevrolet engine in it (both of which I have seen done), it doesn’t turn the Jeep into a Ford or a Chevy.
Yes, Android is a Linux based operating system. No, it is not Linux.
You can run openoffice and all those other tools on android with no problem. The only difference is that android doesn’t include the same set of userland libraries as typical linux distros do, so you’d have to install them yourself if you want to run them on an android system.
You can even take an entire standard linux distro like ubuntu or debian, and run it inside of a chroot on an android phone.
and you can bundle libraries, dependencies into the apk. The main problem of OO.org is the not so mobile friendly UI.
Since both a car and a boat can use the same engine, you can build an amphibious vehicle that uses that engine. That amphibious vehicle is both a car and a boat. That, however, does not make all cars into boats or all boats into cars.
Similarly, the fact that any Android operating system can be made into both a GNU/Linux and an Android operating system or that any GNU/Linux operating system can be made into both an Android and a GNU/Linux operating system does not make Android and GNU/Linux the same operating system.
There are embedded Linux distros where you can’t run those programs either so I guess they’re not Linux?
Conversely, all of those programs run on Windows so…Windows is Linux?
Linux is a kernel, not an operating system. Android is using the Linux kernel so it’s a Linux-based operating system.
I bet most of them contain BusyBox, which is basically a stripped down GNU toolchain packed into one little embedded-device-friendly executable file, offering nearly complete traditional UNIX/Linux shell functionality. And even then, some embedded distros designed for more capable embedded devices may go all the way and have the actual, complete GNU toolchain.
But yeah; to be fair, in this case, the reason you can’t run an complete office suite or an image editor is more a result of the weakness and lack of resources than the OS itself. No one in their right mind would even attempt to fire up the GIMP or even just X.org on a WRT54GL or something even remotely similar, and the Linux-based firmware it uses is most definitely not the main bottleneck of such a system.
I agree, Thom misses the point again. Saying Android is just another Linux distro is like saying Linux and Windows are just examples of bit manipulation systems.
Vim has a great port to Android, and a Libreoffice port is coming.
There is also a port for Windows. doesn’t mean they are the same OS
Absolutely. What does it help anyone if somewhere down below Android is Linux. If you can’t run any linux desktop apps on it and you can’t run any Android apps on desktop linux then they are incompatible!
> Repeat after me: Android is just as much ‘Linux’ as Ubuntu, Debian, Red Hat, or anything else that uses the Linux kernel.
I love Linux but I hate Android. Thanks to your comment, I was just able to figure out why.
I don’t just love Linux. I love Linux, GNU, and the Filesystem Hierarchy Standard.
That’s why I prefer Maemo, and that’s why I’m waiting for SailfishOS / Jolla. It’s Linux like all the other Linux distributions.
Edited 2013-08-19 17:50 UTC
“standard”?
Haha.
Yes, standard.
When I use a new Linux distribution, I already know where most files are located because of a standard.
That same hierarchy allows me to install the software that’s made “for Linux” on any Linux distribution without modification, except Android.
Did I use the incorrect term? Is it called something other than the FHS?
That’s the part of Linux I dislike the most.
Do you like the filesystem hierarchy that Android has?
I like the file-system standard that GoboLinux has best: http://wiki.gobolinux.org/index.php?title=The_GoboLinux_Filesystem_…
Does that make it less Linux tho?
Considering GoboLinux seems to be dead and their idea of a Mac-like filesystem didn’t catch on in the Linux because no distributions that I’m aware of that have adopted it, then yes, I think that does make it a bit “less Linux.” Well okay, more “unlike” than “less” but you get the point.
But more seriously (yes, I was being a bit sarcastic there), GoboLinux seemed like an interesting idea back when it was being developed… it is a shame that it didn’t catch on. But on the other hand, the FHS really is a “standard” compared to Gobo’s set of patches that no one else uses, and there can already be enough variation in different distributions’ interpretation and take on the standard, so in a way it’s probably good that there’s not another (only this time totally different) filesystem to confuse people and cause even more major schisms.
Distros like Fedora and Ubuntu cause enough quakes in the Linux community with their frequent drastic changes made only for the sake of being different and bleeding-edge, which are often (and IMO for good reasons) not adopted by other major distributions. Just wait, one of the two distributions I just mentioned will probably try to reinvent Gobo’s file system. They’re both are trying to ditch X as fast as they can–and both are doing it in favor of two totally different, still-immature windowing systems. Meanwhile, Ubuntu doesn’t seem to think Debian’s package management system is Ubuntu-enough for them, so they’re already busy planning a replacement for the package format and installer. I honestly can’t help but think that the file system is probably coming up next.
Edited 2013-08-20 01:26 UTC
I’ve actually been secretly hoping Ubuntu would adopt Gobo’s file-system at some point…
It makes a lot more sense than the super-legacy filesystem we have from when it made sense to have /usr/bin and /bin separate, etc.
Not to mention how much better it works if you want to install multiple versions of the same application or library.
As for abandoning apt-get… I really wish they wouldn’t… Without it, Ubuntu goes down the road to madness that a lot of other Linux distros do (except for Debian and Debian-derived distros).
I don’t know… I think the FHS works pretty well. It could be cleaned up a bit maybe, and I think that is being done.
Haven’t some distros already started merging /bin and /usr/bin using various compatibility tweaks such as symlinking every file from one into the other? I’m on openSUSE and it seems that everything in /bin is a symbolic link, and I’m pretty sure I read that other major distributions including Fedora and Ubuntu are doing it (and probably already have, it’s been a while). And a few more distros that I can’t remember.
I think it’s a good step to make, although I personally would prefer /bin to be the standard, simply because it’s fewer keystrokes… LOL. Plus more seriously, it’s simpler–and IMO that’s one of the best traits of UNIX… its simplicity and the elegance that results from it.
Hmmm… I found an interesting topic on the FreeBSD forums on this subject:
http://forums.freebsd.org/showthread.php?t=27582
They bring up a good point; since Linux doesn’t have a sharp distinction between “base system” and “third-party” packages like the BSDs do, in Linux it really doesn’t make much sense to have both directories. On the one hand, putting everything in /usr/bin does make more sense as it cleans up the / directory and makes it smaller… but the problem I can imagine would be if /usr is not mounted. This might cause some new problems when /usr is put on its own partition, to make the / partition smaller.
Anyway, apparently Fedora, openSUSE and Ubuntu have already done it, Arch Linux was considering it (don’t know if they officially did), and I’m not sure about Debian. I don’t currently have a separate /usr partition, but I have at one point and I do like the idea of making / smaller. So, if this can be done without causing problems with installations using a separate /usr partition, count me in as part of the crowd that is in favor of the /usr/bin directory.
I do believe that this consolidation should stay far, far away from the BSDs though… their distinct separation of base and third-party would be eliminated if this same thing were to be done there.
Edited 2013-08-21 06:28 UTC
With arch, /bin, /sbin and /usr/sbin are all symlinks to /usr/bin.
/lib and /lib64 are symlinks to /usr/lib as well.
It works just as perfectly well as it did before the shift.
Put another way, I think that is pretty much exactly what this article is saying. In fact, it could have been written just like this:
https://www.gnu.org/gnu/linux-and-gnu.html
…or the many articles written condemning the use of “Linux” instead of “GNU/Linux” (or the reverse) but then it probably wouldn’t spark as many hits or comments. This article was probably just slyly and purposely written to be vague in order to start a heated debate on those two terms and their common but long-criticized interchangeable use.
My cousin owns a TV that runs Linux. If I had such a set, I wouldn’t say that I run Linux on my TV–I would say that my TV runs/is powered by Linux. But face it, that doesn’t mean much, because the old remote control is your interface and the only things you can do are adjust some basic settings and switch channels/inputs. The way I see it, the TV is what I use, and theoretically they should all work practically the same and as intended with the only differences being in flashiness and menu order, no matter what kernel is running behind the scenes. I wouldn’t consider myself to be “using Linux” when the kernel’s only purpose is to make the thing work.
Have you ever tried to look at the file-system in an android terminal? Looks much like any other Linux distrobution to me.
Never said Linux wasn’t part of the mix, but an android zip is 100MB to 200MB of stuff and Linux is 3MB. the remaining 197MB of stuff is nowhere to be found in any Linux distro. 90% of the system is totally different.
Edited 2013-08-20 09:05 UTC
Compressed archive file sizes may not be the best data set for analysis of the Android distribution is a linux distro versus Debian.
The Android distribution includes software that is not found in other distributions? So does the Kali distribution; includes some really interesting things not included in other distributions. Also lacks some interesting things regularly included in other distributions.
About all you can say definitively is that the Android Linux base distribution does not include things packages with some of the other Linux based distributions.
Yes.
Here’s a simple example of my point:
In Maemo, I wanted to make changes to the icons that were displayed in my collection of applications (change icons, remove icons…). I found the “.desktop” files in “/usr/share/applications” and was able to make my changes in “~/.local/share/applications”, just like I do on my desktop. I didn’t have to search for how to do it on the Internet, and I did using only the applications that came with the OS (Terminal, Vi).
Android is not Linux, Android is Google.
I actually feel at home and in control on a traditional Linux distribution (GNU/Linux for those who prefer), while I feel powerless and can never do anything on Andriod that I would typically do with no trouble on a “real” Linux distribution. I consider Android more of a toy than anything, and a dumbed-down, inefficient one at that. Yeah, it allows me to make my calls, and there are some unique and useful “apps,” but for any actual work, entertainment or web browsing… I’ll take a real Linux distro any day, complete with a big screen, a real keyboard and a mouse. None of that neutered crap with its own Google layer which effectively changes everything user-facing about it, combined with a crummy “touch” UI.
Edited 2013-08-19 17:56 UTC
I know what you mean…
I actually feel at home and in control in a traditional Ford truck (F-150 Pick-up for those who prefer), while I feel powerless and can never do anything on moped that I would typically do with no trouble on a “real” pick-up truck. I consider a Moped more of a toy than anything, and a dumbed-down, inefficient one at that. Yeah, it allows me to get from point-A to point-B, and it is capable of carrying some “passengers” but for any actual work, entertainment or freeways, I’ll take a real pick-up truck any day, complete with a big engine, a real steering wheel and a flatbed. None of that neutered crap with its own handlebars and levers which effectively changes everything user-facing about it.
LOL… I have never owned or considered buying a moped, but you’ve just made my decision to never even contemplate it in the future.
But I’m more into sports cars than pickup trucks, although trucks are definitely better for hauling shit… but seriously, this is getting ridiculously off-topic now.
And I wasn’t meaning to slam Android, I just think it’s ridiculous to lump such a completely different system that is much more focused with a traditional Linux distribution that is basically general purpose, much more flexible, and offers superior productivity. I own an Android phone and, with the current offerings of phone/tablet OSes, Android will likely be on my next phone as well. Who knows what will become of Ubuntu Touch and Firefox OS, but I would likely not just call those “Linux” either.
As I pointed out in my other post, I really think this article just amounts to the old Linux vs. GNU/Linux argument, just with a twist. I personally just say “Linux” for short when referring to the whole thing, and for that reason I would personally *never* refer to Android as Linux. Linux-based, yeah, certainly–but a totally different beast in terms of the way it acts.
I will just put it this way. Google, the maker of Android, is a corporation in the business of making money. They have their trademarks for a reason and I’ll continue calling it “Android,” not “Linux.” Android is Android, according to Google and their trademarks. And no doubt, in the name of $$$, they want you to look at it that way too.
Lets say I was offered some newfangled “Linux powered” smart microwave oven.
If it said “built on GNU/Linux”, I’d just read the man page (manual), insert yesterday’s turkey and reheat. First few attempts might end with turkey being too hot, too dry or too cold, but I’d be confident enough to let the thing do it’s job safely while I made drinks.
On the other hand, if the oven had a “built on Android” sticker, you can bet your bottom dollar I’d be checking it constantly, just to make sure it didn’t turn my turkey into some overburnt angry bird.
Edited 2013-08-19 18:04 UTC
“Linux” has always been a loaded word, meaning not just the kernel but userland and “collaborative” creation process (i.e. packaging OSS software written for “Real Linux”).
It’s fair therefore to say that Maemo and Ubuntu (even the mobile variant) are more “Linux” than Android. But Maemo is dead and Ubuntu mobile is not happening yet, so Android is “as much Linux as you are going to get”, unless you look into e.g. Jolla.
While Android uses Linux for its kernel pretty all the software that is commonly downloaded for it is built using the Java or Native APIs which are very android specific.
For all intents and purposes it doesn’t matter what kernel sits underneath, the Android API it could be the OpenBSD or FreeBSD kernel for all that it matters.
That is what people mean when they say it isn’t Linux.
It isn’t wrong to say it isn’t Linux as most people normally think of it, and it isn’t wrong to say that it is Linux.
It depends on your personal view what makes an operating system, the kernel or the APIs and the user land.
Ubuntu is trying to make it own os that happens to use Linux as a Kernel as well.
Edited 2013-08-19 18:27 UTC
Those people are dumb.
Just look at the replies above. They get a definition and still go on about “but it’s not Linux” just because they don’t get the default userland tools and utilities that come with a traditional desktop oriented distribution of the linux kernel.
Bolded for those that still can’t seem to grasp it.
I still can’t seem to grasp it. Could you please use italics too? And maybe underline it? Thanks!
And there is the small problem that the Android kernel is not the Linux kernel but a fork, and that most device drivers are not even open source (embedded chips produced in China, they don’t care much about the GPL)
So my install of Ubuntu is not Linux because I use the nvidia binary blob eh and because the Ubuntu kernel also carries some other patches that are not included in the mainline kernel ?
Who knew?!
NVidia does not violate the GPL, they just have a small open source part that expose a new kernel interface that their binary driver can use. The android device drivers do not bother to do that.
So now you accuse Samsung and other manufacturers of violating the GPL? Where’s your proof?
Try requesting the source code for your Android device.
Edit: The flagship devices can provide it (The Nexus devices are famous for actually abiding by the GPL). The problem is all the rest. The issue comes up when a user or third party want to change the devices. Most third parties are now forced to using the official Android kernel, because the drivers are only available as binary or sometimes obfuscated source code.
Edited 2013-08-20 10:38 UTC
Try requesting the source code for the nvidia proprietary drivers.
Didn’t android linux kernel merge into linux kernel mainline?
Parts of it, but not all of it, and some parts are not acceptable for the mainline.
Exactly, Saying Android is Linux is like saying that Wine tuns Linux into Windows, MacOS X is BSD or calling yourself a Bacteria/Human because something like 90% of the cells that make up your body are bacteria, viruses, fungi and other microbial life or “life like” cells.
Android is the bastard stepchild of Linux that was brought into this world with multiple uncorrectable birth defects as attempting to fix them would kill it.
Bring on the Jolla and Ubuntu mobile devices already, so we can retire Android in favor of something that really is Linux.
That doesn’t even make sense. Your OS doesn’t suddenly start using Microsoft’s NT-kernel when you fire up Wine.
The kernel isn’t the only thing that makes the OS.
Of course it matters, kernels aren’t ‘created equal’, they have feature, architectural, performance and licencing differences.
The Linux kernel has gained it’s vast popularity due to it’s features and performance, and if these categories are those you are most interested in, Linux is often the choice.
There are of course many other types of needs out there, for example if you want to make proprietary enhancements to the kernel, Linux is not a viable option.
They have made what is typically known as a Linux distro, which is a Linux kernel distributed with a userland component combination that ends up being a operating system, very often desktop oriented.
They are diverging from the ‘usual’ Linux distro component configurations by developing their own Ubuntu specific components (unity, mir, upstart) but it’s still very much a ‘Linux distro’ as not only does it use Linux the kernel (a prerequisite), but also has most of the same base components as other ‘Linux distros’ do.
These Ubuntu specific components such as mir and upstart are also written directly for Linux, so Ubuntu is very much Linux based .
And yes, Android is a Linux based operating system, which simply means that Linux is the kernel component, other components may (and do when you look at the wide spectrum of Linux use) differ wildly.
You missed the point. There could literally be anything underneath (if it was technically capable) and it wouldn’t matter, because the interface you use is Android’s interface, the applications are built using the Android APIs.
Similar Windows 9x -> 2000/XP the interface was still largely the same, the APIs were still largely the same.
Edited 2013-08-20 15:00 UTC
And every single component which makes up the Windows operating system could ‘literally run anything else if it was technically capable’, your ‘point’ makes no sense.
No it does. obviously you don’t understand what an interface is then?
There is a kernel and other stuff that is totally hidden behind an interface, both programmatically and literally (as in the user interface).
As far as most on concerned it could be anything behind there, that is a point of an interface you don’t care what happens as long it does happen.
The fact that there is a linux behind that interface is mostly irrelevant to most Android developers and users.
This isn’t rarely the case on more traditional Linux distros.
Edited 2013-08-20 17:21 UTC
“isn’t rarely” == “is commonly”, which is probably not what you meant. But I believe it’s actually more correct – developers who are even mildly interested in portability don’t care what kernel, or even what OS, will run their application.
That’s because most of the major applications with which I’m familiar don’t interface to the Linux kernel directly, but rather to Gtk+ or (increasingly, I think) Qt, or perhaps just to the Python or Java built-in libraries or another portable framework.
So Android isn’t different in that regard – writing to abstractions is more the rule nowadays than the exception, except perhaps for Windows and iOS developers.
For example, we have an entire suite of business-specific enterprise-scale applications at work that were developed on and for the Windows desktop using Java. When we switched to desktop Linux, we just ran the regression tests on our distro of choice, made a few tweaks, and we were done.
So I assert that the fact that there is a linux behind that interface is mostly irrelevant to most developers and users for all Linux-based products, not just Android.
I agree that things seems to be going towards that. Unity 3d Engine for example … I don’t know what it doesn’t run on.
Firefox OS and I believe a few others are going the HTML 5 applications way, which brings it own inherent problems (mainly speed).
Android uses the Linux kernel but android apps are really running on top of a software stack and that software stack is running on the Linux kernel. From the developer and user perspective android is very little like a traditional GNU and or Linux distribution.
Android is Linux with what amounts to a whole different operating system running on top of that kernel.
In that case wouldn’t it be the same with running KDE or GNOME?
God forbid we all should regress to the good old days of Xawt and FVWM. 😛
There more too it than that. Imagine a Linux desktop running KDE or Gnome or whatever and running Chromium on that, and all your “apps” are actually java applets running in that browser. The OS only runs one program and that browser runs the apps. All of the deep down operating system stuff is abstracted away from the programs that are running.
That’s certainly not an exact description, but in this way Chrome OS and Android are quite similar. Different in technical implementation but they both use Linux to run a software VM of sorts and run all your apps inside of that. When you are running KDE or Gnome, all that is is a user interface and a bunch of libraries software is written to use. Your programs still run ON linux. In Android, your programs are written to run on Android and Android runs on Linux. There are extra layers involved that make them not equivalent.
One would not say that MS-DOS and Windows 95 are “the same thing” just because they overlap a bit.
That is my point.
This is only true when using Java, you can use native languages like in other Linux distributions.
Almost all android apps are written in Java and the parts that aren’t java are libraries called from java. And even then you have a non standard C library and special graphics libraries you have to use.
And like I said, Android HAS Linux. No argument. You can even touch Linux directly occasionally on Android.
But android is a whole lot more than Linux. To be Android you need a Linux kernel and a whole bunch of other stuff that is not in a normal Unix-like system.
You can put a Linux kernel in place of FreeBSD’s kernel. But the system would still look like a “unix” system. You’d be using Unixy type programs. In android this simply isn’t the case 99.9% of the time.
I’m not saying this is good or bad. But to equate Android to what most people think of as Linux is like calling iOS Mac OS X. Sorta, but not really.
I have first come across Android recently (less than one year ago) and was surprised by how much Linux-ness can emerge.
There are good aspects, for example drivers for all sorts of hardware are available.
There are also crazy legacy like the directory structure. They seemingly built an OS from scratch (borrowing only the kernel) and kept that nonsense?
Android can look like a weird distribution, where you can install emacs, terminals, VI, busybox, an X server, QEMU…
… as much as iOS is BSD, I guess.
Stupid analogy that makes no sense. iOS has no BSD kernel. At all.
http://practical-tech.com/operating-system/androidlinux-kernel-figh…
Yes, Android actually use a Linux kernel while iOS use a kernel derived from BSD, but the final result is the same: Android is as different from Linux than iOS is different from BSD.
The only difference is that Apple didn’t keep the original kernel and broke the link from the very beginning. Are you sure Google will not do that some day?
I am however sure that semantically you are right. But I also see how desperate Linux fans must be if they need to consider Android as a “normal” Linux distribution in order to be able to say that Linux did finally succeed
Edited 2013-08-19 20:59 UTC
iOS is not derived from a BSD kernel. It is derived from the Mach kernel. It uses some parts of the BSD userland, but it does not have a BSD kernel.
http://fxr.watson.org/fxr/source/?v=xnu-2050.18.24
Without BSD kernel code, iOS would have no filesystem to store apps or networking to get them.
iOS has a few big chunks of BSD code in its kernel: http://en.wikipedia.org/wiki/XNU
It’s not, of course, comparable with Android, which has a normal Linux kernel with the number of patches comparable to “standard” distros.
Not quite none at all. iOS uses XNU. A significant chunk of XNU is 4.3BSD, taken from the FreeBSD kernel. The BSD-based kernel components are (according to Wikipedia):
-The POSIX API
-Unix process model (Atop Mach tasks)
-VFS layer, for writing file system drivers (HFS/HFS+ is implemented using this)
-network stack
-basic security policies (including user/group IDs)
-UNIX System-V IPC mechanisms
-Crypto framework
-Mandatory Access Control features
plus a few others. As a fraction of the code size, it might not be very much, but many of these are among the most important parts of the kernel.
You are talking about Mac OS X kernel, not iOS.
Ignore this comment.
Edited 2013-08-20 09:11 UTC
I’m talking about XNU, which is the kernel used by both MacOS X and iOS.
Put in uname -r, and on Mountain Lion, you get:
Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64
Do that on iOS 6.1.3, you get:
Darwin Kernel Version 13.0.0: Wed Feb 13 21:36:52 PST 2013; root:xnu-2107.7.55.2.2~1/RELEASE_ARM_S5L8930X
While true Mac OS X and the derivative iOS do not use anything resembling a typical BSD kernel, there is a lot of BSD code in XNU (the OS X/iOS kernel) including VFS, networking, process model, security and so on, that the Mach kernel core does not provide.
That is not even taking into account that the Mach kernel project itself was based on an old BSD kernel release.
http://fxr.watson.org/fxr/source/?v=xnu-2050.18.24
I have no useful opinion either way, but this is one of the best trolls Thom has ever posted – I predict a triple digit comment count in very short order
http://ostatic.com/blog/on-android-being-linux
Since noone, ever, has managed to produce a universally accepted definition of what is “Linux” or even “Linux-based”, arguing whether product X is “Linux” or not is a fool’s game. For example, a DVD player that runs a heavily modified and stripped down version of the Linux kernel, is it Linux? What if it another DVD player also runs a heavily modified and stripped down version of some GNU coreutils?
At least Unix has the SUS, which is something real.
That is why, all Linux distributions ended up making the same mistakes of the UNIX wars.
Unless you state the specific distributions a given piece of software requires, there are no guarantees it will be supported.
I love linux for what it is, all open-source, free, and messy. You can build rock-solid servers, media players, etc. on linux without being tied to a 3rd party and their policies.
Android is not that, it’s a fork of linux, a runtime, controlled by Google, just like iOS is built on BSD and owned by Apple.
Apple doesn’t have perfect backwards compatibility, but Google completely drops entire systems without warning and goes wherever the ad money is (or will be once they place it there).
I sometimes find it hard to believe that “open source” advocates are so strongly behind a corporate-owned and operated mobile OS that is so clearly trying to be a knock-off of a successful product.
What is so warm and open and fuzzy about mimicking Apple’s products in “open source” and undercutting them with equally shoddy hardware that looks almost exactly like their designs, all in the name of selling out our entire internet to advertisers?
I call BS. Android is not “open” or “good for the world”, it’s a sneaky way for Google and Samsung to sponge Apple innovation. I’ve watched android for 3 versions now try to get basic stability, data sharing/syncing down, and well-built hardware. Instead my years old iPhone continues to chug along with very few issues, in the same time frame that many of you are on your 4th, 5th, 6th droid phone. Kinda silly.
So linux on embedded devices (like, say, TiVo) isn’t linux either?
What would make any linux-based embedded OS more linux than Android?
My Roku runs linux but it’s obviously not a PC machine with a full install. I’m not sure I’m claiming it’s not Linux underneath, I’m just pointing out that if Android = Linux then Linux is a copycat that makes no money.
But Android ≠Linux, it’s just built on a Linux base. A big part of Linux is not the tech, it’s the licensing and openness behind it. Plus Linux on the desktop/server carved it’s own path, it didn’t become the worlds finest windows knockoff or mac knockoff.
Anytime I see an android phone with a huge front touch panel, rounded edges, no keys, all black or white/black, and rows of icons I think iPhone, then I see the plastic and the lesser build quality (and the oversized & usually poor screen) and realize it’s a knock off.
I just wish android actually did innovate in the mobile space. The location or skin of a control panel or widget is not innovation, it’s just small refinements or changes for change sake.
In my opinion Linux was never a knock off, it competed against windows and Unix with stability, price, and community. It was not a for-profit venture, which is part of it’s beauty.
Android *is* linux, but to me it drops most of the advantages of Linux to be an iOS knockoff.
Well, there we are getting into plain opinions.
If I didn’t consider that Android stood on it’s own merits I would be using an iPhone.
It is an UNIX knockoff which only got as far as it did, thanks to companies like Intel and IBM deciding to put money on it. Or other companies deciding to invest into something that would allow them not to buy UNIX stations.
Linux kernel and distributions wouldn’t have come so far if it was a plain hobby project.
The rise of cheap x86 intel hardware in the business space helped as well. All the major $Unixes ran on computers nobody had…
And that BSD was stuck in traffic court
Edited 2013-08-20 09:19 UTC
Android is a Linux-based OS, but it is not a Linux distribution. This term implies a GNU/Linux distribution which Android clearly is not, since it has a custom libc, userland and Java based GUI. Also it runs a forked kernel with non-standard additions (e.g. wakelocks).
Edited 2013-08-19 22:29 UTC
The linux kernel supports wakelocks since version 3.5.
Almost any popular Linux distribution you can lay your hands on right now will have applied their own patches to the kernel, libc and other parts of the userland. It’s actually incredibly rare to find a Debian package that doesn’t contain a series of patches. The RedHat kernel & libc are generally miles away from the mainline version.
By your definition Debian & RedHat aren’t Linux.
People coming from Windows have a hard time to understand stack concepts. For them its all one, no variants except for what a single entity offers.
On Linux is all more dynamic and there are thausend of options to combine components, change aspects, modify the stack. There are whole distributions allowing total customization like gentoo, construction sets to build your own distribution.
Same with Android since it inherits that. There are various mods, extensions, ways to customize the whole stack. Ubuntu Phone is half Ubuntu Desktop, half Android. Sailfish combines Android and (X11-)Meego under Wayland. Tizen, WebOS, all variants.
Windows has a layered architecture, its actually become more pronounced from Windows 7 and on with the new API Set changes in Windows.
By all means though, generalize on.
I strongly disagree. Android is a serious impediment for the advancement of glibc Linux on mobile.
The reason is quite simple, but it’s hard to overcome – lack of open drivers and stupidity and inertia of hardware manufacturers in producing closed ones.
Android is using bionic libc with the Linux kernel. Bionic is incompatible with glibc, which is used by desktop Linux and conventional mobile distros. What it means in practice is, that some drivers which are tied with bioinc Linux will be useless for glibc Linux (except if you rely on translation hacks like libhybris, but it’s a separate subject).
Normal mobile Linux uses conventional middleware (Wayland, ALSA, PulseAudio and etc., the classical Linux stack). It is quite dependent on glibc.
Now imagine, you make a mobile glibc Linux distro (Sailfish, Plasma Active, Nemo Mobile, even Ubuntu Touch though it uses Mir rather than Wayland, but it still needs glibc). You claim Android is also “Linux” and it doesn’t create unhealthy competition? Now, when you’ll try to pick existing hardware to run your distro on, you’ll soon realize that you can’t do it. The manufacturer didn’t produce glibc drivers for it, and tells you to get bionic ones or to get lost, unless you can present them with sales figures in some huge millions, or you are ready to pay huge sums for producing these drivers. And GPU driver is probably the most complex amongst them. So here you have it. Android is preventing mobile distros from wider adoption.
Edited 2013-08-19 22:53 UTC
You are right about making it difficult to compete. The same thing has already happened in the BSD community. See, the X.org guys only write code for Linux these days and they don’t want us to have graphics support. They’ve said it’s OK to do this to other operating systems. So, from Google’s perspective, they are following the standards set by Linux developers around the world to vendor lock in on their stack.
Google’s answer to this complaint should be that you guys should write a compatibility layer to make it work or innovate your inferior glibc to keep up. Throw people at it. That’s the comment we always get.
Think it’s unfair I used X as an example? Consider wayland or anything from Canonical or the GNOME project as of late. Some of this stuff doesn’t even work on other linux distros without a major change in approach.
I can understand that Linux can have a similar effect on the BSD systems. But there is always a tradeoff. Trying to keep things widely portable can force avoiding using all the features of the specific system. For example that was the reason why systemd decided to be Linux only. However those projects are at least open, and if BSD and other Unix systems need something, they can contribute to X.org for example. Situation with drivers is different. Even if you want something, you can’t get it. Unless the driver is open, which is still an exception rather than the rule.
Edited 2013-08-20 00:13 UTC
How is that different from an embedded system running E.g. uClibc?
All these problems are similar. If some dependency like libc becomes a bottleneck, it prevents any kind of healthy competition, seems it bars all alternatives on a given hardware.
Edited 2013-08-20 15:13 UTC
Android is not Linux, that is silly. Android refers to an entire operating system built on a Linux (perhaps slightly modified Linux) kernel. Saying Android is Linux is inaccurate and misleading. It would be like saying Ubuntu is Linux or Red Hat is Linux or TiVo is Linux. All of them run with a Linux kernel, but saying any of them is Linux is, at best, misleading and only going to confuse the issue.
And desktop apps will surely come. Even porting most opensource ones should be relatively easy (save for maybe GTK, but that doesn´t even work on windows now)
The sooner the Linux accepts this and merges the Android system with the Linux Desktop the better.
There is no good reason I can’t run LibreOffice next to Google Play apps.
Ubuntu for Android is a start.
Android will never merge with the Linux desktop. It went its separate path from the very beginning, by design.
Big disagree. Most non-geeks I know that have at least heard of linux, certainly those I know within the life sciences world would most definitely think of Linux as the OS at the very very least (not just the kernel) , and probably a windowing system if not a full DE.
Android is NOT a full linux OS; it’s a cousin. A nicely inbred one for sure.
Here’s a question, can ANY ‘substantial’ linux applications (as in certified for RedHat/Ubuntu for instance) run as-is on Android with it’s standard libraries..??
If not, it’s not linux
But nothing on that Steve Cheney. What a bell end
It’s Linux WITHOUT the crap that makes most Linsux distros blow chunks, or most *nix based OS for that matter…
…an X11 implementation.
Much as OSX doesn’t use X11 atop Darwin (BSD) (though they have a X11 stack to sit atop their own), Android uses it’s own graphics API and interface. I swear it’s the only way to make Linsux (and *nix OS’ in general) not blow chunks while having a GUI so far as a desktop or consumer level OS is concerned.
Hell, if X11’s “xLib” API wasn’t such unusable trash, GTK, Motif, Athena, Qt, Openlook, and all the other ‘toolkits’ wouldn’t even exist. Hell half of those aren’t even built direct on Xlib, and instead have Xt (xToolkit) only further abstracting the fact the underlying library is cryptic poorly documented rubbish it’s a miracle anyone can do anything useful with it!
X11 (Xfree, x.org, whatever the **** is trendy this year) is 90%+ of why for me, Linux is a useless tinkertoy as a desktop OS. (another 5% would be the steaming pile of unreadable trash known as freetype, kerning text like a sweetly retarded crack addict)
Though I swear, reading this article my I was hearing in my brain Stallman’s infamous:
… and as Android keeps proving, the less GNU the better.
Edited 2013-08-20 00:35 UTC
Your criticism of X11 was pointless. Modern mobile Linux is using Wayland these days (or in case of Ubuntu – Mir).
No, yours just proves my point… since even some distros and devs have FINALLY realized the real problem.
Edited 2013-08-20 02:46 UTC
Finally? Wayland was created around the same time Android was, may be a bit later, but not much. Distros realized these problems with X11 long ago, but mobile Linux was slow to mature, that’s why Android quickly took the vacant space.
I just wanted to say: I completely agree with you on this one Thom.
Android is as much Linux as Ubuntu, Redhat, Gobo, and even more so than the OS running on TiVo, Roku, Smart TVs, etc because I can actually install a user-land and run regular desktop Linux applications on it (though they’re also “Linux”).
Android is the OS. Linux is the implementation detail.
It boils down to the question of “What is Linux”. Is it a kernel that Linus and the brilliant kernel people tinker away at? Is it the GNU stack? Is it that Desktop environment with the foot logo? Is it KThis and KThat? What is Linux?
If you define Linux to be the kernel and a few components above that, then yeah then Android is as much Linux as Windows Phone is Windows.
Linux is the kernel component.
Yes of course it is, anything else is misconception or deliberate attempts at misleading.
Some people (wilfully it seems) confuses this with what is known as Linux distros which are combinations of software components (often desktop oriented and relying on the GNU toolchain) which all use the Linux kernel.
I can’t really agree with the term ‘Android is Linux’ as Linux is but a component of the Android operating system, but I’d certainly agree to the term ‘Linux based’ or something similar given how much functionality the Linux kernel brings.
Linux ‘distros’ are by definition Linux based, Android is Linux based, ChromeOS is Linux based, Firefox OS is Linux based, Sailfish OS is Linux based, my TVIX is Linux based, there are routers, tv’s, watches, fridges etc etc that are Linux based.
Again this just means that they are using the Linux kernel.
And that is all that Linux is, a a very powerful and flexible kernel component that offers a lot of functionality and performance.
The problem is that some people take this and run with it, wishing it had some kind of relevance to their favorite distribution on the Desktop.
Android being dominant in mobile doesn’t necessarily have positive implications for the Desktop or other areas of embedded computing, and what I’ve seen some people do at times is lump them all together to play a numbers game. To me that’s disingenuous.
I also don’t think its true that Android isn’t pitted against other Linux mobile distributions who roll their own ecosystems (For example Android’s Platform vs Qt on Linux for mobile). In this light, Android is a definite challenger to others.
The only real practical benefit for Linux desktop distros that I can currently think of is that of enhancements made by Android devs to the Linux kernel (now that the Android kernel fork has been merged into mainline again).
Unless someone creates a distro based upon Android ‘userland’ the rest of Android success will have very little impact on desktop Linux I’m sure.
I think it has positive implications for embedded as Android has made improvements upon the Linux kernel which can be of use for embedded projects, and of course it offers Linux great exposure in the embedded technology sector.
How is that possibly ‘disingenous’? We are talking about the Linux kernel here.
Are you trying to claim that somehow the vast amount of Linux use should not be counted because the systems in which it resides may end up competing?
Sure, but what does that matter to the Linux kernel?
Eventually someone is going to create a desktop Linux distribution around LLVM/Clang, LLDB, and other non-GNU utilities. Will it still be considered “Linux” then?
Isn’t that already the case for a lot of busybox-based Linuxes?
Andriod is Andriod and GNU is GNU don’t matter what kernel is in use. In fact there is GNU/Linux, GNU/Hurd, GNU/KFreeBSD, and GNU/OpenSolaris. If Andriod started using BSD kernel it will still be Android.
This is what i keep talking to people, but almost no one cares. They take up Anroid being not Linux.
I can build a linux based OS from scratch and run it with full features on my laptop without a single vendor blobs. Can you do the same with Android?
tty Console is the heart of linux and unix family when was the last time you got to access tty console on Android? (Not Virtual Terminal) true tty with boot messages.
I can push a patch to Linux Kernel anytime i want. Can you push a patch to android kernel?
Why all the non sense you might be holding a android phone try rebuilding kernel for your phone and install it (Without using any hacks to root or install kernel) and comeback and say Android is Linux.
Using same code as Linux is not same as Linux.
For Many people Linux is a culture which android is not a part of
So right below this article, I’ve got an ad for some embedded computer…
http://pagead2.googlesyndication.com/simgad/604832104784106674
…which lists separately three OS: WinCE, Linux, Android. I guess that’s settled, then.
Debating, but in most cases arguing, about whether Android is a linux distro or not seems like a complete waste of time to me.
As a user I don’t care if Android uses a Linux kernel or something else.
As a user I’m interested in connectivity.
Try to hook up an Android phone to a computer.
Windows (Xp, 7, etc.) recognizes the phone as such and installs the needed drivers. The phone can be used as an USB drive. Cool.
Linux does not recognize the phone. After browsing the internet you will find out that you have to manually install some software and (if you get it to work) it’s still a manual mount/unmount of the phone. No help from Nautilus of other file managers. Bad.
Bottom line, for normal users: Android != Linux
Edited 2013-08-20 23:50 UTC
Ubuntu 13.04 includes a MTP backend that works out of the box for automatically mounting Android 4.x devices with Nautilus.
Interestingly enough yesterday I was installing Cyanogenmod on my wife’s Samsung galaxy tab 10.1. I had no clue about how to do that, so after some reading I saw that I had to flash both a bootloader and the CWM from a Windows app called Odin (later I found out there’s a multiplatform alternative called Heimdall).
So I did that on a Windows laptop and it worked, but when I tried to plug the tablet to copy the ROM file to the internal memory Windows failed to install the MTP driver.
Maybe I would have had to install Samsung’s KIES or hunt the drivers around myself, I don’t know, but the fact is that out of the box it crapped on Windows7 yet worked on Ubuntu.
Edited 2013-08-21 08:01 UTC
Funny that the main goal of Android wasn’t even mentioned: Google Play.
Android crashes often. Just eats it. Loses data. Linux not so much.
Android is a lot of Java and google weirdness. Java loves to crash. It’s to the point in my work life where 90% of crashes are caused by Java or Flash. Both run on and crash Android.
Similarly, my iOS devices need a reboot about once a month. My OSX devices only need a reboot about every 6 months (and travel nearly as many places as the iOS devices).
and Haha my windows 7 demands a restart seemingly every day. No experience with Metro’s stability.
It seems as though the runtime’s are less stable overall than the OS’s they are derived from.
I don’t currently own any android devices so n/a. My Windows 7 boxes are rock solid however. Never a crash and the only reboot needed has been after certain updates. iOS has never crashed. The only time I’ve rebooted has been when I accidentally let the battery run out. The various OSX boxes crash randomly, but seldom.
Aside of a few BRAND NEW Macs crashing upon their first boot out of the box, nothing I’m using right now has any problems worth mention. I’m not exactly anxious to own an android device because I’m not a fan of java at all, and that’s putting it nicely.
The main comparison is X11/Linux and X11/Darwin vs Android/Linux and Quartz/OSX. OSX and Darwin are the same core, but use different windowing systems and APIs. Android and Linux use the same core but different GUI systems and APIs.