6.828 ZhyOS在macOS下的环境配置-2020

本文主要介绍如何在macOS下配置mit 6.828 JOS的实验环境

​ 实习期做过一些业务之后,最直观的感受是做业务相对来说比较繁琐,每天疲于完成分配的需求,对个人成长来说不是特别大。和翔少一波交流后,还是想回归学校,利用余下不多的时间多打打基础,考虑抓抓基础以后往infrastructure方向发展。

​ 在进行JOS之前,在网上搜索关于JOS的开发环境,基本都是关于在ubuntu下的配置教程,很多博客和文章都提到“不是32位linux就不好配置,会浪费大量时间在配置环境”上之类的言论。奈何为囊中羞涩所困,在连续开了几个centOS后,本人OS X没有过多的存储资源可以使用,加上实在无法忍受开VMware恐怖的耗电量和发热量,尝试将开发环境移到macOS下。

​ 起初按照刘学长博客进行配置,但是出现一堆读不懂的error;简单碰壁后发现其实无比简单,在这里放上我的配置教程,过程非常简单可操作,希望能帮助到更多的coder完成这个项目。

1. Tools we need

配置环境之前,有两个工具是必须要进行配置的:

  • Homebrew

  • Macports

    建议大家直接Google,按照官网公开的方法进行配置即可~(需要在管理员模式下进行,否则会遇到很多Permission Denied的报错,通常难以解决,本菜🐔也被困扰很久)

2. 运行JOS demo

  • QEMU

    在Homebrew工具下,直接利用brew即可安装i386-jos-elf-gcc和i386-jos-elf-gdb

1
2
brew tap liudangyi/i386-jos-elf-gcc //添加第三方库
brew install i386-jos-elf-gcc i386-jos-elf-gdb
  • 官网克隆源码

    从mit课程官网得到6.828的git地址,发现从2018年后就未更新,所以我们用2018的代码实现

1
2
3
mkdir ~/6.828
cd 6.828
git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab
  • make jos的boot loader和kernel
1
2
cd ./lab
make
  • 成功后及显示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
+ as kern/entry.S
+ cc kern/entrypgdir.c
+ cc kern/init.c
+ cc kern/console.c
+ cc kern/monitor.c
+ cc kern/printf.c
+ cc kern/kdebug.c
+ cc lib/printfmt.c
+ cc lib/readline.c
+ cc lib/string.c
+ ld obj/kern/kernel
i386-jos-elf-ld: warning: section `.bss' type changed to PROGBITS
+ as boot/boot.S
+ cc -Os boot/main.c
+ ld boot/boot
boot block is 382 bytes (max 510)
+ mk obj/kern/kernel.img
  • 启动JOS qemu
1
make qemu

此时即可成功启动JOS,enjoy~

3. 持续关注

​ 正值疫情老虎徘徊,再加上工作需求和学业压力,今天先完成了相关环境的配置,后续会继续进行OS的开发和学习,计划在一个月内完成这6个Lab,自己学习的过程中也帮助大家踩踩坑,祝大家都能早日拿到心仪的offer~