目录
一、运行要求
二、开始运行
三、重启linux
细节补充
一、运行要求
实验环境VMware + Ubuntu18.04
安装gcc,nasm,make
命令为:sudo apt-get install gcc,sudo apt-get install nasm,sudo apt-get install make
HelloOS系统文件下载网址:
极客时间-操作系统实战45讲: 极客时间-操作系统实战45讲课程已经上线,欢迎订阅 – Gitee.com
二、开始运行
1、以下是HelloOS源文件。
以下文件中是C语言文件和汇编文件。
2、首先打开对应文件夹的终端,输入指令:make all;此时所有文件编译完成。
下面是复杂的编译流程,但make all 就可以全部搞定。
3、将HelloOS.bin文件复制到boot文件夹下
4、将install.md中的内容追加到/boot/grub/grub.cfg中。
注意以下代码中msdos4可能要更改,在终端输入命令:df /boot/
menuentry 'HelloOS' { insmod part_msdos#GRUB加载分区模块识别分区 insmod ext2#GRUB加载ext文件系统模块识别ext文件系统 set root='hd0,msdos4'#注意boot目录挂载的分区,这是我机器上的情况 multiboot2 /boot/HelloOS.bin #GRUB以multiboot2协议加载HelloOS.bin boot #GRUB启动HelloOS.bin}
在文件系统下面的为/dev/sda1则将msdos4改为msdos1。
进入boot/grub/grub.cfg中追加。
此时grub.cfg是只读文件需要更改文件权限。在对应文件夹中打开终端,
切换为root模式:su root;如果root密码忘记了通过命令:sudo passwd root 更改。
修改限权:chmod o+w grub.cfg 这样grub.cfg就可以修改了。
5、最后终端输入命令:sudo gedit /etc/default/grub
将GRUB_TIMEOUT_STYLE=hidden注释掉;将GRUB_TIMEOUT改为30;最后将GRUB_CMDLINE_LINUX_DEFAULT改为text。
三、重启linux
重启linux,选择HelloOS进入。
这样HelloOS就运行完成了。
细节补充
控制计算机屏幕
计算机屏幕显示往往是显卡的输出,显卡有很多形式:集成在主板的叫集显,做在 CPU 芯片内的叫核显,独立存在通过 PCIE 接口连接的叫独显,性能依次上升,价格也是。
独显的高性能是游戏玩家们所钟爱的,3D 图形显示往往要涉及顶点处理、多边形的生成和变换、纹理、着色、打光、栅格化等。而这些任务的计算量超级大,所以独显往往有自己的 RAM、多达几百个运算核心的处理器。因此独显不仅仅是可以显示图像,而且可以执行大规模并行计算,比如“挖矿”。
我们要在屏幕上显示字符,就要编程操作显卡。
其实无论我们 PC 上是什么显卡,它们都支持一种叫 VESA 的标准,这种标准下有两种工作模式:字符模式和图形模式。显卡们为了兼容这种标准,不得不自己提供一种叫 VGABIOS 的固件程序。
下面是显卡工作细节。
它把屏幕分成 24 行,每行 80 个字符,把这(24*80)个位置映射到以 0xb8000 地址开始的内存中,每两个字节对应一个字符,其中一个字节是字符的 ASCII 码,另一个字节为字符的颜色值。如下图所示: