| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • Alumin远程访问控制软件 让你…

  • 浏览器操作记录工具Internet…

  • 网页打不开 Windows的Hosts表…

  • windows IE浏览器精典技巧两…

  • 实现了!中文WinXP安装IE7 B…

  • IE无法浏览网页的常见原因及…

  • 解决微软IE 6.0的三个典型问…

  • 帮你解决QQ视频连接困难的小…

  • QQ2005Beta3与输入法组件冲突…

  • 解决珊瑚虫QQ不能在Win2003运…

  • Q
    您现在的位置: 我是IT人 >> 应用学院 >> 操作系统 >> Linux >> 教程正文
    LINUX 终端国际化解决方案           
    LINUX 终端国际化解决方案
    作者:网络 文章来源:转载 点击数: 更新时间:2005-8-15
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

    一.Linux国际化现状
    随着INTERNET的普及,世界各国,特别是使用亚洲多字节语种的国家,开始意识到国际化的重要性。目前,
    各国有自己的编码,例如,日本有JIS,韩国有KSC,中国有GBK和即将要实施的GB13080等等。如此多
    的编码,使得系统兼容和国际交流成为很大的问题。
    值得令人高兴的是,Linux国际标准化组织在近日发布了LI18NUX2000国际化规格草案。该草案的
    发布向实现Linux操作系统标准化更迈进了一步,这必将使全体开发人员和各机构从中受益。Linux的国际化
    是一项庞大的工程,它对于支持亚洲语言和其它多字节字符集是不可或缺的,将极大推动Linux在世界各地的
    普及。国际化组织制定UNICODE标准,在很大程度上解决了问题。目前是向UNICODE过渡的时期,所以,我们
    还必须支持各国的标准。
    目前LINUX国际化基本上还是在传统的UNIX方式上。通常是以LOCALE为基础国际化,由于内核不支持双字节、
    XFree86不支持多字节语言,使得国际化工作就是一些Hacking的工作。人们采用各种方式,如修改内核(UNICON),
    编写新的TTY, 修改运行库,甚至修改X服务器。但一些方法已经固定下来,比如LOCALE等。更好的方法要等到
    国际化的新标准。
    二.什么是Unicon?
    Unicon是在Linux内核基础上,增加国际化支持的程序包。它包括内核补丁、键盘设备程序、
    输入法服务器和Unicon客户。应用程序可以在此基础上处理各种语言。与其它终端中文系统相比,
    Unicon有以下优点:
    1. 最大限度支持国际化,目前本系统可以支持Big5, GB, GBK, JIS, KSC等.
    2. 良好的兼容性
    Unicon以最小的内核改动换取最大的系统兼容。和其它终端软件相比,它可以对鼠标,键盘,显示有
    良好的支持。最使人欣慰的是,它可以支持滚屏。其它西文软件,不需要经过修改,就可以轻松地处理
    各国语言。
    2. 每个TTY是独立的机器,有自己独立的状态(字体和输入法,Locale等)
    3. 良好的分层结构,使系统易于扩展
    本系统采用了类似于UNIX系统结构的方案。系统分三层:内核及驱动程序,输入法服务器,输入法。
    此结构容易扩展、移植。例如,当我们需要将系统移植到一个新的机器上时,主要的工作
    是在设备及驱动程序上,其余部分基本上不需要作很大修改。
    4. 提供API和通用输入法接口
    为普通程序员提供接口程序。这里包括两个方面的含义,1. 输入法模块的接口,用户只需按此接口
    就可以将自己的输入法加到本系统上去;2. Client & Server 的接口,当系统改变时,只需修改这
    部分,而保持系统不变。
    5. 支持多种字体
    系统支持多字体内核,并在此基础上,提供字体的动态切换。
    6. 支持动态切换语言及输入法
    系统在字体管理程序和输入法服务器的基础上,提供动态切换。另外,对环境变量,如LOCALE,
    同样进行切换,极大方便了用户。
    7. 为XFree86的Chinput提供输入法
    由于XFree86的Chinput和Unicon使用同一输入法服务器,所以,它们可以共享输入法。
    三.Unicon总体设计
    和其它系统不同,在Unicon设计时,我们假定每个TTY是一个独立的机器,有自己的状态。由此,每个
    有自己独立的输入法和字体。在系统设计上,我们依照Unix操作系统的特点,将整个系统分为若干层,
    并尽可能将内核的修改减少到最小。将系统分为以下几层:
    1. 内核补丁
    智能制表符识别
    提供制表符智能识别。以支持系统菜单等的正确显示, 这部分代码在
    drivers/char/console.c。
    字体显示程序
    字体显示部分是在FrameBuffer的总体控制程序上。这样,我们只须修改高层模块,而无需
    去管底层得各个驱动程序,使得我们得兼容性达到最佳。其次,UNIKEY可以方便地调用补丁
    程序,方便地控制显示条。详细可以参见drivers/video/fbcon.c
    键盘过滤程序(UNIKEY)
    我们在两个地方对键盘进行过滤。一个是在键盘中断,另外是在TTY键盘处理程序上。之所以
    这样处理,是因为:1. 我们必须过滤键,尤其是一些功能键,组合键;2. 我们必须将翻译后
    的结果发送回操作系统。而当我们将翻译得结果发送回系统时,最快、最方便得方法是将他们
    写回到TTY上去。这样,UNIKEY可以很方便地对键进行过滤。
    详细参见drivers/char/pc_keyb.c, include/linux/tty_flip.c
    字体管理程序
    字体管理程序是为了支持TTY字体独立。字体显示程序必须通过调用字体管理器来确定当前TTY
    的字体及编码方式,以确保正确显示。
    详细参见drivers/video/fbcon.c等。
    2. 设备驱动程序UNIKEY
    本模块为高层模块提供了键盘过滤、字体管理,输入法显示等等。另外,对系统热键作了翻译,
    以传送到高层模块。它包括以下几个方面:
    输入法显示
    本模块是对UNICON输入法条显示的支持。它是通过标准UNIX调用ioctl来实现的。
    键过滤程序
    本模块对TTY1-—TTY6进行模拟,包括:1. 系统键过滤,包括对功能键,组合键得翻译,以确保输入
    法能正确,准确地接受系统的键盘信息;2. 输入法程序向操作系统发送键的接口,通过这个接口,
    输入法程序将翻译得结果传送到TTY,从而应用程序接受到翻译得结果。
    字体管理器
    字体管理器动态管理字体。用户可以根据自己得喜好,将不同的字体模块放到系统中,从而达到
    用户满意得效果。
    3. 输入法服务器
    本模块是输入法的管理程序。它为客户端提供输入法。服务器端维护每个连接,使每个客户端有自己
    独立的状态。另外,通过共享词库,使系统的内存开销降低到最低。
    4. 输入法客户
    本模块为用户看到的终端程序。首先,它通过输入法服务器,打开一种输入法,通过打开UNIKEY,
    过滤系统键盘,并将所得的键传送到输入法服务器,输入法服务器翻译这个键,客户程序取回结果,
    并将服务器得结果显示在屏幕上。另外,它还要处理语种切换,帮助,用户造词等等。
    四. Unicon 的工作原理。
    1. 显示部分
    显示中文(或其它文字),需要两个条件,1. 在图形方式下;2. 有编码的字库。
    假定我们在TTY2运行如下程序:
    main ( )
    {
    puts("hello, world.\n");
    }

    [1] [2] 下一页  

    教程录入:小秦    责任编辑:小秦 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |