龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 3313|回复: 18

略谈在lunix内核代码中应用中文的问题

[复制链接]
发表于 2015-1-12 09:11:27 | 显示全部楼层 |阅读模式
本帖最后由 water 于 2015-1-24 13:10 编辑

其实9cc支持中文编程以后 在lunix内核代码中运用中文编程是顺理成章之事 不过仍须作些修改

懒人喜欢用最简单的方法 只要在Makefile文件中把编译器的多国语言支持选项加上即可
        CFLAGS_MODULE = -fextended-identifiers
        CFLAGS_KERNEL = -fextended-identifiers

前一个用来编译模块 以后写模块代码就能用中文来编程了 哈哈
后一个编译内核 以后添加代码时同样也能用中文来编程 非常爽

剩下的就是中文输出的问题了 也就是printk输出中文信息 这在文本控制台下比较困难 修改代码复杂
好在我们大多是在X环境下使用终端 如xterm等 其实也已经支持中文了 懒人也就不用再费多大的事了

[补充一下 printk会对中文进行转义 需先找到kernel/printk/printk.c文件中含 c >= 127字样的地方 将此条件删去]
但printk输出的中文信息还会被dmesg转义成\xfffffff之类的序列 (为了阻止显示中文 双保险啊)

若懒人不想再改代码 干脆不用dmesg 直接查看/dev/kmsg文件即可

发表于 2015-1-12 12:52:33 | 显示全部楼层
在 Linux 虚拟控制台中显示中文,龙梦这边的系统开发者 youbest 已经实现并有现成的补丁。
 楼主| 发表于 2015-1-12 17:19:04 | 显示全部楼层
内核变动了 youbest的补丁不再适用 甚至那个点阵字库都无法下载了

后来有个叫蔡万钊的实践者也写了类似的补丁
http://www.ibm.com/developerwork ... hanzi/#authorN1001A

向高手们致敬
 楼主| 发表于 2015-1-12 17:25:38 | 显示全部楼层
兵因敌而制胜 水因地而制流 象俺这样的懒人用的是改动最少最省力的法子
 楼主| 发表于 2015-1-12 17:40:38 | 显示全部楼层
蔡在文中有个重要观点 我也非常认同 就是内核也不再需要实现虚拟终端了

内核只是提供显示驱动 但内核不设定显示方式

这类似于UNICS的原则 只提供机制 不提供策略
发表于 2015-1-12 21:41:42 | 显示全部楼层
heiher 发表于 2015-1-12 12:52
在 Linux 虚拟控制台中显示中文,龙梦这边的系统开发者 youbest 已经实现并有现成的补丁。

这个好像是宝哥好几年前就实现了啊
 楼主| 发表于 2015-1-13 08:50:02 | 显示全部楼层
以后制作补丁的话也可以尽量用中文 使内核的语言封锁失去意义
 楼主| 发表于 2015-1-13 16:31:16 | 显示全部楼层
目前看来 可以在内核中逐步引入中文编程 先与其它E文代码共存 再求壮大发展
发表于 2015-1-13 17:38:12 | 显示全部楼层
只要是真干活儿的,我都赞同
 楼主| 发表于 2015-1-13 18:10:26 | 显示全部楼层
据说 内核成功的秘诀是 只是为了好玩

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-5-23 10:02 , Processed in 0.215635 second(s), 19 queries .

快速回复 返回顶部 返回列表