next up previous contents index
Next: 11.2 Initialization Up: 11 ``Client OS'' Library: Previous: 11 ``Client OS'' Library:

11.1 Introduction

The ``clientos'' library is responsible for initializing certain portions of the client operating system in an OSKit kernel. Specifically, the default memory object, the global registry, the C/POSIX library environment, and the default console, must all be initialized in order for the application to work properly. These interfaces are then available to the various OSKit libraries and components, without requiring linktime dependencies on them. The C library in particular is dependent on many external interfaces, which are accessed through its services database. That services database is given to the C library by the clientos initialization function once it has finished creating all the necessary objects. For example, before the application can call the malloc routine in the C library, the default memory object must be created (see Section 11.4), the global registry must be created (see Section 5.2), the memory object registered in the global registry, and a reference to the global registry (an instance of a services database) given to the C library so that it can request a reference to the memory object. At this point, malloc can now ask the memory object to allocate the requested amount of memory. Many other interfaces must also be installed. As the OSKit kernel continues to initialize devices and interfaces, it will hand those objects to the clientos, or in some cases the objects will be registered in the global registry directly. This approach enables the separation of the kernel intialization from the application itself.



Utah Flux Research Group