• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

So... IS android linux?

boyo1991

Android Enthusiast
Okay, before, I thought I was sure, but now I'm not entirely.. so here's my timeline:

-android based off linux
-android no longer in Unix/linux family
-android an official distro of linux
-android is Unix-like??

That last part is what I am confused about. Can someone maybe tune up my knowledge of what I've learned on sleepless nights learning things while half asleep? Lol
 
Okay, before, I thought I was sure, but now I'm not entirely.. so here's my timeline:

-android based off linux
-android no longer in Unix/linux family
-android an official distro of linux
-android is Unix-like??

That last part is what I am confused about. Can someone maybe tune up my knowledge of what I've learned on sleepless nights learning things while held asleep? Lol

Android is a Linux-based operating system, and consists of a kernel based on Linux kernel versions.

Android's Linux kernel has further architecture changes by Google outside the typical Linux kernel development cycle. Android does not have a native X Window System by default nor does it support the full set of standard GNU libraries, which makes it difficult to port existing Linux applications or libraries to Android. Support for simple C and SDL (simple direct media layer) applications is possible by injection of a small Java shim and usage of the JNI (java native interface)

unix: Under Unix, the operating system consists of many utilities along with the master control program, the kernel. The kernel provides services to start and stop programs, handles the file system and other common "low level" tasks that most programs share, and schedules access to avoid conflicts when programs try to access the same resource or device simultaneously. To mediate such access, the kernel has special rights, reflected in the division between user-space and kernel-space.

Whether or not Android counts as a Linux distribution is a widely debated topic. They all took or expanded upon ideas that already existed so.... from my understanding it kind-of flows like this:

---> Unix ~> Minix ~> Linux -> Android.
 
So, with the presented info, especially the compelling image above, is it fair to call android a distro of linux? My suspicion would be yes. But as its been said, its a huge debate.. also, for the image, what version are you running?
 
It's not reasonable to restrict the definition of Linux to distributions common for single-user workstations - that's where the artificial controversy arises over whether Android is a distribution.

Distributions are a convenience.

Once upon a time, you built a small c compiler (might have had to build an assembler first), then gcc, then got the kernel, compiled and added the modules required, and then visited GNU, grabbed source tarballs and added whatever packages you needed for deployment (first by fixing makesfiles and then compiling source).

It's called bootstrap building and that was Linux.

Then you deployed it on your machine or several of the same type of machines in your organization.

We made our own distributions.

Better ones were shared as GNU/Linux on PCs began to dominate. Those have grown into the modern landscape available now.

Android = real-time embedded Linux operating system + Dalvik Virtual Machine + apps that run in the Dalvik and use the underlying operating system services

Because it's an embedded, real-time operating system in a world of closed hardware (and that's the key point - closed hardware), the modern, desktop-centric definition of a distribution doesn't apply.

Android roms fall somewhere between the modern desktop distribution and private distributions based on bootstrap builds.

So whether or not it's a distribution or collection of distributions is merely a question of semantics.

It's still Linux.

PS - the Android Linux kernel is no longer its own branch - it's been folded back into the mainline.

Not sure about the version question - if you mean for the kernel, run uname -a.
 
Once upon a time, you built a small c compiler (might have had to build an assembler first), then gcc, then got the kernel, compiled and added the modules required, and then visited GNU, grabbed source tarballs and added whatever packages you needed for deployment (first by fixing makesfiles and then compiling source).

Sounds like LFS
 
It's not reasonable to restrict the definition of Linux to distributions common for single-user workstations - that's where the artificial controversy arises over whether Android is a distribution.

Distributions are a convenience.

Once upon a time, you built a small c compiler (might have had to build an assembler first), then gcc, then got the kernel, compiled and added the modules required, and then visited GNU, grabbed source tarballs and added whatever packages you needed for deployment (first by fixing makesfiles and then compiling source).

It's called bootstrap building and that was Linux.

Then you deployed it on your machine or several of the same type of machines in your organization.

We made our own distributions.

Better ones were shared as GNU/Linux on PCs began to dominate. Those have grown into the modern landscape available now.

Android = real-time embedded Linux operating system + Dalvik Virtual Machine + apps that run in the Dalvik and use the underlying operating system services

Because it's an embedded, real-time operating system in a world of closed hardware (and that's the key point - closed hardware), the modern, desktop-centric definition of a distribution doesn't apply.

Android roms fall somewhere between the modern desktop distribution and private distributions based on bootstrap builds.

So whether or not it's a distribution or collection of distributions is merely a question of semantics.

It's still Linux.

PS - the Android Linux kernel is no longer its own branch - it's been folded back into the mainline.

Not sure about the version question - if you mean for the kernel, run uname -a.

