Pierre Vincent
Un ordinateur comporte les couches suivantes:
Interface utilisateur
Applications
Appels systèmes
Système d'exploitation
Fonctions de base en mémoire morte ou flash (BIOS basic input output system), périphériques,
Processeur, Instructions
Représentation des données
Le système d'exploitation pilote le matériel
(hardware) d'un ordinateur.
Les principaux objets gérés
par un système d'exploitation sont:
les fichiers
les processus
la mémoire virtuelle
les comptes utilisateurs et droits d'accès
Les
ressources pilotées par le système sont:
le ou les processeurs, la mémoire,
les
périphériques
(stockage, communications). Le système gère les
droits d'accès aux ressources. L'administrateur
crée des comptes utilisateurs et groupes avec leurs mots de
passe et définit les droits d'accès aux fichiers et aux
répertoires. Les applications ou programmes
utilisateurs communiquent avec le système par des appels
systèmes.
En environnement multitâche,
le temps processeur est partagé entre les différentes
processus prêts à l'exécution. On parle de temps
partagé ou "time sharing".
Un système
multitâches alloue les ressources physiques ou logiques aux
tâches concurrentes(concourrantes!).
La partie résidente
du système appelée noyau et est chargée en
mémoire à l'initialisation de l'ordinateur.
Un fichier correspond à un ensemble de données rangées sur disque dur, mémoire flash, CD et autres DVD! Une partie du système d'exploitation est dédiée à la gestion des fichiers, cette partie est applée SGF pour système de gestion de fichiers. Son rôle est double: d'une part contrôler les droits d'accès, d'autre part de décrire l'espace disque qui appartient à chaque fichier.
La mémoire virtuelle permet qu'un programme ait un espace mémoire logique supérieur à la taille de la mémoire physique disponible. Ce mécanisme fonctionne de pair avec la pagination. L'ensemble des pages d'un programme en cours d'exécution ne sera pas forcément présent en mémoire centrale, seule les pages où se trouvent les instructions et les données en cours de traitement seront présentes.
Pour supporter efficacement un système d'exploitation,
un processeur fonctionnera en deux modes, un mode utilisateur et un
mode système. Le mode utilisateur correspond au mode de
fonctionnement habituel d'un programme, dans ce mode seul l'accès
à la mémoire allouée au programme est autorisé,
pour accéder aux autres ressources il faut effectuer un appel
système.
Le mode système quant à
lui correspond à un mode priviligié dans lequel l'accès
à toutes les ressources de la machine est permis. Le noyau du
système a été chargé en zone système
à l'initialisation de la machine. C'est ce noyau réputé
fiable qui effectue les opérations privilégiées.
Les principaux états d'un processus sont: actif, prêt, endormi (en attente d'entrée sortie) ! Il existe différentes méthodes d'ordonnancement des processus. L'enchaînement des processus sera préemptif ou non préemptif. Dans le mode de gestion non préemptif un processus ne libére le processeur que lors d'une entrée sortie ou en fin de traitement! En préemptif un processus peut être interrompu au profit d'un autre processus! Pour éviter qu'un processus ne monopolise le processeur, chaque processus est actif pour une durée maximale dite quantum de temps, par exemple 20 millisecondes sous Unix. Au bout de ce quantum, l'ordonnanceur active le processus en tête de liste des processus prêts!
Avec la pagination, la mémoire physique est divisée en zones de taille fixes appelées pages. Selon le processeur ces pages seront plus ou moins grande (de 1Ko à 4Ko). Ce découpage en unité de taille fixe permet une allocation aisée. L'espace mémoire attribué à un processus comportera un certain nombre de pages. Ces pages seront présentes en mémoire centrale ou bien dans la mémoire de débordement ou swap qui correspond à une copie de l'espace mémoire de chaque processus sur disque.
Un processus est un programme en
activité.
Un processus est dans un des
états suivants: actif, prêt, endormi. L'ordonnancement
des processus alloue le processeur aux différents processus,
il existe différentes méthodes d'ordonnancement.
Une programme correspond à une suite d'instruction a exécuter par le processeur. Par soucis de lisibilité et de maintenance, il est souvent découpé en procédures, fonctions ou classes.
C'est la personne qui connaît le nom et le mot de passe d'un compte spécial dit d'administration (ou root) qui détermine les droits d'accès à toutes les ressources de la machine. Ce compte permet donc l'administration du système par opposition aux comptes utilisateurs qui ne permettent que de faire un nombre restreint d'opérations.
Un appel système appelle une fonction qui réside
dans le noyau du système d'exploitation et ne fait pas
partie du programme! Le noyau est la partie du système chargée
à l'initialisation et résidente en mémoire. Si
l'appel système est effectué depuis un programme
utilisateur, le processeur bascule du mode
utilisateur en mode système.
Mode système,
noyau, kernel, privilégié sont synonymes.
Tout processeur exécute un jeu d'instructions prédéfini.
Ces instructions sont rangées dans un fichier
exécutable.
A son démarrage, un processeur exécute une
première instruction qui se trouve à une adresse
prédéterminée. Cette adresse pointe sur de la
mémoire morte qui contient toutes les fonctions
d'initialisation de la machine. Il est indispensable que les
premières instructions et les fonctions d'accès au
disque soient en mémoire morte.
L'initialisation
comporte donc les phases suivantes:
réception du signal RESET
chargement du pointeur d'instruction avec l'adresse de démarrage
exécution des instructions en
mémoire à partir de cette adresse
chargement du système depuis le disque
Les opérations de base exécutées par
un ordinateur sont:
l'accès mémoire
la lecture et l'exécution des instructions
les opérations sur et entre les registres internes
les interruptions
l'accès
direct à la mémoire
l'initialisation
les accès à la pile
le transfert en mode DMA
l'appel de fonctions et le passage de paramètres
la gestion de la
mémoire
la gestion des unités d'exécution (processus ou
thread).
Il s'agit des différents accessoires internes ou
externes à l'ordinateur:
écran,
clavier, souris
disque dur,
cartes de communications, port série, port parallèle
L'accès aux périphériques se fait à
l'aide de différents mécanismes: scrutation,
interruptions, accès direct mémoire.
La
portion de code qui gère un périphérique
particulier est appelée driver ou pilote.
Les
différents périphériques émettent des
interruption pour signaler au système que l'opération
qui leur a été sous-traitée est terminée.
Le système prend en compte ces interruptions et réveille
le processus endormi (en attente) sur l'opération qui vient de
se terminer.
Pour réaliser une entrée-sortie, il faut au
préalable programmer le contrôleur de périphérique
ainsi que le contrôleur de DMA, s'il s'agit d'un périphérique
rapide. Les informations fournies au contrôleur de périphérique
lors de sa programmation dépendent du type de contrôleur
et de périphérique. Il existe des contrôleurs
adaptés à chaque type de périphérique:
disque dur, Ethernet, liaison série, port parallèle. Le
processeur voit le controleur comme un ensemble de registres qu'il
lit ou écrit. L'ensemble des registres d'un contrôleur
donné est placé par construction à une adresse
dans l'espace d'entrées-sorties.
Pour programmer
un contrôleur, le processeur écrit dans un ou plusieurs
des registres de commande de celui-ci. Cette programmation est
spécifique à chaque type de contrôleur.
Un
contrôleur offre des registre de données, des registres
de commande et un registre d'état.
Dans ce cas, le processeur lit le mot d'état d'un contrôleur de périphérique pour savoir si une le périphérique a réalisé une opération particulière. Les opérations sont du type suivant: donnée reçue, donnée émise, erreur.
A l'aide du mécanisme d'interruption(IT), un
périphérique interrompt le processeur pour lui signaler
un évènement et/ou lui demander d'effectuer une
opération. Il existe différents niveaux d'interruption.
Le niveau d'interruption détermine la priorité et il
permet de pointer une case du tableau des adresses de fonction
d'interruption. La table des adresses de fonctions est logée à
une adresse fixe dépendant du processeur, elle est chargée
à l'initialisation du processeur.
Le mécanisme
d'interruption comporte les phases suivantes:
émission du signal ITn
prise
en compte par le processeur
sauvegarde
du contexte
appel de la routine n
d'interruption selon le niveau d'IT n
restitution du contexte
L'accès direct mémoire est utilisé pour
les périphériques rapides (Ethernet, disque dur).
Le processeur sous-traite au contrôleur de DMA les
opérations d'entrées sorties.
Par rapport
au pilotage de l'entrée-sortie par le processeur, le DMA
accélère les opérations: l'opération
câblée remplace une séquence d'instructions, il
effectue un double accès simultané (au contrôleur
de périphérique et à la mémoire), il n'y
a qu'une interruption en fin d'opération et non pas une IT par
mot à transférer.
Le pilotage par le
processeur d'une opération d'entrée-sortie en mode DMA
se fait en deux étapes:
programmation du contrôleur de périphérique
programmation du contrôleur de DMA.
Lors de la programmation du contrôleur de DMA, les
informations suivantes lui sont fournies: numéro du canal,
type de l'opération, adresse mémoire, longueur de la
zone.
opération |
périph -> DMA |
DMA vers proc |
proc vers DMA |
DMA vers périph |
DMA vers mem |
phases |
1 |
2 |
3 |
4 |
4' |
lect périph |
DREQx |
HOLD |
HOLDA |
DACKx, IOR |
WR, adr mem |
écr périph |
DREQx |
HOLD |
HOLDA |
DACKx, IOW |
RD, adr mem |
Ces signaux se succèdent, sauf les 2 derniers qui sont
émis simultanément. En effet, le mot à
transférer est transféré directement entre le
registre de données du périphérique et la
mémoire lors des phases 4 et 4' qui s'effectuent
simultanément.
Le mécanisme de DMA évite
la monopolisation du processeur lors des entrées-sorties.
Cette opération est faite rapidement car il faut
répondre aux contraintes du périphérique (disque
dur, réseau). Le temps de réaction dont dispose le
processeur dépend de la taille de la mémoire tampon et
de la vitesse du périphérique. Cependant la vitesse
instantanée devient moins cruciale car les contrôleurs
de périphérique intègrent une mémoire
tampon de capacité de plus en plus importante.
Le processeur exécute les
instructions.
Les phases d'exécution d'une
instruction sont les suivantes: lecture de l'instruction, décodage,
exécution .
L'exécution d'une instruction
comporte les phases suivantes: lecture de donné source,
opération, écriture du résultat.
Avec
cette approche, chaque instruction prend le même temps et se
décompose en trois phases: lecture, traitement, écriture
du résultat.
instr n |
lecture |
traitement |
ecr résultat |
|
|
|
instr n+1 |
|
lecture |
traitement |
ecr résultat |
|
|
instr n+2 |
|
|
lecture |
traitement |
écr résultat |
|
instr n+3 |
|
|
|
lecture |
traitement |
écr résultat |
Un cache correspond à une mémoire rapide placée entre processeur et mémoire ou bien à un ensemble de cases mémoires internes au processeur. La capacité, le temps d'accès et le coût déterminent une hiérarchie mémoire. Les principaux niveaux sont: les registres internes au processeur, le cache interne au processeur, le cache externe, la mémoire centrale, le disque dur local, les serveurs locaux, les serveurs distants. Cette liste est faite dans l'ordre de temps d'accès croissants, de coût financier du stockage décroissant.
Dans les processeurs standards, le flot d'instructions est exécuté de façon séquentielle. Le compteur ordinal est incrémenté lors de l'exécution de chaque instruction pour pointer sur l'instruction suivante du flot d'exécution. La valeur du compteur ordinal est rechargée à différentes occasions: soit dans un même contexte d'exécution, soit entre contextes d'exécution différents. Le changement au sein d'un même contexte d'exécution se fait lors d'un saut, lors d'un appel de procédure, fonction ou méthode. Le changement lors d'un passage d'un processus à un autre se fait par changement de contexte lors d'un appel système, lors d'une interruption matérielle ou logicielle, à l'initialisation du processeur ou d'un processus.
Les applications les plus courantes sont le traitement de texte, tableur, présentation. base de données
Le code ascii associe un octet aux touches d'un clavier:
ascii ascii |
0..9 0..9 |
A..Z A..Z |
a..z |
blanc blanc |
décimal decimal |
48..57 48..57 |
65..90 65..90 65..9065..90 65..90 65..90 65..90 |
97..122 97..122 |
32 32 |
hexa hexa |
30..39 30..39 |
41..5A 41..5A |
61..7A 61..7A |
20 20 |
Table
Ascii complète
UTF8
code d'autres alphabets ou idéogrammes (Unicode
Transformation Format-8)
En
UTF 8 un caractère est codé sur 1 à 4 octets: la
longueur est donnée par la position du premier 0 selon le
tableau suivant:
Représentation binaire UTF-8 |
Signification |
---|---|
0xxxxxxx |
1 octet codant 7 bits |
110xxxxx 10xxxxxx |
2 octets codant 11 bits |
1110xxxx 10xxxxxx 10xxxxxx |
3 octets codant 16 bits |
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
4 octets codant 21 bits |
Mime formate les messages et les requêtes HTTP
Le
séparateur est une chaîne de caractères
spécifique qui sépare chaque pièce jointe
Le
type de chaque pièce est précisé: text/, image/,
audio/, video/, application/
Exemple
MIME-Version:
1.0
Content-Type: multipart/mixed;
Pour chaque
contenu:
Boundary="-------NextPart_000_000D_01C2562B.F0FEAD40"
Content-type='text/html'
"contenu
du fichier"
Les raccourcis claviers effectuent des opérations de
base sur beaucoup de logiciels:
toutSélectionner:
ctrl/a(ll
annulerDernièreOpération:
ctrl/z(ero
fermer: ctrl/c(lose,
coller: ctrl/v,
copier:
ctrl/c,
couper ctrl/x,
print ctrl/p
éditer
ctrl/e,
rechercher: ctrl/f(ind, suivant ctrl/g
ouvrir
ctrl/o(pen,
save ctrl/s,
quitter ctrl/q
annule
dernière opération: ctrl/z(ero
ctrl enfoncé
sélections multiples
alt/impEcr copie de la fenêtre
courante dans le presse-papier
alt/shift bascule
qwerty/azerty
Le bouton gauche de la souris valide un choix
écran alors que le bouton droit active une aide
contextuelle.
Spécifique navigateur: historique: ctrl/h,
ctrl/n: nouvelle fenêtre, ctrl/d: crée un favori,
alt/début: home
Raccourcis seaMonkey:
ctrl 1 nvlle
fenêtreNavigateur, ctrl 2 messagerie, ctrl e édition de
la page courante, ctrl h historique, alt shift bascale
qwerty/azerty
Raccourcis windows
W/D(esktop,
E(xplorer, R(un Boot Suppr ou F2,
Clavier virtuel
smartphone édition sms note texte
<space> move
cursor!
<appui long> sélection "couper copier
coller" déplacer les poignées
windows
10
modification de l'écran
d'accueil>démarrer>paramètres>personnaliser
Déplacement
sans souris tab>retour>flèches>retour
Productivité
bureautique: Le gestionnaire de fichiers affiche les fichiers et
répertoires récemment utilisés
taper la
commande dans la ligne de recherche pour un accès direct!
Smarphone
Screenshot ou capture d’écran : appuyez simultanément sur Marche/Arrêt et Volume du bas
L’image capturée se retrouve dans la Galerie photo>Captures d’écran.
Une représentation logique binaire est associée
tensions 0 et 5V,
0 correspond à 0 volt et 1 correspond
à 5 volts!
Ces données binaires codent les données
informatiques!
Les éléments binaires ou bits sont
regroupés par mots de 8, 16, 32 ou 64 bits.
Un
mot de 8 bits est appelé octet ou "byte".
Un
octet a 8 bits, sa valeur varie donc de 0 à 255 (2 puissance
8).
L'octet s'écrit en binaire, en décimal,
en hexa...ou autre.
En binaire, il s'écrit sur 8
bits à 0 ou 1 00000000 à 11111111.
En
décimal, il vaudra de 0 à 255 (2 puissance 8 -1, valeur
maximum).
En hexadécimal, il s'écrit avec 2
chiffres compris entre 0 et F (00 à FF).
En
binaire, l'élément de base, le bit prend la valeur "0"
ou "1" soit un octet (8 bits) 10011011 (o)
Pour
transcrire le binaire en décimal, il faut ajouter les poids
binaire de chaque bit selon son rang,
tout comme il
existe les unités, les dizaines, les centaines si l'on reste
en décimal
poids binaire: (2)7 (2)6 (2)5 (2)4
(2)3 (2)2 (2)1 (2)0
décimal : 128 64 32 16 8 4 2
1
octet proposé : 1 0 0 1 1 0 1 1
valeur
décimale de l'octet= 128+16+8+2+1 = 155 (d)
En
codage hexadécimal, l'octet se présente en deux groupe
de 4 bits 1001 et 1011,
chacun de ces groupes est codé
en hexa, c'est à dire de 0 à F ce qui correspond de 0 à
15 en décimal
(mais le décimal est
représenté sur deux caractères au dessus de 9
donc l'hexa est plus utile avec un seul caractère)
Soit
pour l'octet 10011011 alors 1001 =9 et 1011 =B
Donc
10011011 (o) est 9B (h) et 155 (d)
Le masque utilise le codage
binaire. Pour un masque les bits à gauche sont à 1.
Un
octet donné a 9 valeurs possibles: 0 + 8 bits mis a 1
successivement en partant de la gauche
les 9 valeurs possibles
d'un octet sont:
0000 0000 soit 0,
1000 0000 soit 128,
1100 0000 soit 192,
1110 0000 soit 224,
1111 0000
soit 240,
1111 1000 soit 248,
1111 1100 soit 252,
1111
1110 soit 254,
1111 1111 soit 255.
binaire |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
hexa |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
décimal |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Les VLAN présentent les intérêts suivants:
Améliorer la gestion du réseau.
Optimiser la bande passante.
Séparer
les flux.
Segmentation : réduire la
taille d'un domaine de broadcast,
Sécurité
: créer un ensemble logique isolé pour améliorer
la sécurité.
Pour communiquer entre des machines
appartenant à des VLAN différents, il faut passer par
un routeur.
Il existe différents types de VLAN
:
VLAN de niveau 1 (ou VLAN par port) : on y
définit les ports du commutateur qui appartiendront à
tel ou tel VLAN. Cela permet entre autres de pouvoir distinguer
physiquement quels ports appartiennent à quels VLAN.
VLAN de niveau 2 (ou VLAN par adresse MAC) : on indique directement
les adresses MAC des cartes réseaux d'un VLAN, cette solution
est plus souple que les VLAN de niveau 1, car la carte
fera partie du VLAN quelque soit le port sur lequel la carte est
connectée,
VLAN de niveau 3 (ou VLAN
par adresse IP) : même principe que pour les VLAN de niveau 2
sauf que l'on indique les adresses IP (ou une plage d'IP) qui
appartiendront à tel ou tel VLAN.
VLAN
de niveau 4 par port applicatifs
Les principales attaques sur internet sont :
la propagation de virus, souvent par pièce jointe,
les spams,
la pèche d'information par email (phishing),
les pages en ligne "piègées"
les blocages de serveurs ou d'équipements de communication,
l'injection de fausses informations dans des serveurs (web, DNS, routage etc..)
Cert-IST (Computer Emergency Response Team - Industrie,
Services et Tertiaire) assure une veille des risques
Selon le
Cert-IST, les attaques se diversifient et leur nombre continue de
croitre!
Les intrusions se traduisent par:
des
serveurs piratés,
des numéros de cartes bancaires
volés,
des sites web modifiés,
Les
attaques ciblées de sites web entament la crédibilité
du propriétaire, des attaques ont déjà
visées:
le Département de la
justice américaine (août 1996),
la CIA (Central Intelligence Agency) (sept. 1996)
les sites d'ecommerce yahoo, google etc..