L'architecture logicielle des équipements numériques¶
1. Objectif du cours¶
Comprendre les familles de logiciels, leurs composants et leurs interactions avec le matériel. Saisir les impacts des évolutions (virtualisation, cloud, IoT, IA) sur les performances, la sécurité et l’usage des équipements numériques.
2. Notions et définitions essentielles¶
- Logiciel : ensemble d’instructions, procédés et règles pour le traitement de données.
- Logiciel système : interagit directement avec le matériel (ex. Windows, GNU/Linux, macOS).
- Logiciel applicatif : fournit des fonctionnalités au-dessus du logiciel système (ex. navigateur, suite bureautique).
- Licences : propriétaire (payant, auteur contrôle diffusion/modif), libre/open source (utiliser, modifier, redistribuer), gratuit/freeware, shareware (essai limité).
- Pilote (driver) : permet au système d’exploitation de reconnaître et utiliser un composant ou périphérique.
- Noyau (kernel) : gère ressources matérielles, mémoire, planification, E/S et processus.
- Middleware (intergiciel) : bibliothèques, API et services facilitant la communication entre applicatif et OS.
- Bibliothèque/API : ensemble de fonctions réutilisables ; API = interface d’échange entre services/logiciels.
- Système embarqué / système temps réel : systèmes spécialisés pour tâches dédiées ou contraintes temporelles strictes (ex. eCos, FreeRTOS, QNX).
3. Fonctionnement et principes¶
L’architecture repose sur quatre couches hiérarchiques qui s’appuient sur le principe d’abstraction : matériel → noyau/système d’exploitation → intergiciel (middleware) → couche applicative. Le noyau fournit des services bas-niveau (gestion mémoire, planification, E/S) et expose une interface abstraite aux couches supérieures. Le middleware regroupe bibliothèques, pilotes et APIs pour normaliser les échanges entre applications et système. Les applications utilisent ces interfaces sans connaître les détails matériels. Les pilotes relient composants physiques et système d’exploitation pour exploiter pleinement les périphériques. Les interactions standardisées (API) assurent compatibilité et modularité, facilitant maintenance et évolution.
4. Commandes et manipulations¶
Non abordé dans ce cours
5. Sécurité et bonnes pratiques¶
- Security by design : intégrer la sécurité dès la conception des logiciels pour réduire la dette technique et les vulnérabilités.
- Zero Trust : considérer chaque point d’accès comme non fiable et appliquer contrôles d’accès stricts.
- Mise à jour et correctifs : architectures modernes facilitent mises à jour rapides pour corriger vulnérabilités.
- Sécurité IoT : prévoir gestion des identités et authentification dès le démarrage des projets d’objets connectés.
- Isolation via conteneurisation : utiliser conteneurs pour isoler applications/process et réduire surface d’attaque.
- Antivirus : le document signale la nécessité d’antivirus dans le comparatif (tous OS listés indiquent « Antivirus nécessaire »).
6. Points essentiels à retenir pour le TSSR¶
- Deux grandes familles : logiciel système (OS) et logiciel applicatif.
- Le noyau est la couche critique gérant mémoire, tâches et opérations d’E/S.
- Quatre couches logicielles : matériel, noyau/OS, middleware, applicatif.
- Middleware = bibliothèques + APIs + protocoles pour connecter applicatifs et OS.
- Pilotes permettent la reconnaissance et l’exploitation des périphériques par l’OS.
- Licences diffèrent : open source autorise modification/distribution, propriétaire restreint.
- Systèmes embarqués et temps réel existent pour besoins dédiés (ex. eCos, FreeRTOS, QNX, VxWorks).
- Tendances majeures : conteneurisation, microservices, edge computing, serverless, Edge AI.
- Impacts : meilleure évolutivité et agilité, optimisation des performances, mais complexité et nouveaux enjeux de sécurité.
- Intégrer UX et sécurité (« security by design ») est recommandé pour fiabilité et adoption.
7. Tableau récapitulatif¶
| Élément | Rôle principal | Exemples/Remarques |
|---|---|---|
| Noyau (kernel) | Gestion ressources, mémoire, planification, E/S | Linux, Windows NT, XNU |
| Middleware | Facilite communication app ↔ OS via API/bibliothèques | .dll/.so/.dylib, APIs (OpenGL, ODBC) |
| Couche applicative | Interaction utilisateur et exécution des programmes | Navigateurs, suites bureautiques |
| Systèmes embarqués / RTOS | Exécution de tâches dédiées ou contraintes temporelles | FreeRTOS, eCos, QNX, VxWorks |
8. Vérifications pratiques¶
Non abordé dans ce cours
9. Flashcards Anki¶
Qu’est-ce qu’un logiciel :: Ensemble d’instructions, procédés et règles relatifs au traitement de données
Qu’est-ce qu’un logiciel système :: Un logiciel qui interagit directement avec le matériel
Quelle caractéristique d’une licence libre :: Tous peuvent utiliser, exécuter et modifier le logiciel
Quel est le rôle d’un pilote (driver) :: Faire reconnaître un composant ou périphérique au logiciel système
Combien de couches logicielles sont décrites :: Quatre (matériel, noyau/OS, middleware, applicatif)
Quelle est la principale responsabilité du noyau :: Gérer la mémoire, la planification des tâches et les opérations d’E/S
Que regroupe le middleware :: Bibliothèques, pilotes, API et protocoles de communication
Donnez un exemple de système embarqué cité :: FreeRTOS (ou eCos, NuttX, ThreadX)
Part de marché de Windows pour les clients fin mai 2023 :: 75,62%
Qu’est-ce que la conteneurisation :: Processus pour diviser des applications en environnements isolés