informatique libre (2017-2018)

structure

header

lettre mu, logo du site manthano.fr

μανθάνω

nav

aside

footer

Introduction [2017-12-15 ven.]

Intitulé

L'informatique libre : un point de vue sur l'histoire, la théorie et l'utilisation de l'informatique.
Ce cours abordera la théorie de l'informatique et son histoire, en insistant sur le rôle et l'importance de l'informatique libre.
Il ne portera pas sur l'utilisation pratique des logiciels : il se veut complémentaire des cours et activités informatiques actuellement proposés dans le cadre de l'utl-tb. Il ne nécessite aucune connaissance préalable.

linux-gnu-debian-ubuntu.png

Pourquoi faut il parler d'informatique ?

Dans la société actuelle l'informatique est devenue omniprésente, de même que les médias audiovisuels sont devenus omniprésents dans les années soixante dix. Or, de la même manière que l'éducation à l'image n'a jamais été faite, l'apprentissage de l'outil informatique est complètement négligé. La conséquence en ce qui concerne les images a été de nous soumettre à des manipulations de l'information par ces médias. Nous risquons d'aggraver cette situation si nous nous contentons de subir cette "révolution" du numérique.

Description

Histoire et contexte

L'étude de la naissance de l'informatique, de son évolution et de son impact sur la sociéte permettra de mettre en évidence les concepts sous-jacents à son élaboration et de montrer la nécessité d'en préserver la liberté d'utilisation.
Des liens pourront être faits avec le cours de culture mathématique que je propose en parallèle.

Exemples

Des exemples d'applications utilisables sur les systèmes linux :

  • logiciels classiques (bureautique, multimedia, ...),
  • gestion d'une base de données,
  • commande robotique,
  • protection des données personnelles,
  • création d'un site web,
  • ... (les exemples présentés dépendront de la demande des participants).

Dans cette partie, conformément à ce qui a été dit au début, l'accent sera mis sur la compréhension générale des grandes classes de logiciels et non sur l'apprentissage d'un logiciel en particulier.

Pourquoi une informatique libre ?

  • répondre aux besoins des utilisateurs plutôt qu'aux contraintes du marché
  • permettre aux utilisateurs de s'approprier les outils :
    • l'esprit "open source" : développer la connaissance des outils, partager ses connaissances
    • comprendre ce que l'on fait, comprendre la logique des systèmes et des programmes
  • permettre aux utilisateurs de disposer librement de ces outils : l'esprit "free"
  • contrôler leur action : éviter les "back-doors" par exemple
  • résister à la main-mise des grandes firmes sur les logiciels, le matériel, l'internet, les données et leur traitement
cc-by-sa.png

Le projet de contenu pour ces cours

Ordinateurs et logiciels

Principalement répondre à vos attentes, donc j'attends vos propositions !
Ce dont je peux parler - ou pas - selon ce que vous souhaitez :

  • une histoire de l'informatique permettant de comprendre son évolution, l'apparition des différents outils matériels et logiciels qui la composent.
  • quelques notions sur la structure et le fonctionnement d'un ordinateur et de ses périphériques
  • une initiation au système linux : qu'est-ce que linux, son histoire, les différentes "distributions", comment l'installer, comment l'utiliser sans crainte et facilement, pourquoi l'utiliser.

Algorithmes et programmation

  • une explication des algorithmes, qui serait en quelque sorte un prolongement de la conférence que j'ai faite le 7 décembre.
  • une initiation à la programmation vue d'un point de vue général, cest à dire insistant sur les caractéristiques communes aux différents langages de programmation et sur leurs différences ; avec des exemples concrets d'applications que nous réaliserions ensemble (dans des cas simples)
  • une initiation à la construction d'un site web, ce qui comprendrait une initiations aux "langages du web" : html5, css, javascript, php

Quelques applications

  • J'ai invité fin janvier un "intervenant extérieur" à venir présenter des outils technologiques (machine à graver, logiciel de traitement de la musique) qu'il a construits en utilisant linux.
  • Contrairement à ce que je fais dans le cours sur les mathématiques où je vous propose des animations et documents que j'ai réalisés au préalable, ici j'essaierai quelquefois de faire en sorte de vous montrer "en direct" comment sont construits certains documents que j'utilise.

Réfléchir aux impacts sur la société

  • Le rôle de l'informatique dans les sciences
  • Un outil qui nous aide à travailler ?
  • Un outil qui nous libère ?
  • Comment se ré-approprier tout ça !
  • Protéger ses données
  • ...

