Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I've done a couple of google searches, but I can't seem to come across an answer, at least not within the first two search pages. I wanted to know whether the Ubuntu kernel is modular or monolithic? I saw one article which said that most of todays distros are highly modular, but nothing specific enough to mention the specific ones.

Just something of interest and wanted to know!

share|improve this question
1  
It is modular. Most hardware drives are only kernel modules. Run lsmod and be sure. –  con-f-use Aug 8 '12 at 21:03
    
What would I be looking for when I run "lsmod"? –  mattrudlles Aug 9 '12 at 11:37
1  
I'd be a major change. Probably will never happen. –  josinalvo Aug 9 '12 at 12:32

2 Answers 2

up vote 5 down vote accepted

Linux kernel is both a monolithic kernel and a modular kernel :) Those things are not mutually exclusive.

Monolithic kernel refers to a kernel all parts of which share a common address space:

This reduces the amount of context switches and messaging involved, making the concept faster than a Microkernel. On the downside, the amount of code running in kernel space makes the kernel more prone to fatal bugs.

The opposite of "monolithic kernel" is "microkernel", where the kernel is only responsible for coordinating services running in user space which do all the actual job.

"Modular kernel" means that

some part of the system core will be located in independent files called modules that can be added to the system at run time. Depending on the content of those modules, the goal can vary such as:

  • only loading drivers if a device is actually found
  • only load a filesystem if it gets actually requested
  • only load the code for a specific (scheduling/security/whatever) policy when it should be evaluated

Those modules are still running in the kernel space and not in user space, so the kernel architecture is still monolithic.

share|improve this answer
    
Do you think that Linus will ever change the linux kernel to a mircrokernel? I've heard that there are some OS's out there which use the microkernel, but happy with ubuntu right now. –  mattrudlles Aug 9 '12 at 11:42
1  
@mattrudlles: Actually, a micro-kernel for GNU project has been in development since before Linus started working on his project, it is called HURD: gnu.org/software/hurd/hurd.html There's also an experimantal Debian flavour which uses HURD, but it's not clear if those efforts will ever produce a stable product. When Linus in his first email announcing Linux says "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)" - I suppose he means GNU HURD. Ironic, isn't it? –  Sergey Aug 10 '12 at 1:10
1  
@mattrudlles: You may also read about Tanenbaum-Torvalds debate: en.wikipedia.org/wiki/Tanenbaum–Torvalds_debate - which is a famous discussion about the reasons why Linux kernel is monolithic and why this is a good thing. –  Sergey Aug 10 '12 at 1:17
    
Thanks all. Read the debate last night! Interesting read, and some of those predictions... I wonder what they would say if they could re run this debate! –  mattrudlles Aug 10 '12 at 18:11

Ubuntu is a GNU/linux distribution. That means, in particular, that it uses the linux kernel.

The linux kernel is considered a monolithic kernel.

It has modules, but they all share the same memory (i.e. : one can write in "the others" memory), whereas, in a modular kernel, different parts (such as drivers) run with separate memory (and, in certain cases, can even fail without compromising the kernel as a whole)

share|improve this answer
1  
It seems like you're using the term "modular kernel" to mean "microkernel." –  Eliah Kagan Aug 8 '12 at 22:34
    
I remember reading about those two terms. So how does microkernel differ from monolitithic? So is the linux kernel monolithic? –  mattrudlles Aug 9 '12 at 11:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.