Linux wouldn't really exist today if it wasn't for GNU Hurd being a microkernel. It took so damn long for Hurd to become stable that nobody wanted to use it. But people did want to use the GNU tools. So Linus made the Linux kernel a simple monolith, shipped it quickly, integrated patches quickly, and everyone started using it. By the time Hurd was stable, Linux was popular. So microkernels are hard and monoliths are easier, and the first one to the party tends to stick around the longest.
Based on your comment and this question [1] I wonder how well GNU Hurd runs the open source stack and what problems you will find in the road (e.g. GPU support).
I really like the approach of separating, in some way, the kernel, from the user space and interchange them but why you would do that, except for playing and research, if the kernel doesn't give you an advantage and it just an alternative?
On the software side, it's passable; as that post notes, there's a Debian spin on HURD that's basically functional.
In practice, though, GPUs are the least of its concerns; AFAIK, HURD still doesn't support USB:(
> I really like the approach of separating, in some way, the kernel, from the user space and interchange them but why you would do that, except for playing and research, if the kernel doesn't give you an advantage and it just an alternative?
Well I think a lot of it is that we thought it would be easier; in theory, separating concerns and putting drivers in userspace sounds like it should make it a lot easier to write the OS. That didn't really turn out, but it seemed like a good idea at the time. On the more practical side, microkernels can have security and reliability benefits (if drivers run in userspace, they have less access to exploit, and crashing a driver doesn't crash the whole machine). I mean, diversity is also useful for its own sake, but there are more immediate benefits.
It's not really the microkernel per se that delayed GNU/Hurd so much. From the beginning the Hurd project had a more ambitious interpretation of the microkernel paradigm than other microkernel operating systems (e.g. Minix), and this shifted the project from engineering to research, leading to never-ending architecture changes and even wholesale microkernel replacements: https://www.gnu.org/software/hurd/hurd/ng.html