Estou fazendo uma pesquisa sobre máquinas virtuais e os anéis em que estão rodando. Pela documentação, isso às vezes é difícil de encontrar. Portanto, gostaria de executar as VMs e, em seguida, dar uma olhada nos processos e ver em qual anel eles estão sendo executados.
Segundo o blog-post de Gustavo Duarte o CPL-Register é configurado pelo processador de acordo com o anel do processo. Aqui @Stephen Kitt mencionou que existem possibilidades. A solução em usar gdb retorna conforme mencionado como o valor de registro Ring3. Eu tentei com o processo como ModemManager
ou iwlwifi
que eu suponho estar rodando em Ring0, mas todos eles retornaram Ring3 como seu conteúdo de registro cs.
A maneira sugerida é usar ftrace
. Mas este programa é seriamente complexo e não consegui encontrar um tutorial. Alguém conhece as linhas mágicas para obter apenas o CS de um processo?
Existe alguma outra maneira de recuperar o valor do registrador CS?