科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基于Linux操作系统内核汉化大揭秘 (5)

基于Linux操作系统内核汉化大揭秘 (5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于屏幕重绘等原因,调用底层xxxx_putc()和xxxx_putc()的地方有多处,我们做了两个函数分别馐这两上调用,完成替换字库、调用xxxx_putcs()或xxxx_putc()、恢复字库等功能。

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年10月22日

关键字: 揭秘 汉化 内核 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

这里还有几个需要注意的地方:

1、由于屏幕重绘等原因,调用底层xxxx_putc()和xxxx_putc()的地方有多处,我们做了两个函数分别馐这两上调用,完成替换字库、调用xxxx_putcs()或xxxx_putc()、恢复字库等功能。

2、为了实现向上滚屏时也能看到汉字,我们需要作另外的修改。Linux在设计虚拟终端的时候,提供了回顾被滚出屏幕以外的信息的功能,这就是用热键来向上滚屏(Shift+Pageup)。当前被使用的虎虚拟终端的时候,公共缓冲区的内容会被清除而被新的虚拟终端使用,向上滚屏的时候,显示的是公共缓冲区中的内容。因此,如果我们想在向上滚屏的时候看到汉字,则公共缓冲区也必须加倍,以确保没有信息丢失。当滚出屏幕的住处向公共缓冲区填写的时候,必须把盯应的附加信息也填写进公共缓冲区的附加区域中,这就要求fbcon.c必须懂得利用公共缓冲区的附加信息。当然,另外有一处偷懒的方法,那就是不允许用户向上滚屏,从而避免对公区缓冲区的处理。

3、把不同的编码方式(GB、BIG5、日文和韩文)写成不同的模块,以实现动态加载,从而使得扩展新的编码方式不需要重新编译核心。

小结

通过这次针对inux核心的探索,我们发现,目前Linux的核心设计中,完全没有考虑到双字节编码字符的显示,我们在这种情况下摸索出一套解决核心汉字显示的方法,并编码实现了该方案。遵循核心的GPL版权声明,我们同时公布了实现这一技术的源代码,当然,这些改动仍然是GPL的。如果能对研究核心的朋友有所帮助,养活一些大家对核心的神秘感,将是我们最大的收获。

但是对核心和中文化来说,这仅仅是一种尝试,远不是终点。这种改动多少带有一些黑客的色彩,不太可能融合进权威的核心里去。我们仍在积极探索圆满解决这一问题的方法,当然这一目标必然需要通过国内外Linux群体的共同努力才能实现。我们也非常欢迎大家和我们共同讨论这一问题 。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章