Concepts informatiques de base

Pierre Vincent

Différentes couches

Un ordinateur comporte les couches suivantes:

Système d'exploitation

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.

Fichier

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.

Mémoire virtuelle

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.

Modes utilisateurs et système

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.

Ordonnancement

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!

Pagination

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.

Processus

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.

Programme

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.

Administrateur

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.

Appels systèmes

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.

Matériel

Instructions

Tout processeur exécute un jeu d'instructions prédéfini.
Ces instructions sont rangées dans un fichier exécutable.

Initialisation (Bootstrap)

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

Opérations de base d'un ordinateur

 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).

Périphériques

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.

Contrôleur de périphérique

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.

Scrutation

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.

Interruptions

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

DMA

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.

Succession de signaux lors d'un transfert DMA

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.

Processeur

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



Hiérarchie mémoire-Caehe

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.

Instructions

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.

Applications

Les applications les plus courantes sont le traitement de texte, tableur, présentation. base de données

Représentation des données



Code ascii

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"

Raccourcis clavier

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.

Binaire

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.

Conversion binaire-hexa-décimal

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



VLAN

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

Sécurité-Attaques

Les principales attaques sur internet sont :


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..