Find the answer to your Linux question:
Results 1 to 2 of 2
Got to talking to someone in a cell-phone store, and I ended up having to answer a question (for another customer) with the caveat, "I'm not sure but I think..." ...
  1. #1
    Just Joined!
    Join Date
    May 2011
    Posts
    18

    A technical question 'bout Linux & Android

    Got to talking to someone in a cell-phone store, and I ended up having to answer a question (for another customer) with the caveat, "I'm not sure but I think..."

    I hate having to say those words. So I looked around on the internet, and couldn't find anything about this, exactly, or rather I probably found it, along with a million things that weren't it, so rather than wade through an ocean of non-pertinent info, I thought I'd come here and see if anyone knew, of knew of a place one could be pointed to for an authoritative, concise answer.

    Here's the question: "So this phone runs Linux, right?" (The phone ran Android)

    The answer I gave went something like this: Linux is a word used to refer interchangeably to several things, however, it is, in point of fact, just the kernel itself, the tools typically supplied with it to render a fully functional, all-around wonderful, sweet, and creamy OS, are from a project/organization called GNU.

    (GNU, brain-child of RMS, became a way for people who wanted to, on the one hand, be able to collaborate to make great software free for all to use, modify, etc., but at the same time know that the fruits of their labors, the very sweat from their brows were NOT going to be incorporated into someone else's proprietary software, without permission, remuneration, or even perhaps so much as acknowledgement of the original authors work!)

    Without all the tools, applets, applications, etc., what you'd find in such places as the /bin, /sbin, and so on and so forth - directories of a Linux install, the kernel would sit there, unable to do... just about anything. This is of course, why some purists will insist everyone should call it GNU/Linux, since without the GNU tools, Linux would be a digital doorstop.

    Of course, this is not strictly true. For example, if I were an Ueberhacker, with unlimited time on my hands, I could theoretically write replacements for all the utilities, and (eventually) have a fully-functioning NON-GNU/Linux Linux system up and running, without owing anything (directly) to the GNU people, in terms of a debt, or need to acknowledge them, etc.

    I could call it HAL/Linux.

    Anyway, to get back to my question, what I told this other patron was that Google, or those with whom they worked, in creating the Android OS, had used the Linux kernel, but came up with a new set of tools to replace the GNU ones, specifically tailor-made to run on such hardware as Nexus and EVO, etc. So in a sense, if Linux (such as you might get in Fedora (RH) or Debian or Ubuntu or Slackware or any one of a zillion distros now,) is more properly ***GNU***/Linux, it could be said Android is more properly (going the other way around) Android/Linux.

    (In the same sense, I understand Apple's Mac OS-X is more properly Apple/BSD(*NIX)/X.org/OS-X! But that would be quite the mouthful...)

    So, was what I told them correct? Is Android basically a replacement custom-fit to cellphone hardware, for the GNU part of GNU/Linux?

    Corollary question: has Google (or whomever) released ALL of the Android's source code? If it is ALL released, couldn't someone make a SmartPhone/GNU/Linux? Is this in the works that anyone knows of?

  2. #2
    Linux Engineer Freston's Avatar
    Join Date
    Mar 2007
    Location
    The Netherlands
    Posts
    1,047
    You are thinking in the right direction, but you're not entirely right.

    As far as your argument that Linux is 'just' the kernel, that's correct. The kernel, oversimplifying it, talks to the hardware, mounts the rootfs and loads init.

    So the rest is GNU? Well, no. A lot of what you have on your desktop is GNU, with additional third party software. GNU *is* a very important part of your machine, though.

    And indeed you can, with some effort, replace GNU so to have your HAL/Linux system. Or you can replace Linux to have a GNU/HAL system. And in fact, these things happen. See GNU/Hurd for example.


    Quote Originally Posted by HalluxSinister
    Anyway, to get back to my question, what I told this other patron was that Google, or those with whom they worked, in creating the Android OS, had used the Linux kernel, but came up with a new set of tools to replace the GNU ones, specifically tailor-made to run on such hardware as Nexus and EVO, etc. So in a sense, if Linux (such as you might get in Fedora (RH) or Debian or Ubuntu or Slackware or any one of a zillion distros now,) is more properly ***GNU***/Linux, it could be said Android is more properly (going the other way around) Android/Linux.
    Well, not entirely.

    First, Android uses the Linux kernel, but with modifications that are not in the mainline kernel. They used to be in mainline, where taken out, but might get reintroduced in the future (or is the future already here? I dunno).

    And this Linux+modifications talks to the hardware.

    The userland however isn't GNU, or not as much GNU as your desktop. Most of the time embedded devices, such as mobile phones, use the much more simple (and much lighter) busybox environment. This is more akin to the environment you see in many installers of Linux distro's than the Linux distro's themselves. And busybox is, as far as I can tell, not the work of the FSF.


    Then, beyond userland, there's the GUI, and the selection of applications and settings. And these, I'm not familiar with on Android. But for example the GUI, which is actually a combination of a lightweight replacement for X11 that you have on your desktop and a Window Manager or some sort. Or an all-in-one solution, I dunno.

    I was never very interested in GUI's but part of my job has entailed testing thin clients and these tend to work on similar principles as telephone hardware. Similar processors, similar RAM and disk space, similar boot mechanisms. And in fact, some thin clients support touch screens out of the box, because touch screens are an input device that's handled at kernel level.
    And when you add support to the kernel for the transceiver hardware, and the other bits and pieces that you need for accessing the GSM network (SIM r/w for example) then you're already a long way into creating a telephone.


    So to sum up. No, Google did not replace Linux or GNU with their own code. They added some modifications to Linux, and basically reused software that's often used in place of the full GNU software on embedded devices.
    Both handling the display of a device with such minimal resources, and accepting input from a touch screen are fields where Google did not have to invent the wheel again. They just have to tie it all together, and make modifications so that it works the way they want it. I don't have any details, but I expect most of these changes are at the application/WM level.

    And with that, Android is a Linux distro in the same sense that webOS is a Linux distro, or Wyse V6, or Igel or one of many many others.


    Quote Originally Posted by HalluxSinister
    Corollary question: has Google (or whomever) released ALL of the Android's source code? If it is ALL released, couldn't someone make a SmartPhone/GNU/Linux? Is this in the works that anyone knows of?
    They used to, but not anymore.

    And yes, if you've got a good soldering iron, you can create an Android phone. But you could also use one of the many distributions that work on the openMoko. It's nice that Google has such a high profile Linux product, and that they take so much credit for it. But they are by no means the only ones. But nobody knows, because nobody cares about Operating Systems and all they want is apps

    ____
    Reading back my own post, I may sound surer on details than I'm actually am. Correct me if I'm wrong
    Can't tell an OS by it's GUI

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •