操作系统——内核模块的键盘监控
实验环境:
VMware + Ubuntu32位
实验步骤:
1.键盘码与ASII码的对应关系。
在Linux操作系统中,键盘的输入是以键盘码的形式存在的,所以我们必然需要将其转化为可读的字符(串)形式。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f4bdf3598f249551a6b20ee8ec03b5c6.png)
于是我们构造数组:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8e5fad728df0a8269c855415cdc9ebad.png)
一些不常用的或是不方便表示的输入就使用”\0”来表示。
2.键盘中断程序
叫是叫中断程序,但其实并不是一个中断,只是我们的程序和中断有些相似,也就是只有当键盘出现“按下去”这个动作,这个程序才会正常运行。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b3523ba62e597d1e37b7fe7316fe0766.png)
这里要注意的是,keyboard_notifier_param这个结构体的定义:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7974c85fc04cdec6bf2ba14993c44c5c.png)
包括了5个变量,vc从备注可以看出指的是按下键