Page 24 - DCAP103_Principle of operating system
P. 24

Unit 1: Operating System



            all requests from the various hardware devices (such as disk drives and the keyboard) that   Notes
            compete for the kernel’s services and (4) a memory manager, which allocates the system’s
            address spaces (i.e., locations in memory) among all users of the kernel’s services.
            The kernel should not be confused with the BIOS (Basic Input/Output System). The BIOS is
            an  independent  program  stored  in  a  chip  on  the  motherboard  (the  main  circuit  board  of  a
            computer) that is used during the booting process for such tasks as initializing the hardware
            and loading the kernel into memory. Whereas the BIOS always remains in the computer and is
            specific to its particular hardware, the kernel can be easily replaced or upgraded by changing or
            upgrading the operating system or, in the case of Linux, by adding a newer kernel or modifying
            an existing kernel.
            Most kernels have been developed for a specific operating system, and there is usually only one
            version available for each operating system. For example, the Microsoft Windows 2000 kernel is
            the only kernel for Microsoft Windows 2000 and the Microsoft Windows 98 kernel is the only
            kernel for Microsoft Windows 98. Linux is far more flexible in that there are numerous versions
            of the Linux kernel, and each of these can be modified in innumerable ways by an informed user.
            A few kernels have been designed with the goal of being suitable for use with any operating
            system. The best known of these is the Mach kernel, which was developed at Carnegie-Mellon
            University and is used in the Macintosh OS X operating system.
            It is not necessary for a computer to have a kernel in order for it to be usable, the reason being
            that it is not necessary for it to have an operating system. That is, it is possible to load and
            run programs directly on bare metal machines (i.e., computers without any operating system
            installed), although this is usually not very practical.
            In fact, the first generations of computers used bare metal operation. However, it was eventually
            realized that convenience and efficiency could be increased by retaining small utility programs,
            such  as  program  loaders  and  debuggers,  in  memory  between  applications.  These  programs
            gradually evolved into operating system kernels.
            The term kernel is frequently used in books and discussions about Linux, whereas it is used
            less  often  when  discussing  some  other  operating  systems,  such  as  the  Microsoft  Windows
            systems. The reasons are that the kernel is highly configurable in the case of Linux and users
            are encouraged to learn about and modify it and to download and install updated versions.
            With the Microsoft Windows operating systems, in contrast, there is relatively little point in
            discussing kernels because they cannot be modified or replaced.

            1.6.1 Categories of Kernels
            Kernels can be classified into four broad categories: monolithic kernels, microkernels, hybrid
            kernels and exokernels. Each has its own advocates and detractors.
            Monolithic kernels, which have traditionally been used by Unix-like operating systems, contain
            all the operating system core functions and the device drivers (small programs that allow the
            operating system to interact with hardware devices, such as disk drives, video cards and printers).
            Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the
            category of Unix-like operating systems, feature the ability to load module at runtime, thereby
            allowing easy extension of the kernel’s capabilities as required, while helping to minimize the
            amount of code running in kernel space.
            A microkernel usually provides only minimal services, such as defining memory address spaces,
            interprocess communication (IPC) and process management. All other functions, such as hardware
            management,  are  implemented  as  processes  running  independently  of  the  kernel.  Examples  of
            microkernel operating systems are AIX, BeOS, Hurd, Mach, Mac OS X, MINIX and QNX.



                                             LOVELY PROFESSIONAL UNIVERSITY                                    17
   19   20   21   22   23   24   25   26   27   28   29