Os drivers fazem parte dos sistemas operacionais?

14

Tenho dificuldade em entender o que está incluído em um sistema operacional e o que não está. Um driver de dispositivo, como um driver de impressora ou gráfico, faz parte de um sistema operacional? Pensando na definição de um sistema operacional, acredito que os drivers fazem parte dos sistemas operacionais.

Formiga-de-fogo
fonte
6
Sim e não. Eles fazem parte do sistema operacional, pois operam em um nível baixo e têm acesso a interfaces internas. E muitos são críticos para a operação do sistema operacional. Mas geralmente são peças separadas "substituíveis por plug" e geralmente construídas por uma empresa diferente do SO. Depende da sua definição de "SO" e não existe uma única empresa.
Daniel R Hicks
Por favor, defina "incluído". Garantido para estar no DVD do Windows para instalação em uma nova unidade? Ou conceitualmente parte do sistema operacional?
serragem

Respostas:

12

Sim, os drivers fazem parte do sistema operacional. Eles são executados com o mesmo nível de privilégio que o kernel do sistema operacional e, para escrever um driver, você deve saber bastante sobre os componentes internos do sistema operacional. A função dos drivers é fornecer uma abstração do hardware para que os aplicativos possam usá-lo por meio da API do SO (interface de programação de aplicativos), em vez de precisar saber detalhes específicos dele. Em muitos casos, também permite compartilhar a mesma peça de hardware entre muitos aplicativos simultaneamente.

Algo que leva os usuários a pensar que os drivers podem não fazer parte do sistema operacional é que muitos fornecedores fornecem drivers para o hardware que eles fabricam separadamente do sistema operacional. De fato, muitos drivers são apresentados como módulos carregáveis ​​que podem ser carregados e depois participam dinamicamente no sistema operacional. Uma vez que não são mais usados, eles podem ser "desconectados" do sistema operacional e continuam funcionando normalmente.

Carregáveis ​​ou não, os drivers são sempre específicos dos dispositivos que devem disponibilizar para o sistema; portanto, embora sejam algumas vezes partes "opcionais" do sistema operacional, eles participam durante a operação.

Claudio
fonte
1
Não concordo (mas vou adiar a votação), simplesmente por causa de como você o declarou, os drivers nem sempre são incluídos ou usados. O sistema operacional é o kernel. Período. O Windows Explorer não faz parte do sistema operacional, embora seja fornecido com ele. O kernel é a parte de processamento real, então eu consideraria o SO. Outros itens incluídos não fazem parte do sistema operacional
Canadian Luke
Além disso, você pode executar drivers no nível do usuário, para não precisar executá-los no nível do kernel, embora a maioria seja.
Matt
Eu posso entender o seu ponto, Luke. Existem muitos dispositivos opcionais que não são necessários para o sistema funcionar, por isso posso concordar que seus drivers não fazem parte do sistema operacional nesse sentido . Como o @Matt disse, alguns drivers podem até ser drivers de modo de usuário (muitos drivers de impressora são), mas meu ponto é a maioria dos drivers, especialmente os estruturais (vídeo, controladores de disco, etc.) são drivers de modo de kernel e, como tal, são ou tornar-se uma parte real do kernel em execução quando carregado. Como um kernel não pode fazer nada de útil sozinho, acho justo dizer que os drivers são (ou se tornam) parte do sistema operacional.
Claudio
1
É realmente uma pergunta de sim / não. Embora tecnicamente os drivers não estejam incluídos no sistema operacional, você precisará deles para se comunicar com diferentes dispositivos. Por exemplo, vídeo. Você fará uma solicitação ao kernel, depois o kernel encaminhará a solicitação ao driver de vídeo e depois as informações novamente para que você possa realmente ver alguma coisa.
Matt
3
@ Lucas - Aparentemente, você reconhece que o kernel faz parte do sistema operacional, se não todo o sistema operacional. Você já viu o código fonte de um sistema operacional ou kernel? A menos que você trabalhe na MS ou assine um NDA, nunca veremos o código do kernel do Windows. Mas o kernel do Linux é de código aberto e todos os drivers Linux (não proprietários) fazem parte do código-fonte do kernel. O código fonte do kernel Linux não é separado em uma parte do kernel e uma parte do driver; a árvore de origem contém os módulos principais e de driver todos juntos. Eu esperaria que a MS manipulasse o código-fonte do Windows de maneira semelhante.
sawdust
5

O termo "SO" pode significar muitas coisas.

Enquanto na maioria dos sistemas operacionais, o kernel é o pedaço de código que está gerenciando e "executando" tudo e arbitragem os acessos ao hardware, mas geralmente não pode fazer nada interessante por si só - seu trabalho é fornecer uma estrutura para os aplicativos executarem " no topo "se isso. A definição de um sistema operacional para muitas pessoas inclui utilitários, shells e programas que compõem um ambiente familiar e padronizado.

Os drivers dependem do kernel, e provavelmente é mais correto dizer que o "estendem", como plugins. O Linux suporta a noção de "módulos carregáveis ​​do kernel" - e todos os drivers de dispositivo podem ser um módulo carregável do kernel. Também é possível construir um kernel onde um ou mais desses módulos estejam "embutidos" e não separados do kernel. Então, você realmente pode criar um kernel "sem módulo" no Linux, e ele não seria capaz de suportar nenhum outro hardware além dos módulos que você construiu nele.

Estou menos familiarizado com as entranhas do Windows, mas acredito que, com exceção de poucos drivers de "miniporta", todos os drivers são arquivos externos carregados na inicialização. Se você se interessar um pouco pela criação de serviços no Windows, parece que os drivers são realmente apenas formas especiais de serviços no Windows. Alguns programas instalam drivers para acessar o hardware em um nível baixo, mas não necessariamente para acionar um dispositivo, geralmente são os drivers "Não plug and play" no Gerenciador de dispositivos. Portanto, também parece que os drivers cumprem a mesma função conceitualmente dos módulos carregáveis ​​do kernel no Linux.

Por simplicidade, eu diria que eles fazem parte do sistema operacional, pois realmente não podem ser usados ​​sem o sistema operacional e não são úteis a menos que o sistema operacional seja inicializado, mas a linha traçada é arbitrária em qualquer caso.

LawrenceC
fonte
1

Nenhum driver não faz parte do sistema operacional. Você pode dizer que os drivers ajudam o sistema operacional a se comunicar com o dispositivo ou hardware. Por padrão, o SO não contém todos os drivers, como no Windows XP e Vista, mas no Windows 7 a maioria dos drivers necessários estão incluídos, para que você não confunda que eles não façam parte do SO.

Deb
fonte
O fato de você dizer que drviers não fazem parte de um sistema operacional prova que você não sabe o que está fazendo. O Windows XP inclui muitos dos mesmos drivers que o Windows Vista e o Windows 7 incluem. A Microsoft fez um grande esforço para incluir ainda MAIS drivers genéricos para dispositivos para essas versões.
Ramhound
sim. sem driver, não podemos usar nenhum dispositivo. Então, podemos dizer que o driver ajuda o sistema operacional a se comunicar com o dispositivo e sobre a pergunta, direi que alguns fazem parte do sistema operacional e outros não. Existem muitos drivers que não vêm com o SO.
Deb
Tecnicamente, mesmo quando um driver não vem com o sistema operacional, ele faz parte do sistema operacional quando você o instala e usa. Prova disso é que um driver mal gravado pode bloquear todo o sistema, pois não é um aplicativo comum que pode ser morto pelo sistema operacional, mas uma parte dele.
Claudio