Page 36 - DCAP507_SYSTEM_SOFTWARE
P. 36

System Software




                    Notes
                                          Example: Direct user access to low-level facilities is not allowed, providing the operating
                                   system with more control over the hardware and more knowledge of which resources each user
                                   program is using. As a further example, consider the history of Windows NT. The first release
                                   had a  very layer-oriented  organization. However, this  version  suffered  low performance
                                   compared to that of Windows 95. Windows NT 4.0 redressed some of these performance issues
                                   by moving layers from user space to kernel space and more closely integrating them.

                                   2.2.3  Exokernel

                                   Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating
                                   Systems group, and also a class of similar operating systems.

                                   The idea behind exokernel is to force as few abstractions as possible on developers, enabling
                                   them to make as many decisions as possible about hardware abstractions.
                                   Applications may request specific memory addresses, disk blocks, etc. The kernel only ensures
                                   that the requested resource is free, and the application is allowed to access it. This low-level
                                   hardware access allows the programmer to implement custom abstractions, and omit unnecessary
                                   ones, most commonly to improve a  program's performance. It also  allows programmers to
                                   choose what level of abstraction they want, high, or low.

                                   Exokernels can be seen as an application of the end-to-end principle to operating systems, in that
                                   they do not force an application program to layer its abstractions on top of other abstractions
                                   that were designed with different requirements in mind.

                                          Example: In the MIT Exokernel project, the Cheetah web  server stores preformatted
                                   Internet Protocol packets on the disk, the kernel provides safe access to the disk by preventing
                                   unauthorized reading and writing, but how the disk is abstracted is up to the application or the
                                   libraries the application uses.
                                   Operating  systems  define  the  interface  between  applications  and  physical  resources.
                                   Unfortunately, this interface can significantly limit the performance and implementation freedom
                                   of applications. Traditionally, operating systems hide information  about machine  resources
                                   behind high-level  abstractions such  as  processes,  files,  address  spaces  and  interprocess
                                   communication. These abstractions define a virtual machine on which applications execute;
                                   their implementation cannot be replaced or modified by untrusted applications.
                                   Hardcoding the implementations of these abstractions is inappropriate for three main reasons:
                                      it denies applications the advantages of domain-specific optimizations,
                                      it discourages changes to the implementations of existing abstractions, and

                                      it restricts the flexibility of application builders, since new abstractions can only be added
                                       by awkward emulation on top of existing ones (if they can be added at all).
                                   These problems can  be solved  through  application  level  resource  management  in  which
                                   traditional  operating system abstractions,  such as  Virtual Memory (VM) and  interprocess
                                   communication (IPC), are implemented entirely at application level  by untrusted software.
                                   In  this architecture,  a minimal  kernel-called  an  exokernel-securely multiplexes available
                                   hardware  resources.  Library  operating systems,  working  above  the  exokernel  interface,
                                   implement higher-level abstractions.
                                   Application writers select libraries or implement their own. New implementations of library
                                   operating systems are incorporated by simply relinking application executables. Applications
                                   can benefit greatly from having more control over how machine resources are used to implement



          30                                LOVELY PROFESSIONAL UNIVERSITY
   31   32   33   34   35   36   37   38   39   40   41