manuel
Partie 3

Dans cette nouvelle partie nous aborderons tout ce qui est logiciel.

I/ Acquisition de la notion de logiciel

Un logiciel, (=application) est quelque chose d’enregisté et qui est composé d’octets. Un logiciel se présente sous forme logique, il n’a aucune réelle consistance, ça n’est pas matériel.

II/ Exemple de logiciels

Vous pouvez utiliser Windaube (= Windows), c’est un logiciel, comme système d’exploitation. Vous pouvez utiliser Word comme logiciel d’écriture, Excel comme tableur, Paintbrush comme logiciel de dessin, Freecell comme logiciel de jeux de carte…
1) Les systèmes d’exploitation

Il y a plusieurs systèmes d’exploitation.

Commençons par Unix, car c’est le système d’exploitation qui a servi de base à tous les autres, il à été conçu par des américains du MIT
(lexique). Il date de 1976.
Pour Linux ; il a été inventé par Linus Torvalds. En 1991 il sort sa première version qu’il appelle 0.99 pour bien montrer qu'elle restait à améliorer. D’ailleurs de nos jours, des mises à jour faites par des programmeurs, sont distribuées sur internet en quantité. L’avantage de ce sytème d’exploitation est d’être entièrement gratuit. De plus l’utilisateur peut modifier le programme (le logiciel) Linux lui même. Ce système d’exploitation ne plante que très rarement du à ces applications stables car c'est un OS de serveur.
Linux peut se présenter de deux manières, sous forme de ligne de commande, (lexique) ; ou sous forme de système d’exploitation graphique à la Macintosh.
Ce système d’exploitation à été pendant longtemps très compliqué a installer mais les versions récentes sont des merveilles de convivialité.

1.1) Notion du système d’exploitation

Un système d’exploitation est un ensemble de programmes et de sous-programmes qui ont pour rôle de gérer le matériel, pris dans son sens le plus large. C’est l’intérmédiaire entre les applications et le matériel, c’est lui qui reçoit les demandes des applications et les transmet au matériel. Un système d’exploitation digne de ce nom n’acceptera jamais qu’une application fasse appel directement au matériel. C’est le système d’exploitation qui trie ces commandes et dépiste les erreurs de manipulation et les demandes absurdes.
il doit aussi organiser la mémoire de l'ordinateur de manière a ce que tout le monde y trouve son compte: les utilisateurs, les logiciels, et lui même.

1.2 Ce qu’il doit faire

1.2.1 :Il doit gérer la mémoire de manière à ce qu’aucun programme ne puisse dépasser sa zone réservée.

1.2.2 :Intercepter tous les accès aux périphériques.

1.2.3 :Gérer le disque dur et les espaces stoquages: lecteurs etc...

1.2.4 :Offrir aux applications une gestion correcte des programmes. Il s’agit en particulier de permettre aux diverses applications de fonctionner de manière totalement indépendante. Un programme ne doit jamais empiéter sur une zone qui a déjà été allouée à un autre programme.

1.2.5 :Il doit protéger les données enregistrées contre tout accès non autorisé.

etc...

1.2 DOS

Microsoft a entièrement tiré son système sur Xenix 3 (qui etait lui meme une copie de Minix, lui meme une copie d'Unix), donc ses utilisateurs ne seront pas perdus, cependant, il est plus simple que ce dernier et ne gère pas les aspect complexes des reseaux et des utilisateurs, de plus il est monotache. Il se présente sous forme de ligne de commande.

1.3 Windows

Les premiers systèmes d'exploitations Windows etaient basés sur DOS et n'apportait en plus qu'une interface graphique. Les Windows avec "noyau" NT (network) sont bien plus stables car utilisent un mode protégé bien plus efficace pour prévenir des mauvaises operations que les applications peuvent effectuer (une erreur peut faire planter tout un système).
Le dernier Windows: dit "XP" comme experience est en fait le même que Windows 2000 (NT 5) et est donc bien plus puissant et stable que Windows 4 soit: Windows 95, 98 et Me.

2) Le BIOS :

