Profile Floris Robart

Linux Linux est un noyau de système d'exploitation libre et open source, développé initialement par Linus Torvalds en 1991. Il est utilisé dans une grande variété de systèmes, allant des serveurs aux ordinateurs personnels, en passant par les appareils mobiles et les systèmes embarqués.

Ma définition

Linux est un noyau de système d'exploitation libre et open source, développé initialement par Linus Torvalds en 1991. Il est utilisé dans une grande variété d'environnements : serveurs, ordinateurs personnels, appareils mobiles, systèmes embarqués et machine industrielle. Linux est reconnu pour sa stabilité, sa sécurité et sa flexibilité, ce qui en fait un choix apprécié des développeurs et des administrateurs système.

Linux est l'un des plus grands projets de logiciel libre au monde, animé par une communauté très active. Il permet à chacun de déployer, sur une large diversité de matériels, un système d'exploitation complet, personnalisable et sécurisé.

Bien qu'il soit peu connu du grand public, Linux est omniprésent. Il équipe environ 96,3 % des serveurs web, la totalité des supercalculateurs et plus de 5,3 milliards de téléphones mobiles. Il est aussi présent dans l'aérospatial, l'industrie, les véhicules, les télévisions, les montres connectées, les réfrigérateurs, les appareils électroménagers, les imprimantes 3D, les caisses automatiques, les robots et les systèmes de contrôle du trafic aérien. Linux fonctionne sur presque tous les matériels, des machines anciennes aux environnements extrêmes comme la Station spatiale internationale.

Linux constitue un écosystème polyvalent et puissant qui a profondément transformé l'informatique et continue de jouer un rôle clé dans l'innovation technologique.

Paradoxalement, malgré son importance, Linux reste relativement méconnu du grand public. Il représente environ 5 % du marché des ordinateurs personnels. Une des raisons est que les fabricants préinstallent souvent des systèmes propriétaires comme Windows pour des raisons commerciales.

Étant libre et open source, Linux n'est pas commercialisé et rarement préinstallé de la même manière que certains systèmes propriétaires. Il est parfois perçu comme moins accessible, malgré l'existence de nombreuses distributions conviviales. Leur adoption reste limitée car elles requièrent souvent une installation manuelle, ce qui décourage une grande partie du public.

Clarifions un point : Linux est un noyau, pas un système d'exploitation complet. Le noyau gère les ressources matérielles, mais il a besoin de bibliothèques, d'outils et d'applications pour constituer un système opérationnel. C'est pourquoi on parle de distributions Linux (Ubuntu, Debian, Fedora, Arch Linux, etc.), chacune offrant des choix et des compromis différents. Cependant, le terme "Linux" est souvent utilisé pour désigner l'ensemble de l'écosystème, y compris les distributions, les applications et les outils associés.

Mes éléments de preuve

J'utilise la distribution Ubuntu depuis 2023 et j'en suis très satisfait. Linux m'a beaucoup appris sur le fonctionnement des systèmes, la ligne de commande, la programmation et l'administration système.

Ubuntu est une distribution conviviale qui nécessite peu de configuration initiale tout en offrant des possibilités de personnalisation. J'ai également utilisé Debian (avec KDE Plasma), mais je préfère Ubuntu pour sa simplicité et ses choix de configuration par défaut.

Ubuntu est basée sur Debian et utilise l'environnement de bureau GNOME. Les applications disponibles pour Debian le sont aussi pour Ubuntu, ce qui rend les compétences acquises sur Ubuntu transférables à d'autres distributions basées sur Debian.

Cette compatibilité est un atout majeur. Debian est largement utilisée côté serveurs, tandis qu'Ubuntu est répandue sur des postes de travail. Les compétences acquises avec Ubuntu sont donc utiles pour l'administration de serveurs Debian.

Debian et Ubuntu partagent de nombreux outils (APT, format .deb, etc.), ce qui facilite la portabilité des applications entre ces distributions, notamment Linux Mint, Pop!_OS, Elementary OS, etc.

J'ai notamment créé Maven Lite, une application pour développeurs Java. C'est une version allégée de Maven. Maven Lite permet de créer, configurer, compiler, lancer et packager des projets Java via une interface en ligne de commande simple et intuitive. L'application est disponible sur Linux, Windows et macOS, avec une distribution au format .deb pour les distributions basées sur Debian.

Maven Lite est distribué sur Linux via un paquet .deb, ce qui facilite son installation sur Debian, Ubuntu et distributions dérivées. Des installeurs sont également fournis pour Windows et macOS mais via un fichier compressé contenant l'exécutable, ainsi qu'un script d'installation pour simplifier le processus.

