Telechargé par el rabem

Chapitre 1 Communaute Linux et Open Source

publicité
Système d’exploitation
-
Communauté Linux et l’Open Source
I.
: Évolution de Linux et majeures distributions
L’histoire des logiciels libres
Au début des années 80, on assistait à l’entrée des ordinateurs dans le monde des affaires
Autre fois chaque copie de logiciel était taxée
En 1984, on assistait à la création de la Free Software Foundation par Richard Stallman qui était
chercheur au MIT et au lancement du projet GNU qui est une version gratuite d’Unix.
Présentation de UNIX/LINUX
Un système d’exploitation est un ensemble de programmes qui
coordonnent le fonctionnement des différents composants matériels et
logiciels d’un système informatique.
UNIX/LINUX est un système d’exploitation ayant les caractéristiques
Suivantes :
• Multi-utilisateurs et Multitâches : cela signifie que plusieurs utilisateurs
peuvent accéder simultanément au système et exécuter un ou plusieurs
programmes.
• Temps partagé : c’est-à-dire que les ressources du processeur et du
système sont réparties entre les utilisateurs.
•
Système de fichiers hiérarchique : plusieurs systèmes de fichiers
peuvent être rattachés au système de fichiers principal ; chaque système
de fichiers possède ses propres répertoires.
•
Entrées-Sorties intégrées au système de fichiers : les périphériques
sont représentés par des fichiers, ce qui rend le système
1
Système d’exploitation
-
indépendant du matériel et en assure la portabilité ; l’accès aux
périphériques est donc identique à l’accès aux fichiers ordinaires.
• Gestion de la mémoire virtuelle : un mécanisme d’échange entre la
RAM et le disque dur permet de pallier un manque de RAM et optimise
le système.
• Processus réentrants : les processus exécutant le même programme
utilisent une seule copie de celui-ci en RAM.
Richard Matthew Stallman
Le premier personnage important dans cette histoire n'est autre que Richard Matthew
Stallman ou appelé par ses initiales RMS.
C'est en 1984 que RMS a décidé de créer un système d'exploitation (SE ou OS)
entièrement libre nommé système GNU. Pour comprendre cette décision il faut revenir un peu
en arrière. Unix était très répandu dans les universités (dont le MIT où travaillait RMS (plus
précisément au MIT AI Lab)) et les entreprises. Cependant les licences des différentes versions
d'Unix rendaient le système propriétaire. Par exemple les universités avaient gratuitement le
système et les sources mais ils n'avaient aucun droit de les redistribuer. C'est cette frustration
qui a décidé RMS à créer son propre système. Le but du projet GNU était de créer un OS
complet et entièrement libre. C'est-à-dire gratuit, que l'on peut modifier et redistribuer. C'est
dans cet état d'esprit que RMS créa la licence GPL (General Public Licence).
Il commença par programmer la plupart des commandes Unix nécessaires à l'utilisation
du système. Puis il chercha à pourvoir GNU d'un compilateur C. Malheureusement, les
compilateurs les plus proches de ce qu'il cherchait n'étaient pas libres et ceux qui étaient libres
nécessitaient trop de modifications pour que le projet soit viable. Il commença alors l'écriture
depuis 0 (from scratch) qu'il nomma GCC acronyme de GNU C Compiler. GCC était assez flexible
pour permettre de lui ajouter de nouveaux langages comme le C++, objective C, Java etc, et
l'acronyme devint ensuite GNU Compiler Collection.
Cependant il manquait au projet GNU la pièce maîtresse d'un OS : le noyau. RMS ne
voulait pas d'un noyau monolithique et s'orienta alors vers un micro noyau. La conception d'un
tel noyau est plus compliquée et surtout le débogage est d'une incroyable complexité. Le
développement pris du retard, beaucoup de retard. Finalement le retard est tellement
important que même aujourd'hui il n'y a pas de version vraiment considérée stable.
2
Système d’exploitation
-
Linus Torvald
Le second personnage clé est Linus Torvald, créateur du noyau Linux. En 1991 Linus était
étudiant à l'université d'Helsinki en Finlande. Il utilisait Minix, un système non libre, basé sur le
modèle d'Unix, créé par le professeur Andrew Tanenbaum a des fins didactiques. Il manquait
dans Minix un émulateur de terminal ce qui aurait permis à Linus de se connecter sur les
machines de son université depuis chez lui. Linus entrepris alors de le coder mais il le fit
indépendant de Minix. Il continua d'ajouter des fonctionnalités à son émulateur de terminal
tant et si bien qu'il en avait fait un embryon de noyau. Il porta dessus bash et GCC, tous deux
issus du projet GNU. Il posta le fruit de son travail sur des listes de discussions sur internet et
rapidement beaucoup de personnes commencèrent à le modifier et à ajouter leurs propres
fonctionnalités.
Le choix de Linus de rendre son noyau libre, et le ralliement par internet d'une armée de
développeurs permit dès 1994 d'avoir la version 1.0 de Linux sur lequel fonctionnait la majorité
des programmes GNU.
GNU/Linux l'évolution
Installer un système Linux revenait à installer le noyau Linux, les outils GNU ainsi que
d'autres logiciels tiers. C'était réellement une tâche compliquée réservée aux initiés. Des
personnes eurent l'idée géniale de faire ce travail et de redistribuer ensuite ce système complet
en tant que Distribution Linux. C'est dans les années 1993/1994 que deux distributions, qui
existent encore aujourd'hui, sont nées : Slackware Linux et Debian GNU/Linux.
Si aujourd'hui Slackware est peu utilisée c'est parce qu'elle est restée très proche de ce
qu'elle a été au début : un ensemble cohérent comprenant le noyau, les outils GNU et des
logiciels tiers. Alors que des distributions comme Debian (puis Red Hat, Suse, Mandrake
devenue Mandriva) apportent une vraie valeur ajoutée par la possibilité d'utiliser des paquets :
c'est-à-dire que tous les logiciels disponibles pour la distribution ne sont pas compris sur le
support d'installation mais sont disponibles soit sur des supports annexes soit sur des serveurs
internet. Ces paquets sont installables via des outils dédiés et permettent la résolution des
dépendances. Par exemple si vous voulez installer le logiciel foo et qu'il nécessite la
bibliothèque libbar, le gestionnaire de paquet va vérifier que vous avez libbar, dans le cas
contraire il va le télécharger et l'installer puis faire de même pour l'application foo.
De plus ils ont souvent des outils graphiques permettant une configuration simplifiée de
diverses parties du système. Par exemple la distribution qui est actuellement la plus populaire
c'est Ubuntu (et ses dérivés Kubuntu / Xubuntu), si vous utilisez du matériel dont les drivers ne
sont pas libres ou qu'ils nécessitent un firmware non libre, le petit outil graphique va se charger
3
Système d’exploitation
-
de tout télécharger et tout installer tout seul. Ce genre de choses doivent être faites
manuellement lorsqu'on utilise une Slackware.
Tout cela concerne les distributions de bureaux (ou de serveurs : il existe des
déclinaisons pour serveur d'Ubuntu, Mandriva, Red Hat etc). Mais l'utilisation de GNU/Linux ne
s'arrête pas là. Outre les desktops et les serveurs, on le retrouve de plus en plus dans des
systèmes embarqués. Par exemple de plus en plus de téléphones portables utilisent le noyau
Linux comme tous les téléphones utilisant Android de Google. A noter que Chrome OS est aussi
bâti sur un noyau Linux. Les tablettes internet de Nokia (770, N800, N810) utilisent aussi un
noyau Linux. La plupart des routeurs, *Box ainsi que les systèmes GPS de TomTom fonctionnent
grâce à Linux.
Maintenant, et toujours dans cette petite introduction, et avant d'attaquer les choses
sérieuses sur la vraie constitution d'un système GNU/Linux, essayons de voir dans les grandes
lignes ce que c'est, ce qu'il permet et ce qu'il n'est pas afin de démystifier un peu tout cela.
Comme on l'a vu dans sa genèse, Linux (le noyau) est inspiré de Minix (il n'en contient
aucune ligne) qui lui même est un système purement destiné à l'éducation inspiré d'Unix (c'est
donc un Unix-like). Depuis sa constitution Linux suit les normes et les standards comme POSIX
ou ANSI ainsi que BSD. C'est un énorme avantage puisque lorsqu'on écrit un programme
fonctionnant sur GNU/Linux, on peut normalement le porter facilement, voire sans
modifications, sur d'autres systèmes respectant aussi ces normes comme les BSD (NetBSD,
OpenBSD, FreeBSD), les solaris (Solaris, OpenSolaris) et dans une moindre mesure
MacOS/Darwin.
En revanche il sera souvent beaucoup plus difficile de le porter sur un OS ne respectant
rien à l'instar de Windows de Microsoft dont l'implémentation des normes et standards est très
limitée, partielle et parfois ne respecte justement pas les standards.
Un autre point important que nous avons vu, le noyau Linux ainsi que la grande majorité
des logiciels fournis avec (outils GNU inclus) sont libres. Vous pouvez accéder aux sources, les
modifier, vous en inspirer, les redistribuer et tout ça gratuitement. C'est une sorte de
gigantesque bibliothèque de codes sources entièrement libre.
Donc GNU/Linux est un système entier, à part, et c'est aussi un détail important. Il utilise
le format ELF (Executable and Linkable Format) pour ses exécutable et rien que par ce détail on
se rend compte qu'il ne peut pas exécuter les applications compilées pour Windows (utilisant le
format PE). Cependant il ne permet pas non plus d'exécuter des programmes compilés par
d'autres systèmes utilisant ELF comme *BSD, car il n'y a pas de compatibilités entre les
4
Système d’exploitation
-
bibliothèques C (bibliothèque système qui fait le lien entre le noyau et les applications
utilisateurs).
Cependant pour les applications Windows il existe une implémentation (encore non
achevée) des bibliothèques systèmes de windows. Cette implémentation appelée WINE (Wine
Is Not an Emulator) permet d'exécuter, plus ou moins bien, un grand nombre d'applications
compilées pour les systèmes de Microsoft.
Puisqu'on parle de Windows, qu'est-ce qui différencie un système GNU/Linux d'un
Windows ?
Les différences entre GNU/Linux et Windows
Même pour l'utilisateur final certaines différences sont notables. Contrairement à
Windows qui est une sorte de bloc unique fourni par défaut, un système GNU/Linux est un
ensemble de "petits" blocs ouverts. Ainsi, alors que sous Windows il n'y a qu'un seul
environnement de bureau sur lequel on peut appliquer des thèmes, sous GNU/Linux il y a un
serveur graphique sur lequel s'ajoute un environnement de bureau au choix de l'utilisateur. Il
en existe beaucoup et pour tous les goûts : de gros environnements tout intégrés comme
Gnome ou KDE, des plus légers comme XFCE ou LXDE, des très très légers comme blackbox ou
openbox et des rudimentaires. Contrairement à des idées reçues aujourd'hui les distributions
sont très simples à utiliser, souvent bien plus que windows pourtant jugé intuitif.
La vraie différence vient de la configuration du système, et de ses modifications. En effet
sous windows on ne peut rien faire sans la souris, tout se fait à coup de clics. La majorité des
rouages internes sont cachés. Par exemple, si on peut accéder à la base de registre on ne sait
pas vraiment où elle est stockée ni sous quel format. Si avec Processus Explorer on peut avoir
un arbre graphique des processus exécutés, il est parfois impossible de les tuer.
C'est ici que tout change : les systèmes GNU/Linux sont avant tout basés sur des outils
non graphiques, sur des commandes dans un terminal. Et même si les distributions récentes
intègrent beaucoup d'outils graphiques permettant de quasiment tout faire à coup de clics,
c'est cette flexibilité permettant d'utiliser aussi bien la souris que des lignes de commandes qui
fait toute la robustesse et la puissance du système. On peut savoir ce que fait le système, et si
quelque chose se bloque on peut savoir quoi et on peut y remédier. Les rouages ne sont pas
cachés, on a un vrai rôle à jouer.
5
Système d’exploitation
-
LICENCE GPL et logiciel libre
Stallman codifie un ensemble de droits au sein de la licence publique générale de GNU : la GPL
(comme General Public Licence), son Principe est de permettre le libre partage d'un logiciel,
tout en empêchant son intégration dans des produits non partageables.
On assistait à la mise en œuvre du « copyleft » par opposition à « copyright ».
La Free Software Foundation définit le logiciel libre comme basé sur 4 libertés :
Liberté 0 : est la liberté d'exécuter le programme — pour tous les usages
Liberté 1 : est la liberté d'étudier le fonctionnement du programme — ce qui suppose l'accès au
code source
Liberté 2 : est la liberté de redistribuer des copies — ce qui comprend la liberté de vendre des
copies ;
Liberté 3 : est la liberté d'améliorer le programme et de publier ces améliorations — ce qui
suppose, là encore, l'accès au code source.
Principales distributions de LINUX
Debian est une distribution non commerciale régie par le contrat social Debian. Elle se distingue
par le très grand nombre d'architectures soutenues et, de ce fait, par son cycle de
développement relativement long, entraînant la stabilité des versions.
Linux Red Hat Enterprise est une distribution commerciale qui a créé le gestionnaire de paquets
RPM utilisé également par d'autres distributions. Mandrake fut la première à la reprendre
intégralement.
SuSE Linux est développée aujourd'hui en deux versions dont SuSE Linux Enterprise pour les
besoins d'entreprise (avec de nombreuses certifications matérielles et logicielles).
Basé à l'origine sur Slackware, SuSE Linux puis SuSE linux Entreprise est la plus ancienne
distribution commerciale encore existante.
Slackware est une des plus anciennes distributions, encore en développement.
Arch Linux est une distribution en rolling release optimisée pour les machines i686 et x86-64 et
utilisant le système de paquetage pacman (comme package-manager).
6
Système d’exploitation
-
Système Android
Android est un système d'exploitation mobile, il gère le matériel sur lequel il
s'exécute ainsi que les logiciels qu'il permet d'exécuter.
Il est destiné à étendre sa portée avec l'émergence des solutions embarquées avec Internet des
objets.
L'un des facteurs clés accélérant l'acceptation d'Android est l'alliance Open Handset Alliance, qui
définit le matériel, les logiciels et les télécommunications par le biais de normes ouvertes. Le
contrat de licence pour Android respecte les principes de l'open source, c'est-à-dire qu'on peut à
tout moment télécharger les sources et les modifier selon les besoins.
LES SYSTEMES EMBARQUES ET LINUX
Pourquoi retrouve-t-on Linux dans l’embarqué ?
Tout d’abord pour ses qualités qu’on lui reconnaît maintenant dans l’environnement standard
du PC grand public :
•
il est libre, disponible gratuitement au niveau source : pas de royalties à reverser.
•
Il est proposé en différentes distributions pour coller au mieux à un type d’application.
•
•
•
Il est ouvert.
Il est stable et efficace.
Il offre une aide rapide en cas de problèmes par la communauté Internet des
développeurs Linux.
Linux a aussi d’autres atouts très importants pour les systèmes embarqués qui sont :
•
Portage sur des processeurs autres que x86 tels que PowerPC, ARM, MIPS, ColdFire, etc.
•
Différentes distributions sont proposées suivant le domaine : routeur IP, PDA,
téléphone, etc.
•
•
•
Taille du noyau est compatible avec les tailles des mémoires utilisées dans un système
embarqué (inférieure à 500 Ko).
En plus, Linux offre un support de chargement dynamique de modules qui permet
d’optimiser la taille du noyau.
La migration pour un spécialiste d’un système Linux à un système Linux embarqué est
rapide et simple ce qui réduit les temps de formation et les coûts.
7
-
Système d’exploitation
On a en fait entendu parler pour la première fois officiellement de Linux embarqué à une
exposition Linux World en 1999 où les sociétés Motorola, Force et Ziatech ont présenté un
système CompactPCI fonctionnant sous Linux.
En 2000 a été créé le consortium Linux embarqué (Embedded Linux Consortium) dont le but est
de centraliser et de promouvoir les développements de solutions Linux embarqué. Ce
consortium regroupe des éditeurs de distribution Linux, des éditeurs de systèmes Temps Réel
propriétaires (comme WindRiver pour VxWorks) et des fabricants de composants. Les
distributions Linux embarqué ont une part de marché grandissante face à des distributions
propriétaires.
VxWorks, pSOS, QNX, etc. sont des exemples de distributions propriétaires Temps Réel où l’on
est obligé de payer pour accéder à la plateforme de développement puis de payer des royalties
pour chaque système (ou cible) que l’on commercialise ensuite.
Linux embarqué est une adaptation du noyau Linux à un système embarqué.
Suivant les capacités du système, on retrouve tout ou quelques parties des fonctionnalités du
noyau parmi ces fonctionnalités :
•
On a moins de services disponibles.
•
Moins de mémoire requise (inférieure à 8 Mo).
•
Pas besoin de clavier ou de souris.
•
•
On boot depuis une mémoire ROM.
On a besoin de quelques logiciels spéciaux pour piloter les périphériques du système
tels qu’un écran LCD, un flash disk, un Disk On Chip, un touch screen, etc.
II.
: Applications libres
Applications pour les Postes de Travail
Parmi les principaux logiciels libres du marché pour le poste de travail on peut citer :
Firefox , OpenOffice et Thunderbird
Firefox : est le leader des navigateurs Web libres, focalisé sur le respect des standards, avec une
part du marché en progression rapide.
8
Système d’exploitation
-
OpenOffice : est une suite bureautique Open source multiplateformes et multi langues qui
offre des fonctionnalités similaires à Microsoft Office.
Thunderbird est le leader des clients de messagerie avec une gestion intégrée des fils
d’actualité RSS. C’est un complément idéal à Firefox.
La suite bureautique Open office est une excellente alternative libre à d'autres outils
bureautiques fermés. Elle est constituée de l'ensemble d'outils suivants :
Writer
: pour le Traitement de texte
Calc
: est un Tableur
Draw
: pour faire des Dessin
Impress : pour faire des Présentation
Base
: pour la gestion des Bases de données
Math
: pour créer des Formules Mathématiques
Blender est un logiciel libre de modélisation, d’animation et de rendu en 3D.
Il gère aussi le montage vidéo, la composition, la création nodale de matériaux, la création
d’applications 3D interactives ou de jeux.
ImageMagick est un logiciel libre, comprenant une bibliothèque, ainsi qu'un ensemble
d'utilitaires en ligne de commande, permettant de créer, de convertir, de modifier et d'afficher
des images dans un très grand nombre de formats. Les images peuvent être découpées, les
couleurs peuvent être modifiées, différents effets peuvent être appliqués aux images.
Applications pour les Postes de Travail
GIMP est l'acronyme de GNU Image Manipulation Program.
Il s'agit d'un logiciel libre, en licence GPL, de retouche et de création d'images numériques. GIMP
peut être utilisé pour les applications suivantes :
-
Dessin artistique
-
Manipulation d'images
-
Retouche photographiques
Graphisme web y compris les animations
Vidéo
9
Système d’exploitation
-
AUDACITY est un logiciel libre, il permet de :
-
Enregistrer en direct.
-
Editer des fichiers audio Ogg Vorbis, MP3 et WAV.
-
Convertir vos disques et cassettes sur support numérique.
Coupez, copiez, coller et assembler des extraits sonores.
Modifier la vitesse d’un enregistrement.
Applications pour les Serveurs
Parmi les principaux logiciels libres du marché pour les serveurs d’application libres, on peut
citer EasyBeans, Geronimo, Jboss, Jonas et Tomcat.
EasyBeans est un conteneur pouvant s’utiliser en standalone ou avec Tomcat, JOnAS, etc. Il
représente une alternative aux solutions JBOSS et d’Oracle.
Geronimo est le serveur d’application J2EE d’Apache. Moins mature que Jboss et JOnAS, il sert
surtout de point d’entrée à l’offre payante d’IBM Websphere.
Jboss est le leader mondial des serveurs d’application. Certifié J2EE, il représente une excellente
alternative aux serveurs d’application commerciaux.
JOnAS est un serveur d’application certifié conforme JEE complet puissant et robuste, il est une
excellente alternative aux serveurs d’applications commerciaux.
Apache Tomcat est le conteneur de servlet JEE de la fondation Apache. Il est intégré dans la
plupart des serveurs d’application JEE libres.
Serveur OpenLDAP : LDAP est l'acronyme de Lightweight Directory Access Protocol.
Dans un réseau informatique, il est utilisé pour enregistrer un grand nombre d'utilisateurs ou de
services, parfois des centaines de milliers. Il permet d'organiser hiérarchiquement les
10
Système d’exploitation
-
utilisateurs par département, par lieu géographique ou par n'importe quel autre critère. C'est
une alternative libre à Microsoft Active Directory.
MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est distribué
sous une double licence GPL et propriétaire.
Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le
grand public que par des professionnels, en concurrence avec Oracle, Informix et Microsoft
SQL Server.
Samba est un logiciel libre très populaire qui offre des services de partage de fichiers et
d'imprimantes pour les clients Microsoft Windows. De tels clients peuvent se connecter et
utiliser l'espace de fichiers d'une machine Linux comme si c'était un disque local.
DNS est le protocole qui effectue la correspondance entre noms et adresses IP, et inversement.
DHCP (Dynamic Host Configuration Protocol) est un protocole d'attribution dynamique des
adresses IP, décrit les moyens par lesquels un système peut se connecter à un réseau et obtenir
les informations nécessaires pour dialoguer sur ce réseau.
Langages de programmation du domaine du libre
C est qualifié de langage de bas niveau dans le sens où chaque instruction du langage est conçue
pour être compilée en un nombre d'instructions machine assez prévisible en termes
d'occupation mémoire et de charge de calcul. C est devenu un des langages les plus utilisés. De
nombreux langages plus modernes comme C++, Java et PHP reprennent des aspects de C.
Java est un langage de programmation moderne développé par Sun Microsystems . Une de ses
plus grandes forces est son excellente portabilité : une fois votre programme créé, il
fonctionnera automatiquement sous Windows, Mac, Linux, etc.
Perl est particulièrement puissant, capable de traiter d'énormes volumes de données en très
peu de lignes de code. Ce langage, interprété, s'inspire des structures de contrôle et
d'impression du langage C, mais aussi de langages de scripts sed, awk et shell (sh).
11
Système d’exploitation
-
Shell est une couche logicielle qui fournit l'interface utilisateur des premiers systèmes
d'exploitation de type Unix. Il est utilisé aussi par les systèmes d'exploitation Linux (tel que le
Shell GNU).
Python est un langage de programmation objet, il est placé sous une licence libre et fonctionne
sur la plupart des plates-formes informatiques. Il est conçu pour optimiser la productivité des
programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.
PHP Hypertext Preprocessor, est un langage de programmation libre, il est orienté objet,
principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP. Il a
permis de créer un grand nombre de sites web célèbres, comme Facebook, Wikipédia, etc.
OUTILS DE GESTION DES PAQUETS et DÉPÔT DE LOGICIELS
Un package est un fichier similaire à une archive contenant tous les fichiers appartenant à une
application, à une bibliothèque, ainsi que des scripts de contrôle qui sont exécutés lors de
l'installation ou de la désinstallation de l'application.
Un package doit permettre :
-
d’installer/désinstaller automatiquement une application.
Il permet aussi de connaître les packages installés et leurs dépendances.
Gestion des logiciels
On distingue les principaux formats de package RPM, et DEB .
RPM pour Redhat et DEB pour debian.
-
-
Un Paquet RPM est un Fichier d'extension .rpm permettant une installation
automatique.Il est utilisé avec les distributions: CentOS, RedHat ou Mandrake.
Un Paquet DEB est un Fichier d’extension .deb permettant une installation
automatique. Il est utilisé avec les distributions : Debian, Ubuntu, etc.
Utilisation des RPM
RPM comme RedHat Package Manager est un outil de gestion de paquets utilisé sur certaines
distributions GNU Linux.
12
Système d’exploitation
-
Une Commande RPM, pour l’exécuter , doit être suivie de ses [options] ensuite de ses
[packages].
On peut également utiliser des utilitaires de gestion graphique de ces packages tels que
Kpackage, GnoRPM, etc.
D’où peut-on télécharger ces packages ?
• A partir du CDROM de la distribution
•
•
•
A partir du Site officiel de la distribution
A partir du Site du composant à installer
A partir du site rpmfind.net
Pour télécharger un package on peut également utiliser la commande wget.
Yum (comme Yellow dog Updater Modified)
Yum est un outil sous forme de commandes qui permet de gérer les packages RPM en ligne.
C'est une sur-couche à RPM gérant les dépendances en téléchargeant ce qui est nécessaire.
Elle est similaire à APT de Debian.
Elle permet de chercher les paquets sur différents sites internet que l'on appelle des dépôts.
Un dépôt regroupe un ensemble de packages. Chaque dépôt doit être ajouté à la configuration
de Yum pour être utilisé.
Installation des paquetages Debian
La distribution Debian utilise son propre système de paquetage dont les fichiers sont
reconnaissables par l’extention .deb .
Les systèmes basés sur Debian utilisent généralement des utilitaires de gestion de paquets tels
que dpkg (comme debian package) ou
apt (comme Advanced Packaging Tool)
Pour simplifier, apt est considéré comme une surcouche sur dpkg.
dpkg (comme debian package) il a été créé par Ian Jackson en 1993, dpkg est similaire à RPM
dans la mesure où il est utilisé pour installer, supprimer et fournir des informations à propos des
paquets .deb.
Pour l'installation de paquets, dpkg dispose d'une interface graphique (Gdebi).
dpkg ne gère pas les dépendances, ainsi que les cas de conflit par contre apt-get les gère.
APT est un système complet et avancé de gestion de paquets. Il permet l’installation, la mise à
jour et la suppression des paquets.
13
Système d’exploitation
•
•
-
Il prend en charge directement le téléchargement et l'installation des dépendances,
c'est-à-dire des programmes prérequis qui sont indispensables au bon fonctionnement
du logiciel.
Plusieurs interfaces graphiques à APT sont disponibles telles que Aptitude (en mode
texte plein écran) et Synaptic (en mode graphique).
III.
: Principes des logiciels libres et gestion des
licences
Principes des logiciels libres et gestion des licences
L’expression logiciel libre, ou « copyleft » fait référence :
•
à la liberté d’exécuter le logiciel pour tous les usages.
•
à la liberté de redistribuer des copies.
•
•
à la liberté d’étudier le fonctionnement du logiciel, et de pouvoir l’adapter à ses besoins.
à la liberté d’améliorer le programme, et de publier ces améliorations.
Les licences du libre
La licence GPL de la « Free Software fondation » est la plus connue et répandue des licences du
libre. On trouve d’autres types de licence du « même genre » mais rarement compatibles entre
elles telles que :
•
Licence freebsd
•
IBM public licence
•
•
Intel open source licence
Q public licence
14
Système d’exploitation
-
La licence GPL de la « Free Software fondation » décrit les quatre libertés fondamentales que
doit respecter un logiciel libre qui sont :
•
•
•
•
la liberté d'exécution : tout le monde a le droit de lancer le programme, quel qu'en soit
le but ;
la liberté de modification : tout le monde a le droit d'étudier le programme et de le
modifier, ce qui implique un accès au code source ;
la liberté de redistribution : tout le monde a le droit de rediffuser le programme,
gratuitement ou non ;
la liberté d'amélioration : tout le monde a le droit de redistribuer une version modifiée
du programme.
Les logiciels libres
L’idée de base du logiciel libre est que le code source est disponible librement et qu’il peut être
étendu ou modifié par quiconque.
Une restriction peut néanmoins s’appliquer : quiconque distribue des produits développés à
partir de code libre doit lui-même distribuer librement son code.
Le concept de logiciel libre n’empêche nullement la vente de produits libres. Cela peut sembler à
première vue contradictoire. Mais cette liberté s’applique plus au code qu’au produit fini.
Le but d’un développeur de logiciels libres est de parvenir à un système dont le code est
librement accessible et qu’il le reste.
Pour éviter les abus, de nombreux logiciels libres sont sous licence GNU General Public License
(GPL).
La GPL s’appuie sur la Free Software Foundation (FSF).
Cette organisation, créée par Richard Stallman, a pour but de mettre à disposition du public des
logiciels libres de qualité.
Le principe de base de la GPL est que n’importe qui peut modifier le code et même vendre le
programme résultant, mais doit alors garantir aux consommateurs les mêmes droits : avoir le
code source à disposition, pouvoir le modifier et le redistribuer gratuitement.
Tous les programmes GNU doivent être distribués avec le texte de la GPL.
La GPL ne doit pas être confondue avec le domaine public, où il n’existe aucune licence. La
GPL empêche donc que quelqu’un développe à partir d’un programme GPL et vende cette
15
Système d’exploitation
-
nouvelle version sans fournir les modifications sous forme de code source. Chaque
modification profite donc à l’ensemble des utilisateurs.
« Open source » et « logiciel libre »
L'emploi des termes logiciel libre et open source de manière interchangeable est courant dans
les médias, les licences d'utilisation étant souvent les mêmes et les développeurs ne se souciant
pas toujours de la distinction.
Une vive polémique oppose les partisans de l’open source et les partisans du logiciel libre. Les
logiciels qui supportent le mouvement du logiciel libre répondent aux critères énoncés par la
Free Software Foundation dans la Free Software Definition, elle-même rédigée par Richard
Stallman.
La notion d’open source repose également sur des définitions précises.
L'utilisation des termes open source a été suggérée par Christine Peterson, du Foresight
Institute, afin de lever l'ambiguïté sémantique du mot anglais free qui signifie libre au sens de «
liberté », mais également libre au sens de « libre accès, gratuité » – et par le biais de cette
rectification sémantique, indiquer aux utilisateurs qu'un logiciel a un coût.
La principale critique issue du mouvement parent du logiciel libre est le fait que l’open source
ne communique presque exclusivement que sur une des caractéristiques techniques des
logiciels (la liberté d'accès au fonctionnement du logiciel) en occultant les motivations premières
dont elles sont issues, au risque de les perdre.
Ils accusent l’open source d'être mû par la dynamique et les ressources financières et
d'expertise de multinationales, l'opposant au logiciel libre mû par des idéaux d’ordre
philosophique et politique.
Des logiciels libres sous licence copyleft sont open source, tandis que des logiciels open
source peuvent ne pas être « libres ». En pratique, la plupart des licences de l’open source
satisfont aux critères du libre selon la Free Software Foundation, les différentes subtilités
qui les distinguent étant principalement d’ordre philosophique et commercial.
À noter que seules certaines licences dont la GNU GPL (du projet GNU de Richard Stallman)
garantissent la faculté dite de copyleft , c'est-à-dire le partage des modifications du code source
sous la même licence que la version non-modifiée.
16
Système d’exploitation
-
Ces licences permettent ainsi de protéger les libertés des utilisateurs.
C’est-à-dire le code source restera à jamais libre, car le copyleft garantit qu'on ne pourra pas
ajouter de nouvelles restrictions.
Elles assurent également une coopération loyale et pérenne envers la communauté du logiciel
libre ainsi qu'envers tous les utilisateurs.
« FOSS » et « FLOSS »
FLOSS (Free/Libre and Open Source Software) pour « logiciel libre et open source ». Ce terme
est utilisé pour parler globalement des « logiciels à code source ouvert et licences libres ». FOSS
(Free and Open Source Software) qui signifie « logiciel libre et open source ». Bien qu'étant
censée signifier la même chose que « FLOSS », cette expression est moins claire dans la mesure
où elle omet de préciser que free se rapporte à la liberté. La notion de logiciel libre y est moins
visible.
Par ailleurs, l'expression « logiciel libre et open source » est trompeuse, car elle suggère un point
de vue unique au lieu de se référer à deux points de vue différents.
IV.
: Compétences en TIC et travail sous Linux
Environnements graphiques
Tous les environnements graphiques ont les mêmes buts qui consistent :
À avoir plus d'informations disponibles sur l'écran.
À avoir une interface Homme/Machine plus intuitive et plus facile d'accès.
Ce qui va susciter une utilisation importante de la CPU et de la mémoire
L’environnements graphique de Linux s’appelle Système X-Window
•
•
C’est l’interface graphique standard des systèmes UNIX
Il repose sur un « serveur X »
17
Système d’exploitation
•
•
-
Il utilise un gestionnaire de fenêtres, plusieurs sont disponibles telles que KDE2, Gnome,
Window Maker, Enlightenment, etc.
L’environnements graphique de Linux s’appelle aussi : XFree86
Environnement de Bureau Linux
Dans un environnement de bureau Linux, on trouve :
-
-
Navigateur web, conçu pour consulter et afficher le World Wide Web (Exemple: Mozilla
Firefox).
Logiciels de bureautiques, tels que les Logiciels de présentation (Exemple : LibreOffice
Impress de la suite LibreOffice).
Logiciel de manipulation de fichier, il opère avec un ou plusieurs système de fichiers. Ce
type de logiciel agit sur un fichier, un groupe de fichiers ou directement sur l'ensemble
du système de fichiers (Exemple : Nautilus).
Un pare-feu qui est un logiciel et/ou un matériel, permettant de faire respecter la
politique de sécurité du réseau, celle-ci définissant quels sont les types de
communications autorisés sur un réseau informatique (Exemple : Linux Netfilter ).
Un gestionnaire de mots de passe qui est un type de logiciel qui permet à un utilisateur
de centraliser l'ensemble de ses identifiants et mots de passe dans
une base de données (Les comptes utilisateurs Linux sont stockés dans le
fichier /etc/passwd).
Pour travailler sur une machine Linux, il faut d’abord
1) Démarrer la machine
2) Choisir le système Linux
3) Taper son Login et son password
Format général des commandes LINUX
Le format général des commandes LINUX, appelés aussi commandes Shell, est comme suit : On
tape d’abord la commande, suivie de ses options, puis ses arguments.
Par exemple :
ls –l *.txt
Cette commande permet de lister tous les fichiers au format long portant l’extension .txt.
Certaines commandes ne nécessitent pas d’option ou d’argument.
18
Système d’exploitation
-
Utilisation industrielle de Linux
Le cœur de cible des distributions Linux est d'abord le serveur (45 à 60 % du marché) puis le
poste de travail (5 % du marché) mais pas les systèmes industriels.
Linux n'a jamais été prévu pour être un système industriel, temps-réel ou embarqué !
Un bon système Linux industriel doit pouvoir :
 réduire la durée de boot.

