Linuksowy bufor ramki

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Knoppix uruchamiający się z użyciem bufora ramki

Linuksowy bufor ramki (ang. Linux Frame Buffer Device) to urządzenie blokowe, nazywane również fbdev, służące do wyświetlania grafiki na konsoli linuksowej bez korzystania z bibliotek takich jak SVGALib lub też X Window System.

Linuksowy bufor ramki powstał aby jądro Linux mogło emulować konsolę tekstową na komputerach takich jak Apple Macintosh, które nie posiadają tekstowego trybu wyświetlania. Potem został przystosowany do pracy na platformie IBM PC, gdzie dużą popularność zyskała możliwość wyświetlania Tuksa, loga Linuksa, podczas startu systemu. Bardziej znaczącą możliwością bufora ramki jest wyświetlanie znaków unikodowych. Bez bufora ramki wsparcie dla Unikodu na konsoli byłoby niemożliwe, gdyż czcionki konsolowe są ograniczone do 256 znaków (można też uzyskać 512 znaków, tracąc jednak jeden z ośmiu bitów określających wygląd znaku).

Aktualnie niektóre programy (np. MPlayer) i biblioteki (np. SDL lub GTK+) mogą używać bufora ramki pomijając serwer X. Jest to dość popularne w systemach wbudowanych.

Linuksowy bufor ramki przez długi czas cierpiał ze względu na małą wydajność, jednak teraz istnieje biblioteka DirectFB, która dostarcza akcelerację sprzętową.

Najczęściej wykorzystywanymi sterownikami fbdev są:

FBUI (FrameBuffer UI) zapewnia wbudowany w jądro graficzny interfejs użytkownika dla podsystemu bufora ramki bardzo niewielkim kosztem: całość mieści się w 50 kilobajtach pamięci. Daje dostęp do bufora ramki wielu programom jednocześnie; pozwala tworzyć nachodzące na siebie okna; jeden program może składać się z wielu okien; dopuszcza tworzenie okien na każdej wirtualnej konsoli. Biblioteka libfbui dostarcza prototypów dla okien, zdarzeń, itp. Zawiera także przykładowe aplikacje takie jak monitor obciążenia systemu, zegar, kalkulator, przeglądarkę obrazków i odtwarzacz filmów. FBUI zawiera także zoptymalizowany kod sterownika VESA.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]