Framebuffer Linux
# Framebuffer Linux

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.

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, fbida et fim, et des bibliothèques telles que GLUT, SDL, GTK et Qt peuvent utiliser le framebuffer directement, é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) 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.

