Le C et le C++ ont 2 propriétés qui permettent cette extensibilité que l'OP est en train de parler.
- Le C et le C++ peut accéder à la mémoire
- Le C et le C++ peut appeler du code assembleur pour des instructions pas dans le langage C ou C++.
Dans le noyau ou dans une base de non-protégés mode de plate-forme, des périphériques comme le port série ou un lecteur de disque sont mappés en mémoire carte de la même manière que la RAM est. La mémoire est une série de commutateurs et en tournant les commutateurs du périphérique vous permet de vous port série ou un lecteur de disque pour faire des choses utiles.
Dans un mode protégé du système d'exploitation, lorsque l'on veut accéder au noyau de l'espace utilisateur (dire lors de l'écriture dans le système de fichiers ou de dessiner un pixel sur l'écran), on doit effectuer un appel système. C n'a pas reçu pour instruction de faire un appel système, mais C peut appeler du code assembleur qui peuvent déclencher le bon appel système qui permet de la C code de parler au noyau.
Afin de rendre la programmation d'une plate-forme plus simple, les appels système sont enveloppés dans des fonctions plus complexes que peuvent effectuer certaines fonctions utiles au sein de son propre programme. On est libre d'appeler le système des appels directement (à l'aide de l'assembleur), mais il est probablement plus facile de simplement utiliser l'une des fonctions wrapper que la plate-forme de fournitures.
Il existe un autre niveau de l'API qui sont beaucoup plus utile qu'un appel système. Prenez l'exemple de la fonction malloc. Non seulement cet appel au système pour obtenir de grands blocs de mémoire, mais sera de gérer cette mémoire en faisant de la tenue des livres sur ce qui est de prendre place.
Win32 Api enveloppez graphique fonctionnalité avec une plate-forme commune widget. Qt prend un peu plus loin en les enveloppant Win32 (X ou Windows) de l'API dans une plate-forme de façon.
Fondamentalement, si un compilateur C active C code en code machine et étant donné que l'ordinateur est conçu pour utiliser de code machine, vous devriez vous attendre C pour être en mesure d'accomplir la part de lions ou de ce que peut faire un ordinateur. Tout ce que le wrapper bibliothèques à faire est de faire le gros du travail pour vous afin que vous n'avez pas à.