Binary CPU如何与监视器交互?

Binary CPU如何与监视器交互?,binary,gpu,cpu,pixel,monitor,Binary,Gpu,Cpu,Pixel,Monitor,所以问题是:计算机如何从代表字母“g”的二进制代码转变为像素照明的正确组合 到目前为止,我已经设法弄明白了这一点。我了解CPU如何接收键盘生成的输入并将其存储在RAM中,然后检索它以使用指令集进行操作。我也了解它是如何详细执行这些操作的。然后CPU发送一个操作的输出,在本例中,该操作是一个指令集,从内存地址检索“g”,并将其发送到监视器输出 现在我的问题是CPU是直接将字母“g”转换成位图,还是使用内置或独立的GPU,还是显示器本身处理转换 此外,您是否可以编写自己的代码来解释二进制文件并将其格

所以问题是:计算机如何从代表字母“g”的二进制代码转变为像素照明的正确组合

到目前为止,我已经设法弄明白了这一点。我了解CPU如何接收键盘生成的输入并将其存储在RAM中,然后检索它以使用指令集进行操作。我也了解它是如何详细执行这些操作的。然后CPU发送一个操作的输出,在本例中,该操作是一个指令集,从内存地址检索“g”,并将其发送到监视器输出

现在我的问题是CPU是直接将字母“g”转换成位图,还是使用内置或独立的GPU,还是显示器本身处理转换

此外,您是否可以编写自己的代码来解释二进制文件并将其格式化以供显示?

请参见此处
它描述了用于以字符模式在VGA显示器上显示字符的基于字符的机制。

在大多数系统中,CPU不直接与显示器对话;它向图形卡发送命令,图形卡生成电信号,监视器将其转换为屏幕上的图片。这个过程有很多步骤,处理模型依赖于系统

从软件的角度来看,与图形卡的通信是通过图形卡驱动程序进行的,该驱动程序将程序和操作系统的请求转换为卡上硬件可以理解的内容

有不同种类的司机;最简单的解释是文本模式驱动程序。在文本模式下,屏幕由多个单元格组成,每个单元格只能容纳一个预定义字符。驱动程序包括一个预定义的位图字体,通过指定哪些像素处于打开状态,哪些像素处于关闭状态来描述字符的外观。当一个程序要求在屏幕上打印一个字符时,驱动程序会在字体中查找该字符,并告诉卡更改发送给显示器的电信号,以便屏幕上的像素反映字体中的内容

不过,文本模式的用途有限。你只能选择一种字体,有限的颜色,不能画线或圆这样的图形:你只能画字符。为了获得高质量的图形输出,使用了不同的驱动程序。图形卡通常包括一个内存缓冲区,该缓冲区以定义良好的格式包含屏幕内容,如“每像素n位,每行m像素,…”要在屏幕上绘制内容,只需将内容写入该内存缓冲区即可。为此,驱动程序将缓冲区映射到计算机内存中,以便操作系统和程序可以像使用RAM一样使用缓冲区。然后,程序可以直接将它们想要显示的像素放在屏幕上,而要将字母g放在屏幕上,则由应用程序程序员以类似该字母的方式输出像素。当然,有很多库可以帮助程序员实现这一点,否则图形用户界面的当前状态将比现在更糟糕


当然,这是对计算机中实际操作的简化,有些系统的工作方式与此不同,例如有些CPU有集成图形卡,有些输出设备不是基于绘制像素而是基于绘制线,但我希望这能稍微消除混淆。

哪种操作系统。?它有GUI还是使用控制台?我不是在谈论一个具体的案例,我只是一般性地问。不管怎样,所有的OSs和GUI都可以归结为机器代码和二进制代码。我只是想问,这是如何转化为我所看到的,以及通过什么来实现的,这取决于O.S.的不同,因此没有一般性的答案。描述每一个O.S.使用的机制可能会很长。我在发布这个问题7年7个月后就有了这个疑问,@Jean LucThumm感谢你问这个问题,因为你我已经准备好了答案,如何为命令行操作系统编写一个基本的文本驱动程序?此外,这些驾驶员使用哪种语言?装配机器?高级别?这取决于可用的视频硬件和操作系统,例如,请参阅。在Unix和Windows上,大多数设备驱动程序通常是用C编写的,并在必要时抛出一些内联程序集。