To be clear, I really want a new display server+toolkit+desktop environment to be an absolute last resort. After we no longer have the manpower to keep supporting more and more Linux-only technologies. But if we do get to that point...
The wonderful thing is that it's very easy to get started, and to get something quite usable. Even back in the '90s, having only been programming for 2-3 years, I put together a DOS+VESA "desktop environment" with most of your standard widgets. It was kind of interesting how much more complex a simple text box is than you would think. Sure, it had intense limitations: no acceleration, no compositing, no Unicode, no vector-based fonts, no real applications. But it was perfectly usable as the development IDE I wanted it for, even on that P166.
Nowadays I'm sure I could put together something much nicer. It would just be about spending a few months prototyping how to create the modularity so that it could expand without having to be scrapped. You want to allow for hardware-accelerated drivers. You want a way for OpenGL to fit into the equation. You want to plan for Vsync and adaptive sync, and for KMS and UEFI/GOP. You want the window manager to be its own layer so that others can be written. You want the toolkit to be fully themeable, and you may as well plan for 200+ dpi screens right from the start.
Do all of that, and we can have a basic, modern functional desktop in under six months' time. We don't have to do all of the hardest work, either. Vector font rendering is a hard problem, so we would use the cross-platform Freetype library for that. HTML rendering is an insanely, impossibly complex problem. So we would use the cross-platform WebKit engine for that. Figuring out undocumented instant messaging protocols is challenging, so we would use
libpidgin for that.
Eventually, we could reach a point where we port over Intel, AMD and nVidia/nouveau driver code. We could make an interface between our display server and OpenGL. We could create backends for GTK+ and Qt to run the truly cross-platform applications (the ones you see on Windows, OS X and Haiku) like GIMP, Transmission, Pidgin, Firefox, etc. At some point, I really believe minimalist Linux distributions, those like Slackware and Gentoo, would start to seriously consider a Linux+GNU userland+BSD display server system.
But right now, the only problem all of this Linux technology is causing me is that I have to enable D-Bus+
hald, I have to use a ConsoleKit shim to log out of Xfce, and can't use Thunar's volume manager to auto-mount drives. The rest of my desktop works just fine. Not nearly dire enough to warrant this extreme solution, yet.
jrm said:
Some Xorg developers have reached out to our development community before and received little or no response.
Because it's disingenuous. "Hey, we want to use this elaborately complex init system that's over 550,000 lines of code already and that depends on dozens of Linux-only kernel features and interfaces. Can you guys pretty please support it full stop?"
The answer is no. BSD != Linux. We don't need
cgroups, we have jails. They're not exactly the same, because they are different operating systems. They have very different philosophies. One example I love, is
/dev/random and
/dev/urandom. Linux uses the former for "true" entropy (recording key strokes, mouse movements, interrupt counts, etc.), and the latter for PRNGs. The former will exhaust itself after a few KB of data, and then lock on reads. But "true" entropy is mysticism. There's no guarantee it's truly random, no evidence that it's more secure, and the entropy can actually be significantly worse.
Dilbert sums this up nicely. FreeBSD instead relies on cryptographically secure PRNGs only, because those at least have a scientific basis for their strength. Being a man of reason over faith, I much prefer FreeBSD's approach.
I'm no fanboy. There are some designs where I think Linux does things better. But most of the time, I prefer the approach of the *BSDs. I don't want FreeBSD to turn into Linux just so it can run GNOME 3 for Tablets.
But even when it comes to shims, I think they're underestimating just how small the FreeBSD desktop userbase is. Windows is to Linux as Linux is to FreeBSD on the desktop. (On the server, it's more even. But servers don't need tablet GUI environments.) There just aren't enough developers to keep up with >550K SLOC init systems, when we already have a perfectly functional one.