Page 25 - DCAP103_Principle of operating system
P. 25

Principles of Operating Systems



                   Notes         Hybrid kernels are similar to microkernels, except that they include additional code in kernel
                                 space so that such code can run more swiftly than it would were it in user space. These kernels
                                 represent a compromise that was implemented by some developers before it was demonstrated
                                 that pure microkernels can provide high performance. Hybrid kernels should not be confused
                                 with monolithic kernels that can load modules after booting (such as Linux).
                                 Most modern operating systems use hybrid kernels, including Microsoft Windows NT, 2000
                                 and XP. DragonFly BSD, a recent fork (i.e., variant) of Free BSD, is the first non-Mach based
                                 BSD operating system to employ a hybrid kernel architecture.

                                 Exokernels are a still experimental approach to operating system design. They differ from the
                                 other types of kernels in that their functionality is limited to the protection and multiplexing
                                 of the raw hardware, and they provide no hardware abstractions on top of which applications
                                 can be constructed. This separation of hardware protection from hardware management enables
                                 application developers to determine how to make the most efficient use of the available hardware
                                 for each specific program.

                                 Exokernels in themselves they are extremely small. However, they are accompanied by library
                                 operating systems, which provide application developers with the conventional functionalities
                                 of a complete operating system. A major advantage of exokernel-based systems is that they
                                 can incorporate multiple library operating systems, each exporting a different API (application
                                 programming interface), such as one for Linux and one for Microsoft Windows, thus making it
                                 possible to simultaneously run both Linux and Windows applications.

                                 1.6.2 The Monolithic versus Micro Controversy
                                 In the early 1990s, many computer scientists considered monolithic kernels to be obsolete, and
                                 they  predicted  that  microkernels  would  revolutionize  operating  system  design.  In  fact,  the
                                 development of Linux as a monolithic kernel rather than a microkernel led to a famous flame war
                                 (i.e., a war of words on the Internet) between Andrew Tanenbaum, the developer of the MINIX
                                 operating system, and Linus Torvalds, who originally developed Linux based largely on MINIX.
                                 Proponents of microkernels point out that monolithic kernels have the disadvantage that an
                                 error  in  the  kernel  can  cause  the  entire  system  to  crash.  However,  with  a  microkernel,  if  a
                                 kernel process crashes, it is still possible to prevent a crash of the system as a whole by merely
                                 restarting the service that caused the error. Although this sounds sensible, it is questionable
                                 how important it is in reality, because operating systems with monolithic kernels such as Linux
                                 have become extremely stable and can run for years without crashing.
                                 Another disadvantage cited for monolithic kernels is that they are not portable; that is, they
                                 must be rewritten for each new architecture (i.e., processor type) that the operating system is
                                 to be used on. However, in practice, this has not appeared to be a major disadvantage, and it
                                 has not prevented Linux from being ported to numerous processors.

                                 Monolithic  kernels also  appear to have the disadvantage that their source  code  can become
                                 extremely  large.  Source  code  is  the  version  of  software  as  it  is  originally  written(i.e.,  typed
                                 into a computer) by a human in plain text (i.e., human readable alphanumeric characters) and
                                 before it is converted by a compiler into object code that a computer’s processor can directly
                                 read and execute.
                                 For example, the source code for the Linux kernel version 2.4.0 is approximately 100MB and
                                 contains nearly 3.38 million lines, and that for version 2.6.0 is 212MB and contains 5.93 million
                                 lines. This adds to the complexity of maintaining the kernel, and it also makes it difficult for new


        18                                LOVELY PROFESSIONAL UNIVERSITY
   20   21   22   23   24   25   26   27   28   29   30