mercredi 21 octobre 2015

Le B-A BA de l'assemblage (hardware)

J'ai écrit cet article initialement dans le cadre d'une série consacrée à l'assemblage d'un NAS (un type d'ordinateur spécialisé sur certaines tâches), il met donc le focus, par moment, sur certains aspects particulièrement intéressants dans ce contexte.

Cependant, je me suis rendu compte après coup qu'il est d'une portée plus générale ; il décrit les composantes principales d'un ordinateur, le matériel pour l'essentiel (hardware), avec inévitablement quelques mots sur les aspects logiciels (le software, Bios/Uefi et Système d'exploitation).

Si vous avez des bonnes notions en hardware et que vous avez déjà assemblé des PC, cet article ne devrait pas vous concerner.

Si vous n'avez aucune notion en hardware mais que ça vous intéresse, ça devrait constituer une bonne vulgarisation (et en tout état de cause un pré-requis pour envisager de monter un NAS ou plus généralement un ordinateur quel que soit son usage). J'ai fait dans le concis (tout est relatif) car il existe des multitudes de ressources intéressantes sur le web ; j'en ai hyperlinké certaines dans l'article qui compléteront très utilement cette introduction, et recensé d'autres à la fin.

Je vais commencer par définir ce que sont une architecture et une micro-architecture car ces sujets ne sont que rarement abordés alors même qu'ils constituent la base de tout (comme si c'était évident pour tout le monde).


Architecture processeur

Une architecture de processeur détermine les caractéristiques essentielles d'un processeur d'un point de vue externe (du point de vue de ceux qui l'utilisent, typiquement le système d'exploitation, Windows par exemple).

Les architectures les plus courantes sont désignées par des termes barbares : x86, ARM. x64 (aka EM64T, x86-64, Intel 64)

Parmi les caractéristiques définies par une architecture, la principale est le jeu d'instruction qui détermine les opérations élémentaires que le micro-processeur est capable d'exécuter (et par là, une partie importante des capacités de la plateforme).

Tout programme qui s'exécute sur un ordinateur est à un moment ou à un autre traduit en code machine et est donc constitué au final d'une suite d'instructions exprimées dans le jeu d'instruction supporté par le processeur et défini par l'architecture. Cette suite d'instruction constitue un programme informatique et est donc exprimée dans ce qu'on appelle du code machine (un code informatique exprimé dans le langage de la machine, c'est à dire dans le langage du processeur).

Précision importante : le paragraphe précédent est inexact car il existe en fait plusieurs types de programmes et que certains ne sont pas traduits en code machine ; c'est toutefois une approximation suffisante pour notre explication sur le hardware, il est inutile de vous encombrer l'esprit avec ceci pour le moment. Je prévois un article là-dessus ultérieurement, je viendrais le référencer ici quand il sera prêt.

La conséquence concrète de ceci est que tout programme directement écrit en code machine pour une plateforme donnée, ou encore compilé pour cette plateforme (traduit en code machine par un logiciel utilisé par les développeurs) pourra s'exécuter sur n'importe quelle machine équipée d'un processeur, quel qu'il soit, dès qui est basé sur la même architecture. C'est pourquoi vous pouvez installer Windows, par exemple, sur n'importe quel PC compatible, quel que soit le fabricant du processeur.

L'essentiel des processeurs pour serveurs ou machines de bureau est basé depuis plus de 30 ans sur l'architecture x86 définie par Intel et qui a évoluée ensuite en x64 pour permettre l'émergence des systèmes 64 bits (pour faire court, des systèmes plus puissants car capable d'adresser plus de mémoire, le x86 étant 16 bits  à la base dans la fin des années 70 et ayant évolué en 32 bits avec les PC 386 -ça parlera aux anciens-).

Intel n'est pas le seul fondeur (on appelle fondeurs les fabricants de processeurs) qui propose des processeurs x86/x64 (core i3, i5, i7, Pentium, Celeron, Atom, Xeon ...), la société AMD en propose également (Athlon, Fx, Phenom, Sempron). x64 est simplement une évolution de x86 et on continue parfois à parler d'architecture x86 par abus de langage pour désigner un système 64 bits Intel/AMD. Nous en ferons autant par simplicité, la mention x64 ne sera portée que si on a besoin de préciser spécifiquement la nécessité d'une version 64 bits (ce qui sera le cas).

Cette architecture x86 a trusté le marché mais de nouveaux besoins sont apparus plus récemment, liés au développement du marché des tablettes et smartphones par exemple, et pour lesquels cette architecture ne s'est pas avérée optimale.

