Re:How is the Linux kernel tested?
by asdfasgasdgasdg on Saturday March 28, 2020 @07:39PM
(#22715161)
> without a DI framework, all classes are (presumably?) instantiating their dependencies directly. ... I've only ever worked in Java so maybe things are different in C-world,
Well, for one thing, there are no classes in C. :) It is possible but unfun to emulate them with function pointers. Iiuc, little of the Linux kernel is written in that style.
Also, FYI, for many years we did DI without frameworks, using the factory pattern and other techniques. It wasn't always fun but it can certainly be done without Spring or whatever the new thing on the block is.
Re:How is the Linux kernel tested?
by blattimwind on Saturday March 28, 2020 @07:50PM
(#22715208)
> Well, for one thing, there are no classes in C. :) It is possible but unfun to emulate them with function pointers. Iiuc, little of the Linux kernel is written in that style.
object-structs with function-pointers-for-methods are super-common in the Linux kernel and basically used everywhere for everything where modules can plug something into the kernel (e.g. virtually all drivers have at least one of these).
Re:How is the Linux kernel tested?
by asdfasgasdgasdg on Saturday March 28, 2020 @09:23PM
(#22715603)
Thanks for the correction. I was going off the little bit of Linux code I've read, which seems to call most functions directly. And also another comment on this story. I don't know what to think now.
Re:How is the Linux kernel tested?
by blattimwind on Monday March 30, 2020 @07:07PM
(#22733101)
Linux is monolithic, but also modular. While drivers are almost entirely implemented with these kinds of objects, "core" modules have less pluggable functionality, and so you don't see it as much. For example, contrast the page cache code (that's basically mm/) with the VFS code (fs/). You'll notice how almost anything I/O uses these kinds of objects heavily.
Unless I've missed something? I've only ever worked in Java so maybe things are different in C-world,