Pourquoi apprendre Unix (Linux)

publicité
Un bref historique d’Unix
(et quelques anecdotes !)
Evolution :
70 : Ken Thompson, Davi Ritchie (Bell tel ; ATT)
75 : Unix V6 (multiprogrammation, C) ; V7 (commercialisation)
situation en 84 : système V (Bell), BSDC (Berkeley) université
Années 90 :
_ efforts de normalisation
_ système ouvert Il est facile de rajouter des choses et de savoir où sont les sousprogrammes.
_ unix, TCP/IP, X-windows  système de fenétrage
_ Linux (91)
(V6 = 1E système multitaches : plusieurs ordinateurs qui ont accès à tour de rôle)
Efforts de normalisation :
93 : Novel (important distributeur de services réseaux) vend Unix à X/Open :
X/Open donne le label « unix » mais impose des tests
93 : « un nouveau pas vers un Unix unifié » (01 informatique) :
3 organismes (X/Open, OSF, Unix International) soutenus par 60 fournisseurs
s’accordent sur un ensemble d’API communes  normes POSIX (pas de
normalisation au niveau du noyau)
95 : HP et Sun s’accordent sur un Windows manager (gestionnaire de fenêtres :
graphique + souris) commun.
Effort de normalisation : situation
Pas de standard
Pas de normalisation du noyau
Mais : _ efforts de convergence, de compatibilité
_ norme POSIX
_ amélioration de l’interface utilisateur
OSF (organisme dont le seul but est de faire des normes)
_ Open Software Foundation
_ Créé en 88 par 7 constructeurs
_ Rôle : « interface » des application, évolution du système, standards publics
_ Domaine : réseau, OS, langage de programmation, UI (User Interface), graphique,
BD
_ Intérêts : OSI, TCP/IP, ftp, telnet, POSIX, X/Open, C, Cobol, Basic, Fortran, Ada,
Pascal, Common-Lisp, X_Windows, GKS, PHIGS, ANSISQL.
Différents UNIX :
Sun (Solaris) un des meilleurs unix proffessionnel payant
Hewlett Packard
1
Silicon Graphics
MINIX (le 1E logiciel Unix gratuit)
Linux (http://www.linux.org/)
_ Linux is Unix ; tendance : sur ensemble d’Unix
_ Créé par Linux Torvalds en 91, amélioré par messages dans les news
_ Initialement : pour PC (Intel 386), actuellement (2.2) :
X 86, SPARC, Alpha, Ultra, m68k, Pwer PC, Palm Pilot, bientôt : « pour
presque tout »
_ De nombreux logiciels de développement gratuit (freeware) emacs, latex, gcc
GNU(stallmann : http //www.gnu.org)
_ Distributeurs : Redhat (Mandrake), slackware, Debian..
operating system = système d’exploitation
multitasking = multitaches
Pourquoi apprendre Unix (Linux) ?
Au pire apprentissage d’un système « pro » : boîte de verre
Au « mieux » : Linux OS de demain
Abandon de Windows par MS : mythe ou réalité ?
Quelques faits « techniques »
_ Unix intrinsèquement adapté au réseau ( remote sous windows)
_ Retard de convivialité pratiquement comblé : Star Office, KDE, Borland,
environnements de programmation
_ Linux embarqué (auto-radio à l’ESSI)
_ sources permettent la recompilation d’un petit noyau spécialisé
_ même SE pour développement et embarquement
Quelques faits « financiers » et industriels :
Ventes de Linux : 50% des serveurs Internet sous Appache
HP maintient Linux
Redhat : investissement, accords, valeur boursières
Investissement de Intel dans RedHat
Gros clients : chaîne d’hotels américaines, gestion Ikea
Nouveaux amis : Netscape, Orade, IBM, Novell..
Voire la tirelire 1998 sous http://Iwn.net
2
Les systèmes d’exploitation en général
1)
2)
3)
4)
5)
6)
Introduction
Les communication inter-processus
Le système de fichiers
Gestion de la mémoire
Les entrées / sorties
Langages de commande (le shell, bash étudié en TP)
Introduction :
1) qu’est-ce qu’un SE ?
Un système d’exploitation pour quoi faire ?
 pour contrôler les ressources (ex : mémoire, périphérique)
 pour fourbir le base des programmes d’application
 une machine virtuelle pour :
 cacher la complexité du bas niveau
 faciliter la programmation
 une répartition des ressources pour :
 l’allocation des mémoires
 le partage et l’échange d’information
 la protection des individus
 l’élaboration de statistique, de mesures, ..
