O BIOS é considerado um sistema operacional? [fechadas]

11

Essa pergunta vem à mente ao lidar com matrizes RAID, mas não é necessariamente aplicável ao assunto.

Como é que o BIOS é capaz de ler a partir de um disco rígido para carregar efetivamente o sistema operacional, quando muitos sistemas operacionais precisam de drivers para fazer a mesma coisa? O BIOS possui uma lista de drivers que ele extrai, como um dos principais sistemas operacionais, como Windows ou Linux?

Chad Harrison
fonte
2
Admins SU não são construtivas
Stumbler

Respostas:

10

Primeiro, o BIOS é o sistema básico de entrada / saída, não tecnicamente um sistema operacional ... Quanto ao carregamento de RAID, o que acontece durante a inicialização é que a máquina consulta qualquer placa adicional perguntando se possui um BIOS para carregar. O cartão RAID grita "Sim, eu tenho algo a fazer primeiro", depois ele aciona seu "BIOS" (neste caso, um sistema operacional), faz alguns cálculos e depois passa o controle de volta para o BIOS principal ("Ei, Eu terminei, aqui estão todas as informações que você precisa saber sobre uma necessidade, sabe? ").

Depois que o BIOS principal obtiver o controle novamente, ele poderá digitar "Ahhh, eu vejo que o Sr. RAID tem um volume inicializável, eu percorrerei isso, se possível, e tentarei meus outros truques".

Portanto, não "tecnicamente" o BIOS é um sistema operacional, mas é um sistema de entrada / saída para se preparar para o sistema operacional real

Canadian Luke
fonte
11
" ele aciona seu" BIOS "(neste caso, um sistema operacional) " - as extensões do BIOS ou BIOS simplesmente não são um sistema operacional. O principal objetivo de um sistema operacional é o gerenciamento de recursos . O BIOS, como um programa de inicialização independente, não se preocupa em manter nenhuma informação de alocação de recursos. Não há rotinas de abertura () ou fechamento () fornecidas pelo BIOS para restringir o acesso ao hardware. Qualquer código de execução pode utilizar as funções de leitura / gravação do BIOS. O BIOS não atende ao objetivo básico do sistema operacional.
Serragem
@sawdust, que tal ativar ou desativar dispositivos a bordo? Isso restringiria o acesso ao hardware.
Bon Gart
@BonGart - Ativar / desativar a BIOS é simplesmente uma ferramenta de configuração que substitui a instalação ou remoção física do dispositivo. É uma ação em todo o sistema e vigente até uma falha na reconfiguração ou no dispositivo. Na verdade, eu estava me referindo aos conceitos do SO para sincronização e exclusão, como mutexes e semáforos, que podem controlar / restringir no processo e / ou no nível do thread. Ou, por exemplo, um spooler de impressão; o programa de spool do sistema operacional é o proprietário da impressora e proíbe qualquer uso direto dessa impressora. Você deve enviar seu trabalho de impressão ao spooler, que enfileira as solicitações de impressão.
serragem
10

O BIOS , literalmente, um "sistema básico de entrada / saída", é um conjunto de pequenos programas codificados na placa-mãe de um computador (geralmente armazenados em uma EEPROM ). Esses programas incluem a capacidade de modificar configurações, escrever texto e receber a entrada do usuário de dispositivos de E / S básicos (a placa-mãe precisa emulá-los para dispositivos avançados de mouse / teclado VGA e USB) e, o mais importante, fornece a funcionalidade para localizar e inicializar sistemas operacionais presentes em qualquer dispositivo de armazenamento atacado.

Por si só, o BIOS não é um sistema operacional. O BIOS é um pequeno programa para realmente carregar um sistema operacional. Embora em alguns sistemas operacionais seja possível invocar os vários subsistemas do BIOS, isso requer que a CPU volte ao modo real, pois o BIOS não fornece suporte de memória virtual, alternância de tarefas (e, portanto, a capacidade de executar programas ) ou suporte ao driver de dispositivo (e, portanto, não pode acessar diretamente o hardware fora do intervalo acessível por mapa direto, nem qualquer coisa que não seja coberta nas chamadas de interrupção do BIOS ).

Como Linus Torvalds disse :

Não que eu afirme que o BIOS seja maravilhoso também, mas pelo menos todo mundo sabe que o BIOS é apenas um gerenciador de inicialização e não tenta fazer nada mais.

A vantagem absolutamente maior de um BIOS é que ele é tão inconveniente e obviamente antiquado, que você precisa ficar louco para querer fazer algo sério nele [...] e não ter nenhuma idéia de que ele é uma estrutura grandiosa para qualquer outra coisa. do que "basta carregar o sistema operacional e dar o fora daqui".

Finalmente, deve-se notar que um BIOS é significativamente diferente de um UEFI ( Unified Extensible Firmware Interface ), sendo este último significativamente mais próximo de fornecer uma interface básica do sistema operacional (fornecendo drivers de dispositivo e suporte a aplicativos). Ainda é questionável se o UEFI pode ou não ser considerado um verdadeiro sistema operacional por si só, embora esteja significativamente mais próximo de ser considerado um SO do que um BIOS.

cp2141
fonte
2

Para lidar com os muitos comentários e pontos levantados, editei a resposta mais uma vez.

O BIOS é um sistema operacional?

Bem, se um sistema operacional é definido como um software que permite ao usuário interagir com o hardware de um "computador", sim ... tecnicamente e literalmente, é um sistema operacional.

