Logiciels et Système d'exploitation
October 15, 2025
Logiciel ( Software )
En informatique, un logiciel est un ensemble de séquences d’instructions interprétables par une machine et d’un jeu de données nécessaires à ces opérations.
Les séquences d’instructions appelées programmes ainsi que les données du logiciel sont ordinairement structurées en fichiers. La mise en œuvre des instructions du logiciel est appelée exécution et la machine chargée de cette mise en œuvre est appelée ordinateur ou calculateur
Language
Un ordinateur peut uniquement interpréter des instructions écrite de manière binaire, c’est à dire avec des 0 et des 1. On appelle cela le language machine. Ce language natif est propre à chaque processeur (ou unité central de calcule UCC, en anglais central processing unit, CPU), voici une suite d’instruction écrit en language machine pour un CPU RISC-V:
000000000001 00000 000 10100 0010011 # Charger la constante 1 dans le registre t0
000000000001 00000 000 10101 0010011 # Charger la constante 1 dans le registre t1
0000000 10101 10100 000 10110 0110011 # Ajouter t0 et t1, et stocker le résultat dans t2
Ce language n’est ni facile à lire ni facile à se souvenir. C’est pourquoi, plusieurs niveau de language on été inventé:
- language bas niveau plus proche du language natif d’une machine tel que Assembleur:
li t0, 1 # Charger la constante 1 dans le registre t0
li t1, 1 # Charger la constante 1 dans le registre t1
add t2, t0, t1 # Ajouter t0 et t1, et stocker le résultat dans t2
- language haut niveau plus proche du language humain tel que le C:
x = 1 + 1
- interpréter contre compiler
- objet contre fonctionnel
Compilation
La compilation permet de passé d’un programme ayant un language haut niveau à un exécutable écrier en binaire et interprétable par la machine.
Cycle de la compilation (en C):
- Édition du fichier source: fichier texte contenant le programme — nécessite un éditeur de texte (emacs, vi).
- Traitement par le préprocesseur: le fichier source est traité par un préprocesseur qui fait des transformations purement textuelles (remplacement de chaînes de caractères, inclusion d’autres fichiers source, etc)
gcc -E main.c >> mainPreProcessed.c - La compilation: le fichier engendré par le préprocesseur est traduit en assembleur i.e. en une suite d’instructions associées aux fonctionnalités du microprocesseur (faire une addition, etc).
gcc -S main.c - L’assamblage: transforme le code assembleur en un fichier objet i.e. compréhensible par le processeur.
gcc -c main.c - L’édition de lien: afin d’utiliser des librairies de fonctions déjà écrites, un programme est séparé en plusieurs fichiers source. Une fois le code source assemblé, il faut lier entre eux les fichiers objets. L’édition de liens produit un fichier exécutable.
gcc main.c
Comme vous pouvez le voir, il y a des différences notable celons sont environnement matériel (architecture UCC) et logiciel (système d’exploitation).
Système d’exploitation SE ( Operating Système OS ) - SE UNIX
En informatique, un système d’exploitation est un ensemble de programmes qui dirige l’utilisation des ressources d’un ordinateur par des logiciels applicatifs. Pour notre par, nous allons parlé principalement des SE UNIX, c’est à dire des SEs respectant des spécifications détaillé dans Single UNIX Specification (SUS) qui se base sur la norme POSIX.
interpréteur de commandes ( Command Line Interpretor CLI ) SHELL
Un interpréteur de commandes est un logiciel système faisant partie des composants de base d’un système d’exploitation. Sa fonction est d’interpréter les commandes qu’un utilisateur tape au clavier dans l’interface en ligne de commande. Sous les distribution UNIX, les interpréteurs de commande sont appelé SHELL.
Pour en savoir plus, vous pouvez vous référer à l’article wikipédia.
| windows | Unix |
|---|---|
| cmd,powershell, etc… | Shell, Bash, zsh, etc… |
Variable d’environement
| windows | Unix |
|---|---|
$env:PATH |
echo $PATH |
shell parent ?
Applicatif
Une application, un applicatif, appli ou encore une app est un programme (ou un ensemble logiciel) directement utilisé pour réaliser des tâches dans un domaine. Par exemple, une l’app calculatrice est une application qui permet de faire des calcules (taches) arithmétique (domaine).
Interface
Pour interagir avec un SE, il existe plusieurs type d’interface.
Interface Graphique ( graphical user interface GUI)
Les interfaces graphique sont des interfaces très utile pour navigé dans un domaine inconnue car elle permet facilement de s’approprié le domaine à ça vitesse.
Exemple d’appication GUI, un exploreur de fichier:
| windows | Gnome | Mac |
|---|---|---|
| file explorer | Nautilus(files) | finder |
Interface de Ligne de Commande ILC ( Command Line Interface CLI )
Une interface en ligne de commande est une interface homme-machine dans laquelle la communication entre l’utilisateur et l’ordinateur s’effectue en mode texte :
l’utilisateur tape une ligne de commande, c’est-à-dire du texte au clavier pour demander à l’ordinateur d’effectuer une opération ; l’ordinateur affiche du texte correspondant au résultat de l’exécution des commandes tapées ou à des questions qu’un logiciel pose à l’utilisateur
Vous pouvez explorer les fichiers présent sur un ordianeur en ligne de commande. Sur une distribution GNU/Linux, grâce à une console (application GUI), vous avez accès à un interpreteur de ligne de commande (par default bash) et utiliser des applications en ligne de commande notaments grâce aux commandes:
lspour listé les fichierscdpour vous déplacer dans les dossiers
Interface de programmation applicative ( Application Programming Interface API )
Une API est un ensemble, de fonctions, variable, structure et de constantes qui sert de façade par laquelle un logiciel offre des services à d’autres logiciels
vous pouvez explorer les fichier présent sur un ordinateur via les librairie direnv.h
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *d;
struct dirent *dir;
// Ouvre le répertoire courant
d = opendir(".");
if (d) {
// Lit les fichiers et dossiers dans le répertoire courant
while ((dir = readdir(d)) != NULL) {
printf("%s\n", dir->d_name);
}
// Ferme le répertoire
closedir(d);
} else {
perror("opendir");
}
return 0;
}
Processus
Un processus (en anglais, process), en informatique, est un programme en cours d’exécution par un ordinateur.
Sous les SE UNIX, il est possible de lister les processsus en cous d’execution grâce à la commande ps. Il exist d’autre commande tel que top, kill, nice, etc… qui vous permette de facilement gérer les processus en cours.
Pour mieux comprendre les processus, voici quelque exercice simple:
- Grace aux commande
grep,killetpsarrétter le processus vscode en cour d’excution. - Identifier le programme init (abréviation de initialisation), qui est le premier programme informatique exécuté sur les systèmes d’exploitation basés Unix.
Un daemon est un type de programme informatique, un processus ou un ensemble de processus qui s’exécute en arrière-plan plutôt que sous le contrôle direct d’un utilisateur.