Il n'est pas vraiment logiciel , puisque il est enregisté dans une puce de mémoire morte (ROM) ou plutot EEPROM de nos jours
(lexique)
. Il est l'interprète entre tout ce qui est logiciel et matériel. Il est possible d'effectuer différents réglages importants pour la détection correcte du matériel ou son fonctionnement de manière optimale. Par exemple, dans le bios, il est possible d'effectuer le réglage du port parallèle. Si il est réglé sur SPP (lexique) , il sera plus lent que si il est réglé sur ECP (lexique), ou EPP; mais en EPP (lexique), les imprimantes ne sont pas prises en compte. Le réglage des paramètres est réservé aux personnes un peu initiées car il règle des paramètres de base qui peuvent influer grandement sur le fonctionnement correct de la machine.
Donc toutes ces restrictions d'accès seront comprises très facilement. Un bios doit détecter au démarrage plusieurs choses, il doit détecter chaque périphérique connecté. Il commence par initialiser les cartes d'extension en commençant par les PnP, (lexique) ou Plug and Pray tellement ça ne fonctionne jamais, puis termine par les cartes branchées sur des ISA (lexique). Ensuite il détecte le microprocessur, la mémoire vive, la mémoire cache, puis les périphériques branchés sur des IDE (lexique) en commençant par le primary master, j'usqu'au secondary slave en passant par le primary slave et le secondary master. Il est possible de définir manuellement les caractéristiques des ports IDEs dans le bios, ce qui augmente la vitesse de détection au démarrage, il est aussi possible de brancher les périphériques qui sont habituellement sur des IDE, sur des cartes d'extension SCSI (lexique) (périphs = HDD, lecteur CD/DVD, graveurs, ZIP...) ou encore de brancher le lecteur de CD et /ou pas DVD sur une carte son qui les prend en charge. Dans les deux cas, le matériel sera alors géré par la carte d'extention et non plus par le bios ce qui peut accélérer les performances. Le bios continue sur sa lancée et pour certaines versions de bios affiche les caractéristiques qu'il a pu détecter j'usqu’ ici.
(quantité de cache, fréquence du microprocesseur, présence de coprocesseur mathématique ou non ...) Dans le bios des cartes mère jumperless il est possible de régler les paramètres de configuration du coefficient multiplicateur et de la fréquence externe directement dans le bios. Par exemple les cartes mères Abits intègrent dans le bios le « cpu soft menu ». Le bios est contenu dans une puce d’eeprom (lexique) qui contient 128 Ko d’informations. Il est possible de copier un bios en achetant une puce d’ eeprom (lexique) et de mettre le bios en mémoire vive par l’option video bios shadow ou bios shadowing, puis d’insérer la puce vierge à la place du bios original ordinateur allumé et à partir d’ici, si votre carte mère n’est pas cour-circuitée par l’opération réenregistrez le bios en CMOS (lexique) en changeant quelques paramètres puis redémarrez l’ordinateur.
Si il redémarre correctement l’opération a bien fonctionné. Si il ne s’allume même pas, alors l’opération est à refaire. Réinsérez la puce du bios d’origine. Remarque : CETTE OPERATION EST TRES DANGEUREUSE POUR LE MATERIEL , ET NE DOIT PAS ÊTRE EFFECTUEE PAR UNE PERSONNE D'EXPERIMENTATION BASSE DANS L'ELECTRONIQUE.
Songez aussi que votre garantie ne rembourse pas en cas de dégats!
Attention, le courant est invisible. Ne vous inquiétez pas pour vous car c'est du 5 Volts, 12 au maximum. Inquiétez vous plutôt pour votre ordinateur, qui lui ne résistera pas à un court-circuit, même de 5 Volts.

Il existe en ce moment des projets pour changer le concept du BIOS au profit d'un mini systeme d'exploitation, appelé EFI je crois, ce serait lié au projet palladium. (je ne suis sur de rien pour ca)

3) La programmation:

