ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 基于Linux操作系统核心的汉字显示(转)

基于Linux操作系统核心的汉字显示(转)

原创 Linux操作系统 作者:BSDLite 时间:2007-08-16 15:41:07 0 删除 编辑
基于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博客 ” ,链接:https://blog.itpub.net/10617542/viewspace-962058/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论