@vbabka @captainepoch BSD suffers from all the same problems, really. Linux and BSDs seem less of proper operating system kernels and more of a bunch of crudely bolted together hacks. The fact that there is no well-supported in-kernel debugger is just abysmally stupid. Yes, I know about KGDB. No, it's not good, getting it to work oftentimes is a challenge of its own. WinDbg is miles ahead.
Then there is the fact that Linux openly disregards any notion of API compatibility. Having your module work sometimes even within a small range of kernel versions is hard. Supporting at least two RHEL kernels often requires so many
#ifdefs, it seems borderline comical. Check out OpenZFS code some time, they support kernels from 3.10 to this day and their compatibility layer is absurdly enormous just due to this.
(also it's funny that both Linus and Greg KH are openly hostile towards ZFS developers, lowkey threatening them with lawsuits, when this is one of the more stable and functional filesystems available on Linux)
Documentation is lacking, to say the least. This is what Rust people ran into when integrating their crab language into Linux.
And last I checked, these problems not only aren't being solved, they aren't even acknowledged as problems. It's an outright abhorrent farce of a development culture.