Simplificando, as instruções privilegiadas são geralmente aquelas relacionadas a E / S com dispositivos de hardware ou proteção de memória. O acesso àqueles de processos arbitrários sem passar por alguma lógica central tornaria possível que os processos destruíssem a memória de outros processos, atrapalhassem o sistema de arquivos, etc., por acidente ou de propósito.
Se considerarmos algumas chamadas de sistema comuns, há, por exemplo, open() , read() , write() e outros que acessam arquivos e, no final, resultam em E / S para o disco ou algum outro dispositivo. Ou fork() e mmap() que afetam a memória de um processo ou de outros processos.
É claro que algo como fazer um processo não chamar uma chamada de sistema não requer privilégios e pode ser feito com uma biblioteca. O mesmo para falsificar os resultados de uma chamada do sistema. Embora, é claro, algo como alterar todos os registros de data e hora de duas semanas para trás (como o libfaketime example) exija descobrir o horário correto primeiro, e isso precisa acontecer por meio de uma chamada de sistema. Além de libfaketime e libeatmydata , há, e. fakeroot que finge que um processo está sendo executado sob o UID 0.