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

前端之家收集整理的这篇文章主要介绍了linux – 当我按下键盘上的键并显示在shell上时,实际发生的动作路径是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

最佳答案
带有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

猜你在找的Linux相关文章