从我们按下键盘上的键开始,直到它出现在您的word文档中

这个问题在我的求职面试中……我只是想看看我是否提供了所有细节……

  • 机械开关短路拉起R1电阻端接地
  • 特殊的多路复用器将其转换为消息,以减少电线数量
  • 由嵌入在键盘中的CPU解释的消息
  • 该消息被转换为USB协议消息,并被调制为0到5伏之间的交流电压的一系列电脉冲
  • USB接收集线器定期测量采样线电压
  • 主机集线器控制器将消息转换为数据
  • 数据通过USB总线控制器进入PC,连接到PCIE总线,通过IRQ通知和DMA传输的组合,由总线驱动程序发出
  • 总线驱动程序解释消息并将其沿驱动程序堆栈转发,最终转发给HID驱动程序
  • HID驱动程序与Windows通信,最终导致窗口消息发送到属于msword进程的窗口
  • WM_KEYDOWN由DefWindowProc()转换为WM_CHAR。 当密钥关闭时,可以创建多个WM_CHAR。
  • Word应用程序捕获WM_CHAR以向文档模型添加另一个字符并发出UI的重新呈现
  • UI呈现引擎通过加载相应的字体将unicode代码点转换为图形图像
  • 图形引擎计算整个区域的新图像以避免闪烁,并将其逐个像素地放到屏幕上
  1. 你听到一声咔哒声;)[但这一步没有必要,可能是10日或20日]
  2. 键盘信号到kb控制器
  3. 控制器向CPU发出中断
  4. OS内核看到了中断
  5. OS内核向相应的驱动程序发送中断
  6. 驱动程序告诉CPU从kb控制器读取一个charcode
  7. CPU呢
  8. 驱动程序以某种方式告诉内核将“KEY_DOWN”事件发布到UI子系统中
  9. 内核调度事件
  10. UI子系统检查是否存在活动窗口
  11. 它将KEY_DOWN UI事件发送到活动窗口

…呃..累了:)所以,之后它将调度一个键,更新窗口内容,并调用video驱动程序/子系统来绘制该char

呃,如果你有一台旧的旧旧二进制计算机: http : //en.wikipedia.org/wiki/Punched_card

然后,在你按下钥匙的时候,你可能会喝一杯茶!