|  
    
Les logiciels sont divisés en logiciels système et logiciels d'application en fonction de leur objectif fondamental et de la manière dont ils interagissent avec le matériel informatique et les utilisateurs. La division simplifie la compréhension, le développement et la maintenance :
  
 * Logiciel système : Celui-ci agit comme intermédiaire entre l'utilisateur et le matériel. Son objectif principal est de gérer et de contrôler le matériel informatique et de fournir une plate-forme pour l'exécution des logiciels d'application. Il gère des tâches de bas niveau avec lesquelles les utilisateurs interagissent rarement directement. Cela comprend : 
  
 * Systèmes d'exploitation (OS) : Le logiciel système de base, gérant les ressources telles que la mémoire, le processeur, le stockage et les périphériques. Exemples :Windows, macOS, Linux, Android, iOS.  
 * Pilotes de périphérique : Logiciel qui permet au système d'exploitation de communiquer avec des périphériques matériels spécifiques (imprimantes, cartes graphiques, etc.).  
 * Utilitaires : Outils qui aident à gérer et à entretenir le système, comme les défragmenteurs de disque, les logiciels antivirus et les moniteurs système.  
 * BIOS/UEFI : Micrologiciel qui initialise les composants matériels au démarrage de l'ordinateur.  
 * Compilateurs et interprètes : Traduire les langages de programmation en code machine.  
 * Liens et chargeurs : Combinez et préparez le code du programme pour l’exécution.  
  
  
 * Logiciel d'application : Ceci est conçu pour effectuer des tâches spécifiques pour les utilisateurs. Il s'exécute *au-dessus* du logiciel système, en utilisant les ressources gérées par le système d'exploitation. Il se concentre sur les fonctionnalités destinées aux utilisateurs. Les exemples incluent : 
  
 * Traitements de texte : Microsoft Word, Google Docs  
 * Feuilles de calcul : Microsoft Excel, Google Sheets  
 * Navigateurs Web : Chrome, Firefox, Safari  
 * Jeux : Fortnite, Minecraft  
 * Bases de données : MySQL, PostgreSQL  
 * Éditeurs d'images : Photoshop, GIMP  
 * Clients de messagerie : Outlook, Thunderbird  
  
  
 La division est cruciale car : 
  
 * Abstraction : Le logiciel système cache la complexité du matériel aux logiciels d'application et aux utilisateurs. Les développeurs d'applications n'ont pas à se soucier des subtilités de la gestion de la mémoire ou des pilotes de périphériques; le système d'exploitation gère cela.  
 * Modularité : La séparation du système et du logiciel d’application facilite les mises à jour et la maintenance. Vous pouvez mettre à jour le système d'exploitation sans nécessairement affecter le logiciel d'application (idéalement).  
 * Portabilité : Les logiciels d'application conçus pour un système d'exploitation spécifique peuvent potentiellement être exécutés sur n'importe quel système doté de ce système d'exploitation, quelles que soient les différences matérielles sous-jacentes. Le logiciel système gère les détails spécifiques au matériel.  
 * Sécurité : Le logiciel système peut fournir des fonctionnalités de sécurité telles que des pare-feu et des contrôles d'accès des utilisateurs, protégeant ainsi le système et les applications contre les logiciels malveillants.  
  
  
 Même si la frontière peut parfois être floue (certaines applications ont des fonctionnalités de type système et certains logiciels système peuvent être configurables par l'utilisateur), la distinction reste un principe d'organisation précieux dans le monde du logiciel.
 
 |