Brève introduction à Linux

  • Pourquoi Gnu/Linux ?
  • Linux est-il difficile à utiliser ?

Le principes théoriques fondateurs de l'informatique [2018-01-19 ven.]

Les précurseurs

La machine d'Anticythère

machine anticythère.jpg
Elle permet de calculer des positions astronomiques.
Trouvée en 1901 dans l'épave d'une galère romaine datée d'avant 87 av. J.-C., près de l'île grecque d'Anticythère, entre Cythère et la Crète.
On situe la date de fabrication du mécanisme entre 100 et 150 av. J.-C.
Selon l'estimation des chercheurs, le calendrier du mécanisme aurait été connu dès 205 av. J.-C., sept ans seulement après la mort d'Archimède.

La Pascaline

pascaline.jpg
Pascal (1642) : première "machine à calculer"
Elle permettait d’additionner et de soustraire deux nombres d'une façon directe et de faire des multiplications et des divisions par répétitions.

La machine analytique

machine de Babbage.jpg
Tentative de création d'une "machine analytique" à cartes perforées par Charles Babbage (vers 1850)
et premier programme informatique pour la machine de Babbage par Ada Lovelace.

La naissance théorique de l'informatique

Turing, Church, Shannon, Von Neumann

La machine (théorique) de Turing (1936)

machine de Turing simple

Elle permet de calculer en déplaçant une bande de papier contenant les données à traiter devant une tête de lecture / écriture munie du programme à exécuter.
simulation machine de Turing

Une réalisation en Lego de la machine de Turing

20000 à 30000 pièces et 50 mètres de tuyaux assemblés entre septembre 2011 et mars 2012
Ce calculateur fonctionne mais les étudiants ne veulent pas s’arrêter là. Après la présentation publique, ils envisagent l’étape suivante : une machine de Turing universelle. De quoi ne pas cantonner cette belle machine à l’inversion de trois bits. "Dans quelques mois cette machine sera capable de réaliser les mêmes calculs qu’un ordinateur moderne, ni plus, ni moins, mais pour effectuer ce qu’un téléphone portable réalise en 1 seconde, il faudrait à notre machine 3168 ans 295 jours 9 heures 46 minutes et 40 secondes".
video machine de Turing en Lego

machine de Turing universelle
Shannon (milieu du XXème siècle)
  • crée la théorie de l'information
  • utilise le bit pour coder tout type de données (mot, image, musique, ...)
  • du bit au byte (octet)
  • codage ASCII, unicode
informatique = données + algorithmes (programmes)

table unicode de tous les caractères

remarque 1

image noir et blanc.png
caractère agnostique de la machine de Turing : interprétation humaine des données ; par exemple le programme d'inversion des bits peut être considéré comme une fonction mathématique ou comme un programme d'inversion video pour une image en noir et blanc

remarque 2

on peut grouper les bits de données (en octets par exemple) pour leur conférer une structure et un sens ; par exemple

  • on peut considérer des groupes dont le nombre d'éléments est la largeur de l'écran ce qui permet de les considérer comme des points de l'écran ;
  • ou bien considérer qu'un octet représente un caractère (table ASCII)
  • ou que plusieurs octets représentent un caractère (système UTF pour le codage de tous les alphabets)
  • système RGB pour le codage des couleurs, codage numérique du son
universalité

Machine_de_turing_universelle.png
dès lors rien n'empêche de considérer que la table de transition (algorithme) soit elle même codée et écrite sur le ruban ; dans ce cas la tête de lecture contient un programme "universel" qui traite à la fois les instructions et les données de manière équivalente.

La thèse de Church - Turing

Ils prouvent que tout ce qui est calculable peut l'être avec cette machine.
repris par von Neumann

Illustration : page web, navigateur <2018-01-26 ven.>

trop petit trop grand 1.png
Écriture d'une page web : codage html et css.
Analogie avec la machine de Turing: cette page est une donnée, le navigateur est un algorithme qui va traiter cette donnée pour l'afficher ; les deux sont chargés en mémoire vive par le système d'exploitation (linux) qui sert d'intermédiaire avec le processeur.

Ordinateurs

Architecture de Von Neumann

Von_Neumann_Architecture.png

Le premier ordinateur ENIAC vers 1945

Eniac.jpg