Very well thought out post. I understand that android is running on a linux kernel while running on a virtual machine. But the way I've seen it is that android is run in this virtual machine that was designed for a very small version of linux. But I haven't heard much as to weather or not android itself (I.e. if we were to install android natively and without a virtual machine) is linux. Between all of the talk my thought is "of course!" But nobody has actually said this official (to me or that I've seen)

I guess where I get the impression that it is is thanks to the whole x86 project, running android on x86 architecture. But then I've heard that this project is really just ubuntu with an android finish.. which is of course linux, but its not really android..

I'm glad this thread has been drawing in some knowledgeable people, as I have always programmed for windows, but now pretty strictly python (as its sooo much more fun and ease of use..) and I am still relatively clueless about the operating system as cmd prompt is well shall we say, useless these days in windows lol
 
I guess where I get the impression that it is is thanks to the whole x86 project, running android on x86 architecture. But then I've heard that this project is really just ubuntu with an android finish.. which is of course linux, but its not really android..

First time I've heard someone say it's based on Ubuntu.

Android x86 is Android ported over to work with x86 processors, it's not a skinned Ubuntu. It uses the Android source code.

Android Developers

Get Source - Android-x86 - Porting Android to x86
 
Thanks but I won't take credit for well-thought out, it was just stream of consciousness lol.

Ok, so if you remove the Dalvik from Android, what do have?

An incomplete Linux - no UI and no real-time dedicated task to justify itself.

With perseverance, you could very likely complete the OS.

Btw, here's further proof that Android is Linux - you can make another virtual machine by way of the loop device (if your kernel has one) and run Ubuntu *concurrently* with normal Android on the phone screen and the Ubuntu desktop projected to a PC, with all functions simultaneously active.

http://androidforums.com/cdma-evo-3d-all-things-root/387978-ubuntu-linux-3vo.html

Or hop back and forth between the two environments on the phone screen.

No dual booting - virtualization.

I have no idea how that tidbit fits in here but I think it does lol.

PS - Android is in no way Ubuntu with an Android finish, see my architectural diagrams in the link above.

As kate points out, the target processor architecture doesn't change that.

Ok, now the tidbit fits lmao.
 
First time I've heard someone say it's based on Ubuntu.

Android x86 is Android ported over to work with x86 processors, it's not a skinned Ubuntu. It uses the Android source code.

Android Developers

Get Source - Android-x86 - Porting Android to x86

Right that's what they say on their site. But its just what I've heard. It may not be true obviously. I'm not the kind to sit and read source code unless I need some examples. Soo I haven't personally gone in to find out yet lol
 
I have, it's not. :D

Lol well now ik for sure, and knowing is half the battle! :p

So one more question for you guys. Why isn't android installed natively to the device? Why is it done through the vm? My suspicion (keep that word in mind) is for the root user applications not being accessed? I'm not sure, I've never really had a need or desire to root, even though I'm a power user lol
 
Please see my earlier equation, you still have Android turned sideways in your head -

Android = embedded real-time Linux operating system + Dalvik Virtual Machine + apps that run in the Dalvik and use operating system services

Android isn't inside the virtual machine.

The combination of Linux and the Dalvik Virtual Machine **is** Android.

And the Dalvik is completely native.
 
I know that this question is either coming or what you intended so I'll ask and answer it.

Why does Android use a virtual machine?

For real-time job control.

Linux, any unix, is not a real-time architecture.

You can achieve real-time results by having hardware far faster than the required job - some of my industrial solutions have been exactly that.

But that's not really real-time, it's just getting away with it.

The first true real-time Linux was named exactly that - RTLinux.

And it ran a virtual Linux inside Linux. The primary had two jobs - the real-time task at high priority and the other Linux at lower priority doing everything else.

That's the first model.

Here's ours -

Linux multitasks just like your desktop Windows or Mac OS X.

Ever get the beach ball or hourglass doing something on your desktop?

I'll bet you have.

When that happens, the app you're using is unavailable while the operating system figures things out - but other apps may still be running just fine.

Because in preemptive multitasking, all jobs are equal. You can suggest that some have higher priority but that's all she wrote.

How long would you tolerate missing phone calls because the phone was equal to Facebook or your web browser?

You wouldn't tolerate that for long at all.

So you need a way to run apps in Linux where you can create your own job control rules and make sure that the phone always comes first.

Welcome to the Dalvik Virtual Machine. :)
 
Please see my earlier equation, you still have Android turned sideways in your head -

Android = embedded real-time Linux operating system + Dalvik Virtual Machine + apps that run in the Dalvik and use operating system services

Android isn't inside the virtual machine.

The combination of Linux and the Dalvik Virtual Machine **is** Android.

And the Dalvik is completely native.

Aaah I see.. wow everything I've heard has been the inverse lol

And no I was just a bit confused on the order of operations, however that goes much further in depth than I would have guessed. I figured (before) that the vm was used for root permissions and because in at least my own experience put simply, virtual machines "handle" more easily. So far this thread has turned around just about everything I thought I knew about android, from apparently less than credible sources! Lol thanks earlymon, I'm glad I got this riff raff figured out lol
 
Back
Top Bottom