网易首页 > 网易号 > 正文 申请入驻

按下键盘时计算机系统中发生了什么?

0
分享至

今天的话题是当我们按下键盘时计算机系统中发生了什么,实际上,要是真写起来,这个问题大概能写成一本书,这里将会从宏观上来了解一下从按下按键到输出至屏幕的整个过程。

键盘大家都很熟悉了,一般长这样:


不好意思放错了,一般长这样:


然而它的内部其实是这样类似于矩阵的电路:


每个按键其实是一个开关,当我们按下按键时电路闭合,抬起按键时电路断开,这样当我们按键时键盘中的微型处理器就能感知到,此时万里长征第一步开始了,以下假设我们使用的是usb键盘。

键盘中的硬件检测到的被称为keycode,存放在键盘里中的存储器中,这个存储设备被称为endpoint,usb控制器不断poll该endpoint从而获取到keycode。


usb控制器获取到数据后开始向CPU发起中断:


此时你的CPU在干嘛呢?此时系统中有很多进程,像word以及其它聊天软件之类,假设你正在使用word,因此CPU正在执行word进程相应的机器指令:


CPU检测到中断产生后丢下word进程(暂停)并转到kernel mode,此时CPU发现是usb产生的中断,因此找到usb中断处理函数,该中断函数中开处理按键数据:


由于USB有一套通信 协议,像HID(Human Interface Device)协议等,所以这里的按键就像网络数据包一样被封装成了usb数据在协议栈中一层层向上传递,边传递边处理。


底层的USB层解析后发现是HID数据,然后将其交给HID层处理,HID处理后数据处理后交给输入层,输入层解析后keycode发现按下的是字符“M”,然后将其记录在设备文件(device file)中,在类Unix系统中就是/dev/input/event**,此时数据正式从硬件来到的了计算机系统中:


既然键盘数据一路跋山涉水从硬件来到了内核态,那么接下来就是用户态的表演。

我们在屏幕上看到的一个个窗体,window,实际上这些窗体是由窗体管理器(window manager)管理的,窗口管理器清楚的知道这些window的层级、位置、大小以及是否获取了焦点(focus)。

还是以Unix为例,在Unix系统中,窗体管理器叫做 X window manager,其运行在X Window System,该系统由X server以及X client组成,我们的图形界面应用程序就是x client,其接受来自X server的键盘鼠标等消息:


X server又是从哪里获取键盘鼠标等消息呢?答案就是我们刚才提到的设备文件/dev/input/event**,通过读取该文件X server就能知道键盘被按下以及被按下的是哪个按键。

接下来X server将该消息发送到获取焦点的窗体,此时我们的窗体APP检测键盘按键的代码开始执行,如果是窗体App是赛车游戏程序并且检测到了向上的箭头按键,那么就需要对车进行加速,这需要对游戏画面进行重绘、如果窗体App是文本编辑器则需要将按下的字符显示出来。

在这里以文本编辑器word为例,当word检测到用户按下的是字符M时,word需要知道该以什么字体显示该字符、字体大小是多少、颜色是什么等等。


现在word知道了关于该字符的足够信息,接下来需要请求X Window System将其在屏幕上显示出来,怎么显示呢?

原来内存中有一块被称为framebuffer的区域,GPU从这里获取数据并将其在屏幕上渲染出来,我们需要做的就是将字符包含的所有信息添加到frame buffer中,这样下一次显卡刷新时你按下的字符就能在屏幕上显示出来了。


怎么样,看似简单的按下键盘到屏幕显示字符着实不简单,这里涉及软硬件的密切配合,毫不夸张的说,你每次按下键盘后计算机系统中可能需要成千上万行代码的执行才能把按键最终显示在屏幕上,是不是很有趣!


好啦,今天的文章就到这里,希望这篇对大家理解计算机系统有所帮助~

来源:码农的荒岛求生

编辑:小咕咕

转载内容仅代表作者观点

不代表中科院物理所立场

如需转载请联系原公众号

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
已出3金!林高远/刘诗雯决战00后黑马冲冠!

已出3金!林高远/刘诗雯决战00后黑马冲冠!

最爱乒乓球
2025-11-14 08:28:22
45.4万对44.17万:上汽终结比亚迪连冠,反超正式开始

45.4万对44.17万:上汽终结比亚迪连冠,反超正式开始

首席商业评论
2025-11-13 13:37:50
女篮全运最疯狂逆转!女篮霸主遭22分逆袭:末节被轰33比15输麻了

女篮全运最疯狂逆转!女篮霸主遭22分逆袭:末节被轰33比15输麻了

篮球快餐车
2025-11-14 07:23:52
特朗普死对头现身联合国,怒骂特朗普愚蠢,却对中国大加赞赏

