¿Qué sucede en el sistema operativo cuando no hacemos referencia a un puntero NULL en C?

Digamos que hay un puntero y lo inicializamos con NULL.

int* ptr = NULL;
*ptr = 10;

Ahora, el programa se estrellará desdeptr no está apuntando a ninguna dirección y estamos asignando un valor a eso, que es un acceso no válido. Entonces, la pregunta es, ¿qué sucede internamente en el sistema operativo? ¿Ocurre una falla de página / falla de segmentación? ¿El núcleo incluso buscará en la tabla de páginas? O el accidente se produce antes de eso?

Sé que no haría tal cosa en ningún programa, pero esto es solo para saber qué sucede internamente en el sistema operativo o el compilador en ese caso. Y NO es una pregunta duplicada.

Respuestas a la pregunta(5)

Su respuesta a la pregunta