organisation d'un ordinateur

schéma ordi.jpg
unité centrale, périphériques

Les systèmes d'exploitation

démarrage d'un ordinateur : BIOS (UEFI), bootstrap, secteur d'amorçage

BIOS : intégré à la carte mère, cherche le premier disque dur avec un secteur d'amorçage (MBR) qui lui-même contient un chargeur de démarrage (GRUB pour Linux) qui va charger le noyau du système d'exploitation.
UEFI : même schéma mais au lieu du MBR il cherche la partition EFI qui contient la suite des actions à effectuer.
Ils détectent aussi tous les deux la présence de certains périphériques.

systèmes d'exploitation (OS)

  • Multics (1964), UNIX (1969)
  • MS-DOS (1980), Windows (1985)
  • Mac OSX (1984)
  • Gnu (Richard Stallman - 1983), Linux (Linus Torvalds 1991)

le système de fichiers et ses interfaces

Systèmes ntfs (ou fat) sous windows et ext3 ou ext4 sous linux.
Partitions, dossiers, fichiers
Quelques principes d'organisation des fichiers

Les langages de programmation et algorithmes

Paradigmes de programmation

  • Programmation impérative, le paradigme originel et le plus courant : on indique la succession d'actions à exécuter (Basic, C, Pascal)
  • Programmation orientée objet, consistant en la définition et l’assemblage de briques logicielles appelées objets (Smalltalk, C++)
  • Programmation déclarative, consistant à déclarer les données du problème, puis à demander au programme de le résoudre
    • Programmation descriptive, à l'expressivité réduite, qui permet de décrire des structures de données (HTML, XML, LaTeX)
    • Programmation fonctionnelle, avec laquelle un programme est une fonction au sens mathématique du terme (lisp
    • Programmation logique, consistant à exprimer les problèmes et les algorithmes sous forme de prédicats (Prolog)

Algorithmes

Notion de programmation structurée.
Écrire un algorithme consiste à écrire dans un "pseudo-langage" structuré - compréhensible par l'homme mais pas par l'ordinateur - la suite des instructions nécessaires à la réalisation d'une tâche.

Principaux langages

Multiplicité des langages : analogie avec les langues naturelles
Modèle mathématique : système formel
En général les langages récents incluent la possibilité de programmer suivant plusieurs paradigmes

  • langage machine
  • assembleur (1965)
  • avant 1980
    • FORTRAN, LISP
    • COBOL, BASIC, C, SMALLTALK, PROLOG
    • PASCAL, FORTH

diagramme simplifié des langages informatiques

Faut il apprendre à programmer ?

  • programmer pour comprendre les outils informatiques qui nous entourent
  • programmer pour structurer sa pensée, en particulier pour les jeunes

Les applications

Les logiciels d'applications existent dans tous les systèmes d'exploitation ; ci-dessous une liste des versions les plus courantes de ces logiciels sous linux :

  • éditeurs : gedit, emacs
  • traitements de texte : libreoffice (writer)
  • tableurs : libreoffice (calc)
  • traitements d'images : gimp, libreoffice (drawer)
  • traitements du son : audacity
  • traitement de la video :
  • bases de données :
  • utilitaires
    • graver un disque :

Réseaux, internet et le web

Histoire

  • fin des années 60
  • le web au début des années 90

Protocoles

internet : tcp / ip
web : http, https
mail : un autre protocole

Illustration

Comment la page web est transmise et interprétée

Les algorithmes dans la société

Exemples d'algorithmes

Les algorithmes "classiques"

the art of computer programming.jpg
  • algorithmes mathématiques

dans le domaine des statistiques, des sciences de l'ingénieur (simulation), ...

  • algorithmes de tri
  • le théorème des 4 couleurs

théorie des graphes ; exemple important de "changement de paradigme" en mathématiques.

Le cryptage RSA (Rivest, Shamir, Adleman)

Protocole R.S.A simplifié :

  • Alice choisit deux nombres premiers P et Q qu'elle multiplie. Le nombre \(C=P \times Q\) est la clé publique.
  • Bernard veut envoyer un message secret \(M\) (suite de nombres) à Alice.

On utilise pour cela le petit théorème de Fermat qui démontre qu'il existe deux fonctions \(f\) et \(g\) telles que :

  • Bernard code \(M\) avec \(f\) qui ne dépend que de \(C\) on obtient un message crypté \(f(M)\)
  • Alice peut alors décoder \(f(M)\) pour lire le message \(M\) en se servant de \(g\) qui ne dépend que de \(P\) et \(Q\)

\(f: M → f(M)\) à l'aide de la clé publique C d'Alice
\(g: f(M) → M\) à l'aide de P et Q
Sécurité du protocole R.S.A :
La sécurité de ce codage à clef publique, repose sur la difficulté qu'il y a à calculer les facteurs premiers de \(C\).

Les algorithmmes "sociaux"

PageRank (Larry Page)
  • Le principe de base est d'attribuer à chaque page une valeur - la pagerank - d'autant grande qu'est grande la somme des PageRanks des pages qui pointent vers elle (elle comprise, s'il y a des liens internes). Le PageRank est une mesure de centralité sur le réseau.
  • L'algorithme est une marche aléatoire sur le graphe du Web. Il s'agit d'un processus de Markov. La taille (gigantesque) de ce graphe et son évolution dynamique (modifications de pages et hyperliens, connexion ou déconnexion de serveur web) rendent cependant impossible un calcul direct : des algorithmes d'approximation sont utilisés.

