加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 当我按下键盘上的键并显示在shell上时,实际发生的动作

发布时间:2020-12-14 01:48:02 所属栏目:Linux 来源:网络整理
导读:我使用的是通用usb键盘,Linux 2.6.27与gnome桌面,gnome-terminal和bash shell.我很想知道软件中发生了什么.我的键盘中的特殊字符如何通过某些编码解释为字符以及字符图片来自何处? 解决方法 带有USB驱动程序的Linux输入层从键盘获得扫描码(基本上是“KEY 1
我使用的是通用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读