Dès lors d'autres architectures ont émergées, la plus importante dans le cas d'un NAS étant ARM (il existe également d'autres architectures pour d'autres besoins spécifiques mais c'est au delà de ce qui nous intéresse). Un détail à connaître, la société éponyme ARM ne produit pas de processeur mais en commercialise le design (les plans ou les dossiers de conception si vous préférez) sous licence de propriété intellectuelle ; ainsi ce sont d'autres sociétés qui achètent le design et fabriquent les processeurs qu'on trouve majoritairement dans les tablettes et smartphones. Qualcomm par exemple est un fournisseur réputé de processeurs pour smartphones ou tablettes (gamme de processeurs snapdragon).

Une petite revue de presse semble montrer que la progression des architectures ARM risque de s'amplifier au delà des tablettes et smartphones qui constituent son marché actuel

Maintenant vous devez comprendre pourquoi quand vous achetez un Windows par exemple, vous devez choisir entre une version 32 bits si votre machine est en architecture x86 (car le code source de Windows est compilé pour cette architecture cible), et une version 64 bits si votre machine est en architecture x64 (aka EM64T, x86-64, Intel 64). Même punition si vous téléchargez une version de Linux depuis un site web, il faudra choisir une version 32 ou 64 bits selon l'architecture de votre processeur. Si votre processeur est en architecture ARM, il vous faudra une version spéciale de Windows compilée pour cette architecture (Windows RT, cette version est assez récente), du moins si vous voulez utiliser Windows.

Une petite précision : les systèmes d'exploitation 64 bits (windows, linux, Mac OS etc.)  peuvent exécuter la plupart des programmes compilés initialement pour un système 32 bits même si il est toujours préférable sur une plateforme 64 bits d'installer des programmes compilés en 64 bits et optimisés pour le 64 bits (ils seront généralement plus performants).


Micro-Architecture processeur

Alors que l'architecture définit le fonctionnement du processeur d'un point de vue externe (en gros son interface pour ceux à qui ça parle), sa micro-architecture définit son implémentation interne (comment le processeur est construit et comment il fait pour respecter ce qui est défini par son architecture).

A titre d'illustration, pour l'architecture x86, Intel a produit ses processeurs grand public selon les micro-architectures suivantes (non exhaustif, seulement le passé récent) :
  • NetBurst ; micro-architecture des PC à l'époque où on pensait augmenter la puissance continuellement en augmentant la fréquence (vitesse) de fonctionnement des processeurs ce qui s'est avéré une impasse technologique (trop d'échauffement, les processeurs fondaient et provoquaient des perturbations électro- magnétiques de mémoire) et a conduit à l'abandon de cette technologie au profit de la suivante (le dernier modèle de processeur basé sur cette micro-architecture était le le Pentium IV de mémoire)
  • Nehalem ; architecture "core" 1ére génération qui marque une rupture forte avec NetBurst en abandonnant la course à la fréquence au profit d'une réflexion approfondie et d'une remise à plat du fonctionnement du micro-processeur. C'est l'apparition des premiers processeurs core (core 2 duo de mémoire). Gravure en 45 nm
  • Sandy, 2nde génération, gravure en 32 nm (tac)
  • Ivy, 3éme génération, gravure en 22 nm (tic)
  • Haswell, 4éme génération, gravure en 22 nm (tac)
  • Broadwell, 5éme  génération, gravure en 14 nm (tic)
  • Skylake, 6éme génération (génération actuelle, à la date de rédaction de cet article), 14 nm (tac)

Pour l'anecdote, Intel après avoir du renoncer au dogme de l'augmentation continue de la puissance par l'augmentation de la fréquence de fonctionnement (abandon de NetBurst) vient de se manger une nouvelle claque en devant renoncer au dogme du tic/tac qui voulait que chaque année sorte une amélioration de l'architecture , avec une alternance tic/tac : 
  • une année en tac voyait une nouvelle version améliorée de la micro-architecture
  • une année en tic voyait simplement une diminution de la finesse de gravure des composants sans autre changement (en théorie car dans les faits, Intel a violé cette règle)

Or, Intel vient de renoncer à ce système en raison de son incapacité à produire la prochaine génération (la 7éme donc) avec une finesse de gravure de 10 nm. L'intérêt d'une finesse de gravure plus fine est multiple : gain de place, moins de dégagement thermique ...


Maintenant vous devez comprendre que à architecture constante, les ordinateurs améliorent leurs capacité grâce à des améliorations régulières de leur micro-architecture. Les micro-architectures les plus récentes permettent de gérer les dernières versions des normes respectées par les autres composantes d'un ordinateur (mémoire, disques etc.), de fonctionner plus vite, de gérer plus de périphériques, de consommer moins d'électricité etc.

Voici un exemple avec une copie d'écran issue d'une publicité Intel. La 4éme génération de processeurs Core, Haswell donc, apporte la technologie "Quick Sync Video" qui permet, en résumé rapide, d'accélérer le temps de conversion d'une vidéo d'un format à un autre (par exemple pour la diffuser vers un smartphone, ou pour du montage vidéo). Cette technologie utilise les capacités du contrôleur graphique (qui est un processeur) pour soulager le processeur de l'ordinateur, et par là améliorer les temps de réponse (mais pour en bénéficier, il faut également utiliser des logiciels compatibles qui savent l'exploiter, tout n'est donc pas si simple).

Vous pouvez par exemple gagner en performance en changeant le processeur de votre machine par un autre processeur plus rapide et/ou plus récent. Ce sera transparent (moyennant éventuellement une mise à jour de pilote) pour le système d'exploitation (dépendant de l'architecture et non de la micro-architecture). Ce point est cependant à tempérer pour plusieurs raisons que je ne vais pas exposer tout de suite car cela nécessite d'abord d'introduire d'autres notions (socket et chipset en particulier).


OS : Operating System

Système d'exploitation. C'est le premier logiciel installé sur un ordinateur et qui permet de le rendre utilisable.

Windows 95, XP, Seven (ie Window 7), Vista, 10 sont des OS propriétaires (c'est à dire payants, dont le code source est inaccessible et non modifiable) grand public, connus de tous et commercialisés par Microsoft pour les PC basés sur une architecture Intel x86. Pour les PC Macintosh de la société Apple, l'OS est Mac OS.

Il existe pour un public plus averti différentes distributions de Linux (un OS open source basé sur les principes d'UNIX qui est un OS ancien mais de référence) et tout un tas d'OS spécialisés. Pour la petite histoire, Mac OS est un système Unix ce qui est assez amusant quand ont sait que les Mac sont loués pour leur facilité d'utilisation et qu'Unix a la réputation d'être un système complexe.

Il y a un lien fort entre OS et matériel : pour que votre matériel fonctionne avec un OS donné, il faut que le support de ce matériel soit implémenté dans l'OS directement dans le code de son noyau, ou indirectement via un pilote (ou driver). Si ce point n'est pas problématique avec les systèmes mainstream (grand public) comme Windows sur architecture x86 (le fameux Wintel), il n'en est pas du tout de même avec d'autres architectures / systèmes, et il faudra être particulièrement attentif à ceci lors de l'assemblage d'une configuration.

Pilote ou driver : je reprend la définition de Wikipedia > Un pilote informatique, souvent abrégé en pilote, est un programme informatique destiné à permettre à un autre programme (souvent un système d'exploitation) d'interagir avec un périphérique.


Petite parenthèse ; Unix vs Linux (résumé très lapidaire). Les premiers systèmes Unix ont été développés notamment par des chercheurs en informatique de diverses grandes universités ; leur travaux ayant abouti et permis de déterminer le modèle d'un OS moderne et robuste (il faut se replacer dans le contexte de l'époque), des sociétés commerciales ayant collaborées au projet ont rendu le système propriétaire et payant (du fait qu'elles ont soumis à licence intellectuelle payante les parties du code dont elles avaient financé le développement) ce qui a bien entendu fâché les bénévoles qui avaient fortement contribué au développement initial. Du coup, des initiatives diverses ont tentées de remédier à cette situation. Le projet open source GNU a produit énormément d'outils indispensables (shell, compilateur, portage des principales commandes unix, nombreuses librairies indispensables) mais a échoué à développer le noyau du système (le kernel, la partie la plus complexe et la plus importante). L'université de Berkeley a ré-implémenté les parties du code source de son Unix qui comportaient du code sous licence (produit par des sociétés commerciales) et fournit sous licence open-source diverses moutures de systèmes UNIX (Unix de souche BSD, dont FreeBSD qui est la base de FreeNas, un OS dédié aux NAS dont nous parlerons). Par ailleurs, le projet  open source Linux a permis de développer un noyau opérationnel qui couplé aux outils GNU a permis de diffuser le système Linux (qu'on devrait en fait appeler Linux/GNU ou GNU/Linux) qui existe en de nombreuses versions qui servent pour certaines de base à différents OS dédié NAS. Donc Linux est très proche d'Unix dans ses concepts mais il en diffère cependant (pas la même base de code source) et n'est pas un système Unix (quelques différences significatives). Les différentes versions de Linux sont appelées des distributions, elles sont toutes open source mais certaines sont payantes (confusion fréquence, le Free de Free Software veut dire code source ouvert, et pas logiciel gratuit). Citons quelques distributions parmi les plus connues : RHEL (RedHat Enterprise Linux), Debian, Ubuntu, Mint, Suse, CentOS etc. Il en existe des dizaines, très proches mais customisées et spécialisées pour telle ou telle raison (un usage particulier, un recours plus ou moins permis à des éléments soumis à licence etc).


Un ordinateur est un assemblage de pièces

Carte mère
C'est la carte électronique principale de tout ordinateur, sur laquelle on trouve tous les autres éléments constitutifs de l'ordinateur, directement enfichés dessus comme la mémoire ou le micro-processeur par exemple, ou reliés par des câbles comme les disques durs par exemple, ou encore directement soudés sur la carte.

Les cartes mères existent en différents formats (taille physique). Le format définit aussi l'emplacement réservé aux connecteurs externes (les prises à l'arrière de votre PC et qui permettant de brancher le clavier, la souris, l'écran etc.), de telle façon que toutes les cartes au même format aillent dans tous les boîtiers prévus pour accueillir ce même format.

Les formats les plus répandus sont ATX (format classique des cartes mère de PC de bureau), micro ATX (une variante plus petite), mini-ITX (encore plus petit).



Les cartes mères prévoient des emplacement, ou slots, d'extension qui permettent d'étendre leur capacité pas l'ajout de cartes supplémentaires, appelées cartes filles ou cartes d'extension. Ces slots existent principalement (aujourd'hui) dans deux formats qui sont PCI et PCI-E (aka PCI Express, ou PCIe) en diverses versions. Pour faire court, les slots PCI-E sont intéressants pour connecter des périphériques (écrans, disques ...) qui vont pour leur fonctionnement devoir échanger rapidement beaucoup de données avec le processeur (débit élevé), tandis que les slots PCI sont moins performants mais suffisamment pour certains usages. Les slots PCI-E existent en diverses versions de la spécification (v2 et v3 se rencontrent actuellement) et avec un nombre de lignes de communication (lanes) variable (plus de lignes = débit plus élevé, dernière version = débit plus élevé, plus de lignes et dernière version = on explose tout en terme de débit autorisé par le slot).


BIOS / UEFI :
Plus haut je vous ai dis que le premier logiciel chargé sur un ordinateur était l'OS. Ben je vous ai menti, et volontairement en plus.

En fait, il y a d'abord le BIOS ou l'UEFI qui sont deux choses très similaires (UEFI est une version plus moderne, plus récente, et améliorée de BIOS. D'ailleurs on continue souvent à dire BIOS UEFI ce qui est un abus de langage). Il s'agit en fait d'un code informatique embarqué directement sur la carte mère  (on parle de firmware) et stocké dans une mémoire permanente réinscriptible (on peut la mettre à jour, on dit la flasher, pour charger une mise à jour du micro-code pour améliorer une fonctionnalité ou corriger un bug, chose qu'on est très rarement amené à faire, je vous rassure).

Ce code fournit une première couche d'abstraction pour faciliter l'utilisation du matériel. C'est également ce programme qui teste le bon fonctionnement des composants au démarrage (ça s'appelle le POST, Power On Self Test ou un truc dans le genre) et qui affiche les messages incompréhensibles que vous voyez quand vous allumez votre machine.

Exemple d'écran affiché par le BIOS à l'allumage du PC (au POST)

Pour finir, c'est le BIOS (ou UEFI) qui va démarrer l'exécution du votre système d'exploitation ; ensuite, une fois l'OS chargé, c'est lui qui prendra la main et qui se chargera de lancer les programmes dont vous avez besoin.

Donc au final et dans la vraie vie les programmes (navigateur, traitement de texte ...) s'adressent au système d'exploitation, qui s'adresse à son tour au BIOS, qui cause directement avec le petit personnel (les composants électroniques).  Les ordinateurs restent très vieux jeu en quelque sorte, ils n'ont jamais entendu parler des nouvelles tendances du management.

Cette couche d'abstraction permet à votre OS de fonctionner avec n'importe quel ordinateur compatible, quel que soit le matériel (les composants électroniques) qu'il met en oeuvre pour les entrées/sorties (écran, clavier, souris, réseau, prise usb etc.). En effet, il parle toujours de la même façon au BIOS, et ce dernier se débrouille pour traduire les demandes de façon correcte en fonction des composants utilisés sur la carte mère ; chaque carte mère a donc un BIOS spécifique (on lui parle toujours de la même façon, et il traduit en fonction des composants sur la carte mère).

Le fonctionnement du BIOS (ou UEFI je vais pas le répéter à chaque fois) est paramétrable via des écrans qu'on peut activer au démarrage de l'ordinateur en appuyant sur une touche variable selon les cartes mères (suppr en général, F2 parfois, ou F12, ou autre chose encore, à voir dans le manuel de la carte mère, et généralement c'est affiché rapidement au démarrage de la machine).

Alors s'agissant du paramétrage du BIOS : en général, vous n'avez que rarement à y toucher, aussi je donnerais une consigne simple : "pas touche" sauf si vous savez précisément ce que vous faîtes. Et en cas de souci, il y a toujours une option de menu qui permet de revenir aux valeurs par défaut, donc pas de panique. Le cas d'utilisation le plus fréquent est le paramétrage de l'ordre de boot qui consiste à définir depuis quels disques, et dans quel ordre, le BIOS doit chercher un système d'exploitation à charger au démarrage de la machine ; typiquement pour mettre le lecteur de DVD en premier avant le disque dur quand on a déjà un OS installé sur le disque et qu'on veut démarrer depuis un DVD pour installer un nouvel OS. Ensuite, c'est sans doute désormais la désactivation du secureboot (je m'égare, je détaillerais tout ceci dans un article plus avancé quand je trouverais le temps -sujet potentiellement très complexe-).

Précision : encore une fois j'ai volontairement simplifié la réalité... Dans les faits, les OS d'aujourd'hui s'adressent rarement au BIOS car ils s'appuient sur d'autres couches d'abstractions plus modernes, Le BIOS est utilisé principalement dans la séquence de démarrage de l'OS (bootloading) tant que les autres mécanismes ne sont pas encore disponibles.

Pour plus de détail, j'ai trouvé cette ressource qui m'a semblé plutôt lisible pour le commun des mortels. Sinon, pour ceux qui n'ont pas peur, on trouve sur wikipedia version rosbeef de très bonnes explications (mais bon c'est déjà beaucoup beaucoup beaucoup plus technique).


CPU
c'est le micro-processeur d'un ordinateur, son composant principal, son moteur.



Pentium, Celeron, Atom, Core i3, Core i5, Core i7 par exemple sont les processeurs de marque Intel parmi les plus répandus, mais on a également des processeurs fourni par AMD, Qualcomm, MediaTek et des tas d'autres fondeurs.

Le CPU est enfiché sur la carte mère de l'ordinateur via son socket. La CPU respecte une architecture processeur qui est implémentée (mise en oeuvre) de façon interne par une micro-architecture.

La CPU tourne à une certaine vitesse exprimée en Mhz (vitesse d'horloge). Plus cette vitesse est élevée, et plus le processeur est rapide (à micro-architecture équivalente, on peut avoir dans des micro-architectures différentes, des processeurs moins rapides mais plus puissant) mais plus il consomme d'électricité et corollaire plus il dégage de chaleur. Le dégagement de chaleur, appelé TDP, s'exprime en Watts et est une caractéristique importante d'un processeur (comme sa consommation)

Le choix d'un CPU se fait selon de nombreux critères. De façon basique on peut déjà consulter un benchmark de processeurs pour voir leur classement en terme de performance, puis consulter les prix et établir un ratio prix/performance. De nombreux sites spécialisés ont déjà fait de travail et il suffit de les consulter. En outre, de nouveaux modèles ne sortent pas tous les jours, et à une époque donnée, il est assez aisé de distinguer le très haut de gamme (très cher, avec des capacités d'overclocking, un peu plus puissant seulement que le haut de gamme), du haut de gamme (performance un peu moindre, pas de capacité d'overclocking), puis du milieu et bas de gamme. De nombreux sites spécialisés vous donnent ces infos, et en français s'il vous plait (giyf).

Overclocking ; c'est un ensemble de techniques qui consiste à pousser les performances d'un processeur au delà de la vitesse à laquelle il a été certifié par le constructeur. En effet, les fondeurs se gardent des marges d'erreur car la production de processeurs n'est pas une science tout à fait exacte et que statistiquement un certain nombre brûleront à une vitesse donnée parmi un lot donné ; ils sont donc certifiés pour une vitesse moindre pour éviter les retours en garantie, mais du coup il est possible de les pousser et si on a de la chance, ça fonctionnera... si on en a moins, ben on perdra tout mais c'est le jeu. Overclocker un processeur requiert un très bon niveau de maîtrise et n'est absolument pas recommandé si on ne sait pas ce qu'on fait. Sans entrer dans les détails, il s'agit d'augmenter le voltage et la fréquence d'horloge de certains composants, ce qui n'est pas simple car dans un ordinateur tout est lié, et on ne peut pas accélérer un processeur sans tenir compte des autres éléments avec lesquels il échange des données et qui doivent pouvoir suivre le rythme faute de quoi ça va bugger grave. Ceci implique des processeurs dont le coefficient d'horloge n'est pas bloqué (et qui sont vendus plus chers, les constructeurs ayant fini par comprendre que l'overclocking les pénalisait financièrement) et des cartes mères évoluées et plus onéreuses.

Gammes de processeurs : pour une micro-architecture donnée, les constructeurs segmentent leur offre en dégradant volontairement les performances de leurs meilleurs processeurs pour en réduire le coût de production (raisons techniques) et adresser des marchés différents (raisons marketing). Les processeurs différent en premier lieu par le nombre de cœurs (mono core, dual core, quad core, octo core) ; plus il y a de cœurs, plus le processeur sera apte à faire fonctionner en parallèle plusieurs programmes ou à faire tourner plus vite les programmes spécifiquement optimisés pour exploiter les architecture à plusieurs cœurs. Ensuite, les processeurs peuvent différer par de nombreux critères moins évidents à cerner en terme d'impacts (d'où l'intérêt des benchmarks) tels que la quantité de mémoire cache interne, la taille ou la vitesse de tel bus de communication, et le support ou non de tel jeu d'instructions facultatif ...

Jeu d'instructions facultatifs : si l'architecture définit un jeu d'instruction requis, il y a également des jeux d'instructions supplémentaires dédiés à des usages spécialisés qui sont facultatifs (et implémentés par des puces supplémentaires spécialisées qui assistent le processeur dans son travail). Ces jeux supplémentaires sont divers et œuvrent dans le domaine du son et de l'image (afficher rapidement une image 3D en haute résolution demande une puissance de calcul phénoménale et le processeur seul n'y arriverait pas), de la cryptographie (AES-NI chez Intel ; le cryptage des données implique le recours a des algorithmes mathématiques très complexes qui nécessitent une grande puissance de calcul, ici aussi le processeur a besoin d'aide si on ne veut pas ralentir toute la machine à cause de ces calculs), de la sécurité et du support à la virtualisation (domaine professionnel, je laisse de côté).

Si vous prévoyez de crypter toutes vos données sur vos disques, ou de crypter les communications réseau effectuées par votre machine - SSL, VPN etc. - il sera préférable de choisir un modèle qui a le support requis. De même, si vous prévoyez de faire un usage très important de l'image (exécuter des jeux dernier cri en haute résolution sur des grands écrans, faire de la retouche photo professionnelle sur des très grosses images), il vous faudra prévoir un processeur adapté ainsi qu'un contrôleur vidéo dédié.

Contrôleur vidéo: c'est un dispositif dédié à l'affichage (c'est lui qui est relié à votre prise VGA ou DVI ou HDMI qui connecte votre écran à votre ordinateur), communément appelé carte (à tort) ou contrôleur vidéo.

La plupart des processeurs modernes embarquent en leur sein un contrôleur vidéo largement assez performant pour un usage bureautique mais pour un usage plus poussé (jeux, traitement vidéo), il est requis d'ajouter une, voire deux pour les fous furieux (systèmes Crossfire et SLI), cartes vidéos dédiées. Ces cartes sont onéreuses et amènent des problématiques supplémentaires (elles prennent de la place sur la carte mère et dans le boitier, elles chauffent et nécessitent des systèmes de refroidissement, il faut que la carte mère dispose des bons slots d'extension pour les brancher et en optimiser l'usage).


Socket
On trouve à la base de tout CPU un certain nombre de broches avec une certaine disposition, et pour pouvoir le brancher sur une carte mère, celle ci doit prévoir la partie femelle correspondante. On appelle cette prise femelle un Socket.

On voit donc ici que le choix d'un processeur implique le choix d'une carte mère disposant du socket adapté (voir plusieurs pour les machines multi-processeur mais nous n'aborderons pas ce type de solution).

Nous avons parlé plus haut de la possibilité d'upgrader un ordinateur en changeant son processeur pour un plus moderne (et bien sur basé sur la même architecture, on ne peut pas mettre un ARM à la place d'un x86 sinon l'OS ne fonctionnerait plus). Cependant, de plus en plus souvent chez les fondeurs un changement de micro-architecture entraîne un changement de format du socket ; parfois pour des raisons normales (liées à l'évolution de la micro-architecture), parfois sans raison valable apparente > il s'agit alors d'une volonté de l'industrie de forcer les consommateurs à changer leur carte mère (et potentiellement en cascade d'autres composants branchés dessus) pour bénéficier des dernières améliorations, une forme scandaleuse d'obsolescence programmée.


Chipset
Un poil plus délicat à expliquer en raison d'un abus de langage fréquent.

Le terme Chipset est normalement générique et désigne un ensemble de composants informatiques (set = ensemble, chip = puce). On trouve sur une carte mère de nombreuses puces ou ensemble de puces pour divers besoins.

Mais dans le contexte de l'assemblage d'une machine on utilise ce terme pour désigner plus spécifiquement un chipset particulier (le southbridge pour les férus d'architecture) qui est chargé, en gros et en simplifiant un peu (bon beaucoup), de gérer l'accès aux disques (disques durs ou SSD), aux prises USB, au clavier, à la souris, aux cartes d'extension.

Dans les faits, le chipset est directement soudé sur la carte mère et le choix de la carte mère implique donc le choix du chipset, et comme nous l'avons déjà vu celui du socket, qui conditionne lui même le choix du processeur (parmi plusieurs possibilités).

Quelle importance ? Comme pour un même format de socket, il peut exister des cartes mères proposant différents chipsets, on se trouve à faire un choix, et ce choix est d'importance : en effet, le chipset détermine par exemple le nombre de disques qu'on peut utiliser dans l'ordinateur, le type de disques durs qu'on peut brancher (selon la version de la norme supportée par le chipset), le support de l'USB en version 2 ou 3 (USB 3 est 10x plus rapide que USB2, c'est très loin d'être négligeable) etc.


SoC
System On a Chip

Comme en informatique tout est toujours compliqué, il existe des architectures où au lieu d'avoir un couple CPU + Chipset, on a uniquement un CPU qui intègre directement en son sein les fonctions habituellement gérées par le chipset. On appelle ceci SoC (System On a Chip).

Ceci permet d'avoir des CPU qui consomment moins d'électricité, qui dégagent moins de chaleur et qui donc n'ont pas besoin d'un système de refroidissement actif (pas besoin d'installer au dessus de la CPU un ventilateur qui prend de la place). Par contre, ces SoC sont moins performants que le couple CPU + Chipset. Ils sont utilisés par exemple dans les tablettes (ben oui, allez mettre un ventilateur dans un truc qui fait 1 cm d'épaisseur ...), les smartphones (même punition et en outre la question de la consommation électrique est encore plus essentielle ici), et diverses appliances comme par exemple les box Internet (là plus pour une question de coût je dirais, et de meilleure fiabilité dans le temps que pour une question d'encombrement).

Ces SoC sont, à ma connaissance du moins, toujours vendus pré-installés sur des cartes mères (on ne peut pas acheter la CPU et une carte mère de son choix et les assembler, c'est fait en amont à la fabrication).


SSD
C'est comme un disque dur mais ça n'utilise pas de partie mécanique, c'est basé sur l'utilisation de mémoires particulières qui sont non volatiles (quand le courant est coupé, l'information qui est dans la mémoire n'est pas perdue contrairement à la RAM).

Bref, c'est beaucoup plus rapide et fiable qu'un disque dur traditionnel qui utilise des parties mécaniques (un moteur, des roulements à bille, un doigts de lecture etc.). Par contre, c'est beaucoup beaucoup beaucoup plus cher et on en réserve donc généralement l'usage au stockage de l'OS (les données, beaucoup plus volumineuses, restant stockées sur des disques durs traditionnels de beaucoup plus grande capacité)

En alternative aux disques SSD avec des capacité parfois superflues (on ne trouve désormais plus sur le marché que des modèles d'au moins 120 Go), il est possible sur certaines cartes mères d'installer une mémoire flash ou une clé USB pour stocker l'OS (assez similaire au SSD mais plus petit et moins coûteux).


RAM
C'est la mémoire vive d'un ordinateur (à ne pas confondre avec les disques qui servent à stocker les données et qu'on appelle parfois mémoire de masse, ni avec d'autres type de mémoires utilisées pour divers besoins mais dont vous n'avez généralement pas à vous soucier). Bon ceci dis, si confondez mémoire vive et mémoire de stockage, je doute que vous soyez en train de lire cet article.


Il existe différentes normes de mémoire, à priori la RAM à utiliser sera de la DDR3. L'utilisation de DDR4 sera sans doute possible avec certaines configurations récentes (dernières génération Intel Core) mais à priori ça ne présente pas grand intérêt, voire c'est contre-productif (norme trop récente).

La RAM ECC est une variante qui apporte la correction automatique des erreurs, ce type de RAM est fréquemment utilisé dans les serveurs qui ne supportent pas l'approximation et peut être requise dans certains cas.

Certaines configuration autorisent ou requièrent (plus rarement) des variantes un peu spécifiques :
  • LP, Low Profile pour entrer sur des cartes mère de petite taille permettant de bâtir des systèmes peu encombrants
  • mémoire dîte DDR3L pour Low Voltage qui se content d'une tension de 1.35V où une mémoire classique requiert 1.5V et consomment donc moins. Pour les machines qu'on veut les plus petites et silencieuses possible (moins de consommation = moins de besoin de refroidissement = plus petit boitier ...) 
Il est préférable de choisir des barrettes de RAM certifiées par le fournisseur de la carte mère retenue mais ce n'est en rien une obligation.

Pour pouvoir utiliser une quantité de RAM supérieure à 4 Go, il faut impérativement une architecture 64 bits (architecture processeur 64 bits, système d'exploitation 64 bits).

Stockage
Le stockage des données et des programmes est généralement effectué sur des disques durs mécaniques (par opposition aux SSD qui sont totalement électroniques).

La capacité de stockage des disques ne cesse de progresser au fil des années. On trouve actuellement des disques de 4To. Attention cependant, pour profiter pleinement des disques de grande taille ( > 2.2 To), il faut  une carte mère UEFI (le BIOS ne vous permettra pas de démarrer un OS installé sur un disque de plus de 2.2 To).

Les disques existent en différents formats physiques (on parle bien de leur taille, pas de leur capacité, ou des normes qu'ils supportent). Pour l'essentiel, il existe des disque 3"1/2 et des disques 2" 1/2. Les disques 2"1/2 sont surtout utilisés dans les ordinateurs portables, et les 3"1/2 dans les PC de bureau. En général, les disques 3"1/2 tournent à 7 200 RPM, et les disques 2" 1/2 à 5 400 RPM (ils sont utilisés dans les portables car ils tournent moins vite et consomment moins d'électricité et chauffent moins, mais du coup ils sont moins rapide ce qui est une des raisons pour lesquelles les portables sont moins puissants que les PC de bureau, et qu'ils sont de plus en plus souvent équipés de disque SSD ou hybrides - un disque mécanique avec un petit SSD couplé utilisé en cache pour accélérer les accès aux données les plus fréquemment utilisées).

Cependant, comme toujours en informatique cette règle n'est pas absolue. Il existe par exemple chez Western Digital la célèbre gamme des VelociRaptor qui tournent à 10 000 RPM et sont au format 2"1/2. Ce sont cependant des périphériques bien plus coûteux.

Par ailleurs, sur le marché professionnel on trouve des disques SAS (évolution de la norme SCSI) qui tournent à 15 000 RPM. Mais ce sont des solutions extrêmement onéreuses réservées au marché professionnel des serveurs de production.

Autre donnée importante (après la capacité de stockage, la taille, la vitesse de rotation), la norme supportée. Autrefois, on utilisait des disques à la norme IDE (également appelée PATA, Parallel ATA) mais ceci fait maintenant partie du passé et les derniers modèles de carte mères ne proposent souvent même plus de connecteurs à la norme IDE (on ne peut donc y brancher de disques à cette norme). Aujourd'hui la norme utilisée est la norme SATA (Serial ATA) qui existe en 3 versions. La meilleure version est la SATA III (6 Gbits de débit) mais son support n'est pas encore universel et le SATA II (3 Gbirs de débit) reste très présent à cette date.


Boitier
Bon tout ceci est bien beau mais pour le moment, on a une carte mère et plein de merdier branché dessus ce qui n'est pas très pratique.

Donc pour finir (ou presque), il nous faut un boitier pour ranger tout ça. Alors, les boîtiers (case en anglais) existent en divers formats : grande tour, moyenne tour, petite tour, pc de bureau etc.., les dénominations sont nombreuses ; les format "tour" sont plutôt prévus pour être posés au sol en position verticale, les plus grands permettent d'embarquer plus de matériel (de nombreux disques, des systèmes avec deux cartes vidéos puissantes et encombrantes, et plein de ventilateurs pour refroidir tout ça). Les formats PC bureau sont plutôt prévus pour être posés horizontalement sur le bureau, voir sous l'écran et peuvent être plus ou moins gros. Puis on a des formats divers destinés à des machines qu'on veut poser discrètement dans un coin de son salon.



Plus que la taille, ce qui est à considérer est le format de carte mère que les boîtiers savent accueillir en leur sein : ATX, micro ATX, mini ITX. Il faut bien sur une cohérence entre le format de votre carte mère et le format que le boitier sait recevoir

Ensuite, les boîtiers prévoient des emplacements pour fixer des disques durs ou SSD, en format 2"1/2 et 3"1/2, ainsi que pour des périphériques au format 5"1/4 (lecteur/graveur de DVD pour l'essentiel). Il faut que votre boitier puisse recevoir le nombre de disques que vous prévoyez de brancher sur votre carte mère.

Les boîtiers comportent souvent sur le devant, le dessus, voire le côté des connecteurs USB ou audio (prise casque, prise microphone). Selon l'usage que vous prévoyez, ça peut être un critère de choix. Ces connecteurs seront reliés à la carte mère au moment de l'assemblage.

Les boîtier peuvent être vendus avec ou sans alimentation électrique. Les alimentations électriques fournies sont généralement de qualité moindre que celles vendues par ailleurs, et il est préférable d'acheter une boitier sans alimentation électrique et d'acheter à part une alimentation et de l'installer dans le boitier.

Enfin, la qualité d'assemblage et de conception d'un boitier est à considérer. Il ne s'agit pas de se couper avec des arrêtes saillantes, que le boitier vous reste dans les mains au second démontage, ou de piquer une crise de nerf en essayant de fixer un disque. Il existe des acteurs reconnus (mais souvent chers) qui ont des produits très qualitatifs.


Alimentation électrique
Un ordinateur fonctionne avec du courant continu, sous des tensions bien précises. Le courant délivré par EDF est du courant alternatif. L'alimentation électrique a donc pour fonction de convertir le courant alternatif en courant continu de qualité (sans pics qui pourraient endommager les fragiles composants électroniques).

Les alimentations sont, à ma connaissance, au format ATX et s'installent dans tout type de boitier "standard" (je suppose qu'il doit exister des cas particuliers exotiques).

Au moment du choix, il faut s'assurer de bien dimensionner la puissance de l'alimentation ; trop faible ça ne fonctionnera pas, trop puissante vous la paierez trop cher et elle dégagera de la chaleur inutilement. Là pas de miracle, il faut regarder la puissance requise cumulée de l'ensemble de vos composants... pas évident mais heureusement il existe des sites pour ça, sinon vous n'avez plus qu'à trouver un pote électricien.

Le bloc d'alim fournit des connecteurs qui permettent de raccorder les éléments à alimenter :
  • Un connecteur spécifique (en deux parties généralement) pour alimenter la carte mère (connecteur ATX)
  • plusieurs connecteurs à 4 broches femelles, appelés MOLEX, plus très utiles aujourd'hui qui permettent d'alimenter certains ventilateurs ou des périphériques un peu anciens (périphériques IDE comme les anciens disques durs et encore parfois les lecteur/graveur de DVD)
  • plusieurs connecteurs à la norme SATA qui permettent d'alimenter les périphériques à cette norme (donc vos SSD et disques durs, lecteur/graveur de DVD récents)
  • et parfois des connecteurs plus exotiques pour certains besoins spécifiques (par exemple fournit un surplus d'alimentation à une carte vidéo surpuissante de la mort qui tue)

Connecteur MOLEX
Connecteur SATA


Il faut veiller à ce que votre alimentation prévoie suffisamment de connecteurs du bon type en fonction de ce que vous avez à brancher (en particulier, faire attention au nombre de disques). Il existe des adaptateurs Molex vers Sata qui permettent d'utiliser les connecteurs Molex pour alimenter des périphériques Sata (et en outre de les dédoubler pour certains).

Il existe des alimentations modulaires ou semi modulaires. Vous pouvez enlever les connecteurs inutiles, ce qui évitera qu'ils encombrent inutilement le boitier et gênent la circulation d'air.

Pour vous aider à choisir une alimentation : voir ici par exemple.


Trucs divers et variés
Le refroidissement de votre ordinateur se fait généralement par des ventilateurs (il existe aussi des systèmes de refroidissement liquide mais je n'en parlerais pas). Certains ventilateurs fonctionnent en aspiration (ils aspirent l'air frais extérieur vers l'intérieur pour le refroidir) et d'autre en aspiration (ils évacuent l'air chaud de l'intérieur vers l'extérieur).

Il y a généralement un ventilateur au dessus du processeur (pas le cas pour les SoC et modèles de processeur basse consommation qui se contentent d'un refroidissement passif constitué par un bloc de métal - alu en général- posé sur le processeur et qui le refroidit par capillarité via ses ailettes), plus un nombre variable dans le boitier.  Celui du processeur est fourni avec le processeur lors de son achat, en général, et les bons boîtiers sont bien équipés en ventilateurs de qualité (et bien conçus pour ne pas trop se prendre la tête tant qu'on reste dans des configurations assez standards, faut de quoi le manuel de votre boitier vous donnera les instructions pour mettre en place un refroidissement plus important pour des configurations musclées).

Un ventilateur de qualité n'est pas bruyant, résiste dans le temps, et peut adapter sa vitesse de rotation en fonction des besoins de refroidissement.  Cette adaptation peut se faire en statique : suivre ce lien pour plus d'informations. Mais il peut également se faire de façon dynamique avec les cartes mère modernes : dans ce cas, on branche les ventilateurs sur la carte mère (ils sont alors alimentés par la carte mère au lieu d'être alimentés par le bloc d'alimentation) et c'est la carte mère qui va adapter leur vitesse en fonction de la température de la carte (ou du processeur) mesurée en temps réel via des capteurs de température intégrés à la carte mère. Des logiciels permettent également d'agir dans ce cas (et également le BIOS).

Si vous achetez des ventilateurs supplémentaires ou remplacez ceux fournis avec votre boitier, faites attention au fait qu'il existe deux type de connectiques pour les ventilateurs (à trois ou quatre broches).

Quand on installe un processeur dans une carte mère, on doit généralement (sauf Soc etc.) mettre de la pâte thermique entre celui ci et son bloc de refroidissement. De nos jours, on n'a généralement pas besoin de s'en préoccuper car tout est fourni en standard (avec le processeur vient le ventilateur et une version simplifiée d'utilisation de pâte), mais si ce n'est pas votre cas, ou que vous voulez changer le ventilateur fourni par un autre modèle, il vous faudra acheter de la pâte thermique. Artic Silver est réputé pour ses produits.


Assemblage

Quelques conseils de bon sens. Il faut faire les choses dans le bon ordre.

Il faut un peu de dextérité et ne pas se comporter en brute épaisse, la casse coûte cher. Si vous avez de gros doigts maladroits, trouvez vous un acolyte ou passez votre chemin.

L'électronique craint l'électricité statique. Déchargez vous en touchant un élément métallique quelconque avant de manipuler les composants (cramer un processeur à 200 euros ça peut mettre de mauvaise humeur).

Pas de crainte à avoir sur les branchements ; il y a des détrompeurs et on ne peut pas brancher un câble à l'envers (enfin on ne peut plus, j'ai cramé le premier ordinateur que j'ai voulu assembler au siècle dernier). Si ça ne rentre pas, c'est à priori que vous n'êtes pas dans le bon sens. De façon générale, ne forcez pas, quelque fois c'est un peu dur mais en cas de doute, commencez par vérifier, lubrifiez un peu (heu je m'égare là), c'est juste du bon sens et de l'observation. Et en cas de doute, google est là pour vous aider.

La carte mère est fragile de par sa taille et sa faible épaisseur, le processeur s'enfonce en force dessus, il faut donc mieux le faire avant de la fixer au fond du boitier pour éviter de la casser en deux (elle repose sur des vis au fond du boitier et donc en appuyant dessus on la fait fléchir). 

La mémoire peut aussi être installée avant de fixer la carte  mère dans le boitier mais c'est secondaire.

Sur la carte mère peuvent se brancher des petits connecteurs (tout petits...) pour par exemple relier les connecteurs en façade du boitier. Il peut être plus simple de les brancher avant de fixer la carte  mère dans le boitier, on a plus de place et on voit mieux ce qu'on fait.

Si il y a la place, il est sans doute mieux de fixer l'alimentation électrique et les disques dans le boitier avant de poser la carte mère, vous éviterez peut être de faire tomber une vis, un tournevis, un disque, votre belle mère, sur la carte mère.

Par contre, les cartes d'extensions, je les met une fois la carte en fond de panier pour éviter de galérer pour la positionner sur ses points de fixation et me battre avec la découpe au fond du boitier dans lequel viennent se caler les connecteurs externes de la carte mère (prise écran, prise câble réseau etc.).

Je fais le câblage en dernier : raccordement des connecteurs SATA entre la carte mère et les disques, raccordement de l'alimentation électrique ...

Avant de fermer le boitier, je branche écran/clavier/souris et j'essaie d'allumer le PC, je teste les connecteurs en façade, je vais dans le BIOS vérifier que les disques sont bien reconnus, histoire de ne pas devoir le ré-ouvrir si il y a un souci quelconque.


Conclusion (temporaire toujours)

Si à ce stade vous n'êtes toujours pas rebuté par la difficulté et toujours motivé pour assembler votre ordinateur, vous avez passé une grosse étape (surtout si vous partez de zéro).

Dans le contexte de l'assemblage d'un NAS, il nous reste à étudier quelques préconisations spécifiques pour le choix des composants, selon les cas d'usage et les logiciels choisis (OS en premier lieu), tout étant lié (selon ce qu'on vaut faire avec son NAS, ça dictera nos choix en terme de logiciels et de composants).

Si tout ceci vous a fait peur, sachez que c'est moins compliqué que ça en a l'air. Et qu'on trouve facilement des ressources bien plus détaillées que cette introduction rapide sur internet ; par contre, il ne faut pas avoir peur d'y passer du temps et de se gratter un peu la tête.

Pour chacune des composants évoqués, il existe des geeks qui écrivent des blogs dédiés ; il y a des gars capables de se prendre la tête pendant des jours pour choisir tel ou tel modèle de ventilateur car il a un roulement à bille ultra haute performance ou je sais pas quel truc encore ; alors conservez un regard critique car nombreux sont ceux qui sont là pour vous pousser à acheter des modèles onéreux où souvent un truc à 5 euros fait à peu près le même job, mais ça reste une bonne source d'infos.


Sources utiles

Pour moi le meilleur site pour progresser dans sa compréhension du fonctionnement d'un ordinateur, faut fouiller un peu mais c'est une mine d'or. D'ailleurs le thème est parlant "uncomplicating the complicated" et c'est extrêmement didactique (mais en anglais faut pas non plus trop en demander) : http://www.hardwaresecrets.com (cherchez les articles, "tout ce que vous devez savoir sur ...").

Le site incontournable, version française du site US, pour se tenir au courant de l'actualité hardware avec des articles de fonds et des tutoriaux : www.hardware.fr

Un autre site que je trouve très bien pour ses nombreux dossiers de synthèse parfois très fouillés  et pleins d'enseignements : http://www.lesnumeriques.com. J'aime aussi beaucoup tom's hardware http://www.tomshardware.fr/

Vous trouverez avec facilité de nombreux guides d'achat expliquant tout ce qu'il y a à savoir : ils sont mis en ligne par les marchands en ligne, ils poussent un peu à la consommation des composants plutôt haut de gamme plus rémunérateurs pour les commerçants, mais pour autant ils sont une assez bonne source d'information. Cependant, ils sont surtout utiles pour les bases et le mainstream. Par exemple, la rubrique "Guide d'achat" de http://www.configspc.com/ sera un complément utile de cet article.

Ha et pour aller plus loin et creuser le sujet du hardware des serveurs, allez donc ici.

Enfin, je répète GIYF : faites simplement attention à croiser les sources et à vérifier la date de publication des articles (car les choses évoluent très vite et un article datant d'un an peut raconter des choses vraies à sa date de parution mais qui ne sont plus du tout d'actualité).