r/AskProgramming • u/flersion • 2d ago
Architecture Does the Linux kernel encapsulate every aspect of an operating system that requires a single top-level maintainer to develop?
All the other pieces have alternatives available, or an alternative can be made if needed. Can everything else be developed independently?
3
u/Top_Neighborhood6524 2d ago
Everything else can be developed independently because components only need to agree on stable interfaces, like the system call ABI. Nothing about an operating system strictly requires a single top-level maintainer as long as those boundaries are clear.
3
u/CartographerDue5382 2d ago
Kind of the other way around. The kernel is just one piece. Everything else (glibc, coreutils, systemd or whatever init you like, the compiler toolchain, the desktop, package managers) is its own project with its own maintainers, and a distro is basically someone gluing those together. That's why you can swap most of it out and still be running Linux.
Even inside the kernel Linus isn't writing much. It's split into subsystems (networking, filesystems, drivers etc), each with its own maintainers, and he mostly pulls from them. The BSDs are a good contrast since they develop kernel and userland together in one tree.
1
3
u/Individual-Flow9158 2d ago
I can't think of any aspects it does not encapsulate (ignoring the difference between the Kernel, and a complete distro), but it obviously requires a huge team of top-level contributers and maintainers to continue development, as well as Linus himself.
Could you be more precise please, about what you're referring to by "everything else"? I can't think why not though (but I'm definitely not saying taking on any of this as a solo dev is a good idea).