Quand on débute en informatique on ne sais pas et on ne se préocupe pas de savoir comment sont fait les logiciels mais quand on se le demande il n'y a pas toujours quelqun en face pour nous répondre alors je vais l'expliquer:
Il faut utiliser ce qu'on appelle la Programmation, c'et ce qui tient en fait toute l'informatique, en effet c'est grâce à elle que nous pouvons automatiser et accélérer des tâches qui pouvaient être astronomiques auparavant en utilisant des logiciels.
La programmation repose sur le principe d'algorithmie en se servant de boucles et de conditions et de commandes de base on peut créer des logiciels et donc commander l'ordinateur (lui dire quoi faire).

3.1 Le concept original:

Au début, le 1èr ordinateur (1945) ne se programmait pas de la manière que l'on connait, mais de manière peu souple avec des switchers ou des bandes perforées et autre... et il nous retournait les informations sur des LEDs ou sur papier...
Plus tard sont arrivés le clavier et l'ecran, appelés périphériques CON.
Et à partir de là, une interface dite Homme-machine beaucoup plus conviviale est apparue. La programmation dite machine était utilisée, elle consiste à entrer en base binaire ou Octale (à l'époque, maintenant on utilise seulement l'Hexadecimal) les instructions que devait suivre le microprocesseur de type SISC ou CISC (le type dépend de la complexité du processeur).
Cependant, ce n'etait que très peu visuel, et il nous fallait sans arrêt une ressource à portée de main.
Alors est apparu l'assembleur, le même langage de programmation, mais au lieu d'écrire 4C,5H,8E,9A on écrit ADD (AX + DX),CX ce qui est beaucoup plus parlant (relativement). Mais à ce niveau, pour passer de ADD a 4C, il fallait un compilateur. La compilation est le fait de traduire une syntaxe en langage machine. comme ici la traduction est très simple ce compilateur s'appelle un assembleur (d'où le nom du langage).
Puis d'autres langages ont été créés pour simplifier la programmation. Tous basés sur le langage machine, par exemple le cobole, on a commencé à parler de Haut niveau, oui, car une instruction correspondait à une dizaine de lignes machines. On ne s'occupe plus des déclarations de registres et autres contraintes comliquées...
De nos jour le langage le plus haut niveau est le BASIC (Beginners All Puprpose Symbolic Intruction Code).

3.2 Quest-ce qu'un algorithme ?:

On utilise souvent ce mot, normal, la programmation est une suite d'instructions qui créént un effet particulier. On dit par exemple que pour trier une liste de nombres, il faut un algorithme de tri.

3.3 Bas niveau, haut niveau ?:

Un langage de bas niveau est très difficile à utiliser. par exemple, vous devez créer vous même l'algorithme qui fera la racine carrée à partir de divisions ou encore utiliser des soustractions et des pointeurs pour verifier une égalité!etc...
Tandis que par exemple le Basic, lui, offre des fonctions d'un niveau extrêmement élevé comme le sinus ou le cosinus, ou encore la possibilité d'afficher de demander une phrase à l'utilisateur en une seule ligne de programmation, chose qui est très longue à réaliser en assembleur.

III/ Les données en informatique:

1) Intro:

Ce chapitre est important vu que c'est une des fonctions pour laquelle a été inventée l'informatique.
A la base pour stocker des informations on utilisait le papier et on écrivait. Plus tard sont arrivées d'autre méthodes, mais la meilleure solution qu'ait trouvé l'humanité c'est: le premier calculateur programmable (ordinateur, de la signifcation étymologique "dieu qui met en ordre le monde"). On a voulu plus tard utiliser ce support pour enregistrer d'autres types d'informations que des résultats de calculs sur bandes perforées.
Alors, on a mis au point la puce électronique qui pouvait enregistrer: la mémoire vive. (il en existait deja pour les retenues d'operations)
son fonctionnement est assez simple.
Des transistors conservent l'état (fermé/ouvert) pendant 6nano secondes (pour les mémoires DIMM (SDRAM)) et la restituent si on leur demande. Bien sûr pour ne pas que les données s'effacent il faut rafraîchir, alors à chaque cycle d'horloge (externe) on refait une passe, et les transistors précedemment chargés se rechargent à bloc, les vides restent vides : sauf en cas de changement de la zone de mémoire.
De cette manière on stocke une information binaire c'est à dire composée de 1 ou de 0. Dans une mémoire de 128Mo il y a 1.093741824*10^9 (milliards) de bits, donc autant de transistors, d'où si l'on fait le calcul, le prix toujours plus en baisse du transistor. Ils sont rangés en ligne (Row) et en colonnes(Columns).

2) Le binaire:

