基於Linux作業系統核心的漢字顯示(轉)

BSDLite發表於2007-08-16
基於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)下遷行如下的簡單程式:
CODE:
main ()

{

puts(”hello,world.

”);

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962058/,如需轉載,請註明出處,否則將追究法律責任。

基於Linux作業系統核心的漢字顯示(轉)
請登入後發表評論 登入
全部評論

相關文章