手写操作系统-环境的建立

1.写在前面

上一篇博客由于我们使用的虚拟机导致无法启动对应的虚拟机,然后就不了了之,今天我带领着你们来搭建对应的环境。

上一篇博客的地址

2.环境的准备

2.1Virtualbox

考虑每个人环境都是不一样的,可能有Mac、Windows的,这儿我们先准备一个虚拟机,我们先下载一个virtualbox,对应的下载地址,然后下载对应好的版本直接安装就可以了。

2.2Ubuntu18

直接按照如下的步骤就可以完成安装。

  1. 新建虚拟机

    在这里插入图片描述

  2. 选择对应的系统

    在这里插入图片描述

  3. 设置内存

    在这里插入图片描述

  4. 创建虚拟硬盘

    在这里插入图片描述

  5. 设置虚拟硬盘类型

    在这里插入图片描述

  6. 设置硬盘大小

    在这里插入图片描述

  7. 设置硬盘大小和位置

    在这里插入图片描述

  8. 设置CPU个数

    在这里插入图片描述

  9. 设置显存大小

    在这里插入图片描述

  10. 设置镜像

    在这里插入图片描述

    在这里插入图片描述

  11. 设置网络模式

    在这里插入图片描述

  12. 启动虚拟机

    在这里插入图片描述

  13. 选择中文简体

    在这里插入图片描述

  14. 点击安装,选择键盘

    在这里插入图片描述

  15. 点击继续

    在这里插入图片描述

  16. 点击继续

    在这里插入图片描述

  17. 点击现在安装

    在这里插入图片描述

  18. 点击继续

    在这里插入图片描述

  19. 设置好账号密码,点击继续

    在这里插入图片描述

  20. 等待安装

    在这里插入图片描述

  21. 安装完成,现在重启

    在这里插入图片描述

  22. 再次重启一次,因为这儿有我们的安装盘,需要移出

    在这里插入图片描述

  23. 进入系统,准备更新组件

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  24. 重启设备

    在这里插入图片描述

  25. 安装增强功能,点击设备,然后点击安装增强功能

    在这里插入图片描述

  26. 安装完成,重启,调整对应的分辨率

    在这里插入图片描述

  27. 关闭操作系统

2.3创建虚拟硬盘

  1. 创建虚拟硬盘

    在这里插入图片描述

    在这里插入图片描述

  2. 选择虚拟硬盘的类型大小

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  3. 关联起来

    在这里插入图片描述

    在这里插入图片描述

2.4创建操作系统

  1. 创建虚拟机

    在这里插入图片描述

  2. 分配内存

    在这里插入图片描述

  3. 关联对应的虚拟硬盘

    在这里插入图片描述

  4. 点击创建,至此我们所有的环境准备完毕。

注意:虚拟硬盘os.vdi即跟Ubuntu虚拟机关联又跟myOS虚拟机关联。这个时候我们只需要在Ubuntu虚拟机上进行对虚拟硬盘的改写,就能同步到我们的操作系统

3.安装GRUB

先打开我们的Ubuntu虚拟机,然后打开对应控制台。执行如下的命令:

lsblk

在这里插入图片描述

可以看到一共有两块硬盘:sda、sdb,其中sda是Ubuntu系统的专用硬盘,sdb就是我们的目标硬盘os.vdi。

接下来依次执行如下的命令:

//sdb设备只是一块新的硬盘,上面需要建立文件系统才能够使用
//mkfs.ext4即是在sdb上建立ext4文件系统
sudo mkfs.ext4 /dev/sdb
//进入~目录建立hdisk文件夹作为sdb的挂载目录
cd ~
mkdir hdisk
//将/dev/sdb挂载在hdisk目录下,这样我们就能通过访问hdisk目录访问sdb硬盘
sudo mount /dev/sdb ./hdisk

在这里插入图片描述

再次输入lsblk命令,可以看到sdb设备已经被加载到了hdisk目录下(可以认为访问hdisk就是访问sdb硬盘)

在这里插入图片描述

而后创建boot目录,作为内核的加载目录:

sudo mkdir ./hdisk/boot

将grub安装到boot中(grub可以看做是bootloader,是用来加载操作系统的),这需要借助grub-install工具:

sudo grub-install --boot-directory=./hdisk/boot/ --force --allow-floppy /dev/sdb

在这里插入图片描述

若无误则表明grub安装完毕,进入boot目录可以看到多出了grub文件夹。

现在还需做一件事情,那就是配置grub的启动项,在boot/grub目录下新建一个grub.cfg,其中的内容如下:

//设置HelloOS是启动系统的第一个选项
menuentry 'myOS' {
#加载part_msdos、ext2模块
#这是grub的语法
insmod part_msdos
insmod ext2
set root='hd0' #只有一个硬盘,因此设置根目录为hd0(就是hd.vdi)
multiboot2 /boot/COSMOSOS.eki #加载boot目录下的.eki内核文件
boot #加载启动内核文件
}
#设置过时样式为目录
set timeout_style=menu
#设置过时时间
if [ "${timeout}" = 0 ]; then
  set timeout=10 #等待10秒钟自动启动
fi

注:上述grub.cfg文件内容暂时不懂没关系,语法的学习可以参考:GRUB2语法学习,并且在下一篇博客会对GRUB、Boot、efi等概念做一个总结,到时候一切都明白了

保存后关闭虚拟机Ubuntu,启动虚拟机myOS。

注:两个虚拟机不能同时开启,因为两者都挂载了hd.vdi,两个同时开启会出现文件冲突。

4.启动myOS

启动myOS之后可以看到下面的结果:

在这里插入图片描述

点击myOS之后,提示找不到eki文件:

在这里插入图片描述

之所以找不到eki文件,是因为我们暂时还没有往os.vdi硬盘中放入内核文件,而这就是我们以后要做的工作——将内核编译为eki文件放入grub文件夹下,而后利用虚拟机myOS进行测试!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值