Introduction à Unix, GNU, Linux, Debian etc.

Nicolas Dandrimont

olasd@crans.org

14 octobre 2014

Table of Contents

Quelques mots sur moi

Enthousiaste de logiciels libres depuis le début des années 2000

8A'2

Nounou depuis décembre 2007

RTC du Cr@ns 2008-2011

Contributeur Debian 2009-

Développeur Debian 2013-

Terminologie

Matériel

Pilote

Noyau de système d'exploitation

Bibliothèques et outils de base du système d'exploitation

Système d'exploitation

Applications

Au commencement…

Source 1 Source 2 Source 3

richiethompson.jpg

Dennis Richie & Ken Thompson

Des hackers au sens noble

= des bidouilleurs

Anciens employés sur le projet Multics ("Multiplexed Information and Computing Service"), à Cambridge (MIT, AT&T Bell Labs, GE)

Débauchés par les Bell Labs pour travailler sur un projet aux concepts semblables, mais moins complexe : Unix

Génèse d'Unix

Thompson développe des simulateurs pour les primitives d'Unix sur le système Multics auquel il a toujours accès. Il développe aussi un jeu, "Space Travel", mais il a besoin d'une machine plus efficace et moins chère pour le faire tourner.

Il trouve une station de travail sous-utilisée aux Bell Labs, un PDP-7.

pdp7.jpg

Ce PDP-7 est utilisé par l'équipe qu'il dirige avec Richie pour développer, en 1969, les bases d'Unix.

Les bases d'Unix

  • Système de fichiers hiérarchique
  • Concept de processus concurrents
  • "Device files" (périphériques vus comme des fichiers)
  • Un interpréteur de commandes
  • Une série d'utilitaires de base

Un essaimage rapide

Pas de financement spécifique pour le projet jusqu'en 1972. Réécrit dans le langage C (inventé par Richie et Kernighan) pour la portabilité, le système se diffuse dans les universités et les entreprises qui en ont connaissance et en font la demande.

AT&T ne pouvant pas faire commerce dans l'informatique suite à une ordonnance de 1956, la licence sous laquelle ils fournissaient Unix incluait l'accès au code source C, et les parties dépendantes des machines (des PDP-11 à l'époque) écrites en assembleur. Le système se diffuse alors rapidement.

Fast forward au début des années 1983 : le gouvernement américain démantèle AT&T/Bell Labs suite à un procès anti-trust. L'ordonnance de 1956 est annulée, et AT&T en profite pour (tenter de) commercialiser System V.

Le projet GNU

Cette commercialisation d'Unix par AT&T pousse des hackers à la création du projet GNU

Petit récapitulatif historique : le logiciel libre

  • Premiers programmes informatiques : livrés avec leur code source
  • Grace Hopper, UNIVAC, 195x

La vision d'un homme pour l'informatique

Richard Stallman annonce le projet GNU en 1983, avec son message sur USENET "Free UNIX!".

rms.jpg

Richard Stallman présente sa vision de la diffusion des logiciels : "Je considère comme une règle d'or que si j'apprécie un programme je doive le partager avec d'autres personnes qui l'apprécient. Je ne peux pas en bonne conscience signer un accord de non-divulgation ni un accord de licence de logiciel."

Objectifs du projet GNU

La création d'un système d'exploitation complet, "GNU's not Unix" :

  • Libre
  • Un noyau (GNU Mach, 1997)
  • Les utilitaires nécessaires à la programmation en C :
    • Éditeur de texte (GNU Emacs, prédate GNU)
    • Shell (GNU Bash, 1989)
    • Compilateur C (GNU C Compiler 1987, GNU Compiler Collection par la suite), éditeur de liens (GNU ld), assembleur (gas)
  • Puis des centaines d'autres choses (GNU Binutils , GNU Make, …)
  • Compatible avec UNIX autant que possible

Un projet utopique

De nombreux utilitaires ont été développés par rms et d'autres bénévoles du projet GNU.

Cependant, beaucoup de ces utilitaires étaient utilisés sur des systèmes UNIX commerciaux.

Pas de noyau utilisable avant longtemps.

Une approche philosophique et politique des logiciels libres

  • Manifeste GNU (1983)
  • Free software foundation (1985)
  • Définition du logiciel libre (1986)

    Un programme est un logiciel libre si vous, en tant qu'utilisateur de ce programme, avez les quatre libertés essentielles :

    • la liberté d'exécuter le programme, pour tous les usages (liberté 0)
    • la liberté d'étudier le fonctionnement du programme, et de le modifier pour qu'il effectue vos tâches informatiques comme vous le souhaitez (liberté 1)
    • la liberté de redistribuer des copies, donc d'aider votre voisin (liberté 2)
    • la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3)
  • Licence publique GNU (v1 1989, v2 1991, v3 2007 - clauses anti-brevets, anti-"tivoization")

Dans les années 2000, un pivot vers la défense des libertés informatiques

  • Actions contre les entreprises violant les licences de la FSF
  • Sensibilisation aux problématiques des licences informatiques (cours universitaires)
  • Actions contre les DRM

Le noyau Linux

Le projet GNU a longtemps été dépourvu d'un noyau : 14 ans se sont écoulés entre son annonce, et la première publication d'un noyau. Pourquoi ?

