2016-02-29 98 views
1

当按下某个按键时,键盘发送信号给设备驱动程序,中断CPU和中断处理程序运行。按下的键存储在映射到键盘中断的地址处。我的问题是:如果有多个进程说,编辑器和shell,内核如何确定接收到的按键属于哪一个?我的意思是这个按键是如何到达目的地的?发送按键到应用程序

当按键进入多个进程时,还有办法吗?

+0

您是否在谈论一个可以选择多个应用程序的窗口系统,或者多个进程正在对同一个终端[窗口]执行I/O的情况? – user3344003

+0

它可以是任何有多个进程可以从键盘接收字符的系统。例如,在传统的unix机器上,说gvim和shell是开放的。我的问题是内核决定如何显示接收到的gvim或shell的字符。 –

+0

你需要阅读窗口管理器和X11 – Matt

回答

1

我建议阅读evdev和X11,evdev是Linux内核中用于调度输入事件(比如键盘)的机制。X11是窗口管理器。

在多窗口环境(即不是VT)中,窗口管理器(X11)确定按键路由的位置。像xdotool这样的应该能够发送击键到多个窗口一次。 Wayland将取代X11我不太了解它是如何工作的,但它也使用evdev。

1

这是我读了一些资源后发现:

有一种叫做前台进程组,最多的会话的过程组中,其中一个可能是会议的前台进程组。 tty输入和tty信号(由^ C,^ Z等生成)转到该前台进程组中的进程。

相关问题