Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Unix kernel is hugely popular: think of the millions of Android devices.

Unix userland, not so much, outside the software engineering community.



Linux is not UNIX. GNU/Linux is POSIX (common standard for UNIX'es) compatible, so it is UNIX compatible. Android/Linux is not POSIX compatible, however compatible library can be installed to Android/Linux to make it POSIX compatible, see http://stackoverflow.com/questions/27604455/is-android-posix... .

*BSD, MacOS X, iOS are UNIX'es, see https://en.wikipedia.org/wiki/Darwin_(operating_system) .


Linux distributions are often not POSIX-compatible out of the box either, at user level. Typically some commands are missing due to insufficient shiNIHness, and there may not be a POSIX-compatible shell ('bash --posix' is not, at least as of bash 4.3).


No current open source *BSD is anymore UNIX than Linux is.


I doubt the BSD developers that are part of BSD since the days before the lawsuit will agree with you.


They may not, but there's so little original UNIX code in *BSD these days that it does not matter, in fact that's one of the main reasons they won the lawsuit in the first place.


I just opened my Red Book and reread «Short history of UNIX». Berkley University bought license for AT&T UNIX[1] in 1977. They started to develop their own software for UNIX and distribute it, so this variant of UNIX is called BSD. Then they decide to remove and rewrite original AT&T code, due to license and associated costs, and released 4.3BSD[2], which then used by BSD flavors.

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...


Yes, my point is that since *BSD does not contain the original UNIX code anymore, it is no more UNIX than Linux is, since it was basically rewritten from scratch.


I understands your point but it's wrong because UNIX is system, not a single component. UNIX was generic name until it trademarked. See books, see complete code: http://minnie.tuhs.org/cgi-bin/utree.pl . As you can see, BSD UNIX still contains lot of code from BSD UNIX.


"Unix kernel is hugely popular: think of the millions of Android devices."

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.


> he huge problem here is that popularity means nothing if the user is not aware of what he/she is using

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.


I don't like this argument, because Android is not developed openly and the kernel itself is a fork which lags behind the mainstream Linux development until Google implements the changes, which users see when they throw away their phone because Samsung/HTC/Xiaomi/Ulefone/Whatever doesn't want to update the phone or Verizon/ATT/Telenor/T-Mobile, etc., doesn't want to push the update because they branded the phone so that means its theirs but not their responsibility.


Android can be run on vanilla kernel with few patches: http://forum.xda-developers.com/nexus-7-2013/general/android... .

Android apps can be run on GNU/Linux without emulation when required libraries and daemons are available (on compatible architecture, of course).


True, but how many devices will allow you to install and use that system without being forced to add blobs?


Very few, if any. Enthusiasts need to reverse engineer binary blobs and write open source drivers, as usual.


Have you ever used the NDK?

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.


>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


Don't iPhones and iPads also have a UNIX kernel?


It's complicated. Original UNIX by AT&T was newer open-sourced. BSD (Berkley Software Distribution) was opensource distribution of user programs for UNIX (like TCP/IP stack, vi editor, etc.), used by original UNIX, with proportions 20% of AT&T code and 80% of BSD code. So technically, BSD is(0.8) not(0.2) UNIX. FreeBSD is branched from BSD code, so it is(0.8) not(0.2) UNIX too.

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.


If you want to get technical about it, the Mac kernel itself isn't a traditional UNIX or BSD kernel; XNU (which, conveniently enough, stands for "X is not UNIX") is a hybrid composed of the Mach microkernel, some FreeBSD components, and Apple's own driver model.

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.


Yep, XNU is Mach microkernel + FreeBSD kernel. Some features of XNU are even ported back to FreeBSD kernel. IMHO, that is enough to draw direct connection from XNU to original UNIX (without ™), unlike Linux kernel.


Mach microkernel + FreeBSD userland.... not kernel.

BSD is a 'personality' layer.


Original Unix by AT&T was open sourced under BSD terms, but long after Linux and macOS came into being.


He asked about the Kernel. The Kernel is XNU / Mach, modified to act like a monolithic/hybrid kernel. The BSD code in Mac OS X is all user space, much of which probably isn't in iOS at all.


Nope. Part of kernel as well: https://en.wikipedia.org/wiki/XNU#BSD


They do, and a certified one at that.

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 a certified UNIX, is it?


It's not. Apple's only certified for "macOS version 10.12 Sierra on Intel-based Mac computers" (previously that was "Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers", etc)

http://www.opengroup.org/openbrand/register/apple.htm


Can't say for certain, but I think it is.

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.


Android doesn't run a Unix kernel. Hell, Linux isn't even all that compatible with Unix outside of POSIX.

http://kernelbook.sourceforge.net/pdf/ch-intro.pdf




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: