基於Linux作業系統核心的漢字顯示(轉)
基於Linux作業系統核心的漢字顯示(轉)[@more@] 在闡述“基於Linux核心的漢字顯示”的技術細節之前,有必要介紹一下原有Linux的工作機制。這裡主要涉及到兩部分的知識,這是Linux下終端和幀緩衝的實現。
控制檯(console)
通常我們在Linux下看到的控制檯(console)是由幾個裝置構成的。分別是/dev/ttyN(其中tty0就是/dev/console, tty1、tty2就是不同的虛擬終端(virtual console))。通常使用熱鍵Alt+Fn來在這些虛擬終端之間進行切換。這些tty裝置對應於 linux/drivers/char/console.c和lvt.c。其中console.c負責繪製螢幕上的字元,vt.c負責管理不同的虛擬終端,並且負責提供console.c需要繪製的內容。Vt.c把不同虛擬終端下的需要交給console.c繪製的內容,放到不同的快取中去。Vt.c管理者這樣一個緩衝區的陣列,並且負責在這些快取之間切換,並指定哪一個緩衝區是被啟用的。你所看到的虛擬終端就對應著被啟用的緩衝區。Console.c 同時也負責接收終端的輸入,然後把接收到的輸入的資訊放到緩衝區。
幀緩衝(framebuffer)
Framebuffer是把視訊記憶體抽象後的一個種裝置,可以透過這個裝置的讀寫直接對視訊記憶體進行操作。這種操作是抽象的、統一的。使用者不必關心物理視訊記憶體的位置、換頁機制等等具體細節,這些都是由Framebuffer裝置驅動程式來完成的。
Framebuffer對應的原始檔在linux/drivers/video/目錄下。總的抽象裝置文作為fbcon.c,在這個目錄下還有與各種顯示卡驅動程式相關的原始檔。
在使用幀緩衝時,Linux是將顯示卡置於圖形模式下的。
我們以一個簡單的例子來說明字元顯示的過程。我們假設是在虛擬終端1(/dev/tty1)下遷行如下的簡單程式:
控制檯(console)
通常我們在Linux下看到的控制檯(console)是由幾個裝置構成的。分別是/dev/ttyN(其中tty0就是/dev/console, tty1、tty2就是不同的虛擬終端(virtual console))。通常使用熱鍵Alt+Fn來在這些虛擬終端之間進行切換。這些tty裝置對應於 linux/drivers/char/console.c和lvt.c。其中console.c負責繪製螢幕上的字元,vt.c負責管理不同的虛擬終端,並且負責提供console.c需要繪製的內容。Vt.c把不同虛擬終端下的需要交給console.c繪製的內容,放到不同的快取中去。Vt.c管理者這樣一個緩衝區的陣列,並且負責在這些快取之間切換,並指定哪一個緩衝區是被啟用的。你所看到的虛擬終端就對應著被啟用的緩衝區。Console.c 同時也負責接收終端的輸入,然後把接收到的輸入的資訊放到緩衝區。
幀緩衝(framebuffer)
Framebuffer是把視訊記憶體抽象後的一個種裝置,可以透過這個裝置的讀寫直接對視訊記憶體進行操作。這種操作是抽象的、統一的。使用者不必關心物理視訊記憶體的位置、換頁機制等等具體細節,這些都是由Framebuffer裝置驅動程式來完成的。
Framebuffer對應的原始檔在linux/drivers/video/目錄下。總的抽象裝置文作為fbcon.c,在這個目錄下還有與各種顯示卡驅動程式相關的原始檔。
在使用幀緩衝時,Linux是將顯示卡置於圖形模式下的。
我們以一個簡單的例子來說明字元顯示的過程。我們假設是在虛擬終端1(/dev/tty1)下遷行如下的簡單程式:
CODE:
main ()
{ puts(”hello,world. ”); } 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962058/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
freebsd桌面被我搞壞又修好了(轉)
請登入後發表評論
登入
全部評論
|
相關文章
- 基於Linux核心的漢字顯示的嘗試(轉)Linux
- 關於在linux中顯示漢字的問題請教大蝦(轉)Linux
- C語言直接顯示漢字(轉)C語言
- 基於Linux核心的作業系統的常見目錄說明Linux作業系統
- 麒麟作業系統核心同其他作業系統核心的相似性分析(轉)作業系統
- Linux中顯示FAT等分割槽上的漢字檔名(轉)Linux
- GNUC擴充套件:Linux作業系統的核心使用(轉)套件Linux作業系統
- Linux作業系統核心編譯詳解(2)(轉)Linux作業系統編譯
- cmd顯示漢字需要的設定
- 信創的作業系統都是基於linux嗎作業系統Linux
- 詳解Linux作業系統的核心空間保護(轉)Linux作業系統
- 深入分析 Linux作業系統的核心連結串列(轉)Linux作業系統
- iOS作業系統是不是基於Linux呢?iOS作業系統Linux
- Linux作業系統成功涉足核心應用領域(轉)Linux作業系統
- Linux作業系統基礎Linux作業系統
- Google作業系統基於Chrome?!Go作業系統Chrome
- Redox OS:基於Rust的作業系統Rust作業系統
- 番外篇——基於資料探勘或人工智慧的作業系統核心人工智慧作業系統
- 配置安全的Linux作業系統(轉)Linux作業系統
- 關於Linux作業系統日誌的介紹(轉載)Linux作業系統
- 讓HEXEDIT2.54顯示漢字(5千字)
- Linux作業系統介紹(轉)Linux作業系統
- PLSQL中漢字顯示亂碼問題SQL
- win7系統作業系統多視窗顯示排列技巧Win7作業系統
- Linux作業系統套接字程式設計的5個隱患(轉)Linux作業系統程式設計
- 作業系統核心簡介作業系統
- 作業系統核心之辯作業系統
- 作業系統核心結構作業系統
- Linux核心實戰(二)- 作業系統概覽Linux作業系統
- Mac作業系統命令列顯示/隱藏檔案Mac作業系統命令列
- 基於Linux的傳真系統(轉)Linux
- Linux基礎命令---sar顯示系統活動資訊Linux
- 《Linux核心分析》 之 作業系統是如何工作的。2Linux作業系統
- win10系統微軟拼音輸入法打字不顯示漢字怎麼辦Win10微軟
- 最新調查顯示Linux系統管理費用低於Windows(轉)LinuxWindows
- Linux作業系統檔案系統的桌面應用(轉)Linux作業系統
- 紅旗Linux作業系統加速(轉)Linux作業系統
- Mac作業系統下怎麼顯示隱藏檔案Mac作業系統