Najednou mi přijde, jak snadné to pro sudoera bude k pádu jádra, tak jsem zkusil něco takového:
#include<stdio.h>
int main(){
    printf("hello world");
    int a;
    printf("%p", &a);
    int *p = (int*)0xffff000000000000; //x86_64, somewhere in the kernel space
    printf("%p:%d", p,*p);
    *p = 1;
    printf("%p:%d", p,*p);
}
 
 Pochopitelně bez sudo , spuštění programu ukáže chybu segmentu. Nicméně , nemám NIC když jej spustíte pomocí sudo ./a.out ! Dokonce i hello world v prvním řádku je potlačeno bez jakékoli chyby nebo varování.
Může někdo vysvětlit, co se děje?
Přijatá odpověď:
 Samozřejmě to nezničí jádro, zapisujete do virtuálního paměťového prostoru vašeho vlastního programu, nikoli do real paměťový prostor jádra.
Další informace o virtuální paměti naleznete zde
P.S:
 Proč printf nic netiskne? Standardně je standardní výstup ukládán do vyrovnávací paměti a váš hello world neobsahuje oddělovač řádků.
 Pokud se tedy program zhroutil, nebudete tento výstup pozorovat (zkuste použít puts nebo přidáním \n ve vaší zprávě)