

The return of the Unix wars? - sciurus
https://lwn.net/Articles/494248/

======
exDM69
tl;dr: Long rant about Android internals. I work with them.

Quote: "The notable exception, of course, is Android, but that may well be the
exception that proves the rule: only a company with the financial resources of
Google can hope to take on responsibility for that much code and hope to
maintain it over the long term."

If you start studying (or working with) the internals deep enough, you'll find
out that Android is full of stupid technical decisions which cannot be
sustainable in the long run. Having a Google-sized budget helps but there are
some really weak links in there.

I'll give two examples: the first one is Android's C library, Bionic. It seems
like Android wanted to avoid using GNU libc just to avoid the need for having
to upstream local changes due to GPL licensing in glibc. So they went ahead
and wrote a friggin' C library, arguably the most peripheral and boring of all
the software components in an operating system. And also one that's quite
laborious to put together and maintain. It takes special character to do that.
Ask Ulrich Drepper.

You may argue that Android doesn't need all of glibc or that Bionic does it's
job. From a customer perspective that may be true, but a customer does not see
the libc anyway. But in reality, there's lots of hard work going on every day
to ship products with Bionic. I've been watching that happen a lot recently. A
lot of these issues seem to be related to threading and C++ ABI issues. The
issues that glibc was struggling with 15 years ago.

Another bad example is Android's 2d graphics library, Skia. It is the reason
why Android home screen looks so crappy slow compared to certain competing
products. It has a similar API to a lot of graphics packages that were popular
in the 1990's. It includes bitmap blitters and so on. They have some
optimizations to use NEON SIMD instructions, but it's inherently a software
(CPU) graphics lib. The synchronous API offers no opportunity for hardware
acceleration. I am under the impression that Skia would be going away from
Android and that's a good thing.

I promised two examples, but I'll give one for a bonus: Android's proprietary
interprocess communication mechanism that's implemented in the kernel (can't
remember it's name). It was designed to avoid a memcpy call when passing stuff
from one process to another. That was a reasonable solution with slow
uniprocessor computers of early 2000's but that ship has sailed. These days
this kind of things are better done in the user space, like Dbus, which is
used by most desktop (and some mobile) linux distros.

Whoa, what a rant. But it only tells one thing: I'd much rather work with a
GNU/Linux system than an Android one.

~~~
tosseraccount
As I understand it : iOS provides essentially a C (C/C++ /Objective-C)
interface. Android has a Java API.

Anybody who compares a C based GUI+application with a Java based
GUI+application knows there's a difference.

~~~
exDM69
> As I understand it : iOS provides essentially a C (C/C++ /Objective-C)
> interface. Android has a Java API.

You're talking one level of abstraction above to what I am. Underneath that
Java/ObjC API, there's a layer called the user space library. It consists of
libc and other utility libraries that talk with the kernel. It is usually
implemented in the C programming language (with a little bit of Assembly code
that executes the system calls to the kernel), regardless of what language the
APIs on top of it use. Android's Dalvik (Java) and iOS's Cocoa (ObjC) is
written on top of that.

------
debacle
> But that fragmentation did not happen. Lots of distributions exist, but they
> have all followed roughly the same course and, for the most part, do not
> differ by all that much.

From an end user's standpoint, this is completely untrue. Just look at the
various package management software and philosophies across all of the
distros. It's a mire.

~~~
excuse-me
But you can get the same software on all of them.

Gimp might come from different per-distribution repositories, there may be a
different command line app to grab it, but it's there.

In the old days you had Autocad for Sun but not for HP. The 3D modelling
package ran on SGI but not on Sun. And our microwave antennea simulation
package was only on HP.

We literally had 3 different brands of Unix workstations in a lab, with
different unixes dedicated to running a single app. At least with X you could
run any of them on your own desktop seamlessly.

~~~
debacle
It's there, but it's a different version, and getting the version you want (if
it's the latest version) still requires you to whip out gcc most likely,
unless someone on the Internet has already done the work for you.

~~~
jamesgeck0
Unless you use relatively unpopular software, or you want updates the same day
a new version comes out, chances are that someone has probably already done
the work for you.

~~~
debacle
Maybe for debian, but when I tried updating PHP for PHP5.3 it was impossible
to find a CentOS package, even a year after PHP5.3 was out.

We had to roll our own, which was fine, but the average end user (or the
programmer wearing the sysadmin hat) doesn't have the capability to do that.

~~~
tedsuo
If your distro can't (or won't) keep up with a mainstream package like php,
and you need it to, maybe it's time to switch? Which is easy, because all of
your software will run on whatever flavor you switch to. The ability to easily
jump ship like that is what makes it "not fragmented."

------
ChuckMcM
Interesting rant. Having lived through the first Unix wars I can say with some
certainty that the Gnome/KDE/... UI debates often echoed the NeWS/X/Motif/CDE
debates. The streams/sockets debate or the Kthread/Events debates, same old
same old.

As I've gotten more experienced I have come to appreciate how much some folks
care and how little others in the same space do. Makes for an interesting
path.

Looking at Linux distros I can easily see folks committing stuff who think
Windows 'did it right', the same with folks who felt OSX 'did it right', and
yes folks who felt that SunOS/IRIX/Ultrix/What have you 'did it right.' All
that really tells you is that there are several right ways. Perhaps most
telling is to watch arguments where the parties are arguing from two different
places and talking right past each other.

The result however, in a FOSS world, is you get to see all of these visions of
what is 'right.' But its not so much a war as it is a sort of dysfunctional
anarchy.

In the article, the author notes, but doesn't call out, the difference between
a Linux distro and Android, or Tizen, or WebOS, is that the former often has a
group of equal committers and the latter has a person/organization that is
driving to a particular vision/goal. So while one can rant about how Android
sucks as a desktop OS, or Ubuntu sucks as a Phone OS it doesn't really inform
the conversation much.

I believe that we will see the emergence of a 'read-only' FOSS project, in the
sense that it gains traction, is 'open' in the sense that you can get the code
and all, but the leader doesn't allow any outside changes. Android and Chrome
both have some of this feel.

------
tosseraccount
The big Unix war is Apple's BSD/Darwin vs Linux. Can linux exploit its
foothold on the desktop? Can Apple subsidize it's way into the server room?

~~~
debacle
Does Apple want to be in the server room? Can Apple make money in the server
room?

I think the answer to both of those questions is probably no.

~~~
sp332
Apple made a serious bid in the server space before, but it seems dead now.
Remember the Xserve? <http://www.bioinformatics.colostate.edu/hardware.html>

~~~
sophacles
My understanding of Xserve was that it was less "server space" and more back-
office. I know the back office runs on servers, but server-space makes me
think of racks of machines in a big server room or data center. I always felt
Xserve was just targeting small offices (design companies and the like) that
were already apple shops, rather than serious "grown up" servers.

~~~
sp332
You may be right in general, but I remember they made a big deal about large
server clusters and big-iron, bioinformatics stuff for a while.

------
Apocryphon
Perhaps it's time to check out Haiku?

~~~
debacle
Is Haiku production ready? How long before it even moves to beta?

~~~
drzaiusapelord
by looking at their roadmap:

<http://dev.haiku-os.org/roadmap>

Its either tomorrow or never. I don't think its a fast moving project.

------
papsosouid
It isn't a war when they are all open source. And the differentiation between
linux distros isn't new, and doesn't matter. All decent unix software works on
a bunch of linux distros of various ages, plus half a dozen BSDs, solaris and
OSX. Ubuntu not using systemd doesn't matter at all.

