Thursday, July 7, 2011

Six Signs Android really isn't Linux

Many people argue that Android has put Linux into the hands of millions of users. While there is no doubting that Android has been a raging success, I would argue that Google has put Android into the hands of millions of people - not Linux. The following are my reasons for claiming such:

1.) Android's kernel is a Fork

Thats right, Android doesn't run on a mainline Linux kernel any longer. Their source code is maintained in a separate git repository because it was not accepted back into the main line kernel in it's current state and Google has not made any action towards improving the code so it can be accepted.

2.) Where is the brand name?

I did a post late last year titled "Keep the 'Linux' out of it Please", which asked whether using Linux in your brand name is deadly. Google seems to think so. Go do some digging on Android's homepage - I challenge you to find the word Linux on there anywhere. Even after digging through their development documents for some time I was unable to locate the word.

3.) Companies that don't support Linux support Android

Be it a game like Plants vs Zombies that Linux users are forced to run via Wine or a product such as Netflix streaming that does not run on Linux machines at all - there are lots of companies that refuse to support the penguin yet still produce Android applications. At the very extreme there is Adobe who has actually dropped support for Linux while continuing to write software for Android.

4.) All Java Applications

Android has piles of applications that are written for it. Unlike applications that are written for Linux though - they are not easily portable to other distributions. For instance applications written for WebOS are able to be run on the Maemo platform. Android applications however are all java based, meaning you need an emulator like Alien Dalvik to get them to run on other platforms.

5.) Microsoft doesn't make money off of Linux pre-installed Machines

There are plenty of vendors that sell systems pre-installed with Linux (such as BluSphere). Dedicated Linux users opt to purchase such systems (or system with no OS on it) in order to avoid the Microsoft Tax. When purchasing an Android handset there is no such avoidance. Up to 15$ per Android handset sold is going to Microsoft. Sure, this is the result of paten trolling - but I don't see anyone rising up to fight it.

6.) Where is the source code?

Yes there are closed source version of Linux. You know what is fairly unique to Android though? Claiming to be open source and then only releasing your source code to a select few hardware makers for a long while. Is it a solid business plan? Sure. Just don't claim to be free and open though and then pull something like this!

In my opinion at this point Android is just as much Linux based as OSX is BSD based. Now - don't get me wrong, I'm not saying Android is a bad operating system. In fact I'm glad it has taken away market share away from extremely closed operating systems such as iOS and Windows Mobile. I'm just saying lets stop calling it what it is not! Yes Android is Linux based it is not however Linux any longer.

~Jeff Hoogland

