Introduction à Unix, GNU, Linux, Debian etc.

Nicolas Dandrimont

olasd@crans.org

12 novembre 2013

Table of Contents

Quelques mots sur moi

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

ENS Cachan promo 2007 (A'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

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 ?

J'emprunte subtilement les slides de zack qui sont tout à fait à propos :)