Me gustaría ayudar a comprender un aspecto particular de la fusión.
Según tengo entendido, el error de fusión se puede usar para que un proceso de Linux del espacio de usuario acceda a la memoria del kernel (indirectamente, a través de un canal del lado de la sincronización). El Listado 2 en el papel de fusión es:
1 ; rcx = kernel address 2 ; rbx = probe array 3 retry: 4 mov al, byte [rcx] 5 shl rax, 0xc 6 jz retry 7 mov rbx, qword [rbx + rax]
Estoy confundido acerca de cómo puede existir una "dirección del kernel" dentro de un proceso de espacio de usuario. ¿Un proceso de espacio de usuario no tendría su propio espacio de direcciones y mapeo de memoria, diferente al núcleo? Mi expectativa es que, en un proceso de espacio de usuario, la dirección dentro de rcx se traduciría en algo diferente a lo que se traduciría dentro del kernel. Probablemente solo un error de error / segmentación.
¿Cómo es posible que un proceso de espacio de usuario en linux se refiera a una dirección del kernel?