Controlador de dispositiu

Un controlador de dispositiu, comunament anomenat controlador, o, en anglès, driver, és un programa informàtic que permet al sistema operatiu d'un ordinador interaccionar amb un perifèric, fent una abstracció del maquinari i proporcionant una interfície -possiblement estandarditzada- per a poder-lo utilitzar. Els controladors de dispositius (device driver) són programes afegits al nucli del sistema operatiu, concebuts inicialment per gestionar perifèrics i dispositius especials.

Propòsit

Un driver simplifica la programació, actuant com a traductor entre un dispositiu de maquinari i les aplicacions o sistemes operatius que l'utilitzen. Els programadors poden escriure el codi de l'aplicació de més alt nivell, independentment de qualsevol dispositiu de maquinari específic.

Un controlador normalment es comunica amb el dispositiu a través del Bus de l'ordinador o el subsistema de comunicacions al qual es connecta el maquinari. Quan un programa de trucada invoca una rutina al controlador, aquest resol les qüestions pertinents, donant ordres al dispositiu. Una vegada que el dispositiu envia les dades al controlador, aquest pot invocar les rutines en el programa de trucada original. Els controladors depenen del maquinari i del sistema operatiu específic. En general, proporcionar el tractament de les interrupcions necessàries per a qualsevol interfície asíncrona de maquinari depèn del temps.

Es pot esquematitzar com un manual d'instruccions que indica a l'ordinador com ha de controlar i comunicar-se amb un dispositiu concret. Per tant, és indispensable per a poder utilitzar qualsevol peça de maquinari, com ara el teclat, una càmera de fotos, la impressora, una memòria USB, etc.

Existeixen tants tipus de controladors com tipus de perifèrics i, és normal trobar més d'un controlador possible pel mateix dispositiu, cada un oferint un nivell diferent de funcionalitats. Per exemple, a part dels oficials (normalment disponibles a la pàgina web del fabricant), es poden trobar també els proporcionats pel sistema operatiu, o també versions no oficials fetes per altres.

A causa que el programari de controladors de dispositius s'executa com a part del sistema operatiu, amb accés sense restriccions a tot l'equip, és essencial que només es permetin els controladors de dispositius autoritzats. La signatura i l'emmagatzematge provisional dels paquets de controladors de dispositius en els equips client, mitjançant les tècniques descrites en aquesta guia, proporcionen els avantatges següents:

  • Seguretat millorada: Com que els usuaris estàndard no poden instal·lar controladors de dispositius que no estiguin signats o que estiguin signats per un editor que no és de confiança, els administradors tindran un control rigorós respecte als controladors de dispositius que poden usar-se en una organització. Podran impedir els controladors de dispositius desconeguts, així com qualsevol controlador que l'administrador no permeti expressament. Mitjançant l'ús de directives de grup, un administrador pot proporcionar a tots els equips client d'una organització dels certificats dels editors que es considerin de confiança, permetent la instal·lació dels controladors sense intervenció de l'usuari, per comprovar que es tracta d'una firma digital de confiança.
  • Reducció dels costos de suport tècnic: Els usuaris només podran instal·lar els dispositius que hagin estat provats i admesos per l'organització. En conseqüència, el sistema permet mantenir la seguretat de l'equip, alhora que es redueixen les sol·licituds del departament de suport tècnic.
  • Experiència d'usuari millorada: Un paquet de controladors signat per un editor de confiança i emmagatzemat provisionalment al magatzem de controladors funciona de manera automàtica, quan l'usuari connecta el dispositiu a l'equip. No es requereix acció per part de l'usuari.

En aquesta secció s'inclouen les tasques principals per a la seguretat dels paquets de controladors de dispositius:

Els controladors de dispositiu (device drivers en anglès) són programes afegits al nucli del sistema operatiu, concebuts inicialment per gestionar perifèrics i dispositius especials. Els controladors de dispositiu poden ser de dos tipus: orientats a caràcters (com ara els dispositius NUL, AUX, PRN, del sistema) o bé orientats a blocs, constituint les conegudes unitats de disc. La diferència fonamental entre ambdós tipus de controladors és que els primers reben o envien la informació caràcter a caràcter, en canvi, els controladors de dispositiu de blocs processen, com el seu propi nom indica, blocs de certa longitud en bytes (sectors). Els controladors de dispositiu, apareguts amb el DOS 2.0, permeten afegir nous components a l'ordinador sense necessitat de redissenyar el sistema operatiu.

Tradicionalment han estat programes binaris purs, similars als COM encara que acoblats amb un ORG 0, als quals se'ls col·locava una extensió SYS. Tanmateix, no hi ha raó perquè això sigui així, ja que un controlador de dispositiu pot estar inclòs dins d'un programa EXE, amb la condició que el codi del controlador sigui el primer segment de l'esmentat programa. L'EMM386.EXE del MS-DOS 5.0 va sorprendre a més d'un en el seu dia, ja que cridava l'atenció observar com es podia carregar amb DEVICE: el cert és que això és factible fins i tot des del DOS 2.0 (malgrat el que pugui indicar algun llibre), però ha estat mantingut gairebé en secret. Actualment és relativament freqüent trobar programes d'aquest tipus. L'avantatge d'un controlador de dispositiu de tipus EXE és que pot ser executat des del DOS per modificar les seves condicions d'operació, sense complicar el seu ús per part de l'usuari amb un altre programa addicional. A més, un controlador de dispositiu EXE pot superar el límit dels 64 KB, ja que el DOS s'encarrega de localitzar les referències absolutes en segments com en qualsevol programa EXE ordinari.

Un programa controlador es comunica amb el perifèric a través del bus al qual està connectat el maquinari al que controla. Quan un programa invoca una rutina en el programa controlador, aquest llança les comandes necessàries al dispositiu de maquinari. El dispositiu enviarà la resposta al programa controlador, i aquest programa pot invocar rutines en l'aplicació que ha fet la primera crida. Els programes controladors són exclusius de cada dispositiu de maquinari i es dissenyen per a un determinat sistema operatiu.

En entorns Linux, els programadors poden crear controladors de dispositius, ja sigui com a part del nucli o per separat, com a mòduls. Makedev inclou una llista dels dispositius a Linux: ttyS (terminal), IP (port paral·lel), HD (disc), loop (bucle de dispositiu de disc), so (això inclou mesclador, seqüenciador, DSP, i àudio).

Microsoft ha tractat de reduir la inestabilitat del sistema a causa dels controladors de dispositius mal escrits mitjançant la creació d'un nou marc per al desenvolupament del controlador, anomenat Windows Driver Foundation (WDF). Apple disposa d'un marc de codi obert per a desenvolupar controladors per a Mac OS X anomenat I/O Kit.

Altres idiomes
العربية: برنامج تعريف
azərbaycanca: Sürücü
български: Драйвер
English: Device driver
Esperanto: Pelilo
suomi: Laiteajuri
עברית: מנהל התקן
hornjoserbsce: Ćěrjak (informatika)
Bahasa Indonesia: Pemacu peranti
italiano: Driver
қазақша: Драйвер
Кыргызча: Драйвер
Lëtzebuergesch: Driver
lietuvių: Tvarkyklė
latviešu: Dzinis
олык марий: Драйвер
Bahasa Melayu: Pemacu peranti
Nederlands: Stuurprogramma
norsk nynorsk: Drivar
norsk: Driver
română: Driver
русский: Драйвер
русиньскый: Драйвер
Simple English: Device driver
српски / srpski: Драјвер
svenska: Drivrutin
українська: Драйвер
中文: 驱动程序
粵語: 驅動程式