编程语言
首页 > 编程语言> > 低级图形界面如何编程?

低级图形界面如何编程?

作者:互联网

最近,我一直在尝试诸如arch Linux之类的事情,这引起了一些问题.我经常看到在操作系统的非常低级的部分(例如GRUB或几乎所有引导菜单)中使用图形.其中一些甚至具有图像.我还可以看到诸如“ pacman”命令之类的图形操作,其中加载栏将发生变化,而不会干扰其上方的文本.另一个示例是像cfdisk这样的程序.我只想知道如何对这些类型的功能进行编程?

编辑:通过这个我的意思是什么系统调用被用来使这成为可能?

Boot menu

解决方法:

当我学习编码时,这种事情在MSDOS中非常普遍.可以通过简单的组装说明访问一组基本的硬件屏幕模式.

对于那些支持ASCII字符集的字符,可以修改内存中字符的实际字形图像.每个可用字符都是一个简单的位图,可以在内存中对其进行修改以根据需要进行更改.

例如,在彩色屏幕模式(例如CGA,EGA)中,可以通过特定的存储区域来呈现文本,其中一个字节指定字符,另一字节指定颜色(对于EGA,前景和背景各为4位).您只需在其中写入值,它们就会显示在屏幕上.如果您修改了字符表,则将显示修改后的字符.

我不敢相信我刚才记得这一点,但是内存地址A000显然已经烧入我的大脑.您可以在https://en.wikipedia.org/wiki/Enhanced_Graphics_Adapter阅读更多

当然,还有更高的屏幕模式可以支持编写实际像素,这就是我们过去编写游戏的方式.著名的320×200 VGA模式超级容易和快速,以令人惊叹的256色获得“逼真的”和流畅的动画图形,而无需担心位平面或其他任何东西.

从本质上讲,这就是底层的情​​况. BIOS对这些被遗忘的图形模式的支持已经存在很长时间了,但是现代硬件使我们摆脱了这种模式,我们现在倾向于通过驱动程序或操作系统抽象直接与图形卡通信.

标签:graphics,grub,low-level,c-3,linux
来源: https://codeday.me/bug/20191027/1943764.html