Это не очень выполнимо "вывести всю систему" из пространства пользователя. Как я уже говорил в предыдущем вопросе вы спросили, лучший способ заключается в использовании инфраструктуры отслеживания режима ядра, такие как kprobes
, systemtap
или dtrace
. Вы смотрели на что-нибудь из этого? Есть ли причина, по которой ни один из них не подойдет для вашего варианта использования?
Единственный способ по - настоящему надежно Трассирование всей системы из пользовательского пространства будет начать свой след с init
процессом ... но я не уверен, что init
или systemd
было бы очень рад с вами stracing его, так как это делает много очень низкими вещи уровня, которые довольно хрупки и легко ломаются (и я могу добавить, что сложно внедрить команды-обертки вокруг них).
Вот почему механизмы проверки самого высокого качества имеют некоторый тип модуля ядра, потому что ядро «видит все». Это особенно актуально, поскольку вы пытаетесь отслеживать активность на символьных устройствах, таких как /dev/console
и /dev/tty*
, и ядро имеет прямой контроль над вызовами к этим устройствам, поскольку они реализованы в пространстве ядра.