muta...@gmail.com wrote:   
   > What is the reason that drivers for various bits of   
   > hardware are being put into the operating system,   
   > usually only the very latest version of Windows,   
   > instead of being flashed onto the firmware with   
   > an API that is available (via BIOS or UEFI) to all   
   > operating systems?   
      
   There is simple answer: drivers are really part of operating   
   system. In more details: driver interface, that is way   
   in which drivers interact with operating system is   
   important part of design of operating system. DOS   
   took CPM design with BIOS interface. This design was   
   good for small machines but severly limited possible   
   DOS improvements.   
      
   As simple example of possible troubles look at interrupt:   
   driver that blocks interrupts and returns control to   
   operating system only when it finishded is easy to   
   write, but will have low performance on anything reasonably   
   new. And single such driver may exclude using better   
   drivers for other devices (because such drivers need   
   to react timely to interrupts). There is question of   
   memory needed by drivers: on classic PC high performace   
   floppy driver needs track buffer which must be allocated   
   withing single 64kB memory block (to satisfy DMA restrictions).   
   Allocating such block at system startup is easy. But if   
   machine is 32kB PC, then track buffer is likely to be   
   considered too much overhead.   
      
   Another trouble is USB: logically there is single bus   
   with several devices which need to be polled. Bus   
   controller performs rather complex operations affection   
   all devices. Drivers for devices on USB bus must   
   cooperate with bus control, no single device should   
   take exclusive control of the bus. Since there are   
   limited number of bus controller chips, it is natural   
   to put bus control in operating system and drivers   
   for specific devices operate via operating system   
   calls. But then clearly drivers are specific to   
   operating system...   
      
   --   
    Waldek Hebisch   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|