A Alternância de tarefas define o que torna um sistema operacional?

Considerando que o MS-DOS era um sistema operacional válido e até a alternância de tarefas da versão 5 não era suportada, a alternância de tarefas não afeta se o software é um sistema operacional.

A virtualização de memória define o que faz um sistema operacional?

Novamente, usando o MS-DOS como exemplo, embora possa ser adicionado suporte à virtualização de memória executando extensores durante o processo de carregamento, não era necessário usá-los. Portanto, a virtualização de memória também não é um pré-requisito para o que constitui um sistema operacional.

Se estiver armazenado no firmware, é um SO?

Alguns argumentam que um roteador não usa um sistema operacional. Por exemplo, parece haver uma disputa sobre se o DD-WRT é considerado um sistema operacional. Existem dispositivos que armazenam um sistema operacional no firmware? Telefones modernos, iPods e mais armazenam sistemas operacionais complexos que podem ter programas adicionados a eles no firmware. Portanto, apenas porque um sistema operacional é carregado no firmware, isso não exclui que o software em questão seja considerado um sistema operacional.

Se você não pode adicionar programas, não é um sistema operacional.

Afaste-se de um smartphone moderno. Olhe para um telefone celular descartável barato. Possui um sistema operacional armazenado no firmware, mas você não pode adicionar programas. É executado como é e somente com a funcionalidade oferecida. Você navega pelos menus como faria com qualquer outro sistema operacional, escolhe o que deseja fazer (joga jogos, etc.) e com um bom número deles há alguns anos, eles não tinham a capacidade de adicionar nenhum software adicional.

Se não é moderno, não é um sistema operacional?

O ponto no histórico em que o sistema operacional foi criado e lançado não tem influência se é ou não um sistema operacional.

Portanto, o BIOS pode não ser bonito e pode não oferecer funcionalidade extrema. No entanto, ainda é um sistema operacional.

Bon Gart
fonte
3
A definição de sistema operacional na wikipedia é questionável por si só. (Eu ouvi alguns outros) Mas, de qualquer maneira, você está totalmente perdendo [...] o fornecimento de serviços comuns para programas de computador , o que eu acho que é essencial para um sistema operacional.
Baarn
1
Eu me inclino mais para o firmware do que para o sistema operacional. Um BIOS não possui inteligência, apenas se comunica com o hardware em um nível muito baixo e passa essas informações para o SO. UEFI está mudando o jogo embora.
Moab
1
É uma linha tênue entre firmware e SO, subjetiva como o inferno.
Moab
1
OK, eu desistir, o BIOS um, você pode agora lop minha cabeça .. ;-)
Moab
2
@BonGart um BIOS não possui suporte à memória virtual e agendamento de tarefas - e, portanto, não possui a capacidade de executar programas (ou seja, não pode ser executado simultaneamente com qualquer outra coisa). Embora eu concorde que ele fornece suporte básico de E / S, é um pequeno programa e não um sistema operacional ... Ou você classificaria o pequeno pedaço de código no meu microcontrolador que recebe uma senha e acende um LED (fornecendo I básico / O suporte) também um sistema operacional?
Breakout
2

O que é ou não um "sistema operacional" é uma questão de julgamento. Indiscutivelmente (e eu argumentei isso em 1980), o PC / MS DOS original não era um "sistema operacional" (apesar do nome), uma vez que fornecia apenas serviços de E / S (e um analisador bruto de comando) e nenhum verdadeiro recurso de gerenciamento de sistema .

OTOH, muitas implementações de BIOS agora incluem algum grau de função de hipervisor que gerencia os recursos do sistema de uma maneira bastante sofisticada.

Quanto ao modo como o BIOS consegue carregar do disco, etc, sem drivers, por convenção / dispositivos "inicializáveis" padrão, incluem um conjunto de operações que podem ser usadas sem a necessidade de configurar uma sofisticada infraestrutura de gerenciamento. Em alguns casos, essa é apenas a capacidade de ler alguns setores em um local relativamente fixo, mas isso é tudo o que é necessário na maioria dos casos.

Daniel R Hicks
fonte
Então, você ligaria o computador, carregaria o MS-DOS e conseguiria executar programas. Você diz que o MS-DOS não era um sistema operacional ... onde estava o sistema operacional então? Parece que você está dizendo que o MS-DOS não é o que você considera um sistema operacional real, mesmo que tecnicamente funcionasse como um (e, portanto, era um).
Bon Gart
1
Havia muitos computadores sem "sistema operacional", apenas um "executivo em tempo de execução" ou alguns que forneciam serviços de arquivo e um analisador de comandos. Eles nunca os chamaram de "sistemas operacionais".
Daniel R Hicks
2
@bonGart " onde estava o OS, então? " não há nenhuma exigência de ter um sistema operacional, ou seja, um alocador de recursos / gerente, para executar programas em um computador. Os computadores antigos (ou simples) (incluindo micros executando o CP / M) simplesmente tinham um programa carregador residente e o programa carregado tinha acesso total a todos os recursos do computador. Não havia disputa por recursos, portanto, não havia necessidade de um sistema operacional.
serragem
@sawdust - Correto. E um passo acima do "carregador de programas residente" era uma biblioteca de tempo de execução residente (fita de papel, disquete e funções de teclado / tela - talvez impressora) e um "monitor" ou "executivo" ou algo parecido que detectaria quando um programa terminou para carregar o próximo. O DOS não era muito mais sofisticado que estes.
Daniel R Hicks