扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
这里还有几个需要注意的地方:
1、由于屏幕重绘等原因,调用底层xxxx_putc()和xxxx_putc()的地方有多处,我们做了两个函数分别馐这两上调用,完成替换字库、调用xxxx_putcs()或xxxx_putc()、恢复字库等功能。
2、为了实现向上滚屏时也能看到汉字,我们需要作另外的修改。Linux在设计虚拟终端的时候,提供了回顾被滚出屏幕以外的信息的功能,这就是用热键来向上滚屏(Shift+Pageup)。当前被使用的虎虚拟终端的时候,公共缓冲区的内容会被清除而被新的虚拟终端使用,向上滚屏的时候,显示的是公共缓冲区中的内容。因此,如果我们想在向上滚屏的时候看到汉字,则公共缓冲区也必须加倍,以确保没有信息丢失。当滚出屏幕的住处向公共缓冲区填写的时候,必须把盯应的附加信息也填写进公共缓冲区的附加区域中,这就要求fbcon.c必须懂得利用公共缓冲区的附加信息。当然,另外有一处偷懒的方法,那就是不允许用户向上滚屏,从而避免对公区缓冲区的处理。
3、把不同的编码方式(GB、BIG5、日文和韩文)写成不同的模块,以实现动态加载,从而使得扩展新的编码方式不需要重新编译核心。
小结
通过这次针对inux核心的探索,我们发现,目前Linux的核心设计中,完全没有考虑到双字节编码字符的显示,我们在这种情况下摸索出一套解决核心汉字显示的方法,并编码实现了该方案。遵循核心的GPL版权声明,我们同时公布了实现这一技术的源代码,当然,这些改动仍然是GPL的。如果能对研究核心的朋友有所帮助,养活一些大家对核心的神秘感,将是我们最大的收获。
但是对核心和中文化来说,这仅仅是一种尝试,远不是终点。这种改动多少带有一些黑客的色彩,不太可能融合进权威的核心里去。我们仍在积极探索圆满解决这一问题的方法,当然这一目标必然需要通过国内外Linux群体的共同努力才能实现。我们也非常欢迎大家和我们共同讨论这一问题 。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者