Accueil🇫🇷Chercher

Alpine Linux

Alpine Linux est une distribution Linux ultra-légère, orientée sécurité et basée sur Musl (en) et BusyBox, principalement conçue pour un « utilisateur intensif qui apprécie la sécurité, la simplicité et l'efficacité des ressources ». Elle utilise les patches PaX et Grsecurity du noyau par défaut et compile tous les binaires de l'espace utilisateur et exécutables indépendants de la position (dits « portables ») avec protection de destruction de la pile (en)[2].

Alpine Linux
Logo
Image illustrative de l’article Alpine Linux

Famille Linux (musl libc, busybox)
Langues Multilingue
État du projet Actif
DĂ©pĂ´t gitlab.alpinelinux.org
Plates-formes x86, x86-64, Architecture ARM
Entreprise /
DĂ©veloppeur
Équipe de développement Alpine Linux
Licence Licence MIT
États des sources Open source
Dernière version stable 3.18.2 ()[1]
MĂ©thode de mise Ă  jour APK
Environnement de bureau BusyBox
Gestionnaire de paquets APK
Site web https://alpinelinux.org

Cette distribution se prête particulièrement, en raison de sa légèreté, à la création d'images de conteneurs Docker[3]. La distribution Alpine Linux est particulièrement populaire pour cet usage[4] - [5].

Historique

À l'origine, Alpine Linux a démarré comme fork du projet LEAF[6]. Les membres de LEAF souhaitaient continuer à faire une distribution Linux qui tiendrait sur une simple disquette, alors que Alpine Linux souhaitait inclure quelques paquets plus lourds tels que Squid et Samba, ainsi que des fonctionnalités additionnelles de sécurité et un noyau plus à jour. Un des buts initiaux était de créer un cadre pour des systèmes plus lourds ; bien qu'utilisable à cette fin, ce n'est plus un objectif primordial.

En 2016, Docker a migré ses images vers Alpine Linux[7] - [8], principalement en raison de sa légèreté.

Fonctionnalités

  • Gestion de paquets : Alpine utilise son propre système de management de paquet, apk-tools[9], qui Ă©tait Ă  l'origine une collection de scripts shell mais a Ă©tĂ© rĂ©Ă©crit ensuite en C. Alpine contient actuellement les paquets utilisĂ©s couramment tels que GNOME, XFCE, Firefox, et d'autres.
  • Disque virtuel (exĂ©cution depuis la mĂ©moire) : Alpine Linux peut ĂŞtre installĂ© comme distribution Ă  exĂ©cuter depuis la mĂ©moire vive. L'outil LBU (Sauvegarde locale d'Alpine) permet en option de sauvegarder tous les fichiers de configuration vers un fichier contenant APK (habituellement abrĂ©gĂ©s en apkovl), un fichier tar.gz qui contient par dĂ©faut une copie de tous les fichiers modifiĂ©s dans /etc (avec la possibilitĂ© d'ajouter d'autres rĂ©pertoires).
  • SĂ©curitĂ© : PaX et Grsecurity (grsec) sont inclus dans le noyau par dĂ©faut d'Alpine Linux, qui aide Ă  rĂ©duire l'impact des exploits de la mĂŞme manière que l'exploit en root local vmsplice(). Tous les paquets sont aussi compilĂ©s avec une protection de la pile d’exĂ©cution pour adoucir les effets d'un dĂ©passement de tampon de l'espace utilisateur.
  • Taille : le système de base dans Alpine Linux est conçu pour n'avoir qu'une taille de 4–5 MB (hormis le noyau). Ceci permet des conteneurs Linux très petits, d'une taille d'environ 8 MB[8], alors qu'une installation minimale sur disque nĂ©cessiterait environ 130 MB. Le noyau Linux est bien plus grand : le noyau 3.18.16 comprend 121 MB[2] de modules du noyau chargeables (principalement des drivers) en plus des 3.3 MB pour l'image de base du noyau X86-64.
  • Cadre de Configuration Alpine ou Alpine Configuration Framework (ACF) : optionnelle, ACF est une application pour configurer une machine Alpine Linux, avec des buts similaires Ă  debconf (en) de Debian.
  • Bibliothèque standard du C : Alpine Linux utilisait prĂ©cĂ©demment UClibc au lieu de la traditionnelle GNU C Library (glibc) plus communĂ©ment utilisĂ©e. Bien que plus lĂ©gère, elle a l'inconvĂ©nient significatif d'ĂŞtre incompatible au niveau du code avec glibc. Ainsi, tous les logiciels doivent ĂŞtre compilĂ©s pour ĂŞtre utilisĂ©s avec uClibc pour fonctionner correctement. Le , Alpine Linux est passĂ© Ă  Musl, qui est partiellement compatible avec glibc[10].
  • Init (programme de lancement des tâches au dĂ©marrage) : Le système simple et lĂ©ger OpenRC est le système init actuellement utilisĂ© par Alpine Linux[11]. En revanche, les distributions linux Debian, Ubuntu, Red Hat Enterprise Linux, Arch Linux et CentOS utilisent Systemd.

Notes et références

  1. « Alpine 3.15.9, 3.16.6, 3.17.4 and 3.18.2 released », (consulté le )
  2. (en) « about | Alpine Linux », sur alpinelinux.org (consulté le )
  3. (en) « Smaller Java images with Alpine Linux - Atlassian Developer Blog », sur Atlassian Developer Blog, (consulté le ).
  4. Un grand nombre d'images officielles de Docker Hub proposent une image basée sur Alpine. L'image Docker Registry elle-même est basée sur Alpine Linux.
  5. Brian Christner, « Docker Official Images are Moving to Alpine Linux », sur brianchristner.io, (consulté le ).
  6. (en) « linux.leaf.devel - Re: [leaf-devel] 2.6.x kernel support? - msg#00039 - Programming Mailing Lists », sur osdir.com (consulté le )
  7. « Docker Official Images are Moving to Alpine Linux », BrianChristner.io,‎ (lire en ligne, consulté le )
  8. « Docker : La bascule d'Ubuntu vers Alpine Linux heurte des utilisateurs - Le Monde Informatique », LeMondeInformatique,‎ (lire en ligne, consulté le )
  9. (en) « Alpine Linux package management - Alpine Linux », sur wiki.alpinelinux.org (consulté le )
  10. « musl FAQ », sur www.musl-libc.org (consulté le )
  11. (en) « Alpine Linux Init System - Alpine Linux », sur wiki.alpinelinux.org (consulté le )

Articles connexes

Liens Externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.