哈工大OS实验八---按下F12让输出变成*号(终端设备的控制)

该博客详细介绍了如何在Linux 0.11操作系统中修改终端设备处理代码,实现按下F12键后,将字母输出替换为星号的功能。实验旨在深化对操作系统设备管理的理解,特别是键盘中断和扫描码的概念。通过修改键盘中断处理函数`intr`和`con_write`,实现了F12切换输出模式的逻辑。
摘要由CSDN通过智能技术生成

终端设备的控制

参考至

原文链接:https://blog.csdn.net/qq_41708792/article/details/91040147

实验目的

  • 加深对操作系统设备管理基本原理的认识,实践键盘中断、扫描码等概念;
  • 通过实践掌握 Linux 0.11 对键盘终端和显示器终端的处理过程。

实验内容

本实验的基本内容是修改 Linux 0.11 的终端设备处理代码,对键盘输入和字符显示进行非常规的控制。

在初始状态,一切如常。用户按一次 F12 后,把应用程序向终端输出所有字母都替换为“*”。用户再按一次 F12,又恢复正常。第三次按 F12,再进行输出替换。依此类推。

实现思路

我们先简单介绍一下操作系统是如何使键盘工作的

键盘作为一个写入设备,键盘的每一次敲击就是一次中断,中断号为0x21,当键盘引起中断后,调用keyboard_interrupt函数,在该函数中,操作系统会根据扫描码(键盘的按键)从key_table中找到对应的处理函数,处理函数会找到键盘按键对应的ASCLL码,然后将其放入read_q队列中,等待CPU读取,详细的代码可以看这篇博客CPU如何读取键盘传过来的数据

在这个例子中,F12按键的对应函数就是func,我们要做的就是修改这个func函数<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值