当前位置:  开发笔记 > 编程语言 > 正文

当我按下键盘上的键并显示在shell上时,实际发生的动作路径是什么?

如何解决《当我按下键盘上的键并显示在shell上时,实际发生的动作路径是什么?》经验,为你挑选了1个好方法。

我使用的是通用usb键盘,Linux 2.6.27与gnome桌面,gnome-terminal和bash shell.我很想知道软件中发生了什么.我的键盘中的特殊字符如何通过某些编码解释为字符以及字符图片来自何处?



1> Joe Koberg..:

带有USB驱动程序的Linux输入层从键盘获得扫描码(基本上是"KEY 1 DOWN""KEY 1 UP").

X使用其键映射将扫描码转换为键码和X输入事件.

GTK输入方法将输入事件序列转换为组合的unicode字符.

Gnome-terminal以UTF-8为shell编码.

壳牌并不关心.它只知道它正在处理多字节编码.

shell通过TTY回显多字节编码的文本.

Gnome-terminal解码传入的文本并确定unicode代码点.

Gnome-terminal使用GTK +工具绘制字符.

GTK +使用Pango渲染文本,并调用X库将像素绘制到屏幕上.

X服务器将字符绘制到屏幕缓冲区中,视频卡显示它们.

以下是我对图表的尝试:

alt text http://osoft.us/system_layers.png

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有