Logiciels libres Gilles Lamiral Samedi 2 janvier 2002 Rennes Maurepas Les logiciels libres fournissent un environnement de travail répondant aux exigences des entreprises, des administrations et des citoyens. \resizebox*{2cm}{3cm}{\includegraphics{baby-gnu.ps}} La liberté n'a pas de prix.\protect\url{} Tour d'horizon Ordinateur * Unité Centrale : carte mère, processeur, mémoire, disques, cartes vidéo, audio etc. * Périphériques : clavier, écran, sourie, imprimante, modem, graveur etc. * Système d'exploitation : noyau + logiciels système. * Logiciels applicatifs : traitement de texte, tableur, jeux etc. Logiciel * fichier source : compréhensible par un programmeur. * fichier binaire : compréhensible par une machine. * Programmeur + fichier source + compilateur + ordinateur => fichier binaire (exécutable) Logiciels propriétaires Les logiciels propriétaires sont distribués avec une licence très restrictive : * Vous ne devez pas préter le logiciel * Si le logiciel ne fonctionne plus, vous êtes à la merci de celui qui vous l'a vendu (il vous ignore en général) * Vous ne verrez jamais le code source * Vous payez pour seulement avoir le droit d'utiliser le programme * Vous payez pour chaque ordinateur où il est installé * Vous payez chaque année ou à chaque nouvelle version * Vous essuyez des problèmes de gestion de licence Logiciels libres Un logiciel est libre s'il peut être : * Utilisé, pour un usage quelconque, par quiconque, n'importe où, n'importe quand. * Étudié et adapté à ses propres besoins, grâce à la disponibilité du code source. * Diffusé sous forme de binaire ou de code source avec ou sans modifications. Remarques : * Libre ne signifie pas ``gratuit''. La gratuité est une conséquence des libertés. * Libre ne signifie pas ``domaine public''. La liberté est soumise à une licence. * Libre ne signifie pas ``freeware'' ni ``shareware''. Les sources sont disponibles. * Libre ne signifie pas ``pirate''. La copie est légale et vivement encouragée. * Contrairement aux bonbons, quand on partage un logiciel, on ne le perd pas. Historique 84-94 : Fondations * 1984 : démarrage du projet GNU par Richard Matthew Stallman (rms). www.fsf.org * 1985: premiers Emacs utilisables, création de la FSF, compilateur gcc 1.0 (juin) * 1990 : système GNU presque terminé * 1991 : GPL v2 (juin), Linux 0.01 par Linus Torvalds (sept), début 386BSD * 1992: gcc 2.0 (mars), Linux sous GPL, démarrage de XFree86 (avril) * 1994: Linux1.0 (mars, 500 000 utilisateurs) Historique 95-99 : Montée en charge * 1995 : création RedHat (janvier), Linux 1.2 (1 Million d'utilisateurs) * 1996 : Linux 2.0 (2 Millions d'utilisateurs) * 1997 : démarrage Gnome, article Cathédrale et Bazar de Éric S. Raymond (mai) * 1998 : Linux (10 millions d'utilisateurs), Gimp 1.0 * 1999 : Linux 2.2, Samba 2.0, GNOME 1.0, Zope 2.0 * 2000 : XFree86 4.0, FreeBSD 4.0, Open CASCADE 3.0, PHP 4.0, PostgreSQL 7.0, DemoLinux 2.0, Qt sous GPL, KDE 2.0, OpenBSD 2.8, NetBSD 1.5 * 2001 : Linux 2.4 (18 millions d'utilisateurs), Nautilus 1.0, GNOME 1.4, Samba 2.2, GCC 3.0, RedHat 7.1 = 1milliard de $US, Zope 2.4, KDE 2.2, Qt 3.0, Debian 2.2 = 1,9 milliard de $US Philosophie * Liberté : de faire des copies, des améliorations, de les diffuser * Égalité : les droits sont les mêmes pour tous * Fraternité : coopération de tous pour définir, documenter, tester et coder de nouveaux programmes Licences Les logiciels libres sont accompagnés d'une licence : * GPL : GNU General Public License, 65 % des logiciels libres * LGPL : GNU Lesser General Public License, 5 % * BSD : Berkeley, 5 % (Bind) * Artistic License, 2,5 % (Perl) * \ldots{} Avantages * Fonctionnalités et développements dirigés par les utilisateurs * Fiabilité par l'utilisation d'outils de contrôle de sources, de suivi de bugs, de tests de non-régression * Sécurité : pas de virus, code source visible par tous * Pérennité tant qu'il y aura des utilisateurs-développeurs * Respect rigoureux des standards (IETF, W3C, OMG, ISO, ANSI, RFC, etc.) * Architectures modulaires, extensibles. Le meilleur code est conservé. * Performance sur du petit comme du gros matériel * Documentation développeur, administrateur, utilisateur exhaustive * Support par les utilisateurs, les développeurs et des sociétés commerciales * Gestion de licences nulle. Dépendance Pas de logiciels libres <=> Pas d'internet * Bind : 99 % des serveurs de noms * Sendmail ou Postfix: 80 % des serveurs de messagerie * Apache : 60 % des serveurs web * Linux : 30 % des machines (50 % MS windows) Apache Novembre 2001 \includegraphics{overallc-2001-10.ps} Origine : NCSA httpd 1.3 (Rob McCool), puis ``a patchy server'' Abondance Combien de logiciels libres ? +-----------------------------+---------+------------------+-------------------+ | Site | Entrées | Date | URL | +-----------------------------+---------+------------------+-------------------+ | Freshmeat | 17 703 | 16 Décembre 2001 | freshmeat.net | +-----------------------------+---------+------------------+-------------------+ | Linux Software Encyclopedia | 5 808 | 8 Mars 2001 | stommel.tamu.edu | +-----------------------------+---------+------------------+-------------------+ | Linux Software Map (lsm) | 2 110 | 18 Octobre 2001 | ftp.execpc.com | +-----------------------------+---------+------------------+-------------------+ | Linux Apps | 3 865 | 19 Octobre 2001 | www.linuxapps.com | +-----------------------------+---------+------------------+-------------------+ Noyau Linux : quelques données * Linux n'est que le noyau. Le terme plus juste est X11/BSD/GNU/Linux * Environ 3 700 000 lignes de codes pour les noyaux 2.4.x * 405 contributeurs notoires (2.4.x) * Version stable au 26 novembre 2001 : 2.4.16 Version de développement au 23 novembre 2001 : 2.5.0 * http : kernel.org find linux-2.4.12/ -name '*.[chS]' |xargs wc -l |egrep 'total$' | awk '{total += $1}; END {print "total is", total}' cat linux-2.4.12/CREDITS |egrep '^N:' |sort |wc -l Noyau Linux : caractéristiques * Multi-taches vrai : exécute plusieurs programmes en pseudo-parallélisme * Multi-utilisateurs : plusieurs utilisateurs actifs en même temps sur la même machine * Multi-plateformes * Fonctionne intégralement en mode protégé sur i386 * Librairies partagées * Gestion mémoire propre, protection entre les processus * Mémoire physique de 64 Go, virtuelle (swap) > 2 To * Fonctionne avec peu de ressources (4 Mo de RAM, 20 Mo DD) * Système de fichiers ext2 toujours défragmenté * Systèmes de fichiers : ext2, OS/2, AIX, Novell, BSD, HFS, iso9660, Joliet etc. Noyau Linux : plateformes ``LINUX is tied fairly closely to the 80x86. Not the way to go.'' - LINUX is obsolete, Andy Tanenbaum, 29 January 92. ``Linux is not portable (uses 386 task switching etc.), and it probably never will support any thing other than AT-hard disk, as that's all I have.'' - Linus Torvalds, August 25, 1991. Plateformes standards * Intel (i386), Compaq Alpha AXP, Sparc 32/64, UltraSparc, Motorola 68000, PowerPC (ppc), PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64 and DEC VAX. Autres plateformes * AMD x86-64, Intel 8086/80286, NEC PC-9800, MCA, IA64 (fév 2000), Next, HP9000, PalmPilot, Psion, Sun4c/4m/4d, VAX 3100/2000, R2000/3000, VME, Amiga, Atari, vic20, Z80 etc. GNU/Linux : un Unix * Linux est un nom déposé appartenant à Linus Torvalds * GNU signifie Gnu is Not Unix * GNU/Linux est un clone Unix, non officiel * Conformité POSIX quasi complète Autres systèmes d'exploitation libres Les trois Unix/BSD libres dérivés de BSD4.4, trois orientations : * OpenBSD : La sécurité, aucun problème de sécurité dans l'installation par défaut, depuis 4 ans. * NetBSD : La portabilité, 44 plateformes. * FreeBSD : Multitude d'applications (plus de 6 000), robustesse sur i386, DEC alpha, PC98. DOS libre : FreeDos Systèmes libres : protocoles réseaux * TCP, IPv4, IPv6 * IPX (Novell) * DDP (Appletalk) * PPP, SLIP (série), PLIP (parallèle), RNIS, DSL * X.25 (HAM/packet radio), Netrom, ATM * \ldots{} Systèmes libres : protocoles applicatifs * Courrier : SMTP, POP, IMAP * Discussions : NNTP, IRC * Accès distant : Telnet, SSH, VNC, X Window * Web : HTTP, FTP * Bases de données : SQL, LDAP, DNS * Partage : NFS, NetBios, NIS * \ldots{} Graphisme : X Window * XFree86 (fait partie du consortium X/open) * Conformité au standard X/open * Indépendant de la plateforme. Architecture client/serveur (affichage d'une application n'importe où sur le réseau) * Plusieurs sessions graphiques complétement indépendantes sur la même machine * Plusieurs dizaines de gestionnaires de fenêtres disponibles (KDE, Gnome, AfterStep etc.), des milliers d'applications. Langages et environements de programmation * C, C++, Java, Perl, TclTk, PHP, ADA, Pascal, Basic, Fortran, Smalltalk, Lisp, Prolog etc. Tous les langages informatiques majeurs sont supportés. * Possibilité de développer pour Unix, Windows et MacOS avec les mêmes sources Coopération avec MS Windows * Samba : serveur de fichier et d'impression, controleur de domaine. * DOSEMU : exécution de binaires MS-DOS * WINE : implémentation de l'API Win32, exécution de binaires Windows ou Linux * CygWin : implémentation POSIX sur Windows. * Travail transparent sur les partitions DOS, FAT, VFAT, NTFS (lecture) Samba Serveur de noms, de fichiers et d'imprimantes pour postes Windows 3.1/95/98/NT/2000 OS/2 (remplace intégralement un serveur NT) * Naissance : 1991 * Auteur : Andrew Tridgell * Licence : GPL * Protocoles : SMB, NetBios, NetBUI, CIFS * RFC : 1001, 1002 (NetBIOS sur TCP/UDP en 1987) * Version 2.2.2 en octobre 2001 (3.0a au 31/11/2001) * Plus rapide que windows 2000 fr.samba.org/samba/samba.html www.linux-france.org/article/these/unix-vs-nt/ Bureautique Logiciels libres * KOffice, www.koffice.org * OpenOffice, www.openoffice.org * TeX, www.ctan.org Logiciels propriétaires * StarOffice (gratuit), www.stardivision.com * ApplixWare, www.vistasource.com * Corel WordPerfect, linux.corel.com Magazines Dans les kiosques : * Linux France Magazine (CD), * Linux Loader (CD) * Login (CD), login.posse-press.com/ Dans les greniers : * Linux Pratique (CD), www.linux-pratique.com/ * Planète Linux (CD), www.dppresse.com/pl/ * 100% Linux (CD) (site mort) * Maximum Linux (CD) * Linux Games * Linux Distrib * Linux Sélection Comment commencer ? * Se procurer une distribution sur cédérom * Prendre une machine standard de type PC/i386 * Insérer le cédérom dans le le cteur CD * Amorcer le système sur le CD (configuration BIOS) * Suivre les instructions, redémarrer * Découvrir l'environnement, se documenter Pour les frileux : www.demolinux.org Distributions * Mandrake, www.linux-mandrake.com/fr/ * RedHat, www.redhat.com/ * Debian, www.debian.org/index.fr.html * Slackware, www.slackware.com/ * Suse, www.suse.com/ http : www.linux-france.org/article/choix-distri/ http : ikarios.com/ Support Utilisateurs * Aide personnelle : www.linux-france.org/article/proselux/ * Groupe de discussions : * www.linux-france.org/article/lbiz-fr/ Associations * APRIL www.april.org/ * AFUL www.aful.org/ * De nombreux LUG (Linux User Groups) Sur Rennes : GULLIVER gulliver.eu.org/ Sociétés commerciales * Une vingtaine référencées en France (Alcove, Atrid, Easter Eggs, VA Linux etc.) * IBM, SCO, COREL Documentation Sites * http://www.linuxdoc.org/ * http://lea-linux.org/ * http://www.linux-france.org/ * http://www.linux-center.org/fr/ Livres * http://www.oreilly.fr/ Sources * * * * * * * * * * * * * * * *