目的
MINIX 3是一个比较完善的微内核架构的类unix系统。如果想要了解和学习操作系统,Linux肯定是首选,而且几乎所学即所用。但是,如今的Linux已经复杂到一定层度,即便有丰富的视频和书籍作为参考,想通过Linux以窥操作系统之精髓,继而自己实现一个系统,个人认为不是一个最佳路径。
MINIX 3 则是一个好的选择,不同于Linux这种将所有功能堆在一起的宏内核结构,MINIX 3 通过合理的设计,将整个操作系统的功能拆分成一个个的独立系统组件,通过组件间的相互协作,进而完成系统功能。
以Minix3为学习对象还有一个好处是,其OS功能实现比较完整,能完全展示OS的设计原理和实现机制,同时因为其本身就是一个教学系统,故在实现的时候,尽量使用简单的数据结构和算法,以简洁清晰为主,这对以追求性能而高度优化的Linux来说,学习难度降低很多。
当然,除了MINIX 3 ,还有很多其他的OS也比较容易学习和理解,如Goole的Zircon和Trusty,也是比较好的学习对象。后边如果机缘巧合,可以再开新篇。
还要再说明下MINIX 3 的一些不足,首先要承认,MINIX 3 除了是微内核的UNIX之外,其他没有什么优点足够让它进入到应用领域,因此几乎没什么生态。目前MINIX 3 的版本还是2017的状态,只支持x86 32和arm 32。
我们以arm 32位版本为例,来分析MINIX 3 的系统实现。首先,本篇主要讲述基于Qemu的搭建环境。
资源
- Minix官方网站:http://www.minix3.org/
- Minix开发Wiki https://wiki.minix3.org/doku.php?id=developersguide:start
- Minix arm版本编译 https://wiki.minix3.org/doku.php?id=developersguide:minixonarm
- Qemu的构建 https://wiki.minix3.org/doku.php?id=developersguide:minixonlinaroqemuarm
构建
QEMU
cd $HOME
git clone git://git.linaro.org/qemu/qemu-linaro.git linaro
cd linaro
sudo apt-get build-dep qemu # to install the build dependencies of qemu
./configure --target-list=arm-softmmu --prefix=$HOME/qemu
make
make install
Minix3
下载Minix3代码
mkdir -p $HOME/minix
cd $HOME/minix
git clone git://git.minix3.org/minix src
cd src
编译构建
minix3的构建过程比较复杂,先要构建编译器等toolchian,再用toolchain来构建minix3。
./releasetools/arm_sdimage.sh
如果构建过程有问题请文章来源:https://www.toymoban.com/news/detail-785452.html
- 参考资源 3链接。
- 如果是在ubuntu新版本(如23.04)可能会有编译,报错,这是因为GCC的问题。可以参考此处解决
- 评论贴出来问题
运行
$HOME/qemu/bin/qemu-system-arm -M beaglexm -drive if=sd,cache=writeback,file=minix_arm_sd.img -clock unix -serial stdio -device usb-kbd -device usb-mouse -usb
启动之后输入root,即可进入系统。文章来源地址https://www.toymoban.com/news/detail-785452.html
到了这里,关于MINIX 3 系统之搭建QEMU ARM运行环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!