less than 1 minute read

写这篇文章的原因是在写操作系统的初期,我们会把 printf 的内容输出到 到屏幕上,而屏幕的输出是通过 VGA 的。所以我们应该详细说一下 VGA 的细节。

一句话说清楚 VGA 的工作原理

将显存内以数字格式存储的图像信号在RAMDAC 里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。

显卡处理的信息怎么输出到显示器呢?显卡会向显示器输出相应的图像信号。 CRT 显示器只能接受模拟信号输入,所以相对应的显卡也要能够输出模拟信号,这样我们的信号才能对得上。 液晶显示器可以直接接受数字信号。

  1. VGA 的文本模式
    • 彩色背景,闪烁,各种形状的光规(块/下划线/隐藏静态/闪烁),可加载字体。
    • 8位属性字段和8位字符码。 所以我们可以使用 8 位的属性字段和 8 位的字符码来描述一个字符。
      #[repr(C)]
      pub struct ScreenChar {
       pub ascii_character: u8,
       color_code: ColorCode,
      }
      

PS/2 键盘的输入原理

扫描码有两种不同的类型 通码:当一个键被按下或持续按住,键盘会将这个键的通码发给主机 断码:当一个键被释放,键盘会将这个键的断码发给主机。

Updated: