Évolution de Linux

Objectifs de certification

Objectifs Linux Essentials 1.1

  • Connaissance du développement de Linux et des distributions majeures.
  • Domaines de connaissance les plus importants :
    • Philosophie des Logiciels libres.
    • Distributions.
    • Systèmes embarqués.
  • Liste partielle de termes, fichiers et utilitaires utilisés pour cet objectif :
    • Android.
    • Debian.
    • CentOS.

1. Système d’exploitation (OS)

  • Une des tâches du système d’exploitation est d’offrir aux utilisateurs une interface simple et conviviale avec le matériel.
  • Un système d’exploitation (souvent appelé OS pour Operating System) est un ensemble de programmes qui dirige l’utilisation des capacités d’un ordinateur (matériel) par des logiciels applicatifs.

1.1. Fonction d’un OS

Il s’occupe au minimum de :

  • La gestion des processus (programmes)
  • La gestion de la mémoire
  • Le système de fichiers
  • La gestion des entrées/sorties

1.2. Caractéristiques d’un OS moderne

Linux est un système d’exploitation :

  • Multi-tâches : Un système d’exploitation est multitâche (en anglais : multitasking) s’il permet d’exécuter, de façon apparemment simultanée, plusieurs programmes informatiques.
  • Multi-utilisateurs : Un système d’exploitation multi-utilisateur est conçu pour permettre à plusieurs utilisateurs d’utiliser l’ordinateur simultanément, tout en limitant les droits d’accès de chacun afin de garantir l’intégrité de leurs données.
  • Multi-processeurs

2. Architectures matérielles

Linux est supporté sur tout type d’architecture :

  • Serveurs d’entreprise
  • Serveurs de Data Center
  • Ordinateurs de bureau
  • Ordinateurs portables
  • Ordinateurs légers
  • Mainframes
  • Embarqués Industrie
  • Embarqués automobile, domotique, domestique, …
  • Appareils mobiles, appareils légers
  • CPE,
  • Périphériques d’infrastructure réseau/stockage/multimédia

2.1. Processeurs

ARMIntel/AMD
Architecture RISCArchitecture CISC
A performance égale, réduction des coûts de production et meilleure efficacité thermique (ARM Cortex-A15 28nm 1.62mm²)Complexité matérielle plus coûteuse (AMD Jaguar 28nm 3.1mm²) en conception et en énergie
Stratégie commerciale : licenceIntel/AMD
UnixUnix / Windows
BootloaderBios

2.2. ARM Business Model

Les architectures ARM sont des architectures matérielles RISC 32 bits (ARMv1 à ARMv7) et 64 bits (ARMv8)1 développées par ARM Ltd depuis 1990 et introduites à partir de 1983 par Acorn Computers.

Dotés d’une architecture relativement plus simple que d’autres familles de processeurs, et bénéficiant d’une faible consommation, les processeurs ARM sont devenus dominants dans le domaine de l’informatique embarquée, en particulier la téléphonie mobile et les tablettes.

Ces processeurs sont fabriqués sous licence par un grand nombre de constructeurs.

Source : https://ir.arm.com/phoenix.zhtml?c=197211&p=irol-model et https://fr.wikipedia.org/wiki/Architecture_ARM

2.3. Matériel embarqué

On trouvera ici une liste des ordinateurs embarqués dans https://en.wikipedia.org/wiki/Comparison_of_single-board_computers dans laquelle on retrouve des plateformes ARM, Intel et AMD, mais aussi des architectures MIPS.

À titre d’exemple, Openwrt est une distribution Linux pour routeurs domestiques dont on trouve ici la liste.

Embarqué domestique : Raspberry Pi

Les plateformes Raspberry Pi sont très populaires. Leur système d’explotation favori est une distribution Linux dont la distribution Raspbian (dérivé Debian) qui est la distribution officiellle et qui dispose d’un communauté très large.

Raspberry Pi 4 B

Par exemple, Raspberry Pi 4, Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz, 1Go/2Go/4Go RAM, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE intégrés, Gigabit Ethernet, 2 USB 3.0 ports; 2 USB 2.0 ports, 2 × micro-HDMI ports, 5V DC via USB-C connector (minimum 3A*) ou via GPIO header. Source : https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/

Autre exemple, comme le Raspberry Pi Zero WH, 1 CPU Broadcom BCM2835 candencé à 1GHz ARM11, 512MB RAM, Micro-USB sockets for data and power, 2.4GHz 802.11 b/g/n Wi-Fi, Bluetooth 4.1 LE, 40 pin GPIO header soudé. Il mesure 30X56X13 mm, il pèse 12 g. et il consomme 180 mA seulement !

Raspberry Pi Zero WH

Pour comparer les différents modèles Raspberry Pi : http://socialcompare.com/en/comparison/raspberrypi-models-comparison.

Embarqué industriel : PC Engines, Mirabox

Globalscale Mirabox

Gobalscale Mirabox, Source : https://wiki.ipfire.org/en/hardware/arm/globalscale/mirabox

  • 1.2Ghz Marvell Armada CPU ARMADA 370 ARM v7 compliant
  • 802.11b/g/n Wifi with Marvell 88W8787 and Bluetooth 3.0
  • 1GB DDR3
  • 1 GB NAND Flash
  • 2 each 10/100/1000 Ethernet Ports
  • 2 each USB 3.0 host
  • 1 microsd card slot/reader, 1 additional Mini PCIe slot for expansion (internal) For additional 2x2, 3x3, 4x4 WiFi Radios, or 3G modules
  • 3 LED controlled by GPIO, reset button
  • external power supply
  • Port for JTAG and Debugging options