Maven Lite inclut, grâce à son paquet .deb, des pages de manuel (manpages) consultables depuis la ligne de commande, un atout pour les utilisateurs Linux habitués aux outils en terminal.

Le fait que je puisse développer une application, la distribuer au format .deb et fournir une documentation accessible en ligne de commande témoigne de ma maîtrise de l'environnement Debian et de ma capacité à produire des logiciels compatibles avec les standards Linux.

Je ne me contente pas d'utiliser Linux, je sais aussi l'installer et le configurer sur différents matériels. Par exemple, j'ai installé Ubuntu Desktop sur mes ordinateurs personnels (Dell, Intel Core i7 et Asus Zenbook 14, Intel Core Ultra 9).

Avant l'installation, j'ai utilisé GParted pour redimensionner les partitions et libérer de l'espace pour Ubuntu. Cette étape m'a permis de préparer une partition dédiée sans perte de données.

J'ai réservé 100 Go pour Ubuntu et réduit la partition Windows à 400 Go pour conserver mes données. L'objectif était d'installer Ubuntu sans effacer mes fichiers.

Après le partitionnement, j'ai utilisé une clé USB bootable créée avec Ventoy pour installer Ubuntu. L'installation s'est déroulée correctement et j'ai configuré un dual boot. Aujourd'hui, après plusieurs installations, je peux préparer et installer un système en moins de 10 minutes (temps de chargement non compris).

Je possède également trois serveurs Linux chez moi, tous basés sur Debian. Ils hébergent des versions anciennes de mes projets et servent d'environnements de développement et de test. J'ai installé Debian sans environnement graphique afin de les administrer via la ligne de commande, ce qui améliore performances et sécurité.

Ces serveurs ne sont pas exposés sur Internet. Ils sont accessibles uniquement depuis mon réseau local, ce qui me permet de les utiliser en toute sécurité pour tester mes applications dans un environnement proche de la production.

J'ai également un VPS chez OVH, basé sur Debian, qui héberge mes projets en production : Econoris, FlorAccess, Flollylist, Ma Documentation, mon CV et ce portfolio.

Avant la mise en production, j'ai sécurisé et optimisé mon VPS : modification du port SSH, authentification par clés publiques seulement, et fermeture des ports inutiles. Limiter les services exposés réduit significativement les risques d'attaques.

J'ai ensuite installé Docker pour déployer mes applications dans des conteneurs, ce qui facilite l'isolation, le déploiement et la scalabilité.

J'ai aussi installé Git pour récupérer et mettre à jour facilement mes dépôts depuis GitHub. Grâce à ce workflow, je peux publier des modifications locales puis les déployer sur mon VPS en quelques minutes seulement.

J'utilise également Ubuntu au travail, ce qui me permet d'avoir une expérience pratique et professionnelle de Linux, et d'améliorer continuellement mes compétences.

Les serveurs de l'entreprise sont aussi basés sur Debian et utilisent Docker pour le déploiement. L'entreprise dispose d'outils de supervision et d'un pare-feu pour garantir la sécurité et la disponibilité. Je n'ai pas encore exploré la configuration en détail, mais j'ai pu observer leur fonctionnement et les bénéfices qu'ils apportent.

Mon autocritique

L'administration de serveurs Linux est une discipline complexe. Grâce à mes serveurs personnels et à mon VPS chez OVH, je dispose d'une bonne maîtrise pratique, mais je reconnais ne pas être expert et qu'il reste encore beaucoup à apprendre.

Par exemple, il serait pertinent d'ajouter un pare-feu (UFW, IPTables), un système de supervision (Nagios, Zabbix) et d'installer fail2ban pour protéger contre les attaques par force brute. Ces mesures renforceraient la sécurité et la résilience de mes serveurs.

Ces outils ne sont pas indispensables à court terme, car mon VPS bénéficie déjà d'une configuration sécurisée et d'une protection DDoS fournie par OVH. Néanmoins, leur ajout améliorerait la sécurité et la fiabilité. Je prévois de les déployer lorsque j'aurai le temps d'apprendre et de configurer correctement ces solutions.

Mon évolution dans cette compétence

Pour moi, Linux fait partie du trio d'outils parfait avec Git et Docker. Je compte continuer à l'utiliser pour mes projets actuels et futurs, tant pour le développement que pour la mise en production, ainsi que pour mes postes de travail personnels et professionnels.

J'ai encore beaucoup à apprendre, notamment en administration de serveurs, mais je suis motivé pour progresser, car ces compétences sont précieuses pour ma carrière et mes projets. Je préfère m'améliorer grâce à des ressources gratuites plutôt que de passer des certifications, qui ne sont pas ma priorité.