Uma ideia é implementar "um driver de BIOS" para acessar as funcionalidades presentes na BIOS e que ainda não foram implementadas por drivers próprios.
Este driver deve ser composto de duas partes:
A "interface" pode ficar em qualquer lugar na memória, normalmente na memória superior juntamente com o kernel. Ela serializa todas as chamadas para a BIOS (somente uma chamada pode ser executada por vez) e passa ao "motor".
O "motor" deve ficar na memória inferior rodando em uma VM86, configurada exatamente como o ambiente inicial do boot. Ele recebe a chamada da "interface", faz a chamada real e devolve o resultado a interface, através de uma chamada de sistema.
A "interface" por sua vez, recebendo a reposta do "motor" termina a chamada pendente devolvendo a resposta ao processo requisitante.
Este driver deve ser composto de duas partes:
- A primeira, "a interface", que fica no kernel - é responsável por passar as chamadas de BIOS, recebidas por chamadas de sistema, para a segunda parte do driver;
- A segunda, "o motor", que fica na memória inferior juntamente com a BIOS - faz a chamada de BIOS real, pega o resultado e devolve através de uma chamada de sistema para a "interface", esta retornando assim a chamada inicial.
A "interface" pode ficar em qualquer lugar na memória, normalmente na memória superior juntamente com o kernel. Ela serializa todas as chamadas para a BIOS (somente uma chamada pode ser executada por vez) e passa ao "motor".
O "motor" deve ficar na memória inferior rodando em uma VM86, configurada exatamente como o ambiente inicial do boot. Ele recebe a chamada da "interface", faz a chamada real e devolve o resultado a interface, através de uma chamada de sistema.
A "interface" por sua vez, recebendo a reposta do "motor" termina a chamada pendente devolvendo a resposta ao processo requisitante.
Nenhum comentário:
Postar um comentário
Obs.: Após escrever seu comentário, inscreva-se por e-mail para seguir os próximos comentários. Ou assine a postagem de comentários (Atom).