特朗普死对头现身联合国,怒骂特朗普愚蠢,却对中国大加赞赏

博览历史
2025-11-13 18:49:45
今夜,利空!跳水!

今夜,利空!跳水!

中国基金报
2025-11-14 00:15:40
广州增城崩了。2.5万跌至7000元每平,业主血亏百万

广州增城崩了。2.5万跌至7000元每平,业主血亏百万

流苏晚晴
2025-11-14 17:24:41
城管砸烂“老兵烧烤”,叫嚣让他随便告,凌晨领导急电:闯大祸了

城管砸烂“老兵烧烤”,叫嚣让他随便告,凌晨领导急电:闯大祸了

悬案解密档案
2025-10-22 09:48:53
这一画面,在日本引发巨大争议!

这一画面,在日本引发巨大争议!

上观新闻
2025-11-14 21:08:08
浙江游泳再输接力,被河北队反超夺冠,全运女子游泳一金未入

浙江游泳再输接力,被河北队反超夺冠,全运女子游泳一金未入

体娱一家亲
2025-11-14 21:25:37
火箭真该交易他!和球队老好人发生冲突,没拿到大合同,报复球队

火箭真该交易他!和球队老好人发生冲突,没拿到大合同,报复球队

你的篮球频道
2025-11-14 12:48:46
剪腿版小鹏机器人进入小鹏展厅 机器人团队视为耻辱

剪腿版小鹏机器人进入小鹏展厅 机器人团队视为耻辱

手机中国
2025-11-14 11:51:07
荒诞!诈骗2.7万亿的恶魔佘智江,居然是我们媒体口里的慈善家

荒诞!诈骗2.7万亿的恶魔佘智江,居然是我们媒体口里的慈善家

公子麦少
2025-11-13 20:42:17
周杰伦被昆凌拿捏住了!台媒爆插足婚姻的王子,住的豪宅是昆凌的

周杰伦被昆凌拿捏住了!台媒爆插足婚姻的王子,住的豪宅是昆凌的

小娱乐悠悠
2025-11-14 13:06:44
“启境”品牌将于11月20日正式发布

“启境”品牌将于11月20日正式发布

界面新闻
2025-11-14 15:28:40
二手房“抛售”愈演愈烈,业内人士:我们正在创造一个人类奇迹!

二手房“抛售”愈演愈烈,业内人士:我们正在创造一个人类奇迹!

猫叔东山再起
2025-11-13 13:00:03
内蒙古披露:张锐、张晓兵、高润喜受处分,被免去自治区党委委员

内蒙古披露:张锐、张晓兵、高润喜受处分,被免去自治区党委委员

澎湃新闻
2025-11-14 20:06:31
60台光刻机,1000亿元!荷兰正式表态,外媒:ASML准备秋后算账了

60台光刻机,1000亿元!荷兰正式表态,外媒:ASML准备秋后算账了

古事寻踪记
2025-11-14 07:09:44
李在明最新涉华表态:韩国政府将通过与中国持续对话,毫不动摇地继续推进两国关系发展

李在明最新涉华表态:韩国政府将通过与中国持续对话,毫不动摇地继续推进两国关系发展

环球网资讯
2025-11-14 20:30:37
A股,又见证历史!

A股,又见证历史!

中国基金报
2025-11-14 12:35:24
沈伯洋跑到德国,叫嚣“永不退缩”,话音刚落,大陆已经重拳出击

沈伯洋跑到德国,叫嚣“永不退缩”,话音刚落,大陆已经重拳出击

起喜电影
2025-11-13 14:28:39
2025-11-14 23:44:49
中科院物理所 incentive-icons
中科院物理所
爱上物理,改变世界。
9572文章数 136363关注度
往期回顾 全部

科技要闻

京东“失去的五年”后,找到新增长了吗?

头条要闻

贵州盘州花亿元建"世界最大人造月亮"项目 已停运5年

头条要闻

贵州盘州花亿元建"世界最大人造月亮"项目 已停运5年

体育要闻

7-0狂胜!15万人口小岛离世界杯只差1分

娱乐要闻

王家卫让古二替秦雯写剧情主线?

财经要闻

财政部:加强逆周期和跨周期调节

汽车要闻

小鹏X9超级增程动态评测全网首发 高速实测车内65分贝

态度原创

房产
手机
教育
家居
公开课

房产要闻

共话产业变革下的投资新思维与新机遇|蓝湾财富论坛精华

手机要闻

华为Mate80 Pro Max突然曝光:定制20GB大内存,双长焦也来了!

教育要闻

重磅!西城老牌重点校获授“钱学森创新班”!

家居要闻

现代简逸 寻找生活的光

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版