【哈工大_操作系统理论】L26&27 IO与显示器&键盘

L4.1 IO与显示器

1、外设使用方法

  1. 给外设控制器(显卡、...卡等也有计算功能)对应的寄存器写内容(out指令),会根据寄存器里面的内容来操控硬件。
  2. 为了让控制外设变为简单,形成了一个统一的文件视图
  3. 待外设处理完后,再向CPU发送中断处理指令。

操作系统对设备的管理:将out指令采用文件的方式向上封装

2、输出显示器 - 读入外设的inode信息

  • inode存放外设设备信息

  • write操作从open读入的相应外设的信息inode

  • flip中的信息从父进程中来,即 copy_process

  • 而父进程中的 flip 则从 init 函数中来

  • opendev/tty0 设备信息读入

3、向屏幕输出

继续 sys_write

  • 统一编址:用 mov
  • 独立编制:用 out


L4.2 键盘

通过中断程序,根据扫描码得到相应的ASCII码

1、通过 in 指令,从端口读数据

相关推荐
小宇子2B2 小时前
虚拟地址不是内存:Linux 如何切开一个进程的地址空间
操作系统
饼干哥哥2 天前
ChatGPT会员掉了,代充黑幕藏不住了
人工智能·操作系统·产品
小宇子2B2 天前
五、内核里的 GS / swapgs,与现代 TSS
操作系统
小宇子2B3 天前
四、x86-64 的简化:段机制基本退场,FS/GS 为什么留下
操作系统
小宇子2B3 天前
二、保护模式的段:选择子、GDT,与那张 64 位的段描述符
操作系统
小宇子2B6 天前
三、内核入口 el0_svc / entry_SYSCALL_64 的汇编做了什么——从异常向量到 C 函数
操作系统
小宇子2B7 天前
四、从 write(1, "hello", 5) 到 ksys_write() —— sys_call_table 怎么路由的
操作系统
小宇子2B7 天前
一、printf("hello") 怎么变成 write(1, "hello", 5) —— libc 的 stdout 缓冲机制
操作系统
小宇子2B12 天前
一个 pthread_mutex_lock() 到底锁了什么——从用户态 CAS 到内核调度
操作系统
小宇子2B13 天前
多线程 malloc 为什么会变慢——glibc 的 arena 到 bins 全景
操作系统