Le binaire, comme dit ci-dessus, sert donc à stocker des informations dans les ordinateurs, car il représente, un niveau de tension ou rien.
Vous me direz, pour augmenter la vitesse, on pourrait faire 10 niveaux de tension pour nous éviter des conversions incessantes de la base 10 (décimal) en base 2 (binaire); je répondrai: "Bonne idée, mais déjà étudiée et n'a pas abouti, car même standardisées, il y aura toujours des petites différences de voltages qui créeront des incompatibilités et beaucoup d'erreurs. Déjà qu'avec tout ou rien on a parfois des erreurs !"
Pour palier à l'effet d'erreurs hyper rare qui peut intervenir dans des systèmes binaires, on a mis au point un système de code binaire GRAY, qui ne peut changer que un digit à la fois. Et avec ça, une détection d'erreurs ECC
(lexique) qui permet d'éviter certains problèmes de restitutions de données.
Concrètement le binaire marche comme ceci:

(code natuel)

Binaire: --- Décimal:

0 = 0

1 = 1

10 = 2

11 = 3

100 = 4

101 = 5

110 = 6

111 = 7

1000 = 8

1001 = 9



GRAY: (ou code réflechi, nom utilisé pour une raison d'effet de miroir vertical si tout les nombres sont en colonne):



0000 = 0

0001 = 1

0011 = 2

0010 = 3

0110 = 4

0111 = 5

0101 = 6

0100 = 7

1100 = 8

1101 = 9



ainsi de suite...


Compris ?

on remarque que, à chaque fois que le nombre est rond (10,100,1000,...), on tombe sur une puissance de 2 (2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,655536,131072,...) vous remarquez que j'ai mis 1024 en gras, oui, car c'est la fin de mon nom!
on peut donc dire que avec 4 digits binaires (4 chiffres) on peut faire 2^4 (16) possibilités.

3) L'octet:

"L'octet" vient du mot octal qui signifie huit. Dans un octet on met 8 digits binaires, ce qui donne (c'est important) 2^8 (256) possibilités.

4) Le stockage d'informations diverses:

4.1 Le texte:

Commencons par les caractères. Les caractères se codent sur un octet, parce que la table ASCII
(lexique) comporte 256 caractères, elle tient donc dans un octet (de 0 a 255). voilà la table ASCII:
           Regular ASCII Chart (character codes 0 - 127)

