Não é muito viável "rastrear todo o sistema" do userspace. Como indiquei na pergunta anterior que você fez, a melhor maneira é usar uma infraestrutura de rastreamento no modo kernel, como kprobes
, systemtap
ou dtrace
. Você já olhou para algum desses? Existe uma razão pela qual nenhum deles funcionará para o seu caso de uso?
A única maneira de rastrear verdadeiramente todo o sistema a partir do userspace seria iniciar o rastreamento com o processo init
... mas não tenho certeza se init
ou systemd
ficaria muito feliz com você Eu não me importo com isso, já que ele faz um monte de coisas de muito baixo nível que são bem frágeis e fáceis de quebrar (e é difícil injetar comandos wrapper nisso também, devo acrescentar).
É por isso que os mecanismos de sondagem da mais alta qualidade têm algum tipo de módulo do kernel, porque o kernel "vê tudo". Isso é especialmente relevante, já que você está tentando monitorar a atividade em dispositivos de caracteres, como /dev/console
e /dev/tty*
, e o kernel tem supervisão direta sobre as chamadas para esses dispositivos, pois eles são implementados no kernelspace.