41 comments:

  1. Android is a bad operating system.
    - Jon

    ReplyDelete
  2. hey your wrong about the dev docs, http://developer.android.com/guide/basics/what-is-android.html very bottom

    ReplyDelete
  3. RE: 6.) Where is the source code?
    http://android.git.kernel.org/

    ReplyDelete
  4. Man, I wish there were an edit function. All I want to do is make a few minor edits...

    Again, RE: 6.) Where is the source code?
    http://android.git.kernel.org/

    Ah, that's better.

    ReplyDelete
  5. And the source code for Android 3 Joel?... That is what said point talks about. In fact I link to the same thing you posted in my post.

    ReplyDelete
  6. Its takes years to get codes into main kernel.

    Thats the beauty of open source. We do not have to wait for the core, we can codes on our own and ask to be include later. Its up to the Kernel team to review and accept our codes.

    What we need to do is to release back the changes to the public as per GPL requirement.

    ReplyDelete
  7. You're right, Jeff. I was wrong, and I stand corrected. I should have read your post more carefully.

    ReplyDelete
  8. Is it just me or is bluos.com down?
    I tried to have a look since I heard about it here first (about a month ago I think) but its been on maintenance ever since

    ReplyDelete
  9. Wow, you really want attention don't you. What a useless waste of time. I didn't bother reading half of it, because you obviously don't know anything.

    ReplyDelete
  10. Love how you say I don't know anything but you don't refute any of my points.

    ReplyDelete
  11. Atarivndio
    Those are some very strong points to consider. I must state, however, (that as long as any version of their application sdk is open) a memory manager can be designed to circumvent/reveal/subdue and replace all code in the OS much like python does with live interpretation (just with the OS command set). Somebody build an app for that. Somebody could be clever and build one interpreter that operates all languages seamlessly without language breaks or special separations of chunks of code. EG. pick the fastest operation based on assembly performance and have one line be 'print' from java, line two be a class from C, and line three be a library function of python wrapped in a definition from python (something like that just to illustrate). Open hardware is the solution to a lot of that problem. I stirred greatly at the reading of CERN's latest efforts for open hardware which will become the wave of the future. All techs comps. will be shells for sub democratic societies and will form the basis of democratic work places in the future, as the tech sector seems to be the source of faster economic recovery in the United States and other countries. A hundred or even two-hundred years is not a long time for me to wait to see such an event. By the way interception of code at the os level would allow you to change variable and class names live and make every installation of the os different enough that infectious code cant operate (you do have to specify a trusted anti-vir. for that to work out though for removal, it solved my windows problems lol). These days with open Cl and a cheap, but newer card live interpretation is really sometimes faster than the Os would have been before as I incorporated CL into my memory manager (which recognizes malicious combos of code from a lot of languages through text parsing). If you have a problem with how things work make an app or get an app, I promise it's easier and faster than traveling across the country to go to Woodstock to make a statement in 69.

    ReplyDelete
  12. The difference between a distribution of Linux and a Linux-based operating system is similar to the difference between a juice made out of nothing but fresh-pressed apples and an apple-flavored juice (no pun intended). Its not to say that one is better than the other, but if you want something close to eating an apple then knowing whats in your cup is important. This is where Android falls under the "Linux-based" category instead of being yet another Linux distro.

    ReplyDelete
  13. 1.) Android's kernel is a Fork

    Still Linux underneath no matter whether its a fork or not a fork.

    2.) Where is the brand name?

    We could also point to any number of manufacturers websites that use Linux in their products. Firewalls/Routers. Almost none mention Linux on their homepages.

    3.) Companies that don't support Linux support Android

    You mentioned games. Are you aware of the number of Windows based games whose players benefit from Linux based servers but who refuse to support Linux versions of the same game for clients? Same thing.

    4.) All Java Applications

    Have no idea.

    5.) Microsoft doesn't make money off of Linux pre-installed Machines

    Perhaps not pre-installed PCs but Microsoft is already extorting a number of other companies who use Linux in their non Android based devices.

    6.) Where is the source code?

    http://source.android.com/

    ReplyDelete
  14. Your counter to #3 is very much different. Offering a server on Linux and offering the GAME ITSELF on Android are very different things.

    #6 - As I've stated before where is the 3.0 source code?

    ReplyDelete
  15. This blog was mostly hoax. It would be muc better to say Android uses a patched Linux kernel. Android is using newer versions of the kernel all the time and 2.6.37 now includes features that may well accomplish what Android’s WakeLocks do.

    Can growing businesses be totally out of reality about the value of Linux in advertising?

    ReplyDelete
  16. Every version of android except 3.0 has had its source release. 3.0 was a beta product that ended up being properly released as 3.1.

    If someone takes opensource code, builds stuff off of it, and ends up releasing the final product (3.1), but not all renditions of its beta, would you bitch?

    ReplyDelete
  17. For how open Google claims to be they should be releasing all versions yes.

    ReplyDelete
  18. I agree to a large extent. Android was great because the source code was open, but the market didn't encourage any way of discovering open software among the free, and the lack of portability through any means but compatibility layers like Dalvik has left a lot to be desired.

    I think GTK and especially Qt can be just as rich of platforms for mobile applications, and Qt is in fact making its way to Android. My hope is that someone other than me has the time to open an 'open' app store where people can get software from PGP signed repositories, allowing them to have completely open phones with 'Linux' software available as well as open APKs.

    However, at this point, it may be worth it to encourage platforms like MeeGo on the N9 and so on to protect the future of open software in the mobile space. It seems that there is little effort to break into the mobile space with a salient set of applications for mobile needs outside of MeeGo.

    I think KDE is definitely getting there with a focus on mobile, but I don't see why GNOME and KDE can't have a mobile focus, given a good mobile platform like MeeGo and enough developers.

    Of course, this article wasn't about closed vs. open, but Android vs. X11 + GTK/Qt, essentially. However, I think my comments capture a large reason for the concern over that distinction.

    ReplyDelete
  19. Jack - If you are looking for a platform with mobile in mind you really should look into the Enlightenment Foundation Libraries (EFLs)

    ReplyDelete
  20. 1. Debian, Red Hat keep their kernel source in a separate repository, and apply their own patches. Does this make them "not linux"? For years Xen was not accepted into the kernel. Does this meany anybody patching their kernel to run Xen was not using Linux? The sad thing is this is your best argument; it's all downhill from here.

    2. Linux is a kernel, not a brand name. Strike this point as meaningless.

    3. Linux is a kernel, not a .... whatever the hell you need to pretend Linux to be for this point to make any kind of sense. Strike this point as meaningless.

    4. Linux is a kernel. Java is a userspace VM. Java is complete rubbish. Linux is not. There really is no universe in which this point makes any kind of sense whatsoever.

    5. The Linuxness of something is not even slightly influenced by who makes money from it.

    6. Google are only legally obliged to provide source code to whomever Google directly distributes the software to; ie manufacturers. In any case, compliance or non-compliance with the license does not define the Linuxness of something, only Google's legal standing WRT the kernel.

    ReplyDelete
  21. Atarivandio-
    Perhaps it's best to say that code is code and a algorithmic interceptor for wave breakdown (since ac power is a wave and the altering of current through components even if dc produces a wave) would render code as obsolete. Have any of you all stopped to consider that all shapes exist inside of a circle and that compression in irrational numbers is never ending. Maybe the best way to fix the paradox is to remove the act of code after the fact by getting wave breakdowns and pattern analysis and follow up by conversions into the infinite numbers in increments of ten numbers at a time which would allow you room to compress without detriment and then use a wave formula to pull the data back out instantly. This would most certainly be breakthrough enough that there would be no way to claim ownership as all patented objects are converted into another means completely while retaining their form.

    ReplyDelete
  22. Yeah these are just some of the reasons I like Android less and less. MeeGo is doing a olot better when it comes to being a true Linux system. Source is there, if at all possible they upstream patches first and only then incorporate it into MeeGo, and MeeGo is more like a true distribution of Linux since you are not limited to some Java look-alike.

    ReplyDelete
  23. The fact that the kernel is forked means nothing; it's still Linux.

    The fact that it doesn't advertise its Linux-ness doesn't mean it's not Linux. It just means that it wants to seem more friendly to non-geeks

    As for support of third parties... this is one of Android's few merits. Linux has long been lost in obscurity. Code had to be totally re-written by third-party software vendors to run on Linux as well as Windows and MacOS, and the user base was so small that it just wasn't worth it. Android has circumvented the problem by allowing vendors to write in easily-portable Java. Don't get me wrong, I'd much prefer native software, but Java beats nothing. Also, Android has garnered so much popularity that it has software vendors' attention. These software makers don't care about the Linuxness or non-Linuxness of a platform, they only care about the cost v. benefits of bringing their software to it, and Android is the first Linux distro to make that ratio an acceptable one for them (though they do it by cheating a bit with Java)

    Android is Linux... but as such, it is nearly worthless. This Linux 'distro' exists only to run Dalvik, and everything the end-user sees and thinks of as 'Android' is really Java. I admit, this is your best point. But GPS units, stereo systems, wireless routers, and hundreds of other devices have been made which use an underlying Linux kernel to boot and then run only one specific piece of software, which often is proprietary and closed source, and nobody doubts that these devices do in fact run Linux, so by the same thinking, we can't rightfully deny Android its Linux title.

    I agree, Google should release the source for Android 3.0 sometime this decade, but it's becoming quite common for companies that use GPL code to stretch its limits by waiting unreasonable amounts of time before revealing the source. That is big issue, and Google should be ashamed... but that's a separate issue.

    In summary, Android is a watered-down, limited Linux distro that works for one very specific purpose... but it is still Linux, and it has been wildly successful. And kudos to Google and OHA for taking some of Apple's dominance away.

    ReplyDelete
    Replies
    1. I am sorry but Android is NOT a "GNU+LINUX" distro. ->http://www.gnu.org/philosophy/android-and-users-freedom.html

      Delete
    2. gnu.org; "Android is very different from the GNU/Linux operating system because it contains very little of GNU. Indeed, just about the only component in common between Android and GNU/Linux is Linux, the kernel. People who erroneously think “Linux” refers to the entire GNU/Linux combination get tied in knots by these facts, and make paradoxical statements such as “Android contains Linux, but it isn't Linux.” If we avoid starting from the confusion, the situation is simple: Android contains Linux, but not GNU; thus, Android and GNU/Linux are mostly different."

      Delete
  24. Android is a java patch over a minimal linux kernel to manage drivers and io operations!

    Also Jeff: Android is more of an SDK and a platform rather than an "OS".

    ReplyDelete
  25. I don't believe I can call Android anything near Linux besides the technically Linux-based comment.

    I have an android phone and the first thing I noticed was the simple limitations like removing bloatware and extra home screens without rooting. Why should I have to go through a process of rooting to use my device? The functionality exists but it's blocked. That's not Linux. Linux is free.

    ReplyDelete
  26. In an ideal world, all the worlds hardware vendors would write their drivers into the Linux kernel as open source.

    Then everything would be truly cross platform compatible as Linux only drives the hardware and setup the basic system.

    Beyond that, if a company or distro use GNU, Busybox, Android OS, Apple OS, Windows OS or something else should not matter. The only thing that would matter is that it is possible to then choose what you put on top of Linux. In most cases today, that is GNU.

    And to all those who says Linux offers so many distroes, desktop and Windows managers, how exactly do you think that is a bad idea?

    That is exactly what is so great, the choice. You are never stuck with one OS package with one desktop and limited Window manager functions. That is the Windows and Apple world. In the GNU/Linux world, freedom to choose is one of the main freedoms, and in an ideal world where everyone used Linux as the kernel, Windows, Android and Apple OSX or iOS would just be another distro.

    And guess what, anyone who knows freedom, would have a hard time having no choice between distroes, only having to stick to one distro. Thats like only having a choice to stay with one brand of jacket. What if that brand jacket sucks? Or what if there are other jackets that are much nicer? If all you have ever tried in your life is one brand jacket, then you know nothing about jackets.

    Android IS a Linux distro. It uses the Linux kernel! Thus it is a Linux distro, if they want it or not. What Android is not is a GNU/Linux distro. Android does NOT use GNU. It may use some components, I don't know, but its not GNU/Linux. Its Linux/Java+ using various open source libraries with GNU GPL and BSD licences. This makes it open source Linux/Java for many bits.
    Just because Maemo uses busybox does not make it non-Linux. It is more GNU/Linux than Android, but in fact Busybox(GNU)/Linux.

    In Linux world, you have the Linux Kernel, you have the GNU operating system, you have the X Window system and a variety of desktops to choose from. Android does not use any of those, it uses their own Java Desktop and Window manager.

    Maemo use Hildron desktop/window manager. Many Linux distroes use KDE desktop with kwin window manager. The fact that you can choose between endless amount of desktop and Window managers in GNU/Linux distroes is purely great. The fact that you cannot do the same in Android is annoying.

    That Android does not use GNU is a bad choice. That Maemo does not use GNU is a bad choice.

    Android IS a Linux distribution, it is NOT a GNU operating system, it is NOT using a regular GNU/Linux desktop. Most part of the operating system IS open source, but it is not a free operating system by nature. If they want to have a fully closed operating system on top of Linux they CAN as long as they follow the licences of Linux and other open source components. is this a good thing? No, sure isn't. Google would do much better in making Android GNU/Linux and putting their own desktop and extra functions on top.

    ReplyDelete
  27. A 7th sign: Using Android, I haven't had to google for arcane terminal commands one single time, nor have I been greeted with screenfuls of 'Missing xxx.so' when trying to install an app. Also, apps are updated when there's a new version, not six months later when someone finally got around to repackage it for the dist you're using.

    So, I agree that Android is not Linux. After a week of trying to like Linux, a gave up in utter disgust. However, I still use Android, I still like it, and I still haven't had to use a single terminal command. It just works.

    ReplyDelete
    Replies
    1. Normally I ignore uneducated trolls such as this - but this evening I am in the mood to enlighten.

      Did you buy Linux pre-installed on a desktop or laptop computer? If not then it isn't really a fair comparison because I'd bet ten to one you bought a device that had Android pre-installed.

      Delete
  28. I use Linux (Ubuntu 10.04), Windows 7, and Windows XP on my computers. On each of them, within certain limits, I can remove system components that I do not want, need, or use. With Android (on my phone), I cannot. With the former, I can choose to disallow certain activities by the software. With Android, if I want the software, I have to give it various permissions to install it, such as keeping my phone awake (thus using more battery), giving it permission to find my location (I never allow this, so I refuse to use certain apps), or help themselves to my limited bandwidth whenever they want it.

    Open? It's not the Android OS that is open, it is the user--by force. Android sucks. Even Windows is more customizable than Android in ways that matter.

    ReplyDelete
    Replies
    1. You mean you never heard the term jailbreak?

      Root your device and you will be greeted with all kinds of Linux goodness.

      I can't believe none of you have pointed this out!!!???!!!

      There is a console to type commands and you can install busybox, and you can even install and uninstall just about anything not required for your device to function acceptably.

      Just because your handset or tablet maker chose to give you a limited account by default does not mean you can't gain root and do whatever you please (limited only by installed hardware, drivers, and available memory, and your imagination/skill level)

      Seriously... and, Jeff, so there's a missing source in the chain... you can get older and newer source all you want... it's simple, if you already know what to do with the source code you should be smart enough to realize it does not matter that a buggy, recalled source package is removed from the market. eg. When hardware products are recalled they try to get all of them for safety's sake... there are GOOD reasons for blocking access to source code sometimes, especially when there is newer code that supersedes what you were looking for (Android 3.0 in this case)

      You are just making an a$$ of yourself at this point demanding a middle version that is no longer relevant to the project.

      Your desire is like a kid that wants a toy that has been recalled and replaced with a new safer model....and he still wants the recalled version....

      get over it and move on like the rest of us.

      At least your article has had a good number of views and replies, I will give you that.

      I am in a small town near Las Vegas with no 4G, so I don't bother with any of the larger carriers, but with Boost's ZTE Warp rooted and given the connection code for Sprint I get great 3G speeds and at only $45 a month Vz, @&t, and P-Mobile can all take a flying leap for all I care.

      Android devices DO run Linux, Android is a marketing name, not the OS underneath the interface.

      That said, Android is not an OS, it is an interface.

      Linux is it's only OS outside of an emulator.

      Confusing everyone comparing an interface to an OS has garnered you a decent number of site traffic, Kudos for that, though tricking people into a debate over Android as if it were an actual operating system is kinda low IMNSHO...

      Instead of Six signs Android really isn't Linux, you only needed to say Android is an interface, not an OS like Linux.

      That would not have caused so many posts and views however, so your way is at least entertaining. :)

      I enjoyed a full cup of coffee while reading all of the misinformed posts back and forth.

      Delete
    2. Darn, I missed wishing 'Happy Birthday' to this still-active blog comment stream.
      Still an issue today, imho, although the Android Kernel is now merged back, I believe.

      Delete
    3. First and foremost, jailbreaking and rooting aren't the same thing. Jailbreaking is what you can do to an ios compatible device, allowing you to bend the rules of the system. Rooting is specific to Android and gives the user full control. But what Anonymous said about Windows being more customizable is true, by default. Yes, you can root and unlock your phone(I'm on a rooted lg optimus g myself) but what Aaron fails to mention is that you do so at great risk, voiding your warranty and possibly bricking your phone. While TRUE bricks are rare, I know it can happen on my phone if the sbl gets wiped out because that is where "Download Mode" resides. But I digress......
      Both Linux and Android are operating systems. Look it up anywhere, Android is described as a mobile operating system, not just a GUI. As for Android being a Linux distro, I tend to agree with Jeff here. How many modifications to the linux kernel can someone make before it stops being linux? I often say that Android had me at Linux+Google but the truth is I also feel like Android is it's own beast, now far removed from Linux. Linux is still under the hood, but it's seen less and less and you have to go through quite a bit(depending on phone/tablet model) to even see it.

      Delete
  29. My critic to Android:

    Android did not choose to stick to mainline Linux, but has forked.

    While Android is opensource, or is usually open-sourced fast, the drivers for it are not. In fact, it requires huge amount of blobs in order to operate. There is practically NO PHONE, which can be driven without blobs!! Talk about security now!..

    No software on Android supports Open Document Format. But every single - doc/docx.

    Many many extension devices, for example DVB tuners, run on Android .... and on Crapdows. But not on Linux. This is because google choose to FORK it.


    So, for me, google did it just like Apple with BSD, only just a bit better.

    They took it, they modified it, Apple closed it down GUI - Google closed down drivers.. and they have not helped original projects to gain marketshare, but replaced it.

    So, instead of the "Year of Linux Desktop", we have "Year of Google ChromeOS Desktop" instead.


    Thanks, google... :///////

    ReplyDelete
  30. Great blog, Jeff! Great reading and great points. Much appreciated.

    ReplyDelete
  31. While the vast majority of Android apps are written in Java and run on Dalvik, Google also supports native programs, which means any language could be used. I use Firefox on my Android phone all the time. VLC is another well-known FOSS program that has been ported to Android.

    ReplyDelete