This 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.
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.
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
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.
This 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.
I'm trying to imagine a use case for this, but can't think of anything. Maybe Desktop mode + full/real Linux apps?
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.
[delayed]
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
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.