Le framebuffer Linux (fbdev) est une couche d'abstraction graphique indépendante du matériel pour afficher des éléments graphiques dans une console sans avoir besoin de bibliothèques spécifiques à un système comme SVGALib ou un composant très lourd comme le système de fenêtrage X.

démarrage de Knoppix avec framebuffer

Il a été originellement conçu pour permettre au noyau Linux d'émuler un affichage console-texte sur des systèmes comme le Macintosh d'Apple qui ne possèdent pas d'affichage en mode texte, et il a été par la suite transposé vers les plates-formes compatibles PC IBM, où il est devenu populaire en grande partie pour sa capacité à afficher le logo Tux lors du démarrage. Mais de manière plus significative, il offre un moyen d'afficher des caractères Unicode dans une console Linux. Sous l'affichage VGA non-framebuffer des PC le support d'Unicode était impossible avec les polices de caractère VGA limitées à 512 caractères.

De nos jours, plusieurs programmes Linux comme MPlayer, Links, NetSurf, fbff[1], fbida[2] et fim[3], et des bibliothèques telles que GLUT, SDL, GTK et Qt peuvent utiliser le framebuffer directement[4], évitant ainsi la lourdeur des échanges avec le Serveur X. Ceci est particulièrement populaire dans les systèmes embarqués.

Le framebuffer Linux a longtemps souffert de ses pauvres performances, mais il y a maintenant une bibliothèque DirectFB qui fournit un Framework pour l'accélération matérielle.

FBUI (Framebuffer UI)[5] fournit une interface graphique intégrée au noyau pour le système framebuffer pour un coût très faible : l'intégralité de ce sous-système ne fait qu'environ 50 Ko. Il permet à plusieurs programmes de partager le framebuffer simultanément ; il permet le déplacement de fenêtres se chevauchant ; chaque programme peut posséder plusieurs fenêtres ; et il permet de placer les fenêtres dans n'importe quelle console virtuelle. La bibliothèque libfbui est distribuée avec FBUI et fournit une abstraction pour les fenêtres, les évènements, etc., ainsi que plusieurs programmes d'exemples comme un moniteur de charge système, une horloge, une calculatrice, un bloc de dessin, un afficheur d'images, un gestionnaire de fenêtres, et un lecteur MPEG2 simple. FBUI inclut aussi un code optimisé pour le driver framebuffer VESA.

Notes et références

modifier
  1. fbff sur GitHub
  2. (en) Gerd Hoffmann, « Fbida », sur kraxel.org, 17 février 2011 (consulté le 9 septembre 2020).
  3. « FIM : fbi improved (lightweight customizable image viewer) home page », sur nongnu.org (consulté le 25 février 2021).
  4. projet HiGFXback (History of graphics backends) avec le framebuffer Linux pour backend graphique sur GitHub
  5. Framebuffer UI sur GitHub

Voir aussi

modifier

Liens externes

modifier


📚 Artikel Terkait di Wikipedia

Framebuffer

commande d'un framebuffer dépend de la définition, de la profondeur de couleur (color depth) et de la taille de la palette. Les framebuffer diffèrent significativement

DirectFB

intitulé « DirectFB » (voir la liste des auteurs). Framebuffer Linux Site web officiel DirectFB sur Freshmeat Portail de Linux Portail des logiciels libres

Noyau Linux

articles homonymes, voir Noyau et Linux (homonymie). Linux modifier - modifier le code - voir Wikidata (aide) Le noyau Linux est un noyau de système d'exploitation

Pilote open source de carte graphique

des pilotes de framebuffer existent en dehors de vesafb, comme le pilote de framebuffer mxvfb et intelfb. Ces pilotes de framebuffer gèrent une zone

Wayland

distributions GNU/Linux Fedora et Mandriva) ont prévu de l'intégrer en vue de remplacer X.Org, à l'inverse de la distribution GNU/Linux Ubuntu qui avait

GDK

s'interfacer avec les systèmes graphiques DirectFB, ou directement avec le Framebuffer Linux. A noter également que GDK peut s'interfacer avec Broadway pour un

Xvfb

Xvfb modifier - modifier le code - voir Wikidata (aide) Xvfb, soit X framebuffer virtuel, est un serveur d’affichage implémentant le protocole de serveur

Graphics Device Interface

correctement des animations (pas de notion de synchronisation avec le framebuffer) et ne supporte aucune fonctionnalité 3D, contrairement aux API DirectX