¿Los controladores son parte de los sistemas operativos?

14

Tengo dificultades para comprender qué se incluye en un sistema operativo y qué no. ¿Es un controlador de dispositivo como un controlador de impresora o controlador gráfico parte de un sistema operativo? Pensando en la definición de un sistema operativo, creo que los controladores son parte de los sistemas operativos.

hormiga de fuego
fuente
66
Si y no. Forman parte del sistema operativo porque operan a un nivel bajo y tienen acceso a interfaces internas. Y muchos son críticos para el funcionamiento del sistema operativo. Pero generalmente son partes separadas "reemplazables por enchufe", y a menudo construidas por una compañía diferente del sistema operativo. Depende de su definición de "sistema operativo", y no hay una sola firma.
Daniel R Hicks
Por favor, defina "incluido". Garantizado para estar en el DVD de Windows para la instalación en una nueva unidad? ¿O conceptualmente parte del sistema operativo?
aserrín

Respuestas:

12

Sí, los controladores son parte del sistema operativo. Se ejecutan con el mismo nivel de privilegio que el núcleo del sistema operativo, y para escribir un controlador debe saber mucho sobre los componentes internos del sistema operativo. La función de los controladores es proporcionar una abstracción del hardware para que las aplicaciones puedan usarlo a través de la API del sistema operativo (interfaz de programación de aplicaciones) en lugar de tener que conocer detalles específicos del mismo. En muchos casos, también permite compartir la misma pieza de hardware entre muchas aplicaciones simultáneamente.

Algo que induce a error a los usuarios a pensar que los controladores podrían no ser parte del sistema operativo es que muchos proveedores suministran controladores para el hardware que fabrican por separado del sistema operativo. De hecho, muchos controladores se presentan como módulos cargables que se pueden cargar y luego participar dinámicamente en el sistema operativo. Una vez que ya no se usan, se pueden "desconectar" del sistema operativo y continúa funcionando normalmente.

Cargables o no, los controladores siempre son específicos de los dispositivos que deben poner a disposición del sistema, por lo que, si bien a veces son partes "opcionales" del sistema operativo, sí participan en él cuando funcionan.

Claudio
fuente
1
No estoy de acuerdo (pero esperaré con un voto negativo), simplemente por cómo lo declaró, los controladores NO siempre se incluyen o usan. El sistema operativo es el núcleo. Período. Windows Explorer no es parte del sistema operativo, aunque viene con él. El núcleo es la parte de procesamiento real, por lo que consideraría que el sistema operativo. Otros elementos que se incluyen no son parte del sistema operativo
Canadian Luke
Además, puede ejecutar controladores a nivel de usuario, por lo que no tiene que ejecutarlos a nivel de kernel, aunque la mayoría lo son.
Matt
Puedo ver tu punto Luke. Hay muchos dispositivos opcionales que no son necesarios para que el sistema funcione, por lo que puedo aceptar que sus controladores no son parte del sistema operativo en este sentido . Como dijo @Matt, algunos controladores pueden incluso ser controladores de modo de usuario (muchos controladores de impresora lo son), pero mi punto es la mayoría de los controladores, especialmente los estructurales (video, controladores de disco, etc.) son controladores de modo kernel, y como tal son o convertirse en una parte real del núcleo en ejecución cuando se carga. Dado que un núcleo no puede hacer nada útil solo, creo que es justo decir que los controladores son (o se vuelven) parte del sistema operativo.
Claudio
1
Realmente es una pregunta sí / no. Aunque técnicamente los controladores no están incluidos con el sistema operativo, los necesitará para comunicarse con diferentes dispositivos. Por ejemplo, video. Hará una solicitud al núcleo, luego el núcleo reenviará la solicitud al controlador de pantalla y luego la información de regreso para que pueda ver algo.
Matt
3
@Luke - Aparentemente admites que el kernel es parte del sistema operativo, si no todo el sistema operativo. ¿Alguna vez has visto el código fuente de un sistema operativo o kernel? A menos que trabaje para MS o firme un NDA, nunca veremos el código del kernel de Windows. Pero el kernel de Linux es de código abierto, y todos los controladores de Linux (no propietarios) son parte del código fuente del kernel. El código fuente del kernel de Linux no está separado en una parte del kernel y una parte del controlador; el árbol fuente contiene módulos principales y controladores todos juntos. Esperaría que MS maneje su código fuente para Windows de manera similar.
aserrín
5

El término "SO" puede significar muchas cosas.

Si bien en la mayoría de los sistemas operativos, el núcleo es el código que gestiona y "ejecuta" todo, y arbitra los accesos al hardware, por lo general no puede hacer nada interesante por sí solo: su trabajo es proporcionar un marco para que las aplicaciones se ejecuten " en la parte superior "si es así. La definición de SO de muchas personas incluye utilidades, shells y programas que conforman un entorno familiar y estandarizado.

Los controladores dependen del núcleo, y probablemente sea más correcto decir que lo "extienden", como los complementos. Linux admite la noción de "módulos de kernel cargables", y todos los controladores de dispositivos pueden ser un módulo de kernel cargable. También es posible construir un núcleo donde uno o más de estos módulos están "integrados" y no están separados del núcleo. Por lo tanto, realmente podría construir un kernel "sin módulo" en Linux, y no sería capaz de admitir ningún hardware que no sean los módulos que incorporó.

Estoy menos familiarizado con las entrañas de Windows, pero creo que, salvo por unos pocos controladores de "minipuerto", todos los controladores son archivos externos que se cargan en el arranque. Si profundiza un poco en la creación de servicios en Windows, parece que los controladores son realmente formas especiales de servicios en Windows. Algunos programas instalan controladores para acceder al hardware en un nivel bajo, pero no necesariamente para controlar un dispositivo, estos son típicamente los controladores "No enchufar y usar" en el Administrador de dispositivos. Por lo tanto, también parece que los controladores cumplen la misma función conceptualmente que los módulos de kernel cargables en Linux.

Para simplificar, diría que son parte del sistema operativo, ya que realmente no se pueden usar sin el sistema operativo, y no son útiles a menos que el sistema operativo se inicie, pero la línea trazada es bastante arbitraria en cualquier caso.

LawrenceC
fuente
1

Ningún controlador no forma parte del sistema operativo. Puede decir que los controladores ayudan al sistema operativo a comunicarse con el dispositivo o el hardware. El sistema operativo no contiene todos los controladores de forma predeterminada, como en Windows XP y Vista, pero en Windows 7 se incluyen la mayoría de los controladores necesarios, por lo que no debe confundir que no son parte del sistema operativo.

Debutante
fuente
El hecho de que usted diga que los conductores no son parte de un sistema operativo demuestra que no sabe lo que está haciendo. Windows XP incluye muchos de los mismos controladores que incluyen Windows Vista y Windows 7. Microsoft hizo un gran esfuerzo para incluir MÁS controladores genéricos para dispositivos para esas versiones.
Ramhound
si. sin controlador no podemos usar ningún dispositivo. Entonces, podemos decir que el controlador ayuda al sistema operativo a comunicarse con el dispositivo y sobre la pregunta diré que algunos son parte del sistema operativo y otros no. Hay muchos controladores que no vienen con el sistema operativo.
Deb
Técnicamente, incluso cuando un controlador no viene con el sistema operativo, es parte del sistema operativo cuando lo instala y lo usa. La prueba de ello es que un controlador mal escrito puede bloquear todo el sistema, ya que no es una aplicación normal que el SO puede eliminar, sino una parte de sí mismo.
Claudio