Améliorer la qualité du temps réel cad les interactions avec les périphériques.

Accélérer le fonctionnement global du matériel afin qu’il soit plus adapté aux demandes
fonctionnelles.

Renforcer la robustesse du code.
Les Consoles
Une console qu'est ce que c'est ?
C'est un écran noir, qui est en attente d'une commande shell.
Pour effectuer des actions en mode console, il faut exécuter des commandes.
Les consoles sont émulées par des terminaux afin d'être accessibles en mode graphique.
Différence entre terminal et console
En réalité, un terminal n'est qu'une émulation d'une console.
Il y a sur Ubuntu 6 consoles disponibles (tty1, tty2, etc.), elles sont accessibles via Ctrl+Alt+F1,
Ctrl+Alt+F2 d’une manière générale Ctrl+Alt+Fx où x est le numéro de la console à laquelle vous
voulez vous rattacher.
À partir de "F7" ou parfois "F1" il ne s'agit plus de console, mais de sessions Xorg (c'est Linux en
mode graphique).
Cloud Computing et Linux
Du point de vue économique, le cloud computing est essentiellement une offre commerciale
d'abonnement économique à des services externes.
Il existe trois catégories de services qui peuvent être offerts en cloud
computing : IaaS, PaaS et SaaS.
IaaS ( comme infrastructure as a service)
19
Système d’exploitation
-
En français, infrastructure en tant que service.
Il consiste à offrir un accès à un parc informatique virtualisé. Des machines virtuelles sur
lesquelles le consommateur peut installer un système d'exploitation et des applications.
Le consommateur est ainsi dispensé de l'achat de matériel informatique.
Ce service s'apparente aux services d'hébergement classiques des centre de traitement de
données, et la tendance est en faveur de services de plus haut niveau, qui font davantage
abstraction de détails techniques.
PaaS (platform as a service)
En français, plate-forme en tant que service.
Dans ce type de service, situé juste au-dessus du précédent, le système d'exploitation et les
outils d'infrastructure sont sous la responsabilité du fournisseur.
Le consommateur a le contrôle des applications et peut ajouter ses propres outils.
SaaS (software as a service)
En français, logiciel en tant que service.
Dans ce type de service, des applications sont mises à la disposition des consommateurs. Les
applications peuvent être manipulées à l'aide d'un navigateur web ou installées de façon
locative sur un PC, et le consommateur n'a pas à se soucier d'effectuer des mises à jour,
d'ajouter des patches de sécurité et d'assurer la disponibilité du service.
Gmail est un exemple de tel service.
D'autres exemples de logiciels mis à disposition en Saas sont : Google
Apps, Office Online ou LotusLive (d’IBM).
OpenNebula à la différence des solutions de Cloud Computing classiques, fournit une boîte à
outils complète permettant de gérer de façon centralisée une infrastructure virtuelle
hétérogène.
OpenStack, développé initialement par Rackspace et la NASA, propose un regroupement de
logiciel open source sous licence Apache pour mettre en place un IaaS publique ou privée.
Virtualisation
20
Système d’exploitation
-
La virtualisation est un mécanisme informatique qui consiste à faire fonctionner plusieurs
systèmes, serveurs ou applications, sur un même serveur physique. La virtualisation est un
composant technique clé dans le Cloud Computing.
Les Ordinateurs Virtuels sont appelés Serveur Privé Virtuel ou encore Environnement Virtuel.
Pour construire un environnement virtuel complet, il faut également virtualiser à la fois le
Stockage et le Réseau.
Pour les systèmes de Gestion de Stockage Distribué, on peut citer par exemple les outils Open
Source suivants : GlusterFS et ceph.
Pour la Virtualisation des Switch on peut utiliser Openvswitch.
21
Téléchargement