Tess's Android Wayland Compositor
github.comThis looks promising. Would be cool if we could set a standard Linux DE (like Plasma) as the default homescreen and have it integrate with Android's notifications, apps etc.
Oh that Is cool especially on a foldable you can run some interesting apps on it. And with wine + fex even more crazy stuff.
Very cool.
> libhybris allows glibc Linux programs to load the standard Android graphics drivers
I don't quite follow why you need that? This runs on a real full Android, so surely drivers already work?
The graphics drivers on Android are compiled with Bionic where as most Linux distributions are compiled with glibc. You can't really mix and match them.
Desktop linux apps still need to link to the system graphics driver to get hardware acceleration.
> Desktop linux apps still need to link to the system graphics driver to get hardware acceleration.
Oh, right. I forgot about that part. Thx.
That's just the tip of massive ridiculous endless NIH reinvention. Nothing works at all the same in any way. Android has its own Surface Flinger windowing system, with its own drivers. Nothing is at all alike the rest of Linux userlands, from libc up.
NIH barely applies here at all. If we take into account the constraints they were under and the absolute state of desktop Linux when Android started, it makes total sense.
Starting a lot of the components as greenfield projects will fortunately help a ton with shedding years and years of legacy cludge, hacks and desktop first design. Without mentioning the colossal amount of friction they would've faced if they tried to upstream any of the code they would've produced by the end. "We don't care about that issue. Closing."
Because of the above, they still would've needed to have their own fork regardless and still would've eventually diverged further and further -- so why bother? With a greenfield project, you can just optimize to your specific constraints. If the maintenance becomes too burdensome, just pick up the best of your design and reimplement them onto the non-greenfield project, everyone wins :D
Maemo was right there at the same time?
Yeah, it technically was there, but it had proprietary components and Nokia had a baggage of softbware project management being super inefficient because of their earlier roots of how they developed software in their past. Not that I have personal experience of it, but a colleague of mine had first hand experience of it.
Nokia had a "means to an end" type of perspective to software, it was all made to be basically disposable and they didn't have great "steward of the platform" type of effort.
Also, if we take a gander at the timelines, unfortunately QT and Maemo were happening in parallel, and of course Maemo was based on GTK. (But QT was still a Nokia proprietary tech back then.) Right hand not knowing what the left hand was doing etc.
Not that any of this means anything, just felt that this was all relevant.
I don't think it's NIH so much as the glibc ABI is a broad surface of implementation specific choices outside the C standard, and a moving target. It's an emergent property of many small implementation choices that another libc project would find too difficult to replicate.
I had a recent experience fighting this sort of thing when I wanted to cross-compile from a distro using glibc to a distro using musl.
Glibc is also kind of bloated and it's reasonable that android or a similar embedded project would not want to pull the whole thing in. Especially when you consider the original goal of bionic was just to bootstrap Java code, which was meant to be the primary platform interface rather than C, they would want a very minimalist libc for that purpose.
SurfaceFlinger is not NIH. When Android was being never Wayland was barely a thing and Xorg is inappropriate for embedded.
D-bus had been around for a decade. Asserting that X was inappropriate requires a little more justification in my view than a blanket testimony. Worked ok for Nokia!
Binder predates Dbus and uses less memory than Dbus, which is important in memory constrained devices.
> Worked ok for Nokia!
Yeh... No multi-touch, terrible latency.
Nokia certainly did well...
I'm trying to imagine a use case for this, but can't think of anything. Maybe Desktop mode + full/real Linux apps?
This is what the author showed off on Twitter at least, with Desktop chromium I think.