Como funciona uma senha do BIOS?

2

Eu criei uma senha do BIOS. Eu uso o layout do teclado Dvorak. Quando eu alterno meu layout de teclado para Qwerty e reinicio e, em seguida, digito a senha com o layout diferente, não há nenhuma alteração. No entanto, quando estou conectado ao meu sistema operacional, é importante ter um layout de teclado diferente. O que está acontecendo aqui?

    
por Habi 08.11.2013 / 19:11

2 respostas

2

Muitas pessoas se confundem porque vêem o computador como uma entidade única quando, na verdade, um computador trabalha em vários sistemas para dar a ilusão de que é um objeto coeso.

Vários subsistemas

O BIOS é um desses subsistemas. O BIOS é exatamente o que o nome dele descreve. Um sistema básico de entrada e saída. Seu trabalho é fornecer funcionalidade básica ao sistema para que ele possa detectar periféricos (como: HDDs, teclados, monitores etc.). A outra função importante que o BIOS oferece é na inicialização do sistema operacional do meio designado (CD, DVD, USB, HDD, etc.).

A funcionalidade para fornecer acesso a esses periféricos fornece uma API que o sistema operacional e o software podem usar se quiserem, mas os sistemas operacionais e o software não precisam fazer uso dessas APIs e muitas vezes não, por várias razões.

A principal razão é que o fabricante do dispositivo sabe melhor e muitas vezes fornece um driver de baixo nível que pode lidar com o hardware de uma maneira mais íntima do que a BIOS de finalidade geral é capaz de fazer.

Sua pergunta é exatamente esse cenário. O BIOS é capaz de detectar o teclado e lidar com ele usando seus próprios softwares / drivers, enquanto o sistema operacional não é capaz de fazê-lo.

Não há nada mais nisso do que isso.

API do MS-DOS

Se você quiser um exemplo mais concreto, então você não precisa procurar mais do que a facilidade de interrupção 21 que foi popularizada pelo MS-DOS. O MS-DOS fornecia seus próprios serviços de tela que ficavam ao lado do BIOS, porque a Microsoft queria ter recursos mais completos ou uma API diferente.

Veja a página da Wikipédia: API do MSDOS .

    
por 08.11.2013 / 20:14
2

As BIOS modernas usam qualquer teclado USB detectado e fazem algumas manobras SMM para fazer com que pareça um teclado original IBM AT ou PS / 2 para o BIOS e quaisquer programas que usem o BIOS para E / S do teclado, o que seria o MS-DOS , Memtest86 + e alguns bootloaders.

Esta interface antiga fornece códigos de digitalização para o PC quando uma tecla é pressionada e liberada. Os códigos de escaneamento dependem da posição da tecla e não sabem qual é a posição da chave qwerty / dvorak no seu teclado. Eles não se alinham com nenhum ponto ASCII ou Unicode.

O artigo da Wikipédia sobre scancodes pode fornecer algumas dicas.

A maioria, se não todas, as BIOS devem entender esses scancodes, seja de um teclado AT ou PS / 2 real ou de um teclado USB emulado para PS / 2. Chaves extras, switches, etc. teriam scancodes adicionais ou não padrão e o BIOS os ignoraria.

Quando você está conectado ao seu sistema operacional, um driver tem a oportunidade de assumir o controle. Não sei exatamente como essa interface funcionaria ou quais drivers estão envolvidos (talvez o switch seja um scancode fora do padrão que um driver detecta e causa uma alteração no mapa de teclas ou algo assim ... Se esse for um teclado USB, Provavelmente, é possível que o switch qwerty / dvorak seja outro dispositivo de entrada HID ou algo mais.)

    
por 08.11.2013 / 21:01