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?
- 1. Comment Windows protège-t-il la transition en mode noyau?
- 2. pilote en mode noyau écrire dans le fichier
- 3. Définition de l'affinité de processus en mode noyau
- 4. Compteur d'horodatage (TSC) lors du passage du mode noyau au mode utilisateur
- 5. Qu'est-ce que l'API KMS (kernel mode setting) du noyau?
- 6. Python Get Docstring sans passer en mode interactif
- 7. Raison du multivoie syscall sous Linux
- 8. IE8 Standards Mode Kicking en mode Compatibilité Error Log?
- 9. Comment passer d'une base de données Access au mode partagé et au mode exclusif?
- 10. MSMQ sur un contrôleur de domaine par défaut en mode groupe de travail, comment passer en mode Domaine?
- 11. Pourquoi la fonction fwrite libc est plus rapide que la fonction d'écriture syscall?
- 12. Lancement de l'application iPhone en mode paysage. Pourquoi l'avertissement obscur?
- 13. Pourquoi SQL Server est-il passé en mode mono-utilisateur?
- 14. Grub et passer en mode réel (programmation en langage assembleur de bas niveau)
- 15. Arguments du noyau
- 16. Mode vi de Readline en mode vim ex
- 17. Obtenir les temps de noyau en C#
- 18. Appel de la DLL à partir du mode noyau C++ windows
- 19. Pourquoi ai-je besoin de re-compiler le module noyau vmware après une mise à niveau du noyau Linux?
- 20. Compiler le module noyau Linux (2.6) incluant les en-têtes non-noyau
- 21. Comment puis-je empêcher l'iPhone OS d'éteindre l'écran ou de passer en mode veille?
- 22. Est-il possible de passer automatiquement en mode release si je publie un projet vs?
- 23. Comment supprimer un mot et passer en mode insertion dans Vim?
- 24. flv noyau flex vidéo
- 25. compilation 64 noyau linux bits avec gcc
- 26. mkmapview en mode paysage
- 27. Regroupement en mode hibernation
- 28. UIAlertView en mode paysage
- 29. MPMoviePlayerController en mode portrait?
- 30. Pourquoi les événements de saisie au clavier ne se produisent-ils pas en mode plein écran?