version initiale
200
Systemes/CoursSysteme.md
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
---
|
||||||
|
title: Cours système
|
||||||
|
---
|
||||||
|
|
||||||
|
# Objectifs du cours
|
||||||
|
|
||||||
|
savoir ce qu’est un système d’exploitation (OS)
|
||||||
|
|
||||||
|
les différents OS
|
||||||
|
|
||||||
|
Qu’est-ce qu’un OS ?
|
||||||
|
|
||||||
|
- but :
|
||||||
|
|
||||||
|
- Mettre à disposition les ressources matérielles de l'ordinateur
|
||||||
|
|
||||||
|
- Servir d'interface entre l'utilisateur et l'ordinateur
|
||||||
|
|
||||||
|
- Faire abstraction des spécificités du matériel (ex : réseau et raid); notion de machine virtuelle sur machine physique
|
||||||
|
|
||||||
|
- tourne en permanence, depuis le démarrage, tant que celui ci est allumé.
|
||||||
|
|
||||||
|
- permet d’accéder au matériel de façon transparente. un programme n’a pas à savoir s’il écrit sur une clé usb ou sur un disque dur via le réseau (ex: swap)
|
||||||
|
|
||||||
|
- initialise les ressources, pilote les périphériques
|
||||||
|
|
||||||
|
- gère les ressources (accès mémoire, processeur, ...)
|
||||||
|
|
||||||
|
- optimise l’usage de la machine (ex : minimise les déplacements des têtes de lecture sur les disques, gestion de l’energie sur les portables, ...)
|
||||||
|
|
||||||
|
- veille à la sécurité des applications et des données
|
||||||
|
|
||||||
|
- doit être robuste (ne plante pas, supporte les arrêts brutaux (panne de courant), tolère les pannes matérielles; ex : passage en mode read only des DD)
|
||||||
|
|
||||||
|
# Préhistoire
|
||||||
|
|
||||||
|
- 1950 : machines énormes à base de relais, puis lampes; utilisation en langage machine directement; pas de distinction entre concepteurs, administrateurs et utilisateurs; apparition des cartes perforées
|
||||||
|
|
||||||
|
- 1960 : utilisation de transistors pour les machines et de bandes magnétiques pour le stockage
|
||||||
|
|
||||||
|
- 1970 : remplacement des bandes magnétiques par des disques dur. apparition du multitaches
|
||||||
|
|
||||||
|
- 1980 1ers Ordinateurs personnels / MS-Dos
|
||||||
|
|
||||||
|
# Différents type de systèmes
|
||||||
|
|
||||||
|
|
||||||
|
- On en trouve partout (ordis, imprimantes, téléphones, télé, box adsl, ...)
|
||||||
|
|
||||||
|
- spécialisés pour un matériel ou non (imprimante, console de jeu, magnétoscope, ...)
|
||||||
|
|
||||||
|
- mono ou multi utilisateurs:
|
||||||
|
|
||||||
|
- suppose de pouvoir protéger les données de chacun
|
||||||
|
|
||||||
|
- nécessite la notion de droits d’accès
|
||||||
|
|
||||||
|
- protège les utilisateurs entre eux
|
||||||
|
|
||||||
|
- protège le système (pas possible d’effacer des fichiers système)
|
||||||
|
|
||||||
|
- mono ou multi taches
|
||||||
|
|
||||||
|
- suppose de pouvoir protéger les processus les uns des autres
|
||||||
|
|
||||||
|
- nécessite la notion de protection de la mémoire (seul le noyau peut accéder à tout; les processus ne peuvent physiquement pas sortir de leurs pages mémoire )
|
||||||
|
|
||||||
|
- gère l’ordonnancement, évite la famine, doit gérer le taux d’utilisation des ressources
|
||||||
|
|
||||||
|
- mono ou multi processeurs;
|
||||||
|
|
||||||
|
- systèmes répartis / distribués
|
||||||
|
|
||||||
|
- systèmes embarqués
|
||||||
|
|
||||||
|
- temps réel : garanti un délai maximal d’exécution quelles que soient les conditions
|
||||||
|
|
||||||
|
- Il existe des centaines de systèmes; Windows, Linux, Irix, VMS, Aegis, ...
|
||||||
|
|
||||||
|
# Le noyau
|
||||||
|
|
||||||
|
- espace mémoire protégé+ensemble de programmes qui forment la base minimale de l’OS
|
||||||
|
|
||||||
|
- tout ce qui n’est pas un appel système fonctionnera dans l’espace utilisateur
|
||||||
|
|
||||||
|
## Types de noyau
|
||||||
|
|
||||||
|
|
||||||
|
- monolithique: tout est dans le noyau (système de fichiers, pilotes, etc) Linux, FreeBSD (pas tout a fait; bouts de code noyau chargable dynamiquement : les modules)
|
||||||
|
|
||||||
|
- micro-noyau: seulement le strict minimum (ordonnanceur+mémoire virtuelle) Minix
|
||||||
|
|
||||||
|
# UNIX
|
||||||
|
|
||||||
|
1969
|
||||||
|
|
||||||
|
1971 : premiere distribution multitache, multi utilisateurs
|
||||||
|
|
||||||
|
1973 : premiere version portable en C (créé pour l’occasion)
|
||||||
|
|
||||||
|
Bien que ce soit un système ancien, il a toujours été considéré comme un modèle de système d'exploitation.
|
||||||
|
|
||||||
|
Ses points forts sont
|
||||||
|
|
||||||
|
- son indépendance vis a vis des constructeurs.
|
||||||
|
- sa modularité
|
||||||
|
- son aspect communiquant. L'histoire d'Unix est très liée à celle d'Internet
|
||||||
|
|
||||||
|
Néanmoins Il a quelques points faibles:
|
||||||
|
|
||||||
|
- peu de convivialité de son interface; Ce n'est plus vrai aujourd'hui.
|
||||||
|
- manque de standard. Il existe de multiples versions pas toujours très compatible.
|
||||||
|
|
||||||
|
# DOS/Windows
|
||||||
|
|
||||||
|
1981 : 1er pc monotache, mono utilisateur
|
||||||
|
|
||||||
|
1985 : Windows 1.0; multitache, mono utilisateur
|
||||||
|
|
||||||
|
1993 : Windows NT; multitache, multicompte, mais un seul utilisateur a
|
||||||
|
la fois
|
||||||
|
|
||||||
|
2009 : Windows seven; multi tache, multicompte
|
||||||
|
|
||||||
|
2015 : Windows 10
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
|
||||||
|
Linux est un système d'exploitation de type UNIX, multi-tâches et multi-utilisateurs pour machines à processeurs 32 et 64 bits, ouvert sur les réseaux et les autres systèmes d'exploitation.
|
||||||
|
|
||||||
|
La principale singularité de Linux est d'être un logiciel libre, développé de façon collaborative et pour une grande part bénévole par des milliers de programmeurs répartis dans le monde.
|
||||||
|
|
||||||
|
Ce modèle de développement joue un grand rôle dans la qualité du résultat obtenu, qui est considéré comme très supérieurs à des systèmes commerciaux similaires.
|
||||||
|
|
||||||
|
la vente liée d'ordinateurs pré-installés avec windows freine son déployement auprès du grand public
|
||||||
|
|
||||||
|
1991
|
||||||
|
|
||||||
|
pourquoi
|
||||||
|
|
||||||
|
historique
|
||||||
|
|
||||||
|
différentes distributions (debian, ubuntu, redhat, fedora, ...)
|
||||||
|
|
||||||
|
differents dérivés (mac OSX, android); tourne sur une multitude de
|
||||||
|
machines, du téléphone portable aux supercomputers (10.649.600 processeurs)
|
||||||
|
(voir top500.org)
|
||||||
|
|
||||||
|
architecture en couche
|
||||||
|
|
||||||
|
interface graphique
|
||||||
|
|
||||||
|
lignes de commande
|
||||||
|
|
||||||
|
arborescence, répertoire de travail
|
||||||
|
|
||||||
|
commandes utiles, éditeurs
|
||||||
|
|
||||||
|
# Environnement de travail à l’Ensibs
|
||||||
|
|
||||||
|
- machines double boot Linux (centos / Windows 10)
|
||||||
|
|
||||||
|
- compte obligatoire
|
||||||
|
|
||||||
|
- Home repertoire sur serveur, sauvegardé.
|
||||||
|
|
||||||
|
- quotas disques et d’impression
|
||||||
|
|
||||||
|
- réseau filaire et wifi
|
||||||
|
|
||||||
|
- connexion extérieure via renater (utilisation limitée aux
|
||||||
|
usages pédagogique)
|
||||||
|
|
||||||
|
# Ent
|
||||||
|
|
||||||
|
- courrier
|
||||||
|
|
||||||
|
- emplois du temps
|
||||||
|
|
||||||
|
- espaces partagés
|
||||||
|
|
||||||
|
- scolarité (notes)
|
||||||
|
|
||||||
|
- consommation (quotas disques, impression, quota mails)
|
||||||
|
|
||||||
|
- cours en ligne
|
||||||
|
|
||||||
|
- Bibliothèque
|
||||||
|
|
||||||
|
- assistance
|
||||||
|
|
||||||
|
- ...
|
||||||
|
|
||||||
|
# Presentation Linux
|
||||||
|
|
||||||
|
- arbre des répertoires
|
||||||
|
- répertoires principaux
|
||||||
|
- commandes de base : ls cd pwd cp rm cat less ssh ...
|
||||||
|
- méta caracteres : . .. ~ / * ? \
|
||||||
|
- redirections ! > < |
|
743696
Systemes/Data/00000012.TSV
Executable file
41332
Systemes/Data/00000012.csv
Normal file
10545
Systemes/Data/20140808.gpx
Executable file
7178
Systemes/Data/20140809.gpx
Executable file
BIN
Systemes/Png/c1.png
Normal file
After Width: | Height: | Size: 303 KiB |
BIN
Systemes/Png/c2.png
Normal file
After Width: | Height: | Size: 435 KiB |
BIN
Systemes/Png/c3.png
Normal file
After Width: | Height: | Size: 484 KiB |
BIN
Systemes/Png/m1.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
Systemes/Png/m2.png
Normal file
After Width: | Height: | Size: 222 KiB |
BIN
Systemes/Png/m3.2.png
Normal file
After Width: | Height: | Size: 218 KiB |
BIN
Systemes/Png/m3.png
Normal file
After Width: | Height: | Size: 685 KiB |
BIN
Systemes/Png/s1.png
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
Systemes/Png/s2.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
Systemes/Png/s3.png
Normal file
After Width: | Height: | Size: 71 KiB |
97
Systemes/README.md
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
# TRAITEMENT DE DONNEES
|
||||||
|
|
||||||
|
Vous trouverez un résumé des quelques commandes linux que l'on a vu la semaine dernière sur :
|
||||||
|
|
||||||
|
* <http://juliend.github.io/linux-cheatsheet/>
|
||||||
|
* <http://www.epons.org/commandes-base-linux.php>
|
||||||
|
|
||||||
|
____________
|
||||||
|
|
||||||
|
On dispose de 2 fichiers d'acquisition de données sur un voilier.
|
||||||
|
Le premier, "Data/00000012.TSV" contient les données au format NMEA 0183.
|
||||||
|
Les données se présentent de la manière suivante :
|
||||||
|
|
||||||
|
~~~~
|
||||||
|
$IIGLL,4806.070,N,00420.408,W,103219,A,A*4D
|
||||||
|
$IIZDA,103219,08,08,2014,,*50
|
||||||
|
$IIVTG,341,T,,M,4.1,N,7.6,K,A*06
|
||||||
|
$IIXTE,A,A,0.20,R,N,A,*24
|
||||||
|
$IIRMB,A,0.21,R,,,,,,,0.20,2,,A,A*7D
|
||||||
|
$IIDPT,6.1,,*45
|
||||||
|
$IIDBT,20.0,f,6.1,M,,*4C
|
||||||
|
$IIVLW,157.0,N,58.89,N*42
|
||||||
|
$IIVHW,333.4,T,337,M,3.94,N,7.29,K*49
|
||||||
|
$IIMWV,17,R,9.8,N,A*14
|
||||||
|
$IIVWR,17,R,9.8,N,5.0,M,18.1,K*5D
|
||||||
|
$IIMWD,,,0,M,6.1,N,3.1,M*25
|
||||||
|
$IIXDR,C,15.8,C,AirTemp*2A
|
||||||
|
$IIMTW,21.2,C*12
|
||||||
|
$IIVWT,28,R,6.1,N,3.1,M,11.3,K*5D
|
||||||
|
$IIHDG,337,,,,*50
|
||||||
|
$IIHDM,337,M*3B
|
||||||
|
$IIHDT,333.4,T*25
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
Chaque ligne contient une trame, son type est indiqué par le premier mot clé.
|
||||||
|
Les trames qui vont nous interesser sont :
|
||||||
|
|
||||||
|
* __VHW__ : vitesse surface
|
||||||
|
* __MWV__ : vent apparent
|
||||||
|
* __DPT__ : profondeur
|
||||||
|
|
||||||
|
Pour plus d'information sur le format NMEA :
|
||||||
|
|
||||||
|
* <https://fr.wikipedia.org/wiki/NMEA_0183>
|
||||||
|
* <https://gpsd.gitlab.io/gpsd/NMEA.html>
|
||||||
|
|
||||||
|
## Travail demandé
|
||||||
|
|
||||||
|
Je veux pouvoir tracer sur un même graphique, à l'aide de gnuplot :
|
||||||
|
|
||||||
|
1) la vitesse surface du bateau
|
||||||
|
2) la profondeur
|
||||||
|
3) la vitesse du vent apparent
|
||||||
|
4) filtrer les données afin de les rendre plus lisible (fonction _smooth_ de gnuplot)
|
||||||
|
|
||||||
|
|
||||||
|
Exemples de sortie :
|
||||||
|
![](Png/s1.png)
|
||||||
|
![](Png/s2.png)
|
||||||
|
___
|
||||||
|
|
||||||
|
Travailler à partir du fichier tsv n'est pas ideal, car on n'a pas de référence temporelle; On a 2 systemes différents, un GPS et une centrale de navigation qui sortent leurs informations a des vitesses différentes; le GPS respecte la norme NMEA, une série de trames par seconde, alors que la centrale NKE préfère sortir les informations le plus rapidement possible
|
||||||
|
|
||||||
|
~~~~bash
|
||||||
|
cat Data/00000012.TSV | cut -d, -f1|sort|uniq -c|sort -n
|
||||||
|
41013 $IIRMB
|
||||||
|
41085 $IIHDG
|
||||||
|
41146 $IIHDM
|
||||||
|
41220 $IIMWV
|
||||||
|
41243 $IIVWR
|
||||||
|
41285 $IIMTW
|
||||||
|
41287 $IIVTG
|
||||||
|
41292 $IIXTE
|
||||||
|
41317 $IIXDR
|
||||||
|
41318 $IIVWT
|
||||||
|
41332 $IIGLL
|
||||||
|
41363 $IIHDT
|
||||||
|
41388 $IIVHW
|
||||||
|
41416 $IIVLW
|
||||||
|
41419 $IIDBT
|
||||||
|
41429 $IIMWD
|
||||||
|
41509 $IIZDA
|
||||||
|
41630 $IIDPT
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
On voit donc qu'on n'a pas le même nombre de trames de chaque type.
|
||||||
|
|
||||||
|
Le fichier CSV lui contient toutes les données en tableau, chaque ligne étant horodatée.
|
||||||
|
|
||||||
|
* Mêmes questions en partant du fichier 00000012.csv
|
||||||
|
* que s'est il passé entre 20h43 et 20h44 ?
|
||||||
|
* ou était-ce ?
|
||||||
|
|
||||||
|
![](Png/s3.png)
|
||||||
|
|
||||||
|
|
||||||
|
Envoyez moi ce que vous avez fait à bertrand.orvoine@univ-ubs.fr
|
66
Systemes/Soluce.md
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
## Solution / fichier TSV
|
||||||
|
|
||||||
|
~~~~bash
|
||||||
|
#!/bin/bash
|
||||||
|
grep VHW Data/00000012.TSV|cut -d, -f6 > /tmp/vitesse.data
|
||||||
|
grep DPT Data/00000012.TSV|cut -d, -f2 > /tmp/profondeur.data
|
||||||
|
grep MWV Data/00000012.TSV|cut -d, -f4 > /tmp/vent_apparent.data
|
||||||
|
|
||||||
|
gnuplot -persist <<-EOFMarker
|
||||||
|
plot '/tmp/vitesse.data' with line
|
||||||
|
replot '/tmp/profondeur.data' with line
|
||||||
|
replot '/tmp/vent_apparent.data' with line
|
||||||
|
pause 3
|
||||||
|
plot '/tmp/vitesse.data' smooth bezier with line
|
||||||
|
replot '/tmp/profondeur.data' smooth bezier with line
|
||||||
|
replot '/tmp/vent_apparent.data' smooth bezier with line
|
||||||
|
EOFMarker
|
||||||
|
|
||||||
|
# sortie du graphique dans un fichier image:
|
||||||
|
gnuplot -persist <<-EOFMarker
|
||||||
|
set term png
|
||||||
|
set output "sortie.png"
|
||||||
|
plot '/tmp/vitesse.data' smooth bezier with line, '/tmp/vent_reel.data' smooth bezier with line, '/tmp/vent_apparent.data' smooth bezier with line
|
||||||
|
EOFMarker
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
## Solution / fichier CSV
|
||||||
|
|
||||||
|
~~~~ bash
|
||||||
|
#!/bin/bash
|
||||||
|
gnuplot -persist <<-EOFMarker
|
||||||
|
set datafile separator ','
|
||||||
|
set key autotitle columnhead
|
||||||
|
set style data line
|
||||||
|
set angles degrees
|
||||||
|
set grid
|
||||||
|
set xdata time
|
||||||
|
set timefmt '%Y-%m-%d %H:%M:%S'
|
||||||
|
set xlabel 'time'
|
||||||
|
set xtics rotate by 45 right
|
||||||
|
set tics font ",10"
|
||||||
|
set format x "%H:%M"
|
||||||
|
plot 'Data/00000012.csv' using 1:5
|
||||||
|
replot 'Data/00000012.csv' using 1:4
|
||||||
|
replot 'Data/00000012.csv' using 1:5 smooth bezier lw 4 title 'sow lissee'
|
||||||
|
replot 'Data/00000012.csv' using 1:4 smooth bezier lw 4 title 'depth lissee'
|
||||||
|
EOFMarker
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
## Que s'est il passé ?
|
||||||
|
|
||||||
|
talonnage :
|
||||||
|
|
||||||
|
![](Png/c1.png)
|
||||||
|
|
||||||
|
![c2](Png/c2.png)
|
||||||
|
|
||||||
|
![c3](Png/c3.png)
|
||||||
|
|
||||||
|
![](Png/m1.png)
|
||||||
|
|
||||||
|
![m2](Png/m2.png)
|
||||||
|
|
||||||
|
![m3.2](Png/m3.2.png)
|
||||||
|
|
||||||
|
![m3](Png/m3.png)
|