TOSP Logo

Winux Hardware Abtraction Layer Requirements

Requirements Home
    Table of Contents
  1. Introduction
  2. Device Drivers
    1. 'Hard' Device Drivers
    2. 'Soft' Device Drivers
    3. H/S Link

  1. Introduction

    All operating systems have a method of managing hardware. In fact, this is one of the primary responsibilities of an operating system. Operating Systems were created to create an abstraction of the hardware from the software, enabling software to be more easily ported from one computer to another. Operating Systems manage this through a layer called the Hardware Abstraction Layer, or HAL.

    The Hardware Abstraction Layer for the Winux system is in the Winux HAL (a.k.a HAL OS). Like the Winux Memory System, Winux HAL is a separate process that operates within Kernel Space hides inside the "monolithic" kernel appearance. However, unlike other parts of the Winux Kernel hybridization, the Winux HAL also has a counter part system in the Winux Userland. It achieves this through a dual driver system that also allows devices to be emulated at one level and the userland applications completely ignorant of communicating with an emulation instead of an actual device.

    Requirements Home Table of Contents
  2. Device Drivers

    Device Drivers, or modules as they are known in Linux, as pieces of software that interact with hardware and provide an interface for software. The Winux HAL provides device drivers at two levels: one inside the Winux HAL and therefore the kernel called the 'Hard' Device Driver, and the other in userland called the 'Soft' Device Driver.

    1. 'Hard' Device Drivers

      Hard Device Drivers are what is traditionally thought of as a device driver, with the exception that they do not talk with user applications. In fact, they cannot talk with applications. Rather, they provide an intimate interface with the hardware itself, and enough of an abstraction for the kernel to use.

      Hard Device Drivers may also be complete programs that emulate a piece of hardware, or a part of a piece of hardware. For example, it may emulate a serial port or simply a set of instructions for a processor, like the SSE instructions of the Pentium III and later.

      Requirements Home Table of Contents
    2. 'Soft' Device Drivers

      In order for software to be able to function, for instance print a document, it must be able to interact with the devices present in the system. This is provided through Soft Device Drivers, which work with Hard Device Drivers through a special link to provide the full abstraction that is normally provided in a Device Driver. Soft Device Drivers will also not be able to distinguish a properly written emulation of a device from the actual hardware, with exception possibly of response time.

      Requirements Home Table of Contents
    3. H/S Link

      For Hard and Soft Device Drivers to communicate, they must create a special link. As when accessing the registry, the establishment of such a link must be done through the Winux Userland (Actual OS) API. Additionally, this link will be limited only to device drivers on either side. Software will not be able to create such a link. The H/S Link will also be designed only for the two drivers to communicate and exchange information.

      The exception to this kind of setup are drivers for the Network Interface, which will instead have a full abstraction in the Hard Device Driver, and be managed by the Winux Network Manager. Access to the network devices will be provided through the network layers. The purpose of this is that they are devices that need to be able to respond quicker than the H/S link may otherwise allow, and user applications do not need access to these devices.

      Note: Programs such as the Bochs Pentium Emulator that need direct access with hardware will have to operate through specially crafted soft drivers to overcome this limitation. Such programs will be provided for, but will have to jump through certain kinds of hoops to do so.

      Requirements Home Table of Contents

    Requirements Home Table of Contents
SourceForge Logo
This site hosted by SourceForge.net All rights reserved(r).
Last Updated: 2003-10-10