Pourquoi syscall doit-il basculer en mode noyau?
-
03-07-2019 - |
Question
J'étudie pour la version finale de mon système d'exploitation et je me demandais si quelqu'un pourrait me dire pourquoi le système d'exploitation doit passer en mode noyau pour les appels système?
La solution
Un appel système est utilisé spécifiquement pour exécuter un fonctionnement en mode noyau puisque le code utilisateur habituel n'est pas autorisé à le faire pour des raisons de sécurité.
Par exemple, si vous souhaitez allouer de la mémoire, le système d'exploitation a le privilège de le faire (puisqu'il connaît les tables de pages et est autorisé à accéder à la mémoire d'autres processus), mais vous ne devez pas autoriser un programme utilisateur. jetez un coup d’œil ou détruisez la mémoire d’autres processus. C'est une façon de vous mettre en sandbox. Vous envoyez donc un appel système demandant au système d’exploitation d’allouer de la mémoire, ce qui se produit au niveau du noyau.
Modifier: je constate maintenant que le article de Wikipedia est étonnamment utile à cet égard
Autres conseils
Puisque ceci est marqué "devoirs", je ne donnerai pas simplement la réponse, mais je donnerai un indice:
Le noyau est chargé d'accéder au matériel de l'ordinateur et de s'assurer que les applications ne se superposent pas. Que se passerait-il si une application pouvait accéder à un périphérique matériel (par exemple, le disque dur) sans la coopération du noyau?