關於Linux下的幀緩衝介紹

2021-04-12 18:41:20 字數 1196 閱讀 2496

幀緩衝在各種顯示卡硬體各有不同,如ati rage128提供了自己的幀緩衝,cirrus logic,matrox,powervr 2,都有自己的幀緩衝,tga,vesa,是兩種幀緩衝裝置標準,vesa由於被大多數現代顯示卡所具有,所以使用的較為廣泛。不同的幀緩衝裝置需要在核心編譯時使用不同的驅動。所以欲使用幀緩衝必須要擁有具有幀緩衝能力的顯示卡。並且不同顯示卡對幀緩衝的支援能力也不同,如可以使用的解析度模式(1024*768或800*600)及其下的色深。

fb在linux的出現目的最初是為了在linux核心啟動開始後,顯示linux的logo圖示(小企鵝),才增加入核心(是不是覺得有點無聊),這種東西是通過在核心啟動時在未進入保護模式之前在bios的幫助下將顯示卡工作模式置於fb模式下,當然以後我們也不可能再切換回來了,因為大家知道在80x86的保護模式中我們無法使用底層bios功能。

後來當然就開始使用它為linux文字控制台提供更大的字型和顯示解析度(如1024*768 32位真彩色),並且可以使用很cool的字型,以區別於80x25列的令人枯燥的文字字型。例如你可以讓linux的文字介面像黑客帝國裡的尼奧的電腦。linux2.0之後的核心,你都可以通過在核心啟動引數(一般在grub或lilo的配置檔案中核心映象檔案名之後)中加一條vga=核心模式號》讓linux在啟動時進入幀緩衝控制台模式,linux核心模式號如下:

linux

核心模式號 = vesa模式號

+ 0x200

所以linux核心模式號如下表

| 640x480  800x600  1024x768 1280x1024

----+-------------------------------------

256 |  0x301    0x303    0x305    0x307

32k |  0x310    0x313    0x316    0x319

64k |  0x311    0x314    0x317    0x31a

16m |  0x312    0x315    0x318    0x31b

如果啟動時出現問題,大多數情況下是顯示卡的問題。

後來有人使用它為其它的國家語言提供語言平台,如我們的中文平台zhcon就是使用fb來顯示中文字型。

當然還有就是前面提到過的x server:xf86_fbdev

再多說兩句,對於/dev/fb*可以像訪問普通檔案一樣訪問幀緩衝儲存區。希望大家利用好幀緩衝,體會linux給我們提供的樂趣。

Linux的幀緩衝裝置

linux的幀緩衝裝置 幀緩衝 framebuffer 是 linux 為顯示裝置提供的乙個介面,把視訊記憶體抽象後的一種裝置,他允許上層應用程式在圖形模式下直接對顯示緩衝區進行讀寫操作。這種操作是抽象的,統一的。使用者不必關心物理視訊記憶體的位置 換頁機制等等具體細節。這些都是由framebuff...

linux下的檔案緩衝IO

1 dup dup2 複製乙個現有的檔案描述符時,不會賦值檔案表。出現多個檔案描述符對應同一張檔案表的情況 dup 複製時系統會自動選擇乙個位置用的檔案描述符,通常選擇未使用的最小值 dup2 是程式設計師指定的新的檔案描述符,如果已被使用,則會強行關閉原始檔後繼續為我所有。dup.c 他們經常用來...

IBP幀的介紹

幀 就是影像動畫中最小單位的單幅影像畫面,相當於電影膠片上的每一格鏡頭。而在實際壓縮時,會採取各種 演算法減少資料的容量,其中 ipb 就是最常見的。1 基本概念經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。i 幀可以看成是乙個影象經過壓縮後的產物。p frame 前 向 編碼幀 又稱 pre...