从零到一手写操作系统(二、环境配置)
手写操作系统目录
二、环境配置
要想有成就感,就要先把环境搞好
2.1)配置第一天
硬件:一台破主机+一台老旧的显示器+一个破键盘+一个破鼠标
OS:Ubuntu20.04
ok,第一天晚上便把这些给凑齐了,系统也给安装上了,一不小心竟然还装了个双系统,毕竟主机虽破,也可是固态加机械硬盘,反手就是一个禁用固态启动,毕竟啥也不会,浪费资源还是会的,可以不用固态,但不能没有,就这样一个拥有500GB的linux诞生了,害,主要是操作错了,本来可以用那个固态的,算了不想重来,人生也是。
2.2)配置第二天
目标:能跑起来一个简单的os
一想到这,沾沾自喜,毕竟科班出身的我,还不是手到擒来。
2.2.1)安装基本的环境vim,gcc等等
2.2.2)手动启动,配置开机出现grub引导界面
1sudo vim /etc/default/grub
打开这个文件后,可能不同版本的系统不太一样,我这以Ubuntu20.04为例,
1GRUB_DEFAULT=0
2GRUB_TIMEOUT_STYLE=hidden
3GRUB_TIMEOUT=10
4GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
5GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
6GRUB_CMDLINE_LINUX=""
文件内容主要这样,主要改两个地方一个是第二行,另外就是延时当前是10秒
1GRUB_DEFAULT=0
2#GRUB_TIMEOUT_STYLE=hidden
3GRUB_TIMEOUT=30
4GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
5GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
6GRUB_CMDLINE_LINUX=""
退出保存
1sudo update-grub
重启就可以看到开机启动选项了
2.2.3)编译文件,生成bin文件
2.2.4)在/boot/grub/grub.cfg中添加menuentry
1sudo vim /boot/grub/grub.cfg
1menuentry 'virginOS' {
2 insmod part_msdos
3 insmod ext2
4 set root='hd0,msdos5'
5 multiboot2 /home/aen/os_file/A_virginOS/virginOS.bin//这一栏就是你要启动程序的bin文件
6 boot
7}
注意:
insmod 这个要看是什么类型的是mbr还是gpt ,gpt就是 part_gpt
set root 这一栏要看我们系统的bin文件在哪个分区,df -h 查看,具体可百度
成功运行如下图,在PC机上显示成功,至此,环境配置已完成。
手写操作系统目录
![个人公众号](https://pic.aeneag.xyz/qrcode_for_gh_6991d24e23e2_344-91ebc4df.jpg)
![个人微信](https://pic.aeneag.xyz/WechatIMG91-dc5e5be8.jpeg)
吾心信其可行,
则移山填海之难,
终有成功之日!
——孙文
则移山填海之难,
终有成功之日!
——孙文
![](https://ftp.stackoverflow.wiki/bolo/background/butterfly/comment.png)
0 评论