Réservation
jeux
Compilateur
éditeur
interpréteur de commande
Système d’exploitation
Langage machine
Micro programme
Dispositif physiques
Composition d’un ordinateur
2) différents types de SE :
 les systèmes mono-utilisateurs
 une machine virtuelle pour un ordinateur
 le process Control
 contrôle d’un processus industriel
 les systèmes d’interrogation de fichiers
 interrogation de grands ensembles de données
 les systèmes transactionnels
 mise à jour très fréquente de données
 les systèmes généralistes
3
 grands nombre d’utilisateurs
3) Concepts :
 communication entre SE et programmes effectuée par des appels systèmes
 appels système modifient
 les processus
 les fichiers
_ Un processus est un programme en exécution qui peut :
 être interrompu par le SE
 créer un ou plusieurs processus fils
 communiquer avec d’autres processus
_ Les fichiers peuvent être :
 classés dans des répertoires
 créés , modifiés, déplacés, effacés ,
 en accès protégé
_ les appels systèmes permettant de :
 créer des processus
 gérer la mémoire
 lire, écrire des fichiers
 réaliser des entrées/sorties
_ l’interrupteur de commandes assure :
 la communication entre utilisateur et SE
 la réalisation des appels systèmes
Expressions régulières :
_ grep trombe /etc/passwd
motif
fichier
trombe : X : 167 : 100
_ man regexp
Expression atomiques : (un seul caractère)
 caractère non spécial
 remplacé par lui-m^me
 ‘.’
 n’importe quel caractère sauf fin de la ligne
 [x12(]
 n’importe quel caractère dans l’ensemble entre [ ]
 [^x12]
 ... de [ ]
 \<caractère_spécial>
 <caractère_spécial>
 [ :digit :]
 [ :upper :] (une lettre majuscule)
4
Expression régulières II
Soit : _ une expression atomique
_ une expression atomique suivre de * : [12]*
remplacement de A de 0 à + fois
Language de commande sous Unix :
_ mode interactif ou langage de programmation
_ 2 grandes catégories :
 bourne-shell système V (sh, ksh, zsh, bash)
 C-shells de Berkeley (csh, tcsh)
_ différences sur l’utilisation des commandes (options) plus que sur les commandes
spécifiques aux langages (structures de contrôle : while)
_ Liste dans /etc/shells
Expressions régulières : caractères spéciaux
_ certains caractères ont un sens particulier au sein d’un motif . Ce sont les caractères
spéciaux ou méta-caractères : [ .*
_ D’autres ont une interprétation spéciale selon le contexte :
Car
]
^
$
\
Rôle
] ou fin d’ensemble
- ou intervalle
^ ou début de ligne ou
complément ensembliste
$ ou fin de ligne
\ ou annulation
Contexte spécial
Derrière un [
Entre[ ]..
Début de motif ou après
Fin de motif
Partout sauf entre [ ]
Expression régulières atomiques :
_ Expression qui remplace un seul caractère
 un caractère non spécial
 un caractère spécial précédé de \
 le caractère spécial . : remplace tout motif d’un caractère
 une expression de la forme [ :<class> :] par ex : [ :digit : ] (chiffres)
[ :uppers :] (majuscules) ; [ :alnum :] (chiffres + lettres)
Expression régulières (ER)
_ expression régulière atomique
_ ER atomique suivie de * : 0 ou n occurrences de l’ER atomique en question
_ concaténation (mettre bout à bout, à la suite) de 2 expressions régulières
_ \(<sous-expr>\) : moyen de repérage de la sous-expression sous-expr dans l’ER
d’appartenance
_ \<entier> : : désignation de la <entier> -ième sous-expression entre \(\) avec
<entier>  [1..9]
_ <expr-atomique>\{<i>,<j>\} : k occurrences de <expr-atomique> avec k [<i>,<j>]
5
 exemple :
[a - ZA – Z0 – 9 ] : un caractère alphanumérique ([i alnum :])
[ - ^[ ] : un des 3 caractères parmi -, +, ^,[
^[ a-z]\{3\}[^a-z]\{3\}$]
^\(.*\)\1\1$
 notions sur commande sed
_ commande Unix
_ syntaxe en bref : sed –e <commande-sed> <fichier>
_ principe : pour toute la ligne l de <fichier> faire :
ligne résultat  <commande –sed> (1)
afficher ligne résultat
fin pour
 commande sed :
exemple : 1,$s/^.*[ss]exe$/^amours$/
sed –e
signifie :
_ sur n’importe quelle ligne 1 de la première à la dernière
_ substitution
_ si 1 se termine par « sexe » ou « sex » alors retourner la ligne « amours »
 notion de processus :
_ les processeurs :
 permettent aux ordinateurs d’effectuer plusieurs tâches à la fois peuvent
passer rapidement d’un processus à un autre à la suite d’interruption.
processus
D
C
B
A
Temps
 les processus :
 les programmes qui s’exécutent
 vitesse d’exécution non uniforme
 hiérarchie entre processus
6
Téléchargement