The Linux kernel uses a hook-type memory management for modules. The only overhead for a modular kernel is this "hook" which is very small (a few bytes or a few Kbytes, I'm really not sure). This is added when you say you want a modular kernel in the config file. This is the overhead that you are concerned about. A modular kernel with modules X, Y, and Z will be ever so slightly bigger than a monolithic kernel with X, Y, and Z. By having a modular kernel you are not increasing your kernel's necessary RAM or changing the optimization but you are giving yourself the opportunity to modify your kernel on the fly. This is one of the best feature of the Linux kernel. I would be very careful when not using it. Jeff Rasmussen -----Original Message----- From: Shawn [mailto:sfertch at real-time.com] Sent: Friday, February 20, 2004 5:58 AM To: TCLUG Mailing List Subject: Re: [TCLUG] Kernel question On Thu, 19 Feb 2004 23:17:05 -0600 (CST) Munir Nassar <nassarmu at redconcepts.net> wrote: > yes a monolithic kernel is smaller, but who cares? > at most its maybe 50 megs, thats $.5 in todays harddrive prices. > > the advantage of modularized kernels far outweighs the size or the > kernel. > > also another advantage of modularized kernels is that you can unload > and reload the module to add support for hotadded items, such as > scsi devices. of course this does not work if you want to reload > oyur adaptec drivers while the bootdevice is on said adaptor. > I wasn't specifically talking about size of the kernel, but that is an important bit as well. I was thinking more along the lines of memory utilization by the kernel. If the kernel requires too much memory to run, you degrade the overall performance of the system. On a system where I'd be using hot-swap devices, or a "test box" so to speak, I'd load things as a module. But I was thinking that a monolithic kernel that was built for that specific machine that won't be using hot plug/swap devices shouldn't need them loaded. Why waste resources to load or run a module or part of the kernel when it's never going to be used? Regardless of the amount of memory or CPU available to the system. If you're trying to optimize a system, you want to have everything set correctly. >From what I've seen on my different systems, with different processors/memory/HW configs, there's almost always a default of i686 even on the Athlon processors, as well as modules loaded I'm never going to use. I'd rather have the kernel tuned for the correct processor, and eliminate part of the kernel that I'm never going to use. Sure, it won't hurt anything to run the default kernel, I've been doing it for quite a few years. Just now do I have the itch to want to optimize the kernel. Of course, that leads to many different kernels as someone (Karl?) mentioned. But, to me right now that isn't an issue. Besides, I administer close to 40 HP-UX and Tru64 boxes at work that are for the most part running custom built kernels per the use and load of each particular box. -- Shawn "Courage is resistance to fear, mastery of fear -- not absence of fear." -Mark Twain Ne Obliviscaris -- "Forget Not" _______________________________________________ TCLUG Mailing List - Minneapolis/St. Paul, Minnesota http://www.mn-linux.org tclug-list at mn-linux.org https://mailman.real-time.com/mailman/listinfo/tclug-list _______________________________________________ TCLUG Mailing List - Minneapolis/St. Paul, Minnesota http://www.mn-linux.org tclug-list at mn-linux.org https://mailman.real-time.com/mailman/listinfo/tclug-list