Skip to content
/ HelloOS Public

#demo# Boot the smallest operating system based on GRUB

Notifications You must be signed in to change notification settings

2yanyi/HelloOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HelloOS

基于 GRUB 引导启动最小的操作系统


.
├── entry.asm   # 为C程序构建运行环境
├── vgastr.h    # 驱动显卡输出字符头文件
├── vgastr.c    # 驱动显卡输出字符
├── main.c      # 主程序
├── hello.lds   # 链接配置
└── Makefile    # 编译构建工具

实验环境:Ubuntu 21.04 x86_64


1) 编译得到 HelloOS.bin

# sudo apt install g++ nasm make
> make

# 同时拷贝 HelloOS.bin 到 /boot 目录下
> sudo cp HelloOS.bin /boot

2) 编辑 GRUB 引导菜单

# vi /etc/default/grub
# 将 GRUB_TIMEOUT 设置为 30秒的等待
# 将 GRUB_CMDLINE_LINUX_DEFAUL 设置为 text

GRUB_TIMEOUT=30
GRUB_CMDLINE_LINUX_DEFAULT="text"

# 并更新 GRUB 配置
> sudo update-grub

3) 添加 HelloOS 启动选项

# vi /boot/grub/grub.cfg

menuentry 'HelloOS' {
    # 加载分区模块识别分区
    insmod part_msdos
    # 加载 ext 文件系统模块识别 ext 文件系统
    insmod ext2
    # 注意 boot 目录挂载的分区,参考 Ubuntu 启动选项的配置
    set root='hd0,gpt3'
    # 以 multiboot2 协议加载 HelloOS.bin
    multiboot2 /boot/HelloOS.bin
    # 启动 HelloOS.bin
    boot
}

About

#demo# Boot the smallest operating system based on GRUB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published