Dynamically loadable kernel modules, Operating System

Assignment Help:

Q. Dynamically loadable kernel modules give elasticity when drivers are added to a system however do they have disadvantages too? Under what situations would a kernel be compiled into a single binary file and when would it be better to keep it split into modules? Describe your answer.

Answer: There are two principal disadvantages with the use of modules.

The initial one is size- a module management consumes un-page-able kernel memory as well as a basic kernel with a number of modules loaded will consume more memory than an equivalent kernel with the drivers compiled into the kernel image itself. This can be a extremely significant issue on machines with limited physical memory.

The second disadvantage is that modules can increase the complexity of the kernel bootstrap process. It is hard to load-up a set of modules as of disk if the driver needed to access that disk itself a module that needs to be loaded. Consequently managing the kernel bootstrap with modules can require extra work on the part of the administrator the modules necessary to bootstrap require to be placed into a ram disk image that is loaded alongside the early kernel image when the system is initialized.

In certain cases it is better to utilize a modular kernel as well as in other cases it is better to utilize a kernel with its device drivers pre-linked. Where reducing the size of the kernel is important the choice will depend on how frequently the various device drivers are used. If they are in constant utilize then modules are unsuitable. This is particularly true where drivers are needed for the boot process itself. On the other way if some drivers aren't always needed then the module mechanism allows those drivers to be loaded and unloaded on demand potentially offering a net saving in physical memory.

Where a kernel is to be built that should be usable on a large variety of awfully different machines then building it with modules is clearly preferable to using a single kernel with dozens of unnecessary drivers consuming memory. This is principally the case for commercially distributed kernels where supporting the widest diversity of hardware in the simplestmanner possible are a priority.

Nevertheless if a kernel is being built for a single machine whose configuration is known in move forwards then compiling and using modules may merely be an unnecessary complexity. In cases similar to this the use of modules may well be a matter of taste.


Related Discussions:- Dynamically loadable kernel modules

Dynamically linked segmentation system, Sharing segments between processes ...

Sharing segments between processes without requiring the same segment number is possible in a dynamically linked segmentation system. a. Define a system that permits sta

What is an operating system process, What is an operating system process? H...

What is an operating system process? How is it different from a program? Why do we need the concept of a process, rather than simply talk about programs running in memory? The e

Crank-nicolson timestepping schemes, For the heat conduction problem, inves...

For the heat conduction problem, investigate the effects on the numerical solution of the following aspects: 1. non-uniform meshes with re?nement at both ends versus a uniform m

Explain lru additional reference bits algorithm, Additional Reference bits...

Additional Reference bits algorithm Here we keep an 8-bit byte for every page in memory. At standard intervals the reference bit is shifted by the OS. If a shift register conta

What are the system components of an operating system, What are the system ...

What are the system components of an operating system and explain them? a) Process management b) Main-memory management c) I/O management d) File management e) Seco

Enforce memory protection at compile time?, Why is it not possible to enfor...

Why is it not possible to enforce memory protection at compile time?   Every process should be protected against unwanted interference by other process, whether intentional or

Address operator and pointers, We are use to using variables within C witho...

We are use to using variables within C without thinking about where they are stored. Most variables are dynamic i.e. can change, therefore they are stored in Ram, unlike a program

System bus and device speeds as the cpu speed increases, Q. Why is it impor...

Q. Why is it important to scale up system bus and device speeds as the CPU speed increases? Answer: Consider a system which carries out 50% I/O and 50% computes. Doubling-up

Write a note on semaphores, Write a note on semaphores A semaphore is a...

Write a note on semaphores A semaphore is a tool meant for synchronizing multiple processes trying to access a shared variable. That is a semaphore is used to deal with the cri

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd