TheWorld’s Most Advanced Operating System (Kernel and Device Drivers)
Adevice Driver, which is commonly known as ‘driver’, is defined asa computer program that is used for operating a certain kind ofdevice which is attached to the computer either externally orinternally. All the external devices are in computing are referred toas hardware devices whereas the internal parts are termed assoftware. Basically, it is the duty of a driver to provide softwareinterface to all external devices, which enables various programs ofthe computer to get in touch with external operations without theneed to comprehend the exact details of the external devices that arein use (Jonathan et al, par). Computer bus or otherwise known ascommunications subsystems are the link through which a driver sendsand receives data with the device. Hardware devices connecttocomputer bus. Typically, device drivers depend on external parts of acomputer, which are also called hardware. On the other hand, internalprograms or commonly known as software (operating system), areparticular in their functions and operations (Jonathan et al, par).This research paper looks at the importance as well as specificfeatures of Kernel and Device Drivers layer, their definition, thepurpose, capabilities as well as the components that make up thislayer (Kernel Device Drivers).
The‘kernel is a huge mass of codes that can be performed in charge ofhandling various resources of any given computer system. Theseresources comprise of connectivity of network, internal and externalmemories, as well as other resources. Linux Kernel’s roles andpurpose can be split into five distinct parts. These parts areexplained below
Thekernel is in charge of making upas well asterminating processes andhandling their connection to the outside world through the input andoutput devices. Communication among diverse processes (via signals,pipes, or interprocess communication primitives) is foundation to theoperations and function of general system. This process is as wellhandled by the kernel. Furthermore,the scheduler, which panelsthemanner in which processes share the Central Processing Unit (CPU), ispart of process management. More commonly, the kernel`s processmanagement activity executes the concept of numerous processes on topof one CPU if notjust a few of them (Jonathan et al, par).
Thememory of a computer is a key resource hence the policy used to dealwith it is a serious one for system functionality. The role andpurpose of the kernel in the memory is to construct a virtualaddressing space not only for one but for all over the limitedavailable resources. The various parts of the kernel embed with thesubsystem of memory-management through a number of functionalities.
Ifthere is any program or software that is hugely rooted on the conceptof file system is the UNIX. Every part of Unix can as well betreated as a file. The purpose of the kernel is to mound a structuredfile system on top of unstructured peripheral, and the outcomeconcept of file is hugely used all the way through the entire system.Moreover, multiple file system types are as well supported by Linux.For instance, external storage devices such as USB can be formattedwith either the Linux standard ext2 file system, or they can beformatted with the mostly used FAT file system.
Sincequite a number of network functions are non-specific to a process(incomingpackets are asynchronous events),the operating system has to be the one to manage networking. Theincoming data packets have to be assembled thenclassified, andtransmitted in lieu of a process taking care of them. The system isthe one responsible for the transmissions as well as delivery of datapackets across network interfaces as well as program. More so, thesystem has to regulate the implementation of operating systemprograms as per their network activity. Furthermore, the routing aswell as address resolution issues are executed within the kernel(Guy, par).
Eachand every function of the system is mapped to an external device. Thedevice that is being addressed has a function of controlling alldevices by use of a device driver, with an exclusion of processor,memory and some other few units. Every physical part (peripheral) onthe system must have a device driver entrenched to the kernel. Thiscomes from the hard disk right away to the keyboard and finally tothe tape streamer (Guy, par).
Thepurpose of device drivers is basically to make programming simple byacting as a decipherer between an external part (hardware) and aninternal part (software). Computer programmers are able to come upwith device drivers in Linux environments as parts of the kernel.This can be done either distinctly as loadable components oruser-mode (Ring 3on x86 CPUs)drivers. Such devices include USB. There are other devices that canrun in kernel mode (Ring 0on x86 CPUs).
Quitea number of interests constitute writing of Linux device drivers,which falls under the category of kernel. The importance of a devicedriver is basically to provide ‘mechanism’andnot ‘policy’.UNIXdesign is a perfect example of a difference between mechanism andpolicy. Components that constitute the UNIX design are Graphical userInterface (GUI) and networking systems (Guy, par).
GuyKeren. TheLinux Kernel.Web Source.
JonathanCorbet et al. LinuxDevice Drivers, Third Edition.(Eklektix, Inc.) Web Source.