5 ms·
Monolithic kernel means the changelist includes everything from file systems to GPU drivers.
by Scuds 7y ago
Monolithic kernel means the changelist includes everything from file systems to GPU drivers.
- aprdm 7y agoIt also means that everything either works or doesn't work. A dependency tracking system with mix & match of versions of subcomponents of the kernel that either work together or not looks like a nightmare to me.
- Diederich 7y ago> It also means that everything either works or doesn't work Isn't quite a large percentage of the Linux kernel in the form of loadable modules, such that a given running system will only running a fraction of the total code?
- jraph 7y agoYes but these modules are built from the exact same code version as the kernel being used. No dependency hell. But maybe such a solution could work with a micro-kernel architecture too. It seems that a micro-kernel and its components could also be gathered in a same code base. You would get the kind of changelog the first commenter of this thread mentioned though. It seems we are speaking of two different things here: code management and kernel architecture.
- jschwartzi 7y agoIt definitely works with a micro-kernel. The issue in question fits under the umbrella of "software configuration management." In other words, how do you make sure that you are running versions of all of your components which are the same as when you tested? And how do you establish a known-good set of components in the first place? A competent engineering team should have a way to verify that all the important components of their system are controlled so that a different version can't sneak in. This could be through the revision control system, or it could be through some design notes and a verification activity. But you have to do something to make sure your system is built from a known-working set of artifacts. And in a lot of cases your software configuration extends to your build system. I've been burned before by build system and host operating system changes that result in the software configuration of my embedded images changing and introducing bugs.
- Diederich 7y agoOk I misunderstood, having fallen into the trap of reading and reacting to the first sentence before reading the rest. (: I didn't realize that the topic was dependency management, but rather about 'kernel breakage'. My apologies. I have professional experience in large organizations that use monorepos, and have been impressed with the results.
- deleted 7y ago[deleted]
- monocasa 7y agoHurd's changelist looks similar, because just since it's a microkernel doesn't mean you don't want the user space parts colocated in the source tree. Additionally, pretty much all microkernels that support GPUs (which are very few) have about the same in kernel drivers as monolithic kernels since GPUs have their own MMUs and managing the MMU is about the only thing either wants to do in kernel space.
- ris 7y agoNo - a single source tree means that it contains all that. A microkernel could easily have its source tree set up in a similar way (and there are many reasons one might want to).