Android isn't based on Linux. It's based on DangerOS(quora.com)
quora.com
Android isn't based on Linux. It's based on DangerOS
https://www.quora.com/Why-is-Android-based-on-Linux/answer/Marty-Fouts-2?share=1
38 comments
It kinda depends on how you mean "based on"; the general design on Android may be based on DangerOS (or, it sounds like, any of the Java-based embedded appliances that were so popular back then), rather than GNU/Linux (because in this sense, it couldn't be based on "Linux"), but in the sense of implementation Android/Linux is absolutely based on a Linux kernel and even a quasi-unixy base userland before you get up to the not-really-a-JVM application layer.
Yeah, this is answer is kinda overly focused on semantics. Linux syscalls are _officially_ part of the Android API layer, so much that the Fuschia team has to add compatibility for them.
You could just as easily and just as truthfully say it's merely semantics to say it's based on linux just because it happens to use linux now.
The argument "Fuscia has to emulate linux, that shows it's hard-tied to linux" is countered by "it has already switched kernels, that shows it can switch kernels".
Today, nothing is really indellibly based on anything. Everything can be emulated/replicated/spoofed/pacified so well, and native stacks are so tall now, that there is hardly any functional difference between "native" and anything else now. What's the difference really amid 13 layers between some hardware and some application code, if one of those layers happens to be wine or linuxulator or java or hyperv?
The mere semantics is the idea that there is even any consequential meaning to the very phrase "based on" any more.
The argument "Fuscia has to emulate linux, that shows it's hard-tied to linux" is countered by "it has already switched kernels, that shows it can switch kernels".
Today, nothing is really indellibly based on anything. Everything can be emulated/replicated/spoofed/pacified so well, and native stacks are so tall now, that there is hardly any functional difference between "native" and anything else now. What's the difference really amid 13 layers between some hardware and some application code, if one of those layers happens to be wine or linuxulator or java or hyperv?
The mere semantics is the idea that there is even any consequential meaning to the very phrase "based on" any more.
I would disagree, I think this answer is not focussed enough on the semantics.
For better or for worse, the "Linux" name has become synonymous with the whole OS and not just the kernel, and the person answering seems to take the assumption that this is what the person asking the question believes. While its interesting to know there's heritage from DangerOS in Android, the answer could have quite easily just been the last bit: "because the Android founders didn't want to spend time writing a new kernel from the ground up".
As a tangent, why do people say "GNU/Linux" anyway? We don't say "Windows/NT" or "macOS/Unix", and I think saying "GNU" when we mean GNU and "Linux" when we mean Linux would solve a lot of the problems with translation of assumptions when novices and experts interact.
For better or for worse, the "Linux" name has become synonymous with the whole OS and not just the kernel, and the person answering seems to take the assumption that this is what the person asking the question believes. While its interesting to know there's heritage from DangerOS in Android, the answer could have quite easily just been the last bit: "because the Android founders didn't want to spend time writing a new kernel from the ground up".
As a tangent, why do people say "GNU/Linux" anyway? We don't say "Windows/NT" or "macOS/Unix", and I think saying "GNU" when we mean GNU and "Linux" when we mean Linux would solve a lot of the problems with translation of assumptions when novices and experts interact.
Not really, they aren't documented as belonging to NDK stable APIs.
Google doesn't give any guarantees that they work across devices or version upgrades.
Google doesn't give any guarantees that they work across devices or version upgrades.
Probably correct is not "based", should be "inspired".
That would make the claim true but no longer an answer to the question.
The easiest way to settle this argument is to just run ARM Linux apps on Android via Termux + Proot: https://github.com/adi1090x/termux-desktop
While one can quibble over whether Android "is" Linux, it's inaccurate to say that it "isn’t based on Linux" given how close their underlying systems are.
While one can quibble over whether Android "is" Linux, it's inaccurate to say that it "isn’t based on Linux" given how close their underlying systems are.
You could run Android apps on Blackberry's ill-fated Blackberry 10 OS. A lot of the apps in the BB app store were repackaged Android applications (while developing BB10-native was easy, in terms of market it was a no-brainer to do an Android version and repackage it for the BB10). QNX was (and is) a rock-solid OS.
The integration with Linux goes even beyond system calls as others have noted. The entire app sandbox is based on Linux UIDs:
"The Android platform takes advantage of the Linux user-based protection to identify and isolate app resources. This isolates apps from each other and protects apps and the system from malicious apps. To do this, Android assigns a unique user ID (UID) to each Android application and runs it in its own process."
So each app sandbox on Android maps to the traditional "user" accounts on Linux/Unix systems.
https://source.android.com/security/app-sandbox
"The Android platform takes advantage of the Linux user-based protection to identify and isolate app resources. This isolates apps from each other and protects apps and the system from malicious apps. To do this, Android assigns a unique user ID (UID) to each Android application and runs it in its own process."
So each app sandbox on Android maps to the traditional "user" accounts on Linux/Unix systems.
https://source.android.com/security/app-sandbox
While you can discuss what is proper definition of "based" it is definitely incorrect to say that Android is not based on Linux for it uses Linux kernel which is the most important part of the Operating System.
If we were so nitpicky we would have to say there is in fact no Linux, as most "Linux" distributions are GNU OS.
As nobody will question that Debian or Red Hat are Linux distributions there is no grounds to proclaim that Android isn't one.
If we were so nitpicky we would have to say there is in fact no Linux, as most "Linux" distributions are GNU OS.
As nobody will question that Debian or Red Hat are Linux distributions there is no grounds to proclaim that Android isn't one.
Yeah, especially as the Linux fork that Android uses converges back to mainline, Android/Linux is just another system sitting next to GNU/Linux distros and the odd outlier like Alpine/Linux (busybox/Linux? musl/Linux?).
This is such a weird comment.
Android isn't based on Linux, it just runs on top of it.
This feels like serious hair-splitting here. It definitely treads the fine line of "What is an OS".
It's worth mentioning that the author of the Quora answer is a retired member of the NetBSD foundation which may play into his perception of the situation.
Android isn't based on Linux, it just runs on top of it.
This feels like serious hair-splitting here. It definitely treads the fine line of "What is an OS".
It's worth mentioning that the author of the Quora answer is a retired member of the NetBSD foundation which may play into his perception of the situation.
I worked for an OHA company in 2007. The earliest architecture diagrams showed Linux as a HAL and that’s all. This wasn’t some big secret.
> DangerOS, which was a custom Java virtual machine living above a custom Danger written RTOS
RTOS means Real Time Operating System. The same Quora author explains what DangerOS was a bit better in another Quora answer [0]:
It was originally a very customized Java Virtual Machine (JVM) that ran on top of a scratch built RTOS kernel and provided support for Danger’s user interface and programming libraries.
Still unclear to me if this is true, and what the implications are. I see no mention of DangerOS elsewhere.
[0]: https://www.quora.com/What-is-RTOS-and-why-have-no-one-menti...
RTOS means Real Time Operating System. The same Quora author explains what DangerOS was a bit better in another Quora answer [0]:
It was originally a very customized Java Virtual Machine (JVM) that ran on top of a scratch built RTOS kernel and provided support for Danger’s user interface and programming libraries.
Still unclear to me if this is true, and what the implications are. I see no mention of DangerOS elsewhere.
[0]: https://www.quora.com/What-is-RTOS-and-why-have-no-one-menti...
Yeah, DangerOS doesn't exist. This person's answer is nonsense, not sure why it's being highlighted here.
The other answers are equally absurd.
The other answers are equally absurd.
https://en.wikipedia.org/wiki/Danger_Hiptop#Software
What operating system and Java Virtual Machine (JVM) are you using? Danger has written its own operating system and JVM for the hiptop. The Operating system has preemptive multitasking and a soft real-time scheduler, and it has been tuned specifically for running our JVM. All end-user applications are written in Java, as is the overwhelming majority of the high-level operating system. Arguably, Danger has the premiere "Java Operating System" on the market today.
https://web.archive.org/web/20100405231610/http://developer....
What operating system and Java Virtual Machine (JVM) are you using? Danger has written its own operating system and JVM for the hiptop. The Operating system has preemptive multitasking and a soft real-time scheduler, and it has been tuned specifically for running our JVM. All end-user applications are written in Java, as is the overwhelming majority of the high-level operating system. Arguably, Danger has the premiere "Java Operating System" on the market today.
https://web.archive.org/web/20100405231610/http://developer....
DangerOS exist. But Android does not base on it.
https://en.wikipedia.org/wiki/Danger_Hiptop#Software
https://en.wikipedia.org/wiki/Danger_Hiptop#Software
Well, Danger, Inc. had products before some people splintered off to form Android, so it's not at all shocking to consider they had a homegrown embedded kernel and brought up a JVM on it. It's also not really shocking to speculate that experiences with that could have influenced the team of ex-Danger people when they later decided to build Android on Linux.
Whether or not this Quora user has any insider insight on this, I don't know.
Probably they could not have used Danger code, since it was owned by someone else. But you might say they replicated a similar design.
Whether or not this Quora user has any insider insight on this, I don't know.
Probably they could not have used Danger code, since it was owned by someone else. But you might say they replicated a similar design.
Getting online answers absolutely correct and above nitpick could be a full-time job. From a historical development perspective, the post is interesting and factually describes the roots of Android. There's probably much more to the story though.
In short: Danger (of Sidekick fame, had to look that up actually) was running an embedded JVM that for a while had its own bespoke RTOS underneath before switching to NetBSD.
Before going up in the flames of a brand-wide cloud data loss: https://en.wikipedia.org/wiki/2009_Sidekick_data_loss (I didn't expect contemporary headlines to already have the term cloud)
Before going up in the flames of a brand-wide cloud data loss: https://en.wikipedia.org/wiki/2009_Sidekick_data_loss (I didn't expect contemporary headlines to already have the term cloud)
> I didn't expect contemporary headlines to already have the term cloud
Back when I was in middleschool/highschool in 2000-2006, my dad regularly brought home Information Week magazines, which had plenty of ads and articles about cloud computing.
Back when I was in middleschool/highschool in 2000-2006, my dad regularly brought home Information Week magazines, which had plenty of ads and articles about cloud computing.
I first heard Cloud used in the modern sense when Loudcloud's name was selected, which would have been some time in late 1999. But we had used the terms cloud in white board discussions for years before, drawing a "cloud" to represent "services that we get from somewhere on the net". So using the word cloud in a company name seemed fitting and not particularly novel, at the time.
In 2008 my masters thesis (that I didn't finish) was based on a project I'd called "fog", to bring the cloud back down to us. The term was definitely widespread by then.
Android is really a mishmash of parts - a large chunk of the functionality in it's "Bionic" libc is pulled from OpenBSD's libc: https://en.wikipedia.org/wiki/Bionic_%28software%29#Componen...
That implies Android is not an OS, but an API and a set of services running on top of a Linux-based OS that's embedded on each and every Android device ever sold.
That's what Windows was, from 1 to 3.11.
That's what Windows was, from 1 to 3.11.
I remember the SDK did not support all of the Java standard library, a lot of functionality were in danger.* packages.
When I first saw android, it seemed to me somewhat familiar. The vm that runs custom bytecode, etc.
Sadly, it looks like all the forums and mailing lists are now gone. I found a site with the source code of some apps, https://hipme.com
When I first saw android, it seemed to me somewhat familiar. The vm that runs custom bytecode, etc.
Sadly, it looks like all the forums and mailing lists are now gone. I found a site with the source code of some apps, https://hipme.com
I think it’s an interesting answer... to a different question: “What operating system Android conceptually descends from”.
On a side note, I used to work very closely with Marty at Samsung before his retirement. He is an inspiration for me and I really loved working with him at that time. At that time, lots of ex-Danger folks joined Samsung and later joined Google to work on Android OS.
This Quora answer seems really weird and the Wikipedia article doesn't clarify much. I recall people talking about the hiptop using NetBSD pretty early on...
I kindof get them calling DangerOS an OS though after reading through the answer, its kinda a meta-OS...
The hiptop did not use NetBSD until the very last model. It was a bare-metal RTOS prior to that.
"Please enable JavaScript and refresh the page to continue" = No, fuck you.
And Maemo was not based on Linux, was based on Debian!!!111
BSD Unix :-(
Upvoted, not for the article itself but for the interesting discussion.