Pour répondre à une autre partie de la question - le noyau est mappé dans l'espace d'adressage de chaque processus en partie pour des raisons d'efficacité/performance (il y en a d'autres aussi, j'en suis sûr).
Sur la plupart des matériels modernes, il est plus rapide de changer le niveau de sécurité (permettant ainsi l'accès aux pages qui sont autrement protégées, comme mentionné dans la réponse d'Alexey) afin d'effectuer des appels système et d'autres fonctions fournies par le noyau que de changer le niveau de sécurité et l'ensemble de la carte de mémoire virtuelle, ainsi que tous les vidages de cache TLB associés et tout ce qui est impliqué dans un changement de contexte complet.
Étant donné que les appels système peuvent être des événements assez fréquents, la conception qui a évolué sous Linux et dans de nombreux autres endroits pour essayer de minimiser les frais généraux liés à l'utilisation des services du noyau, et le mappage du code du noyau et (au moins certaines) des données dans chaque processus fait partie de cela.
Un processus "possède" l'ensemble de l'espace d'adressage virtuel ici, le noyau et les parties utilisateur de celui-ci.
Son incapacité à jeter un coup d'œil sur le code et les données du noyau n'est pas due à des espaces d'adressage différents, mais à des droits d'accès/permissions différents définis dans les tables de pages. Les pages du noyau sont configurées de manière à ce que les applications normales ne puissent pas y accéder.
Il est cependant habituel de se référer aux deux parties d'un tout comme l'espace noyau et l'espace utilisateur et cela peut prêter à confusion.
Imaginez ce qui se passerait si le noyau n'était pas mappé dans chaque espace d'adressage de processus. Il s'agirait d'une triple faute car, par exemple, l'interruption du minuteur se produit, puis le processeur appelle la routine ISR à l'aide de l'IDT (Interrupt Descriptor Table). Si le noyau n'est pas mappé, l'adresse IDT devient invalide et ainsi une triple faute en résultera.
Une autre raison importante pour laquelle nous disons que le noyau est dans l'espace d'adressage du processus est que le noyau peut accéder au code utilisateur/aux données du processus ACTUEL, c'est-à-dire l'espace d'adressage virtuel 0 ~ 3G.
Désolé pour mon mauvais anglais. Je ne suis pas de langue maternelle anglaise.