1.2 Leçon 1
Certification : |
Linux Essentials |
---|---|
Version : |
1.6 |
Thème : |
1 La communauté Linux et une Carrière dans l’Open Source |
Objectif : |
1.2 Les Principales Applications Open Source |
Leçon : |
1 sur 1 |
Introduction
Une application est un programme informatique dont le but n’est pas directement lié au fonctionnement interne de l’ordinateur, mais aux tâches effectuées par l’utilisateur. Les distributions Linux offrent de nombreuses applications permettant d’effectuer diverses tâches, telles que des applications de bureau, des navigateurs web, des lecteurs et éditeurs multimédia, etc. Il existe souvent plusieurs applications ou outils pour effectuer une tâche particulière. Il appartient à l’utilisateur de choisir l’application qui répond le mieux à ses besoins.
Paquets Logiciels
Presque toutes les distributions Linux proposent un ensemble d’applications préinstallées par défaut. Outre ces applications préinstallées, une distribution dispose d’un dépôt de paquets avec une vaste collection d’applications disponibles à l’installation via son gestionnaire de paquets. Bien que les différentes distributions proposent à peu près les mêmes applications, il existe plusieurs systèmes de gestion des paquets pour différentes distributions. Par exemple, Debian, Ubuntu et Linux Mint utilisent les outils dpkg
, apt-get
et apt
pour installer des paquets logiciels, généralement appelés paquets DEB. Les distributions telles que Red Hat, Fedora et CentOS utilisent plutôt les commandes rpm
, yum
et dnf
, qui à leur tour installent des paquets RPM. Comme la gestion des paquests des applications est différente pour chaque famille de distribution, il est très important d’installer les paquets à partir du dépôt approprié conçu pour la distribution. L’utilisateur final n’a généralement pas à se soucier de ces détails, car le gestionnaire de paquets de la distribution choisira les bons paquets, les dépendances requises et les futures mises à jour. Les dépendances sont des paquets auxiliaires nécessaires aux programmes. Par exemple, si une bibliothèque fournit des fonctions permettant de traiter des images JPEG utilisées par plusieurs programmes, cette bibliothèque est probablement empaquetée dans son propre paquet dont dépendent toutes les applications utilisant la bibliothèque.
Les commandes dpkg
et rpm
fonctionnent sur des fichiers de paquets individuels. En pratique, presque toutes les tâches de gestion des paquets sont effectuées par les commandes apt-get
ou apt
sur les systèmes qui utilisent des paquets DEB ou par yum
ou dnf
sur les systèmes qui utilisent des paquets RPM. Ces commandes fonctionnent avec des catalogues de paquets, peuvent télécharger de nouveaux paquets et leurs dépendances, et vérifier les nouvelles versions des paquets installés.
Installation des Paquets
Supposons que vous ayez entendu parler d’une commande appelée figlet qui imprime un texte agrandi sur le terminal et que vous vouliez l’essayer. Cependant, vous obtenez le message suivant après avoir exécuté la commande figlet
:
$ figlet -bash: figlet: command not found
Cela signifie probablement que le paquet n’est pas installé sur votre système. Si votre distribution fonctionne avec des paquets DEB, vous pouvez effectuer une recherche dans ses dépôts en utilisant apt-cache search nom_du_paquet
ou apt search nom_du_paquet
. La commande apt-cache est utilisée pour rechercher des paquets et pour lister les informations sur les paquets disponibles. La commande suivante recherche toute occurrence du terme “figlet” dans les noms et les descriptions des paquets :
$ apt-cache search figlet figlet - Make large character ASCII banners out of ordinary text
La recherche a permis d’identifier un paquet appelé figlet qui correspond à la commande manquante. L’installation et la suppression d’un paquet nécessitent des autorisations spéciales accordées uniquement à l’administrateur du système : l’utilisateur nommé root
. Sur les systèmes de bureau, les utilisateurs ordinaires peuvent installer ou supprimer des paquets en ajoutant la commande sudo
aux commandes d’installation et de suppression. Pour ce faire, vous devrez taper votre mot de passe. Pour les paquets DEB, l’installation est effectuée avec la commande apt-get install nom_du_paquet
ou apt install nom_du_paquet
:
$ sudo apt-get install figlet Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: figlet 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
À ce stade, le paquet sera téléchargé et installé sur le système. Toutes les dépendances dont le paquet aura éventuellement besoin seront également téléchargées et installées :
Need to get 184 kB of archives. After this operation, 741 kB of additional disk space will be used. Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB] Fetched 184 kB in 0s (213 kB/s) Selecting previously unselected package figlet. (Reading database ... 115701 files and directories currently installed.) Preparing to unpack .../figlet_2.2.5-2_armhf.deb ... Unpacking figlet (2.2.5-2) ... Setting up figlet (2.2.5-2) ... update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode Processing triggers for man-db (2.7.6.1-2) ...
Une fois le téléchargement terminé, tous les fichiers sont copiés aux emplacements appropriés, toute configuration supplémentaire sera effectuée et la commande deviendra disponible :
$ figlet Awesome! _ _ / \__ _____ ___ ___ _ __ ___ ___| | / _ \ \ /\ / / _ \/ __|/ _ \| '_ ` _ \ / _ \ | / ___ \ V V / __/\__ \ (_) | | | | | | __/_| /_/ \_\_/\_/ \___||___/\___/|_| |_| |_|\___(_)
Dans les distributions basées sur des paquets RPM, les recherches sont effectuées en utilisant yum search nom_du_paquet
ou dnf search nom_du_paquet
. Disons que vous voulez afficher un texte de manière plus irrévérencieuse, suivi d’une vache caricaturale, mais que vous n’êtes pas sûr du paquet qui peut effectuer cette tâche. Comme pour les paquets DEB, les commandes de recherche RPM acceptent des termes descriptifs :
$ yum search speaking cow Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03. ==================== Name & Summary Matched: speaking, cow ==================== cowsay.noarch : Configurable speaking/thinking cow
Après avoir trouvé un paquet approprié dans le dépôt, il peut être installé avec yum install nom_du_paquet
ou dnf install nom_du_paquet
:
$ sudo yum install cowsay Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03. Dependencies resolved. ============================================================================== Package Arch Version Repository Size ============================================================================== Installing: cowsay noarch 3.04-10.fc28 fedora 46 k Transaction Summary ============================================================================== Install 1 Package Total download size: 46 k Installed size: 76 k Is this ok [y/N]: y
Une fois de plus, le paquet souhaité et toutes ses dépendances possibles seront téléchargés et installés :
Downloading Packages: cowsay-3.04-10.fc28.noarch.rpm 490 kB/s | 46 kB 00:00 ============================================================================== Total 53 kB/s | 46 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Installed: cowsay.noarch 3.04-10.fc28 Complete!
La commande cowsay
fait exactement ce que son nom indique :
$ cowsay "Brought to you by yum" _______________________ < Brought to you by yum > ----------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Bien qu’elles puissent paraître inutiles, les commandes figlet
et cowsay
permettent d’attirer l’attention d’autres utilisateurs sur des informations pertinentes.
Suppression des Paquets
Les commandes utilisées pour installer les paquets sont les mêmes utilisées pour les supprimer. Toutes les commandes acceptent le mot-clé remove
pour désinstaller un paquet installé : apt-get remove nom_du_paquet
ou apt remove nom_du_paquet
pour les paquets DEB et yum remove nom_du_paquet
ou dnf remove nom_du_paquet
pour les paquets RPM. La commande sudo
est également nécessaire pour effectuer la suppression. Par exemple, pour supprimer le paquet figlet précédemment installé d’une distribution basée sur DEB :
$ sudo apt-get remove figlet Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: figlet 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 741 kB disk space will be freed. Do you want to continue? [Y/n] Y
Après confirmation de l’opération, le paquet est supprimé du système :
(Reading database ... 115775 files and directories currently installed.) Removing figlet (2.2.5-2) ... Processing triggers for man-db (2.7.6.1-2) ...
Une procédure similaire est effectuée sur un système basé sur RPM. Par exemple, pour retirer le paquet cowsay précédemment installé d’une distribution basée sur RPM :
$ sudo yum remove cowsay Dependencies resolved. ================================================================================== Package Arch Version Repository Size ================================================================================== Removing: cowsay noarch 3.04-10.fc28 @fedora 76 k Transaction Summary ================================================================================== Remove 1 Package Freed space: 76 k Is this ok [y/N]: y
De même, une confirmation est demandée et le paquet est supprimé du système :
Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Erasing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Removed: cowsay.noarch 3.04-10.fc28 Complete!
Les fichiers de configuration des paquets supprimés sont conservés sur le système, de sorte qu’ils peuvent être réutilisés si le paquet est réinstallé à l’avenir.
Les Applications de Bureautique
Les applications de bureautique sont utilisées pour éditer des fichiers tels que des textes, des présentations, des feuilles de calcul et d’autres formats couramment utilisés dans un environnement de bureau. Ces applications sont généralement organisées en collections appelées suites bureautiques.
Pendant longtemps, la suite bureautique la plus utilisée sous Linux a été la suite OpenOffice.org. OpenOffice.org était une version open source de la suite StarOffice publiée par Sun Microsystems. Quelques années plus tard, Sun a été racheté par Oracle Corporation, qui a à son tour transféré le projet à la Fondation Apache et OpenOffice.org a été renommé Apache OpenOffice. Entre-temps, une autre suite bureautique basée sur le même code source a été publiée par la Document Foundation, qui l’a nommée LibreOffice.
Les deux projets ont les mêmes caractéristiques de base et sont compatibles avec les formats de documents de Microsoft Office. Toutefois, le format de document préféré est le format Open document, un format de fichier entièrement ouvert et normalisé par l’ISO. L’utilisation de fichiers ODF garantit que les documents peuvent être transférés entre les systèmes d’exploitation et les applications de différents fournisseurs, tels que Microsoft Office. Les principales applications proposées par OpenOffice/LibreOffice sont les suivantes
Writer: : Éditeur de texte Calc: : Tableurs Impress: : Présentations Draw: : Dessin vectoriel Maths: : Formules mathématiques Base: : Base de données
LibreOffice et Apache OpenOffice sont tous deux des logiciels libres, mais LibreOffice est sous licence LGPLv3 et Apache OpenOffice est sous licence Apache 2.0. La distinction entre les licences implique que LibreOffice peut incorporer des améliorations apportées par Apache OpenOffice, mais Apache OpenOffice ne peut pas incorporer des améliorations apportées par LibreOffice. Cela, et une communauté de développeurs plus active, sont la raison pour laquelle la plupart des distributions adoptent LibreOffice comme suite bureautique par défaut.
Navigateurs Web
Pour la plupart des utilisateurs, l’objectif principal d’un ordinateur est de fournir un accès à l’Internet. De nos jours, les pages web peuvent agir comme une application complète, avec l’avantage d’être accessibles de n’importe où, sans qu’il soit nécessaire d’installer un logiciel supplémentaire. Cela fait du navigateur web l’application la plus importante du système d’exploitation, du moins pour l’utilisateur moyen.
L’une des meilleures sources pour s’informer sur le développement du web est le MDN Web Docs, disponible à l’adresse https://developer.mozilla.org/. Maintenu par Mozilla, le site est rempli de tutoriels pour les débutants et de documents de référence sur la plupart des technologies web modernes.
Les principaux navigateurs web dans l’environnement Linux sont Google Chrome et Mozilla Firefox. Chrome est un navigateur web maintenu par Google mais est basé sur le navigateur open source Chromium, qui peut être installé en utilisant le gestionnaire de paquets de la distribution et est entièrement compatible avec Chrome. Maintenu par Mozilla, une organisation à but non lucratif, Firefox est un navigateur dont les origines sont liées à Netscape, le premier navigateur web populaire à adopter le modèle Open Source. La Fondation Mozilla est très impliquée dans le développement des standards ouverts qui sous-tendent le web moderne.
Mozilla développe également d’autres applications, comme le client de messagerie électronique Thunderbird. De nombreux utilisateurs choisissent d’utiliser un webmail plutôt qu’une application de courrier électronique dédiée, mais un client comme Thunderbird offre des fonctionnalités supplémentaires et s’intègre mieux aux autres applications de bureautique.
Multimédia
Par rapport aux applications web disponibles, les applications de bureautique restent la meilleure option pour la création de contenu multimédia. Les activités liées au multimédia, comme le rendu vidéo, nécessitent souvent de grandes quantités de ressources système, qui sont mieux gérées par une application de bureautique locale. Certaines des applications multimédias les plus populaires pour l’environnement Linux et leurs utilisations sont énumérées ci-dessous.
- Blender
-
Un moteur de rendu 3D pour créer des animations. Blender peut également être utilisé pour exporter des objets 3D afin qu’ils soient imprimés par une imprimante 3D.
- GIMP
-
Un éditeur d’images complet, comparable à Adobe Photoshop, mais qui possède ses propres concepts et outils pour travailler avec les images. GIMP est utilisé pour créer, modifier et enregistrer la plupart des fichiers bitmap, comme les JPEG, PNG, GIF, TIFF et bien d’autres.
- Inkscape
-
Un éditeur de graphiques vectoriels, similaire à Corel Draw ou Adobe Illustrator. Le format par défaut d’Inkscape est SVG, qui est un standard ouvert pour les graphiques vectoriels. Les fichiers SVG peuvent être ouverts par n’importe quel navigateur web et, en raison de sa nature de graphique vectoriel, il peut être utilisé dans des mises en page flexibles de pages web.
- Audacity
-
Un éditeur audio. Audacity peut être utilisé pour filtrer, appliquer des effets et convertir entre de nombreux formats audios différents, comme MP3, WAV, OGG, FLAC, etc.
- ImageMagick
-
ImageMagick est un outil en ligne de commande permettant de convertir et de modifier la plupart des types de fichiers d’images. Il est également utilisé pour créer des documents PDF à partir de fichiers d’images et vice versa.
Il existe également de nombreuses applications dédiées à la lecture multimédia. L’application la plus populaire pour la lecture vidéo est VLC, mais certains utilisateurs préfèrent d’autres alternatives, comme smplayer. La lecture de musique en locale dispose également de nombreuses options, comme Audacious, Banshee et Amarok, qui peut également gérer une collection de fichiers audios locaux.
Programmes Serveurs
Lorsqu’un navigateur web charge une page d’un site web, il se connecte en fait à un ordinateur distant et demande un élément d’information spécifique. Dans ce scénario, l’ordinateur qui exécute le navigateur web est appelé le client et l’ordinateur distant est appelé le serveur.
L’ordinateur serveur, qui peut être un ordinateur de bureau ordinaire ou du matériel spécialisé, a besoin d’un programme spécifique pour gérer chaque type d’information qu’il fournira. En ce qui concerne la desserte de pages web, la plupart des serveurs dans le monde déploient des programmes de serveur Open Source. Ce programme serveur particulier est appelé serveur HTTP (HTTP signifie Hyper Text Transfer Protocol) et les plus populaires sont Apache, Nginx et lighttpd.
Même de simples pages web peuvent nécessiter de nombreuses requêtes, qui peuvent être des fichiers ordinaires - appelés contenus statiques - ou des contenus dynamiques rendus à partir de diverses sources. Le rôle d’un serveur HTTP est de collecter et de renvoyer toutes les données demandées au navigateur, qui organise alors le contenu comme défini par le document HTML reçu (HTML signifie Hyper Text Markup Language) et d’autres fichiers d’appui. Par conséquent, le rendu d’une page web implique des opérations effectuées du côté serveur et des opérations effectuées du côté client. Les deux parties peuvent utiliser des scripts personnalisés pour accomplir des tâches spécifiques. Côté serveur HTTP, il est assez courant d’utiliser le langage de script PHP. JavaScript est le langage de script utilisé du côté client (le navigateur web).
Les programmes de serveur peuvent fournir toutes sortes d’informations. Il est courant qu’un programme serveur demande des informations fournies par d’autres programmes serveurs. C’est le cas lorsqu’un serveur HTTP demande des informations fournies par un serveur de base de données.
Par exemple, lorsqu’une page dynamique est demandée, le serveur HTTP interroge généralement une base de données pour recueillir toutes les informations requises et renvoie le contenu dynamique au client. De la même manière, lorsqu’un utilisateur s’inscrit sur un site web, le serveur HTTP rassemble les données envoyées par le client et les stocke dans une base de données.
Une base de données est un ensemble organisé d’informations. Un serveur de base de données stocke le contenu de manière formatée, ce qui permet de lire, d’écrire et de relier de grandes quantités de données de manière fiable et rapide. Les serveurs de bases de données open source sont utilisés dans de nombreuses applications, et pas seulement sur internet. Même les applications locales peuvent stocker des données en se connectant à un serveur de base de données local. Le type de base de données le plus courant est la base de données relationnelle, dans laquelle les données sont organisées dans des tableaux prédéfinis. Les bases de données relationnelles open source les plus populaires sont MariaDB (issue de MySQL) et PostgreSQL.
Partage des Données
Dans les réseaux locaux, comme ceux que l’on trouve dans les bureaux et les foyers, il est souhaitable que les ordinateurs puissent non seulement accéder à l’internet, mais aussi communiquer entre eux. Parfois, un ordinateur agit comme un serveur, parfois le même ordinateur agit comme un client. Cela est nécessaire lorsque l’on veut accéder à des fichiers sur un autre ordinateur dans le réseau. En occurrence, accéder à un fichier stocké sur un ordinateur de bureau à partir d’un ordinateur portable sans la difficulté de le copier sur une clé USB ou autre.
Entre les machines Linux, le NFS (Network File System) est souvent utilisé. Le protocole NFS est le moyen standard de partager des systèmes de fichiers dans des réseaux équipés uniquement de machines Unix/Linux. Avec NFS, un ordinateur peut partager un ou plusieurs de ses répertoires avec des ordinateurs spécifiques sur le réseau, afin qu’ils puissent lire et écrire des fichiers dans ces répertoires. NFS est même utilisé pour partager l’arborescence entière des répertoires d’un système d’exploitation avec des clients qui l’utiliseront pour démarrer. Ces ordinateurs, appelés clients légers, sont souvent utilisés dans les grands réseaux pour éviter la maintenance de chaque système d’exploitation sur chaque machine.
Si d’autres types de systèmes d’exploitation sont connectés au réseau, il est recommandé d’utiliser un protocole de partage de données qui peut être compris par tous. Cette exigence est remplie par Samba. Samba met en œuvre un protocole de partage de fichiers sur le réseau conçu à l’origine pour le système d’exploitation Windows, mais il est aujourd’hui compatible avec tous les principaux systèmes d’exploitation. Avec Samba, les ordinateurs du réseau local peuvent non seulement partager des fichiers, mais aussi des imprimantes.
Sur certains réseaux locaux, l’autorisation donnée lors de la connexion à un poste de travail est accordée par un serveur central, appelé contrôleur de domaine, qui gère l’accès aux différentes ressources locales et distantes. Le contrôleur de domaine est un service fourni par Active Directory de Microsoft. Les postes de travail Linux peuvent s’associer à un contrôleur de domaine en utilisant Samba ou un sous-système d’authentification appelé SSSD. À partir de la version 4, Samba peut également fonctionner comme contrôleur de domaine sur des réseaux hétérogènes.
Si l’objectif est de mettre en œuvre une solution de cloud computing capable de fournir diverses méthodes de partage de données sur le web, deux alternatives doivent être envisagées : ownCloud et Nextcloud. Les deux projets sont très similaires car le Nextcloud est un dérivé du ownCloud, ce qui est habituel parmi les projets open source. De telles déclinaisons sont généralement appelées fork. Les deux projets offrent les mêmes fonctionnalités de base : partage et synchronisation de fichiers, espaces de travail collaboratifs, calendrier, contacts et courrier, le tout via des interfaces de bureau, mobiles et web. Nextcloud propose également des conférences audio/vidéo privées, tandis que ownCloud est davantage axé sur le partage de fichiers et l’intégration avec des logiciels tiers. De nombreuses autres fonctionnalités sont fournies sous forme de plugins qui peuvent être activés ultérieurement si nécessaire.
ownCloud et Nextcloud offrent tous deux une version payante avec des fonctionnalités supplémentaires et un support étendu. Ce qui les différencie des autres solutions commerciales est la possibilité d’installer gratuitement le Nextcloud ou ownCloud sur un serveur privé, ce qui évite de conserver des données sensibles sur un serveur inconnu. Comme tous les services dépendent de la communication HTTP et sont écrits en PHP, l’installation doit être effectuée sur un serveur web préalablement configuré, comme Apache. Si vous envisagez d’installer ownCloud ou Nextcloud sur votre propre serveur, veillez à activer également le HTTPS pour chiffrer toutes les connexions à votre cloud.
Administration du Réseau
La communication entre ordinateurs n’est possible que si le réseau fonctionne correctement. Normalement, la configuration du réseau est effectuée par un ensemble de programmes fonctionnant sur le routeur, chargé de mettre en place et de vérifier la disponibilité du réseau. Pour ce faire, deux services de base du réseau sont utilisés : DHCP (Dynamic Host Configuration Protocol) et DNS (Domain Name System).
Le DHCP est responsable de l’attribution d’une adresse IP à l’hôte lorsqu’un câble réseau est connecté ou lorsque l’appareil entre dans un réseau sans fil. Lors de la connexion à Internet, le serveur DHCP du fournisseur d’accès fournit une adresse IP à l’appareil demandeur. Un serveur DHCP est très utile dans les réseaux locaux également, pour fournir automatiquement des adresses IP à tous les appareils connectés. Si le DHCP n’est pas configuré ou s’il ne fonctionne pas correctement, il faudra configurer manuellement l’adresse IP de chaque appareil connecté au réseau. Il n’est pas pratique de définir manuellement les adresses IP sur les grands réseaux ou même sur les petits réseaux, c’est pourquoi la plupart des routeurs de réseau sont livrés avec un serveur DHCP préconfiguré.
L’adresse IP est nécessaire pour communiquer avec un autre appareil sur un réseau IP, mais les noms de domaine comme www.lpi.org
sont beaucoup plus susceptibles d’être mémorisés qu’un numéro IP comme 203.0.113.165
. Le nom de domaine seul ne suffit cependant pas pour établir la communication par le réseau. C’est pourquoi le nom de domaine doit être traduit en une adresse IP par un serveur DNS. L’adresse IP du serveur DNS est fournie par le serveur DHCP du FAI et est utilisée par tous les systèmes connectés pour traduire les noms de domaine en adresses IP.
Les paramètres DHCP et DNS peuvent être modifiés en entrant dans l’interface web fournie par le routeur. Par exemple, il est possible de limiter l’attribution d’une adresse IP aux seuls appareils connus ou d’associer une adresse IP fixe à des machines spécifiques. Il est également possible de modifier le serveur DNS par défaut fourni par le fournisseur d’accès Internet. Certains serveurs DNS tiers, comme ceux fournis par Google ou OpenDNS, peuvent parfois fournir des réponses plus rapides et des fonctionnalités supplémentaires.
Langages de Programmation
Tous les programmes informatiques (programmes clients et serveurs, applications de bureautique et le système d’exploitation lui-même) sont réalisés à l’aide d’un ou plusieurs langages de programmation. Les programmes peuvent être un simple fichier ou un système complexe de centaines de fichiers, que le système d’exploitation traite comme une séquence d’instructions à interpréter et à exécuter par le processeur et d’autres périphériques.
Il existe de nombreux langages de programmation à des fins très différentes et les systèmes Linux en fournissent beaucoup. Comme les logiciels libres comprennent également les sources des programmes, les systèmes Linux offrent aux développeurs des conditions parfaites pour comprendre, modifier ou créer des logiciels en fonction de leurs propres besoins.
Chaque programme commence sous la forme d’un fichier texte, appelé code source. Ce code source est écrit dans un langage plus ou moins convivial qui décrit ce que fait le programme. Un processeur d’ordinateur ne peut pas exécuter directement ce code. Dans les langages compilés, le code source est donc converti en un fichier binaire qui peut ensuite être exécuté par l’ordinateur. Un programme appelé compilateur est chargé d’effectuer la conversion du code source en forme exécutable. Comme le binaire compilé est spécifique à un type de processeur, le programme peut devoir être recompilé pour être exécuté sur un autre type d’ordinateur.
Dans les langages interprétés, le programme n’a pas besoin d’être compilé au préalable. Au lieu de cela, un interpréteur lit le code source et exécute ses instructions chaque fois que le programme est exécuté. Cela rend le développement plus facile et plus rapide, mais en même temps les programmes interprétés ont tendance à être plus lents que les programmes compilés.
Voici quelques-uns des langages de programmation les plus populaires :
- JavaScript
-
JavaScript est un langage de programmation utilisé principalement dans les pages web. À l’origine, les applications JavaScript étaient très simples, comme les routines de validation de formulaires. Aujourd’hui, JavaScript est considéré comme un langage de première classe et il est utilisé pour créer des applications très complexes non seulement sur le web, mais aussi sur les serveurs et les appareils mobiles.
- C
-
Le langage de programmation C est étroitement lié aux systèmes d’exploitation, en particulier Unix, mais il est utilisé pour écrire tout type de programme sur presque tout type d’appareil. Les grands avantages du C sont la flexibilité et la rapidité. Le même code source écrit en C peut être compilé pour fonctionner sur différentes plates-formes et systèmes d’exploitation, avec peu ou pas de modifications. Cependant, après avoir été compilé, le programme ne s’exécutera que dans le système visé.
- Java
-
L’avantage principal de Java est que les programmes écrits dans ce langage sont portables, ce qui signifie qu’un même programme peut être exécuté dans différents systèmes d’exploitation. Malgré son nom, Java n’est pas apparenté à JavaScript.
- Perl
-
Perl est un langage de programmation très utilisé pour traiter le contenu des fichiers textes. Il met fortement l’accent sur les expressions régulières, ce qui fait de Perl un langage adapté au filtrage et à l’analyse de textes.
- Shell
-
Le shell, en particulier le shell Bash, est un langage de programmation, mais aussi une interface interactive pour exécuter d’autres programmes. Les programmes shells, appelés scripts shells, peuvent automatiser des tâches complexes ou répétitives dans l’environnement de la ligne de commande.
- Python
-
Python est un langage de programmation très populaire parmi les étudiants et les professionnels qui ne sont pas directement impliqués dans l’informatique. Tout en ayant des fonctionnalités avancées, Python est un bon moyen de commencer à apprendre la programmation grâce son approche facile à utiliser.
- PHP
-
Le PHP est surtout utilisé comme langage de script côté serveur pour générer du contenu pour le web. La plupart des pages HTML en ligne ne sont pas des fichiers statiques, mais du contenu dynamique généré par le serveur à partir de diverses sources, comme des bases de données. Les programmes PHP, souvent simplement appelé pages PHP ou scripts PHP sont souvent utilisés pour générer ce genre de contenu. Le terme LAMP vient de la combinaison d’un système d’exploitation Linux, d’un serveur HTTP Apache, d’une base de données MySQL (ou MariaDB) et du langage de programmation PHP. Les serveurs LAMP sont une solution très populaire pour faire fonctionner des serveurs web. Outre PHP, tous les langages de programmation décrits précédemment peuvent également être utilisés pour mettre en œuvre de telles applications.
C et Java sont des langages compilés. Afin d’être exécuté par le système, le code source écrit en C est converti en code machine binaire, tandis que le code source Java est converti en code binaire exécuté dans un environnement logiciel spécial appelé Machine Virtuelle Java. JavaScript, Perl, script Shell, Python et PHP sont tous des langages interprétés, qui sont également appelés langages de script.
Exercices Guidés
-
Pour chacune des commandes suivantes, identifiez si elle est associée au système de gestion des paquets Debian ou au système de gestion des paquets Red Hat :
dpkg
rpm
apt-get
yum
dnf
-
Quelle commande pourrait être utilisée pour installer Blender sur Ubuntu ? Après l’installation, comment le programme peut-il être exécuté ?
-
Quelle application de la suite LibreOffice peut être utilisée pour travailler avec des feuilles de calcul électroniques ?
-
Quel navigateur web open-source est utilisé comme base pour le développement de Google Chrome ?
-
SVG est un standard ouvert pour les graphiques vectoriels. Quelle est l’application la plus populaire pour l’édition de fichiers SVG dans les systèmes Linux ?
-
Pour chacun des formats de fichiers suivants, inscrivez le nom d’une application capable d’ouvrir et de modifier le fichier correspondant :
png
doc
xls
ppt
wav
-
Quel logiciel permet le partage de fichiers entre les machines Linux et Windows sur le réseau local ?
Exercices d’Exploration
-
Vous savez que les fichiers de configuration sont conservés même si le paquet associé est supprimé du système. Comment supprimeriez-vous automatiquement le paquet nommé cups et ses fichiers de configuration d’un système basé sur DEB ?
-
Supposons que vous ayez de nombreux fichiers d’images TIFF à convertir en JPEG. Quel logiciel utiliseriez-vous pour convertir ces fichiers directement en ligne de commande ?
-
Quel logiciel installerez-vous pour ouvrir les documents Microsoft Word qui vous sont envoyés par un utilisateur de Windows ?
-
Chaque année, linuxquestions.org promeut une enquête sur les applications Linux les plus populaires. Visitez https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ et découvrez quelles applications de bureau sont les plus populaires parmi les utilisateurs expérimentés de Linux.
Résumé
Dans cette leçon, vous avez appris :
-
Les systèmes de gestion des paquets utilisés dans les distributions majeures de Linux
-
Des applications open source qui peuvent éditer des formats de fichiers populaires
-
Les programmes de serveur qui sous-tendent de nombreux importants services Internet et de réseaux locaux
-
Les langages de programmation communs et leurs usages
Réponses aux Exercices Guidés
-
Pour chacune des commandes suivantes, identifiez si elle est associée au système de gestion des paquets Debian ou au système de gestion des paquets Red Hat :
dpkg
Système de gestion des paquets Debian
rpm
Système de gestion des paquets Red Hat
apt-get
Système de gestion des paquets Debian
yum
Système de gestion des paquets Red Hat
dnf
Système de gestion des paquets Red Hat
-
Quelle commande pourrait être utilisée pour installer Blender sur Ubuntu ? Après l’installation, comment le programme peut-il être exécuté ?
La commande
apt-get install blender
. Le nom du paquet doit être indiqué en minuscules. Le programme peut être exécuté directement depuis le terminal avec la commandeblender
ou en le choisissant dans le menu des applications. -
Quelle application de la suite LibreOffice peut être utilisée pour travailler avec des feuilles de calcul électroniques ?
Calc
-
Quel navigateur web open-source est utilisé comme base pour le développement de Google Chrome ?
Chromium
-
SVG est un standard ouvert pour les graphiques vectoriels. Quelle est l’application la plus populaire pour l’édition de fichiers SVG dans les systèmes Linux ?
Inkscape
-
Pour chacun des formats de fichiers suivants, inscrivez le nom d’une application capable d’ouvrir et de modifier le fichier correspondant :
png
Gimp
doc
LibreOffice Writer
xls
LibreOffice Calc
ppt
LibreOffice Impress
wav
Audacity
-
Quel logiciel permet le partage de fichiers entre les machines Linux et Windows sur le réseau local ?
Samba
Réponses aux Exercices d’Exploration
-
Vous savez que les fichiers de configuration sont conservés même si le paquet associé est supprimé du système. Comment supprimeriez-vous automatiquement le paquet nommé cups et ses fichiers de configuration d’un système basé sur DEB ?
apt-get purge cups
-
Supposons que vous ayez de nombreux fichiers d’images TIFF à convertir en JPEG. Quel logiciel convertirait ces fichiers directement en ligne de commande ?
ImageMagick
-
Quel logiciel installerez-vous pour ouvrir les documents Microsoft Word qui vous sont envoyés par un utilisateur de Windows ?
LibreOffice ou OpenOffice
-
Chaque année, linuxquestions.org promeut une enquête sur les applications Linux les plus populaires. Visitez https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ et découvrez quelles applications de bureau sont les plus populaires parmi les utilisateurs expérimentés de Linux.
Navigateur : Firefox. Client de messagerie : Thunderbird. Lecteur multimédia : VLC. Éditeur de graphiques raster : GIMP.