幀緩衝在各種顯示卡硬體各有不同,如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...