Le théorème de point fixe est le concept mathématique qui a permis l'invention du PageRank. Celui-ci permet en effet d'assurer que le calcul du PageRank est possible.
En dehors de cet algorithme public on utilise d'autres méthodes "secrètes" : contrôle des liens fictifs, mesure de la qualité des pages (web thématique), mots clés (web sémantique), ... sont utilisées.
(voir fichier PageRank-library-model.nlogo)

Intelligence artificielle

plusieurs conceptions

apprentissage_profond.jpg
2 conceptions de l'intelligence artificielle : faire comme le cerveau humain ou faire autrement !
L'apprentissage :
intelligence artificielles (années 70) -> appprentissage automatique (années 90) -> apprentissage profond (deep learning 2010)

Applications

  • compréhension de la parole (Siri 2012, google sur android), identification du contenu d'une image (personne ou lieu), diagnostic d'insuffisance cardiaque sur une imae IRM
  • jeu de dames : on explore une partie significative de l'arbre du jeu pour démontrer que l'algorithme est optimal.
  • jeu d'échecs (Deep Blue) : on n'a pas cette possibilité actuellement (d'ici 20 ans sans doute).

parcours du cavalier

  • jeu de go (AlphaGo) : apprentissage par renforcement. Un réseau de neurones s'affronte lui même puis on recommence avec le réseau résultant en réinjectant les résultats obtenus

Pourquoi les algorithmes sont nécessaires

La sécurité informatique

le principal bug est entre la chaise et le clavier.jpg
En informatique le principal bug se trouve entre le clavier et la chaise

Les erreurs dans les algorithmes :

  • Exemple du lancement de la fusée Ariane 5

4 juin 1996, Un bug dans la représentation des données entraîne une propagation en domino à l’ensemble du programme et s'ensuit alors le crash complet du logiciel de navigation et donc de la fusée, coût: 400 millions de dollars)

  • Preuve des programmes

P ≠ NP ?

La complexité des problèmes
P est l'ensemble des problèmes qui sont solubles en temps polynomial : si on double la taille \(n\) des données sa complexité (temps + espace utilisé pour le résoudre) est multipliée par un facteur constant \(n^k\).
NP est l'ensemble des problèmes dont on peut vérifier la solution en temps polynomial. En général la complexité de ces problèmes est exponentielle (multipliée par \(k^n\))
(pour \(k=2\) et \(n=100\) par exemple on obtient \(n^{k}=10000\) et \(k^n=10^{30}\))
exemples : le problème du voyageur de commerce, la décomposition en facteurs premiers.

Big Data

  • Modélisation et prévision : exemple du réchauffement climatique.
  • Massification de la population, des objets, des données, des informations
  • L'échelle des octets
taille représentation exemples
octet une lettre de l'alphabet  
unité égale à 8 bits parmi 256 (utf-8)  
kilo octet (Ko) une page d’un livre  
mille octets    
méga octet (Mo) un livre de mille pages environ  
un million d’octets    
giga octet (Go) une bibliothèque comportant séquençage d'un génome : 1 Go
un milliard d'octets un millier de livres une heure de video : 10 Go
téra octet (To) la B.N.F  
mille milliards d'octets    
péta octet (Po) l’ensemble des cultures humaines ? LHC : 15 Po de données par an
un million de milliards d'octets    

Pourquoi les algorithmes sont dangereux

Introduction

ordinateur chien homme.jpg
"L'entreprise du futur n'aura plus que deux employés : un homme et un chien. L'homme sera là pour nourrir le chien. Le chien sera là pour empêcher l'homme de toucher aux ordinateurs" [Warren Bennis]

Le contrôle de la population

les GAFAM.png
  • Origine historique

statistiques prévisionnelles (à partir du XVIIIème siècle)

  • Back-doors et NSA

concentration des données et de leur traitement par des organismes d'Etat

  • Les GAFAM [Google, Apple, Facebook, Amazon, Microsoft]

concentration des données et de leur traitement par des groupes privés

la modélisation dans les sciences

spirales tournesol.png
La modélisation est elle une démonstration ?
Changement de paradigme pour les sciences qui, depuis les Grecs en mathématiques et depuis le XVIIème siècle en physique, sont fondées sur le raisonnement à partir d'axiomes et de lois.
Dans les sciences classiques, même si les lois sont induites à partir de l'expérience donc de l'observation des données, elles doivent être démontrées. Le paradigme algorithmique tend souvent à faire croire que "le fait que ça marche est une preuve de vérité".
Ce changement de paradigme dans les sciences est accompagné d'un bouleversement socio-culturel analogue dans les sociétés.
(voir fichiers SunflowerEmergent.nlogo et simulation vol oiseaux.nlogo)

Un nouveau paradigme dans les sciences

  • dans les sciences physiques, biologiques et sociales les modèles ne sont plus produits par une théorie préalable puis confrontés aux données mais produits par les données et confrontés à leur efficacité.

On passe d'un modèle déductif à un modèle inductif
Les données sont amnésiques de leur contexte de production. Ce qui engendre une uniformisation.

  • Passage d'un modèle dans lequel on pose sur le monde une hypothèse de connaissance vers un monde "boite noire" qui produit un résultat efficace.
  • une idéologie : le réel ce sont les données !

Les sujets deviennent des réseaux de données.

  • confusion entre corrélation et causalité
  • probabilisme : «Je constate qu’un nouveau dogme émerge: le probabilisme, le règne sans partage de la probabilité comme seule source de décision pertinente. Or, la probabilité analyse les données, mais ne pense pas. Seule une machine peut analyser des milliards de données. Mais on est loin du jugement humain.» [Cynthia Fleury]
  • "prédire n'est pas expliquer" [René Thom]
  • Calculabilité inductive. Les connaissances (statistiques par exemple) liées à l'action sont remplacées par des calculs d'apprentissages : on n'a plus besoin des catégories préalables définies à priori par les statisticiens. Les traces que nous laissons se comparent entre elles.

La modélisation des comportements

autorité, popularité, réputation, comportement
"Le plus grand nombre produit l'ordre désirable des informations adressées aux autres"
On est passé avec Google (Stanley Brin et Larry Page) de l'importance des liens cliqués à l'importance des liens cités.
Ce modèle est passé dans les réseaux sociaux à celui de "l'influence et de la réputation des amis" récursivement.
On en arrive maintenant à une prédiction généralisée (recommandations) imputée aux comportements. La trace des comportements de mes "amis" (Facebook) devient l'action désirable de mon comportement.
On assiste à un véritable profilage par la relation.

Dé-responsabilisation des décideurs

Nous avons affaire aujourd’hui à un modèle de production et de distribution de l’information qui rend difficile l’identification même des responsabilités.

Ne pas déposer un substitut de la légitimité du jugement dans la machine.

la gouvernementalité algorithmique

  • Logique non causale, de pure corrélation (par anonymisation par exemple) qui engendre une nouvelle forme de discrimination "incontestable", "injustifiable". Les algorithmes se désintéressent de ce qui fait la singularité des individus et de ce qui les rattache à des contextes collectifs socialement éprouvés au profit de catégories impersonnelles mais prédictives
  • Intensification et radicalisation de ces processus. Gouvernance non plus par les nombres mais par les signaux - les phéromones numériques difficiles à appréhender par l'individu mais traitées par les algorithmes.
  • Le rêve de Laplace : tout est calculable, tout est prévisible.
  • Les GAFAM et les organisations d'état utilisent plutôt les algorithmes et le Big Data pour optimiser l'état de fait et non pour découvrir des potentialités non repérées jusqu'ici, ce qui dispense d'interroger l'état de fait.
  • Discours politique prégnant : "Enregistrer l'état de la société".

On répond à la demande sur le mode du réflexe. On n'a plus besoin de faire un projet qui transcende la réalité. Le politicien se transforme en sismographe.

Un système révolutionnaire ?

  • D'un certain point de vue il n'y a jamais eu d'instrument plus efficace pour le conservatisme.

Optimiser les états de fait est l'art de ne pas changer le monde.
On bannit toute possibilité d'évènement (notion de point fixe). Changer le monde suppose d'avoir un projet, un projet qui transcende l'état de fait pour changer quelque cchose qui n'est pas déjà dans les données.
Fin de la théorie.

  • Cela défait nos représentations (ce qui peut être positif)

Mais les espaces ouverts sont laissés aux prédateurs du profit. On n'a pas de politique de ces espaces de création et de liberté : grignotement de l'espace public.

  • Rétroaction bayésienne, apprentissage profond

La nouveauté c'est qu'elle est calculable, renforcée par les progrès de la neurobiologie.
Le modèle des réseaux de neurones remporte actuellement de grand succès dans la reconnaissance des formes, dans la reconnaissance de la parole, dans la traduction.
Cependant pour le moment les modèles sont supervisés par les hommes : pour que le réseau reconnaisse un chat il faut qu'on l"éduque en lui montrant des milliers de chats. Mais on l'éduque avec nos biais ! A nouveau le renforcement.
Chaque modèle emporte une forme de rationalité, donc aussi d'aliénation et de domination.

Craintes ancestrales ou plus récentes

  • Platon Phèdre
    «[L’écriture] ne peut produire dans les âmes, en effet, que l’oubli de ce qu’elles savent en leur faisant négliger la mémoire. Parce qu’ils auront foi dans l’écriture, c’est par le dehors, par des empreintes étrangères, et non plus du dedans et du fond d’eux-mêmes, que les hommes chercheront à se ressouvenir. Tu as trouvé le moyen, non point d’enrichir la mémoire, mais de conserver les souvenirs qu’elle a. Tu donnes à tes disciples la présomption qu’ils ont la science, non la science elle-même. Quand ils auront, en effet, beaucoup appris sans maître, ils s’imagineront devenus très savants, et ils ne seront pour la plupart que des ignorants de commerce incommode, des savants imaginaires au lieu de vrais savants.»
  • Penser, est-ce calculer ? [ voir Daniel Parrochia ]
  • Qui contrôle (les algorithmes) ?

Solutions

Justification des décisions (anti boite noire) plutôt que se retrancher derrière la soit disant objectivité des algorithmes.
Le propre de l'être humain c'est sa capacité à effacer ses traces, à mentir, à inventer (Derrida) ; sa capacité à se raconter au delà des données objectives. Il faut paramétrer les algorithmes pour qu'ils nous montrent les limites de nos représentations afin de pouvoir jouer avec, dans la narration par exemple.

Conclusion : la maîtrise citoyenne

  • Les algorithmes doivent être contrôlés, encadrés.
  • Un exemple : les logiciels libres.
  • Le problème est politique

Imaginer et produire des technologies mises au service des humains et non des intérêts privés.
Les civilisations humaines ont toujours été et sont encore au carrefour de la confrontation de leur imaginaire et du réel.
La civilisation grecque a construit la rationalité mathématique, la science, la philosophie et l'idée de démocratie au travers et au prix de la reconstruction de son imaginaire mythique.
Léonard de Vinci s'excusait auprès de Dieu de faire de la science au détriment de l'art. En fait il faisait les deux.
Nous devons assumer à notre tour de confronter la science (les algorithmes en l'occurrence) et la philosophie.

Ubuntu : post-installation

IMPORTANT : la documentation

La documentation en français pour ubuntu se trouve sur le site doc.ubuntu-fr.org
Elle est très complète bien qu'un peu confuse parfois.
En tous cas il est important de s'y reporter en premier en cas de problème.

Les distributions

Vous avez installé une distribution de linux : ubuntu.
Il en existe d'autres : debian, suse, redhat, ...
Ubuntu est considérée comme la plus facile d'accès ; elle est dérivée de debian.
Une distribution est un ensemble composé du noyau linux, des utilitaires et applications gnu et d'un très grand nombre d'applications (30000 environ) permettant de faire tout ce qu'il est possible de faire avec un ordinateur fonctionnant sous linux.

Démarrage de l'ordi

Au moment du boot (démarrage de l'ordinateur) un menu (grub) vous est présenté rapidement vous permettant de choisir entre ubuntu et windows si vous avez choisi de conserver windows. Si vous ne choisissez pas (avec les flèches du clavier) le premier élément sera choisi par défaut et exécuté au bout d'un certain temps.
Vous pouvez modifier ce menu (par exemple modifier l'ordre des éléments et/ou le temps pendant lequel il est affiché) en utilisant grub-customizer qu'il faut installer.

Session ubuntu

Vous entrez dans une session ubuntu lorsque vous entrez votre mot de passe dans l'écran d'accueil. Il est aussi possible à ce moment là de choisir une environnement de bureau (voir ci-dessous le paragraphe Environnements de bureau). Si vous ne choisissez pas d'environnement de bureau c'est le dernier que vous avez utilisé qui sera choisi par défaut.
Si au cours d'une session vous souhaitez changer d'environnement de bureau, inutile de redémarrer : sortez de la session (dans le menu d'arrêt de l'ordinateur choisissez "fermer la session" et l'écran d'accueil vous sera à nouveau présenté.

Environnements de bureau

Ubuntu possède plusieurs variantes : ubuntu-gnome, xubuntu, lubuntu, ...
Au moment de l'installation un environnement de bureau a été choisi par l'installateur : gnome (ubuntu-gnome) ou xfce (xubuntu) ou lxde (lubuntu) par exemple.
Chaque environnement de bureau est en réalité une présentation à l'écran de l'interface permettant d'accéder aux applications et aux fonctionnalités de linux. Mais en réalité tous les environnements de bureau donnent accès (à quelques détails près) à toutes les applications et fonctionnalités.
Vous pouvez installer maintenant d'autres environnement (voir ci-dessous le paragraphe Installation des applications) de bureau : gnome, xfce, lxde, kde, mate, unity (ce dernier est déconseillé : il sera abandonné par ubuntu en 2018).
Si vous installez plusieurs environnements de bureau vous pourrez en choisir un au moment ou vous entrez votre mot de passe au démarrage de la session ubuntu.

IMPORTANT : le terminal et la ligne de commande

L'application Terminal joue un rôle important : elle permet de taper des lignes de commandes qui donnent accès à tout le système. Il est nécessaire d'apprendre à y accéder et à s'en servir quand c'est nécessaire (en cas de problème ou bien pour exécuter certaines instructions indiquées dans la documentation pour installer des fonctionnalités supplémentaires).
Dans les environnements de bureau "classiques" on peut accéder au Terminal par la combinaison de touche Ctrl-Alt-T (appuyer avec 2 doigts sur les touches Ctrl et Alt et, en conservant l'appui sur ces touches, appuyer sur la touche T)
Ensuite vous tapez la ligne de commande que vous souhaitez exécuter et vous appuyez sur la touche ENTRÉE (ou RETURN) pour valider.
Vous pouvez (ce n'est pas le plus pratique !) lancer n'importe quelle application déjà installée en ligne de commande :

  • pour lancer firefox (le navigateur web) il suffit de taper : firefox et d'appuyer sur entrée
  • pour lancer une commande modifiant le système (par exemple l'installation d'un logiciel) il faut être en mode administrateur et faire précéder votre commande du mot sudo ; par exemple pour installer (avec la commande apt install) le logiciel gimp de traitement d'images il faut taper la commande : sudo apt install gimp

Mises à jour et mise à niveau

La version d'ubuntu change tous les 6 mois : en avril et en octobre ; les versions sont numérotées (actuellement 17.10) et portent un nom (Artful Aaardvark).
Les versions LTS (actuellement 16.04 - Xenial Xerus) sont valables 5 ans mais sont modifiées tous les deux ans (les autres sont valables 9 mois).
La version installée est la 16.04 (LTS) ; quelques temps après la future parution de la 18.04 (LTS) le système vous proposera de l'installer..

  • la mise à jour consiste à installer les nouvelles versions des applications en restant dans la version actuelle (par exemple 16.04) d'ubuntu ; elle se fait en deux étapes :
    • update : mise à jour de la liste des nouvelles versions des applications (paquets)
    • upgrade : installation de ces paquets
  • la mise à niveau consiste à passer è une nouvelle version d'ubuntu (par exemple de 16.04 à 16.10 ou de 16.04 à 18.04) ; elle est proposée automatiquement quand la nouvelle version est disponible.

Réglages des paramètres

Ceci se fait à l'aide de l'outil paramètres système

  • langues et dispositions de clavier
  • wifi
  • imprimantes
  • énergie, mise en veille, luminosité, verrouillage
  • comptes et mots de passe
  • réseau local

Organisation et personnalisation de l'interface

Si vous avez installé ubuntu la documentation de l'interface (gnome) est ici ; pour personnaliser l'interface voir ici.
Si vous avez installé xubuntu la documentation de l'interface (xfce) est ici ; pour personnaliser l'interface voir ici.
Si vous avez installé lubuntu la documentation de l'interface (lxde) est ici ; pour personnaliser l'interface voir ici

Installation d'autres applications ou utilitaires

Utiliser en priorité l'application intégrée : logithèque ou logiciel
Installer par exemple :

  • gimp : traitement d'images
  • audacity : traitement du son
  • gitso : si vous voulez autoriser quelqu'un à vous aider à distance
  • ...

Organisation de vos données

préparation sous windows

Dans le cas d'un ordinateur sous windows, la plupart du temps deux cas se présentent :

  • il y a un seul volume (= partition) nommé C: et tout est dedans, à la fois le systèmes windows et les données de l'utilisateur
  • il y a deux volumes C: et D:, le système étant dans C: et les données pouvant être réparties à la fois dans C: et D:

Avant de passer sous linux il est souhaitable (mais pas obligatoire) de clarifier cette situation en séparant pour cela le système et les données (ce qui peut n'être que profitable même sous windows)
Si on est dans le premier cas le plus simple est de :

  • transférer toutes ses données sur un disque dur externe
  • les supprimer du disque C:
  • diminuer la taille de la partition C: en laissant un peu de place à windows si on veut continuer à l'utiliser ; vous allez créer ainsi un espace libre.
  • créer une partition D: de type ntfs dans cet espace libre mais n'occupez pas tout cet espace libre : laissez un espace libre de 25 Go à la fin (pour installer linux) ;
  • recopier les données personnelles du disque dur externe dans la partition D:

Si on est dans le second cas le mieux est de :

  • transférer dans D: les données qui seraient dans C:
  • diminuer la pertition D: pour laisser un espace libre de 25Go à la fin (pour installer linux)

préparation sous linux

  • rebootez avec le support (clé usb ou dvd) d'installation de linux que vous avez choisi
  • lancez l'installation
  • quand il vous propose

Vos données sous linux sont par défaut dans le dossier /home/utilisateur où utilisateur est le nom que vous avez donné à l'installation
Vos données sous windows sont dans une autre partition qui peut être par exemple nommée C: ou D:. Pour accéder à ces données à partir de linux il faut les intégrer au système de fichiers de linux (on dit monter la partition)
Cela peut avoir été fait au moment de l'installation ; si ce n'est pas le cas en ligne de commande :

  • créer un dossier avec :

sudo mkdir /media/DATA

  • ouvrir le fichier fstab avec :

sudo gedit /etc/fstab
(remplacer gedit par mousepad sous xubuntu ou leafpad sous lubuntu)

  • à la fin du fichier ajouter la ligne :

périphérique point-de-montage système-de-fichiers options 0 0
en remplaçant :

  • périphérique par /dev/sdxN où x est la lettre et N le numéro de la partition contenant vos données sous windows (informations à récupérer avec gparted)
  • point-de-montage par /media/DATA
  • système de fichiers par ntfs-3g
  • options par rw,user,auto,exec,gid=1000,uid=1000,umask=002,utf8,codepage=850,shortname=mixed

Attention aux espaces !
Sauvegardez le fichier puis reconnectez vous ; si vous ne voyez toujours pas la partition windows, recommencez et vérifiez votre fichier fstab

ateliers (2018-2019)

plan

contraintes : linux et windows, pas de connexion internet à l'utltb

construire un site web

les possibilités en local :

entièrement "à la main"
  • avec un éditeur de texte : html, css, programmation en javascript
  • en installant un serveur : php avec ou sans base de données
en installant un cms
grav ou simple cms (sans base de données)
wordpress
cmsms ou drupal
avec un générateur (orgmode, jekyll, hugo, ...)
avec libreoffice + writer2xhtml

configurer l'export avec un template, des options, un fichier .css

programmation dans libreoffice