操作系统实战 45 讲:运行HelloOS界面

发布于:2022-11-01 ⋅ 阅读:(602) ⋅ 点赞:(0)

目录

一、运行要求

 二、开始运行

三、重启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;此时所有文件编译完成。

下面是复杂的编译流程。

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 码,另一个字节为字符的颜色值。如下图所示:

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到