Eu estou em uma classe de sistemas operacionais. Em breve, temos que trabalhar para modificar o código do kernel. Fomos aconselhados a não usar máquinas pessoais para testar (suponho que isso significa instalá-lo), pois poderíamos escrever código incorreto e escrever em algum lugar que não devíamos. Temos acesso a uma máquina em um laboratório para segurança.
Se eu testasse usando uma VM, isso protegeria o sistema host de códigos potencialmente inseguros? Eu realmente quero não ter que ficar preso a um sistema na escola e os instantâneos serão úteis.
Se ainda houver alto risco, alguma sugestão sobre o que preciso considerar para testar com segurança?
Vamos usar algo como linuxmint para começar. Se alguém quiser ver o que estará no projeto atual: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf
fonte
Respostas:
Os principais riscos do desenvolvimento de módulos do kernel são que você pode travar seu sistema com muito mais facilidade do que com o código comum, e provavelmente descobrirá que às vezes cria módulos que não podem ser descarregados, o que significa que você precisará reiniciar para recarregar depois de corrigir o que está errado.
Sim, uma VM é boa para esse tipo de desenvolvimento e é o que eu uso quando estou trabalhando nos módulos do kernel. A VM isola bem o ambiente de teste do sistema em execução.
Se você deseja tirar e restaurar instantâneos, mantenha seu código-fonte marcado em um repositório de controle de versão fora da VM, para não perder acidentalmente seu código mais recente ao descartar o estado atual da VM.
fonte
Supondo que você não esteja tentando escrever um driver para o hardware real, essa é uma ótima maneira de trabalhar nos módulos. Você pode fazer uma captura instantânea do sistema em funcionamento e, se explodir algo, basta voltar para a captura instantânea.
Se você puder, faça uma duplicata completa da VM, apenas no caso do sistema de snapshots ser mais estranho do que eu acho. :)
fonte