PC Engines développe et vend de petits ordinateurs monocartes pour la mise en réseau à une clientèle mondiale. La société a été fondée en 1995 à Sunnyvale, Californie. Nous avons commencé par concevoir des PC embarqués sur mesure pour divers clients OEM. PC Engines a déménagé en Suisse en 2002. Depuis lors, nous nous sommes concentrés sur l’offre de nos produits à marque propre.

Le matériel embarqué APU1D4 de PC Engines par exemple est une plateforme AMD X64 (1 GHz dual Bobcat core) avec 4Go RAM embarqués, trois interfaces Gigabit Ethernet, un port pour une carte SD, 1 port USB 2.0, un ports m-sata, deux ports emplacements miniPCI express et un emplacement pour héberger une carte SIM. Il est dimensionné en 152.4 x 152.4 mm.

APU1D4 PC Engines

Sources : https://pcengines.ch/apu1d4.htm

Embarqué Hacking : Hak5

Hak5 est une entreprise américaine spécialisée dans la conception de matériel de Hacking pour des attaques de proximité :

Intrusion Wi-Fi

Implants réseau filaire / sans-fil

Attaques de proximité USB/Ethernet

Le matériel est optimisé pour la légèreté et la faible consommation d’énergie. Il est dédié à des tâches spécialisées d’audit de sécurité. Il dispose de commutateurs et de LED que l’on peut programmer nativement.

Toutes les plateformes de type “ordinateur” (sauf “Plunder Bug” et “Bash Bunny”) fonctionnent sur une base de la distribution OpenWRT. Les charges d’audit sont conçues en Bash ou en Python. Les binaires de “pentesting” comme ncat, tcpdump, etc. et d’autres plus rares sont de fabrication “maison”.

3. Qu’est-ce que Linux ?

  • Linux est d’abord le nom d’un noyau (le contrôleur central)
  • Avec quelques outils supplémentaires, on obtient un système d’exploitation (OS) :
    • Un environnement Shell (une ligne de commande)
    • La gestion du système (ajouter des utilisateurs,…)
    • Des applications (mail, web, développement,…)
  • Le tout est mis dans une distribution Linux :
    • dépôts de paquetages, maintenance des logiciels, scripts de lancement,…
    • interfaces graphiques, communautés, …

3.1. Origine de Linux

  • Créé en 1991 par Linus Torvalds pour des processeurs 80386, il y a plus de 20 ans.
  • Reproduit le comportement d’un noyau UNIX (1969).
  • Repris par une communauté de développement.
  • Le projet GNU ajoute une série d’outils autour du noyau.

3.2. Qu’est-ce que Unix ?

  • Unix a été créé par Bell Labs en 1969.
  • Populaire dans les milieux académiques et sur les Mainframes (1980).
  • Donne le nom à une famille de systèmes d’exploitation (notamment FreeBSD, NetBSD et OpenBSD), Dalvik/Linux (Android), GNU/Linux, iOS et OS X.
  • Le nom « UNIX » est une marque déposée de l’Open Group, qui autorise son utilisation pour tous les systèmes certifiés conformes à la Single UNIX Specification.

3.3. Famille Unix

Famille Unix

Source de l’image Famille Unix

3.4. Que fait Linux ?

  • Le noyau gère les processus applicatifs
  • Attribue et récupère la mémoire
  • Gère les accès aux disques et au processeur (CPU)
  • Met une couche d’abstraction sur le matériel pour des applications “hardware-agnostic”
  • Fournit la sécurité et l’isolation des utilisateurs
  • Est capable de passer à la gestion de processus multiples (preemptive multitasking, SMP)

3.5. Ubiquité du noyau Linux

Ubiqiuité du noyau Linux.

Source l’image Ubiqiuité du noyau Linux.

4. GNU

GNU est un projet de système d’exploitation libre lancé en 1983 par Richard Stallman, puis maintenu par le projet GNU. Son nom est un acronyme récursif qui signifie en anglais « GNU’s Not UNIX » (littéralement, « GNU n’est pas UNIX »). Il reprend les concepts et le fonctionnement d’UNIX. Le système GNU permet l’utilisation de tous les logiciels libres, pas seulement ceux réalisés dans le cadre du projet GNU. Son symbole est un gnou, un animal vivant en Afrique.

Il existe à ce jour deux distributions du système d’exploitation GNU :

  • Arch Hurd ;
  • Debian GNU/Hurd.

GNU/Linux (souvent appelé “Linux”) est une variante du système d’exploitation GNU fonctionnant avec le noyau Linux. Le projet GNU avait originellement prévu le développement du noyau Hurd pour compléter le système, mais au début des années 1990, Hurd ne fonctionnait pas encore et son développement rencontrait encore des difficultés. L’arrivée du noyau Linux permit l’utilisation du système GNU sur les ordinateurs animés par des microprocesseurs de la famille Intel x86, en favorisant sa large diffusion par la complémentarité des projets.

Source : https://fr.wikipedia.org/wiki/GNU

5. Evolution des OS

  • Support de la virtualisation
  • Support accru pour les architectures autres qu’Intel
  • Support de la reconnaissance automatique du matériel
  • Un support et un développement communautaire

6. Open Source

  • Les êtres humains conçoivent des applications, des systèmes et des idées en langue intelligible pour les machines : du code à exécuter.
  • Le terme “Open Source” au fait suivant : vous avez accès au code et que vous pouvez le modifier.

7. Références