标签: kernel
作为Basic内核版本,我使用自己的构建内核打印到屏幕。使用以下代码,我不会在屏幕上看到任何代码。我只使用' qemu-system-i386 -kernel kernel.bin'来部署内核。命令
Kernel.c
void kmain() { volatile short *video = (volatile short *)(0xB8000); video[0] = 'h'; }
答案 0 :(得分:0)
我在C中并不强,但我知道0xB8000处的视频缓冲区由(字符,属性)对组成。它看起来不像是在编写任何属性,这意味着角色可能在黑色背景上显示为黑色字母,您无法看到。
0xB8000
如果添加一些属性,例如:
video[0] = ((short)'h' | 0x0F00);
这些属性应使其在黑色背景上显示为白色字母。 有关屏幕(以及其他内容)的更多信息,请参阅OSDev Wiki here。还有一个可用颜色列表here。