打印到屏幕内核基础知识

时间:2016-01-11 01:03:37

标签: kernel

作为Basic内核版本,我使用自己的构建内核打印到屏幕。使用以下代码,我不会在屏幕上看到任何代码。我只使用' qemu-system-i386 -kernel kernel.bin'来部署内核。命令

Kernel.c

    void kmain() {
       volatile short *video = (volatile short *)(0xB8000);
       video[0] = 'h';
    }

1 个答案:

答案 0 :(得分:0)

我在C中并不强,但我知道0xB8000处的视频缓冲区由(字符,属性)对组成。它看起来不像是在编写任何属性,这意味着角色可能在黑色背景上显示为黑色字母,您无法看到。

如果添加一些属性,例如:

,该怎么办?
video[0] = ((short)'h' | 0x0F00);

这些属性应使其在黑色背景上显示为白色字母。 有关屏幕(以及其他内容)的更多信息,请参阅OSDev Wiki here。还有一个可用颜色列表here