Unix userland, not so much, outside the software engineering community.
Unix userland, not so much, outside the software engineering community.
*BSD, MacOS X, iOS are UNIX'es, see https://en.wikipedia.org/wiki/Darwin_(operating_system) .
So BSD is UNIX, but it contains no AT&T code today.
[1] http://www.nordier.com/v7x86/index.html [2] https://virtuallyfun.superglobalmegacorp.com/category/4-3-bs...
You probably meant Linux, not Unix. Unix is an entire class of operating systems, not a kernel. Nitpicking aside, the huge problem here is that popularity means nothing if the user is not aware of what he/she is using, so I would rephrase that as "the Linux kernel is hugely widespread ...". There is still a big problem though: Android is mostly closed, at least all vital device drivers are, so that you have no chances to build a working non Android environment on newer devices or patch old ones, move an installation from a device to a different one etc. Having a Linux kernel does not help in this context since all benefits the FOSS community infused into the system were stripped away. I would dare to say that telling people that Android contains a Linux kernel is even dangerous to the Linux image.
I'd say that doesn't matter at all.
The person running Internet Explorer or Microsoft Edge doesn't know they're using a VMS workalike/derivative/successor either.
Android apps can be run on GNU/Linux without emulation when required libraries and daemons are available (on compatible architecture, of course).
Android is all about Java and there is only a very thin subset of native APIs that are available, including POSIX ones.
https://developer.android.com/ndk/guides/stable_apis.html
Starting with Android 7, calling anything outside of that list will terminate the application.
Google could replace the kernel for something else, while keeping those NDK APIs and only OEMs writing drivers would notice.
And they're planning on doing precisely that with Fuchsia
Apple MacOS X is based on FreeBSD code (and lot of other code), and it certified as UNIX compatible, so MacOS X can be named as UNIX. iOS is based on MacOS X, so iOS is UNIX too.
The system as a whole is able to brand itself as UNIX compliant, though, because it complies with the Single UNIX Specification. That spec is concerned about userspace behavior, not kernel or implementation, and you don't have to include any actual UNIX source code to be able to brand your OS as a "UNIX" according to the spec and trademark guidelines.
BSD is a 'personality' layer.
Android phone's doesn't, as Linux is not technically a UNIX (doesn't derive from the original UNIX codebase in any way.
I don't think iOS is anything else than OS X with a different facade (Cocoa Touch, which for UNIX doesn't matter) and a few additional services. It has all the usual POSIX interfaces (and some of the userland) underneath. So even if it violates some models (e.g. with regards to user accounts), it's still the same codebase, heralding from the BSD years.