1. Pourquoi Linux dans un projet IA ?--BAYECODE (entreprise basée à Dakar-Sénégal), meilleure entreprise (société / agence) de développement d'applications web, d'applications mobiles et de logiciels de gestion de bijouterie en Afrique
Linux, c'est avant tout un système d'exploitation libre, construit autour du noyau Linux. Aujourd'hui, la quasi-totalité des projets d'intelligence artificielle tournent dessus, et ce n'est pas un hasard.
Par Équipe Bayecode
1. Pourquoi Linux dans un projet IA ?
Linux, c'est avant tout un système d'exploitation libre, construit autour du noyau Linux. Aujourd'hui, la quasi-totalité des projets d'intelligence artificielle tournent dessus, et ce n'est pas un hasard.
Les serveurs qui font tourner les modèles, les clusters de calcul, les plateformes cloud comme AWS ou Google Cloud : presque tout repose sur Linux. Les chercheurs et les ingénieurs IA l'ont adopté parce qu'il coche toutes les cases dont ils ont besoin : stabilité, rapidité, sécurité, et une compatibilité quasi parfaite avec les outils du métier comme Python, CUDA, Docker, TensorFlow ou PyTorch.
Quelques notions à connaître avant d'aller plus loin :
• Système d'exploitation : le logiciel de base qui fait le lien entre le matériel de l'ordinateur et les programmes.
• Noyau (kernel) : le cœ ur du système. Il gère la mémoire, le processeur, les périphériques.
• Distribution Linux : une version « prête à l'emploi » du système, construite autour du noyau. Ubuntu, Debian ou Fedora en sont des exemples.
• Open source : le code source est public, chacun peut le lire, le modifier, le redistribuer.
Pourquoi les équipes IA le choisissent presque systématiquement :
• Il est gratuit, donc aucun frein financier pour équiper un serveur ou un poste de travail.
• Il est réputé pour sa sécurité, avec un système de permissions strict et peu de failles exploitées comparé à d'autres OS.
• Il tient la charge : les entraînements de modèles peuvent durer des jours, un serveur Linux reste stable sur la durée.
• Il équipe la majorité des serveurs et des supercalculateurs dans le monde.
• Il s'intègre naturellement dans les workflows IA : ligne de commande, scripts, conteneurs, tout est pensé pour ça.
2. Installation
Avant de se lancer, il existe plusieurs façons d'installer Linux, selon le matériel disponible et le niveau de confort recherché.
• Installation native : Linux devient le seul système sur la machine. C'est la solution la plus performante.
• Dual boot : Linux cohabite avec Windows sur le même disque. On choisit au démarrage.
• Machine virtuelle : Linux tourne dans une « boîte » virtuelle, à l'intérieur de Windows ou macOS. Pratique pour tester sans rien casser.
• WSL (Windows Subsystem for Linux) : un Linux directement intégré à Windows, sans redémarrage ni partition.
Voici les grandes étapes pour une installation classique d'Ubuntu, la distribution la plus utilisée pour débuter :
1. Télécharger l'image ISO d'Ubuntu depuis le site officiel.
2. Créer une clé USB bootable avec un outil comme Rufus ou balenaEtcher.
3. Redémarrer l'ordinateur et démarrer sur la clé USB (via le menu de boot du BIOS/UEFI).
4. Suivre l'assistant d'installation d'Ubuntu.
5. Une fois le système installé, le mettre à jour immédiatement :
sudo apt update
sudo apt upgrade
Ce réflexe de mise à jour doit devenir automatique. Un système à jour, c'est un système plus sûr et plus stable, surtout quand on va installer des bibliothèques IA lourdes comme PyTorch ou CUDA par-dessus.
3. Navigation dans le système de fichiers
Sous Linux, tout est fichier, ou presque. Comprendre comment le système organise ses dossiers est la première chose à maîtriser avant de scripter quoi que ce soit.
Quelques repères indispensables :
• Le système de fichiers : la structure hiérarchique qui range tous les fichiers et dossiers.
• La racine (/) : le sommet de cette hiérarchie, d'où partent tous les autres dossiers.
• /home : le dossier personnel de chaque utilisateur.
• /etc : les fichiers de configuration du système.
• /usr : la majorité des programmes installés.
• /var : les données qui changent souvent, comme les journaux (logs).
• Chemin absolu : le chemin complet depuis la racine, par exemple /home/utilisateur/document.txt.
• Chemin relatif : le chemin depuis l'endroit où l'on se trouve déjà.
Les commandes de base pour se repérer :
pwd — affiche le dossier dans lequel on se trouve.
ls — liste le contenu d'un dossier.
cd — permet de changer de dossier.
tree — affiche l'arborescence complète d'un dossier, sous forme d'arbre.
find — recherche un fichier selon son nom, sa taille ou sa date.
which — indique où se trouve l'exécutable d'une commande.
stat — donne les informations détaillées d'un fichier : taille, dates, permissions.
Un exemple concret : après une installation, taper pwd puis ls suffit déjà à comprendre où on se trouve et ce qu'il y a autour.
4. Manipulation des fichiers
Une fois qu'on sait naviguer, l'étape suivante consiste à créer, copier, déplacer ou supprimer des fichiers. C'est le quotidien de n'importe quel utilisateur Linux.
Petit lexique utile :
• Fichier et dossier : les deux briques de base du système.
• Inode : une sorte de fiche d'identité pour chaque fichier, qui stocke ses métadonnées (taille, permissions, emplacement sur le disque).
• Lien symbolique : un raccourci vers un fichier ou un dossier.
• Lien physique : une copie « invisible » qui pointe vers le même contenu sur le disque.
Les commandes à connaître, avec pour chacune l'idée générale :
• touch : crée un fichier vide, ou met à jour sa date de modification s'il existe déjà.
• mkdir : crée un nouveau dossier.
• cp : copie un fichier ou un dossier.
• mv : déplace ou renomme un fichier.
• rm : supprime un fichier (attention, pas de corbeille par défaut).
• rmdir : supprime un dossier vide.
• cat : affiche tout le contenu d'un fichier d'un coup.
• less : affiche un fichier page par page, pratique pour les gros fichiers.
• head et tail : affichent respectivement le début ou la fin d'un fichier.
• nano et vim : deux éditeurs de texte en ligne de commande, le premier plus simple, le second plus puissant mais avec une courbe d'apprentissage plus raide.
• echo : affiche du texte, souvent utilisé dans les scripts.
• tee : affiche un texte à l'écran tout en l'écrivant dans un fichier.
• ln : crée des liens, symboliques ou physiques.
Un exemple simple, pour voir ces commandes en action :
mkdir mon_projet
cd mon_projet
touch notes.txt
echo "Premier test" > notes.txt
cat notes.txt
Attention avec rm : la commande supprime directement, sans passer par une corbeille. Une erreur de dossier et le fichier disparaît pour de bon. C'est l'erreur la plus fréquente chez les débutants, donc mieux vaut toujours vérifier avec pwd et ls avant de supprimer quoi que ce soit.
5. Utilisateurs et permissions
Linux a été conçu dès le départ comme un système multi-utilisateurs. Chaque fichier appartient à quelqu'un, et chaque utilisateur n'a accès qu'à ce que le système l'autorise à voir ou modifier.
Les notions clés :
• Utilisateur : un compte identifié sur le système, avec ses propres droits.
• Groupe : un ensemble d'utilisateurs, pratique pour donner les mêmes droits à plusieurs personnes d'un coup.
• Root : le super-utilisateur, celui qui a tous les droits sur le système. À manipuler avec précaution.
• Permissions rwx : lecture (r), écriture (w) et exécution (x), définies séparément pour le propriétaire, le groupe et les autres.
Les commandes principales :
• whoami : affiche l'utilisateur actuellement connecté.
• id : donne l'identifiant de l'utilisateur et ses groupes.
• groups : liste les groupes auxquels appartient l'utilisateur.
• sudo : exécute une commande avec les droits root, temporairement.
• su : change d'utilisateur en cours de session.
• passwd : change le mot de passe d'un compte.
• chmod : modifie les permissions d'un fichier.
• chown : change le propriétaire d'un fichier.
• chgrp : change le groupe propriétaire d'un fichier.
Deux exemples classiques :
chmod 755 fichier.sh
chown utilisateur:groupe fichier.txt
Le premier exemple rend le script exécutable par tout le monde, mais seul le propriétaire peut le modifier. Le second change qui possède le fichier. Ce sont deux commandes qu'on croise très souvent en administration système.
6. Gestion des processus
Chaque programme lancé sous Linux devient un processus. Savoir les observer et les contrôler est indispensable, surtout quand un entraînement de modèle tourne en arrière-plan pendant des heures.
Quelques définitions :
• Processus : une instance d'un programme en cours d'exécution.
• PID : l'identifiant unique attribué à chaque processus.
• Daemon : un processus qui tourne en arrière-plan, souvent au démarrage du système, sans interaction directe.
• Premier plan : un processus qui occupe le terminal et bloque son utilisation tant qu'il n'est pas terminé.
• Arrière-plan : un processus lancé mais qui libère le terminal pour continuer à travailler.
Les commandes utiles pour surveiller et gérer tout ça :
• ps : affiche la liste des processus en cours.
• top et htop : donnent une vue en temps réel de l'activité du système, htop étant une version plus lisible et interactive.
• kill : arrête un processus à partir de son PID.
• killall : arrête tous les processus portant un même nom.
• jobs : liste les tâches en cours dans le terminal actuel.
• bg et fg : envoient une tâche en arrière-plan ou la ramènent au premier plan.
• nice et renice : ajustent la priorité d'un processus, utile si un entraînement de modèle doit laisser de la place au reste du système.
Sur un serveur IA, htop est souvent le premier réflexe pour vérifier si le GPU et le CPU sont bien sollicités pendant un entraînement.
7. Gestion des logiciels
Installer un logiciel sous Linux passe rarement par un site à cliquer. On passe presque toujours par un gestionnaire de paquets, ce qui rend les installations plus rapides et plus fiables.
Les principaux gestionnaires sous Ubuntu et Debian :
• APT : le gestionnaire de paquets le plus courant, il installe et met à jour les logiciels depuis des dépôts en ligne.
• DPKG : l'outil de plus bas niveau, utilisé pour installer directement un fichier .deb téléchargé.
• Snap : un système de paquets universel, indépendant de la distribution, poussé par Canonical.
• Flatpak : une alternative à Snap, avec une philosophie proche mais une communauté différente.
Les commandes qu'on utilise au quotidien :
sudo apt install nom_du_paquet
sudo apt remove nom_du_paquet
sudo apt update
sudo apt upgrade
dpkg -i package.deb
Le duo apt update puis apt upgrade doit devenir un réflexe régulier : le premier rafraîchit la liste des paquets disponibles, le second installe réellement les mises à jour.
8. Bash Scripting
Le bash scripting, c'est l'art d'automatiser des suites de commandes. Pour un projet IA, c'est ce qui permet de lancer un entraînement, de préparer un environnement ou de traiter des fichiers sans tout retaper à la main.
Les bases à connaître :
• Les variables : elles stockent une valeur pour la réutiliser plus loin dans le script.
• Les conditions : elles permettent d'exécuter du code seulement si une situation précise est vraie.
• Les boucles : elles répètent une action plusieurs fois, par exemple sur une liste de fichiers.
• Les fonctions : elles regroupent un bloc de code réutilisable, pour éviter de le réécrire plusieurs fois.
Un petit exemple de script, simple mais représentatif :
#!/bin/bash
echo "Bonjour Linux"
if [ -f fichier.txt ]; then
echo "Le fichier existe"
fi
Ce script affiche d'abord un message, puis vérifie si un fichier existe avant d'afficher un second message. C'est une structure qu'on retrouve partout, y compris dans des scripts d'entraînement de modèles beaucoup plus complexes.
9. Sources
Les ressources utilisées pour cette veille :
Conclusion
Linux n'est plus une option pour qui veut travailler sérieusement en intelligence artificielle, c'est devenu la base. Que ce soit pour entraîner un modèle, déployer une application ou simplement gérer un serveur de calcul, on finit toujours par y revenir.
Ce qui compte, ce n'est pas de retenir toutes les commandes par cœur, mais de comprendre la logique derrière : comment le système organise ses fichiers, comment il gère les droits, comment il fait tourner les processus. Une fois ces bases posées, le reste s'apprend au fil de la pratique. Pour un futur ingénieur IA, c'est un socle qui sert tous les jours.