000 (nul) 016  (dle) 032 sp 048 0 064 @ 080 P 096 ` 112 p

001  (soh) 017  (dc1) 033 ! 049 1 065 A 081 Q 097 a 113 q

002  (stx) 018  (dc2) 034 " 050 2 066 B 082 R 098 b 114 r

003  (etx) 019  (dc3) 035 # 051 3 067 C 083 S 099 c 115 s

004  (eot) 020  (dc4) 036 $ 052 4 068 D 084 T 100 d 116 t

005  (enq) 021  (nak) 037 % 053 5 069 E 085 U 101 e 117 u

006  (ack) 022  (syn) 038 & 054 6 070 F 086 V 102 f 118 v

007  (bel) 023  (etb) 039 ' 055 7 071 G 087 W 103 g 119 w

008  (bs) 024  (can) 040 ( 056 8 072 H 088 X 104 h 120 x

009 (tab) 025  (em) 041 ) 057 9 073 I 089 Y 105 i 121 y

010 (lf) 026 (eof) 042 * 058 : 074 J 090 Z 106 j 122 z

011 (vt) 027  (esc) 043 + 059 ; 075 K 091 [ 107 k 123 {

012 (np) 028  (fs) 044 , 060 < 076 L 092 \ 108 l 124 |

013 (cr) 029  (gs) 045 - 061 = 077 M 093 ] 109 m 125 }

014  (so) 030  (rs) 046 . 062 > 078 N 094 ^ 110 n 126 ~

015  (si) 031  (us) 047 / 063 ? 079 O 095 _ 111 o 127 





Extended ASCII Chart (character codes 128 - 255)

128 € 144  160   176 ° 192 À 208 Ð 224 à 240 ð

129  145 ‘ 161 ¡ 177 ± 193 Á 209 Ñ 225 á 241 ñ

130 ‚ 146 ’ 162 ¢ 178 ² 194 Â 210 Ò 226 â 242 ò

131 ƒ 147 “ 163 £ 179 ³ 195 Ã 211 Ó 227 ã 243 ó

132 „ 148 ” 164 ¤ 180 ´ 196 Ä 212 Ô 228 ä 244 ô

133 … 149 • 165 ¥ 181 µ 197 Å 213 Õ 229 å 245 õ

134 † 150 – 166 ¦ 182 ¶ 198 Æ 214 Ö 230 æ 246 ö

135 ‡ 151 — 167 § 183 · 199 Ç 215 × 231 ç 247 ÷

136 ˆ 152 ˜ 168 ¨ 184 ¸ 200 È 216 Ø 232 è 248 ø

137 ‰ 153 ™ 169 © 185 ¹ 201 É 217 Ù 233 é 249 ù

138 Š 154 š 170 ª 186 º 202 Ê 218 Ú 234 ê 250 ú

139 ‹ 155 › 171 « 187 » 203 Ë 219 Û 235 ë 251 û

140 Œ 156 œ 172 ¬ 188 ¼ 204 Ì 220 Ü 236 ì 252 ü

141  157  173 ­ 189 ½ 205 Í 221 Ý 237 í 253 ý

142 Ž 158 ž 174 ® 190 ¾ 206 Î 222 Þ 238 î 254 þ

143  159 Ÿ 175 ¯ 191 ¿ 207 Ï 223 ß 239 ï 255


ceux qui ne sont pas reconnus () sont des caractères inconnus de votre police ou de windows.
Les tables ASCII étendues (de 128 a 255) dépendent de la page de codes (850 ou 437, etc...).
Expliquons les 13 premiers caractères:
00 = NUL Null                  rien

01 = SOH Start Of Heading début d'en tête

02 = STX Start Of text début de texte

03 = ETX End Of Text fin de texte

04 = EOT End Of Transmission fin de transmission

05 = ENQ Enquiry Interogation

06 = ACQ Acknowledge accusé de reception

07 = BEL Bell cloche

08 = BS Backspace retour (fleche au dessus de entrée)

09 = HT Horizontal Tabulation tabulation ->

10 = LF Line Feed Saut de ligne

11 = VT Vertical Tabulation tabulation |

12 = FF Form Feed saut de page

13 = CR Carriage Return retour chariot (touche entrée)


ce sont des caractères invisibles ce qui explique que dans les fichiers, au début, il y a ce qu'on appelle une "en-tête" qui donne des infos sur le fichier. un fichier ASCII (.txt) de 15 lettres (espace compris) prendra 15 octet+en tete.

4.2 Les images:

4.2.1 Le format Bitmap

Ce format enregistre les images en 24 bits, un octet par composante de la synthèse additive (Rouge Vert Bleu, RVB ou RGB (Red Green Blue)).
exemple de couleur en 24 bits:

-R   V   B-

125 230 56   (un vert un peu clair brillant)
255 255 255 (blanc) 0 0 0 (noir) 128 128 128 (gris 50%) 0 255 255 (bleu clair) 0 0 255 (bleu normal) 255 0 0 (rouge normal) 255 255 0 (jaune) 255 0 255 (violet-rose)

le 24 bits propose comme cela 16.777216*10^6 (millions) de couleurs, on les appelle couleurs réelles car l'oeil humain ne décerne pas de différence entre 2 tons directement juxtaposés.

de cette manière, point par point, en balayant une image on l'enregistre.
mais on voit tout de suite l'inconvénient de sa grande taille, alors on a inventé des compressions comme le RLE
(lexique) ou le JPG (lexique) etc...

4.2.2 Le GIF

et d'autres formats, font eux, une palétisation en 256 couleurs, ce qui réduit grandement la taille, mais inflige une perte de qualité dans les dégradés en particulier.





index définitions