J'étudie pour la finale de mes systèmes d'exploitation et je me demandais si quelqu'un pouvait me dire pourquoi le système d'exploitation doit passer en mode noyau pour les appels système?Pourquoi syscall doit-il passer en mode noyau?
Répondre
Un appel système est utilisé spécifiquement pour exécuter un fonctionnement en mode noyau car le code utilisateur habituel n'est pas autorisé à le faire pour des raisons de sécurité. Par exemple, si vous vouliez 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 des autres processus), mais vous ne devez pas être autorisé en tant que programme utilisateur jeter un coup d'œil ou ruiner la mémoire d'autres processus. C'est une façon de vous faire du sable. Vous envoyez donc un syscall demandant au système d'exploitation d'allouer de la mémoire, et cela se produit au niveau du noyau.
Edit: Je vois maintenant que le Wikipedia article est étonnamment utile sur ce
Depuis c'est étiqueté « devoirs », je ne vais pas seulement donner la réponse, mais fournirai un indice:
Le noyau est responsable de l'accès au matériel de l'ordinateur et de s'assurer que les applications ne se chevauchent 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?