(just a hobby, won't be big and professional like gnu)

Durant l'été 1991, Linus Torvalds, étudiant à l'université d'Helsinki, bidouille sur sa machine en assembleur 80386 les toutes bases d'un noyau. En août, il poste le message suivant sur USENET

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready.

Le manque d'un noyau pour le système GNU, et les problèmes légaux entourant la redistribution des systèmes BSD, font que le projet de Torvalds attire vite des développeurs extérieurs.

En janvier 1992, Torvalds publie son code source sous licence GPL.

Ce tournant dans la licence a permis à Linux de supplanter le noyau du projet GNU.

Un modèle de développement novateur

Le noyau Linux est un des plus gros projets de développement collaboratif en termes de:

  • Nombre de contributeurs
  • Nombre de lignes de code
  • Nombre de changements enregistrés par jour

Le modèle de développement du noyau Linux est qualifié de "Bazar" par Eric S. Raymond dans son essai, The Cathedral and the Bazaar.

Et Debian dans tout ça ?

Qu'est-ce que Debian ?

Le logiciel libre en une diapo

Permettre aux utilisateurs d'accéder au code, de le modifier, de le redistribuer.

Des dizaines de "success stories": Apache, Android, Firefox, Zimbra, …

Des débuts en 1983, alors que les logiciels privateurs commençaient à poindre.

Les fondations de beaucoup de produits et services.

Modèle de développement ouvert (suivi des bugs, listes de diffusion, versions alpha/bêta)

Mais qu'est-ce que Debian, vraiment ?

Un projet technique
  • Construire une distribution avec succès
  • Avoir un impact réel sur le monde
dc7hacklab.jpg
Un projet philosophique et politique
  • Promouvoir et défendre le Logiciel Libre
  • Avec un impact sur des millions d'utilisateurs
dc9mao.jpg
Une expérience sociale
  • Des milliers de contributeurs bénévoles, tout autour du monde
debconf10.jpg

Debian au cœur de l'écosystème du Logiciel Libre

  • 1983 — GNU
  • 1991 — Linux
  • 1993 — Slackware, Debian, Red Hat
  • 1998 — OSI, fondée par un ancien DPL, définition basée sur les DFSG
  • 2004 — Ubuntu
Un écosystème
ecosystem0.svg
ecosystem1.svg
ecosystem2.svg
ecosystem3.svg
ecosystem4.svg
Une distribution de logiciels libres
  • Une intégration de logiciels amont (évite les versions incompatibles)
  • Une infrastructure de distribution de logiciels vers des utilisateurs (miroirs)
  • Une interface unifiée d'installation, de mise à jour et de suppression de logiciels
  • Une couche d'aide et de support intermédiaire unifiée entre les projets amont et les utilisateurs
Une grande réussite
  • 21093 paquets source, 45007 paquets binaires (le 26 juin)
  • Une douzaine de ports (sur différentes architectures, mais aussi différents noyaux, Linux, FreeBSD et Hurd)
  • Logiciels libres à 100% (dont l'infrastructure de la distribution)
  • Connu pour sa stabilité, sa robustesse, l'expertise de ses mainteneurs de paquets
  • Publications de versions stables tous les deux ans (+/- quelques mois)
release cycle freeze
4.0 "etch" 22 mois 17 semaines
5.0 "lenny" 22 mois 28 semaines
6.0 "squeeze" 24 mois 26 semaines
7.0 "wheezy" 28 mois 44 semaines
Un véritable hub pour le Logiciel Libre
ecosystem4.svg
derivs1.svg
derivs2.svg
derivs3.svg
Une dérivée un peu spéciale… Ubuntu

Fondée par un Développeur Debian milliardaire (Mark Shuttleworth) en 2004.

shuttleworth.png

Quelques millions d'utilisateurs.

Quelques dizaines de dérivées elle-même.

ubuntu.svg

Par qui et comment est fait Debian ?

  • Des milliers de volontaires (dont environ mille Développeurs Debian)
  • Une organisation en équipes
    Équipes d'empaquetage thématiques
    (Python, GNOME, logiciels scientifiques, …)
    Équipes fonctionnelles
    équipe de la publication, installateur, Debian Live, …
    Équipes d'infrastructure
    administration système, archive de paquets, démons de construction, miroirs, assurance qualité, …
    Support des utilisateurs et communication
    presse, documentation, marque déposée, comptabilité, évènements, vidéos, …
  • Des experts des paquets qu'ils maintiennent

Une organisation indépendante et distribuée

developers.map.jpeg
  • Des Développeurs venant de 63 pays (US: 18%, DE: 17%, FR: 10%)
  • Une infrastructure distribuée (ubc.ca, bytemark.co.uk, grnet.gr, …)
  • Une ribambelle de services faiblement interdépendants : facile d'en fournir un nouveau
  • Des biens gérés par plusieurs "Organisations de Confiance" (Trusted Organizations)
  • Aucune entreprise n'a une influence majeure sur Debian

Fonctionnement interne

Le contrat social Debian (1997)

  • 100% de Logiciel Libre
  • Rendre à la communauté du Logiciel Libre ce qu'elle nous apporte
  • Un développement ouvert — Ne pas cacher les problèmes
  • Les priorités du projet : ses utilisateurs et le Logiciel Libre

Constitution du projet Debian (1998)

  • Un équilibre subtil entre démocratie et "do-ocratie"
  • Structure totalement plate
  • La réputation vient du travail fait
  • Pas de dictateur bienveillant, pas d'oligarchie
  • Pas de décisions imposées
  • Quelques structures spécifiques : Comité Technique, Secrétaire, Leader du Projet

Instances de gouvernance du projet

  • Leader du Projet (DPL): "Facilitateur" du projet: rôle de médiation, d'animation, et de surveillance de la santé du projet
  • Secrétaire du Projet (Debian Secretary): interprête principal de la Constitution du projet
  • Comité Technique (tech-ctte): Instance de décision en cas de dispute technique entre développeurs

Merci de votre attention !

Me contacter : olasd@crans.org

Il fait faim non ?