Qu'est-ce qu'un noyau? Si vous passez du temps à lire des forums Android, des blogs, des articles de démonstration ou des discussions en ligne, vous entendrez bientôt parler du noyau. Un noyau n’est pas unique à Android - iOS et MacOS en ont un, Windows en a un, le QNX de BlackBerry en a un, en fait tous les systèmes d’exploitation de haut niveau en ont un. Celui qui nous intéresse est Linux, car c’est celui utilisé par Android. Essayons de casser ce que c'est et ce qu'il fait.
Les appareils Android utilisent le noyau Linux, et chaque téléphone en utilise sa propre version. Les responsables du noyau Linux gardent tout en ordre et disponibles, les contributeurs (tels que Google) ajoutent ou modifient des éléments pour mieux répondre à leurs besoins, et les fabricants du matériel y contribuent également, car ils doivent développer des pilotes de matériel pour les composants qu'ils utilisent pour le produit. version du noyau qu'ils utilisent. C’est la raison pour laquelle les développeurs indépendants Android et les pirates informatiques mettent un certain temps à porter de nouvelles versions sur des appareils plus anciens et à tout faire fonctionner. Les pilotes conçus pour fonctionner avec une version du noyau d'un téléphone peuvent ne pas fonctionner avec une version différente du logiciel sur le même téléphone. Et c'est important, car l'une des fonctions principales du noyau est de contrôler le matériel. C'est un tas de code source, avec plus d'options que vous ne pouvez l'imaginer pour le construire, mais au final, c'est simplement l'intermédiaire entre le matériel et le logiciel.
Lorsque le logiciel a besoin que le matériel fasse quoi que ce soit, il envoie une requête au noyau. Et quand on dit n'importe quoi, on veut dire n'importe quoi. De la luminosité de l'écran au niveau du volume, en passant par le lancement d'un appel via la radio, même ce qui est dessiné sur l'affichage est finalement contrôlé par le noyau. Par exemple, lorsque vous appuyez sur le bouton de recherche sur votre téléphone, vous indiquez au logiciel d’ouvrir l’application de recherche. Qu'est-ce qui se passe, c'est que vous avez touché un certain point sur le numériseur, ce qui indique au logiciel que vous avez touché l'écran à ces coordonnées. Le logiciel sait que lorsque cet endroit est touché, la boîte de dialogue de recherche est supposée s'ouvrir. Le noyau est ce qui indique au numériseur de rechercher (ou d'écouter, les événements sont "écoutés"), vous aide à comprendre où vous avez touché et dit au système que vous l'avez touché. À son tour, lorsque le système reçoit un événement tactile à un moment donné du noyau (via le pilote), il sait quoi dessiner sur votre écran. Le matériel et le logiciel communiquent dans les deux sens avec le noyau, et c'est ainsi que votre téléphone sait quand faire quelque chose. L'entrée d'un côté est envoyée en sortie à l'autre, que vous jouiez à Angry Birds ou que vous vous connectiez au Bluetooth de votre voiture.
Cela semble compliqué, et ça l'est. Mais c’est aussi une logique informatique assez standard: une action est générée pour chaque événement et, en fonction de cette action, il en va de même pour le logiciel en cours d'exécution. Sans le noyau pour accepter et envoyer des informations, les développeurs devraient écrire du code pour chaque événement et pour chaque élément de matériel de votre appareil. Avec le noyau, tout ce qu'ils ont à faire, c'est de communiquer avec lui via les API du système Android, et les développeurs de matériel n'ont qu'à faire communiquer le matériel du périphérique avec le noyau. La bonne chose est que vous n'avez pas besoin de savoir exactement comment ou pourquoi le noyau fait ce qu'il fait, le simple fait de comprendre que c'est le lien entre le logiciel et le matériel vous donne une assez bonne compréhension de ce qui se passe sous la glace.
Cela donne une nouvelle perspective à ces types qui restent debout toute la nuit à travailler sur les noyaux pour votre téléphone, n'est-ce pas?