Bo2SS

Bo2SS

1. 尝尝鲜:從一個Hello到另一個Hello

環境:Windows 下的 Ubuntu 18.04 虛擬機

實踐一下#

🎯目標:讓自己的系統輸出 "Hello OS"

下載源碼#

  1. 可在系統任意位置,打開終端執行以下命令,下載源碼到虛擬機上
git clone https://gitee.com/lmos/cosmos.git

生成 bin 文件#

  1. 在庫中具體位置:/lesson02/HelloOS 下,編譯源碼,生成 HelloOS.bin
  • 首先,需要安裝工具 gcc、make、nasm,默認只有 nasm 沒有,其它工具如沒有再安裝
sudo apt update
sudo apt install nasm
  • 然後,執行編譯即可,默認按照 Makefile 裡的規則,生成 HelloOS.bin
make

移動 bin 文件#

  1. 將 HelloOS.bin 放到 /boot/ 目錄下
mv HelloOS.bin /boot/

修改 grub 啟動配置⭐#

  1. 修改 /boot/grub/grub.cfg 文件
  • 使用 sudo 權限,用 vim 打開
sudo vim /boot/grub/grub.cfg
  • 在最後位置插入以下代碼,注意修改兩個地方:set root、multiboot2
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
}
  • 修改內容參考此步驟,再打開一個終端,觀察 df /boot/ 的結果,關注兩個地方:文件系統、掛載點
image-20210515092657939
  • 文件系統⭐
    • 若為 /dev/sda1,即 1 對應修改 set root='hd0,msdos1'
    • 如果不是 sda [其它系統環境],還需看情況修改 [看課程評論]
  • 掛載點⭐
    • 若為 /boot,對應修改 multiboot2 /HelloOS.bin
    • 若為 /,則無需修改

PS:使用:w!保存,使用:q退出編輯

image-20210515092718504

重啟機器#

  1. 重啟機器,在加載系統前瘋狂按 shift 鍵 [也可能是其他鍵,如 esc 鍵],進入 grub 引導界面
image-20210515092730798
  • 選擇自己的系統,按 enter 鍵
image-20210515092740876
  • 如果此處報錯,主要涉及系統類型(物理機、其它虛擬機系統)、系統分區類型(UEFI)、分區表類型(GPT)等因素,可參考以下參考內容👇

參考內容#

如果在其他環境下運行,可參考課程裡的評論和相關博客

課程鏈接#

掃碼即可加入:

image-20210523213829681

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。