之前介绍过从1992年开始两位大佬linux和tanenbaum就已经打响了微内核和宏内核的之争的战役,可以这么说minx一直是微内核开源领域的扛把子,minix吸收了很多先进的思想到其中,一路演变到minix3,且越战越勇。
我要说minix3是目前装机量最高的os,你会不会打我。据称2008年以来英特尔推出的处理器大都运行着一个修改版的minix3操作系统,英特尔管理引擎(intel me)运行其上,该系统在处理器内部有自己的cpu内核和专属固件,完全独立于其他部分,运行权限达到了ring-3,且具有完整的网络堆栈、文件系统、web服务器,以及usb和网络等一系列驱动。也就是说这个minix系统可以不依赖于cpu,拥有自己独立的硬件,功能齐全,可以说它想干什么就干什么。另一方面也说明了minix的安全性很高,intel用也不怕它出问题,这就是微内核的魅力所在。
1. 简介
1987,minix 诞生了。minix 是mini unix的缩写,一个迷你版类 unix 操作系统。minix 原来是荷兰阿姆斯特丹的 vrije 大学计算机科学系的安德鲁·塔能鲍姆(andrews. tanenbaum )教授所开发的一个类 unix 操作系统,开发初衷是方便教学使用(因为 at&t 推出 version 7 unix 之后,将 unix 源码进行了私有化)。minix 全部的源代码共约 12,000 行,并置于他的著作operatingsystems: design and implementation(isbn 0-13-637331-3)的附录里作为范例。minix 的系统要求在当时来说非常简单,只要三片磁片就可以启动。
详细的介绍强烈推荐你看下之前的一篇介绍,里面介绍了minix的历史及与unix的关系: os内核入门-linux0.11诞生的故事和源码初探 总结为:multics->unix->minx->linux。 minix一开始向使用者收取极低的授权费,直到 2004 年,塔能鲍姆重新架构与设计了整个系统,更进一步的将程序模块化,推出minix 3。重新以bsd 许可协议发布,成为开放源代码软件。minix 3 的目标是比windows或linux更安全,在当时塔能鲍姆那份获得欧盟研究委员会(europeanresearchcouncil)5 年 250 万欧元资助的研究计划书里,tanenbaum 解释了为何他认为现有的操作系统不安全如下: 最严重的可靠性及安全问题是与操作系统相关的那些。核心问题在于现有操作系统都不符合 pola(principleofleastauthority) ——最低授权原则。pola说的是系统划分组件的方式,应当使必然存在于某个组件中的缺陷,不至于波及其他组件。每个组件仅应该得到完成它本身工作所需的权限,不多不少。具体来说,它应该无权读写属于其他组件的数据,无权读取它自身地址空间之外的任何计算机内存,无权执行与它无关的敏感操作指令,无权访问不该访问的 i/o 设备,诸如此类。现有操作系统完全违反以上原则,结果就是造成众多可靠性及安全问题。
2. 代码下载编译
言归正传,还是老一套,代码下载编译运行,参考资料:
这里我总结下,给出具体步骤: 代码下载:
$ mkdir -p $home/minix$ cd $home/minix$ git clone git://git.minix3.org/minix src$ cd src代码修改配置,在src目录下新建.settings文件,设置编译为beagleboard-xm开发板可以运行的版本:# beagleboard-xmu_boot_bin_dir=build/omap3_beagle/console=tty02为什么编译这个beagleboard-xm开发板?因为我们想要在qemu上,qemu可以模拟这个开发板,且是arm的,更有学习价值。 进行编译:$ ./releasetools/arm_sdimage.sh编译成功后会看到:
编译如果出现一些问题,可以参考刚那个网址上解决。我遇到了一个环境变量的问题,执行export arch=evbearm-el就好了。
3. qemu运行
运行需要qemu,如果你ubuntu上有qemu-system-arm 可以执行qemu-system-arm -m ?|grep beagle看下是否支持这个板卡,如果支持会输出如下:
如果不支持,就需要找一个支持的qemu-system-arm,有两个方法: 1)直接找一个,可以尝试下面的,下载后复制到你的ubuntu里面看支持不 链接: https://pan.baidu.com/s/1fs1xvotgkosejftr7shefw
提取码: akwc 2)第二个方法就是自己下载qemu的源码编译一个
$ git clonegit://git.linaro.org/qemu/qemu-linaro.git linaro$ cd linaro$ sudo apt-get build-dep qemu # to installthe build dependencies of qemu$ git submodule update --init pixman$ git submodule update --init dtc$ ./configure --python=/usr/bin/python2--prefix=/opt/qemu --disable-werror --target-list=aarch64-softmmu,arm-softmmu--disable-vnc --disable-xen --disable-guest-agent --disable-bluez--disable-docs --disable-rdma --disable-vde --disable-libiscsi --disable-libnfs--disable-tpm --disable-libssh2 --disable-vhdx$ make -j8$ sudo make install到这里qemu工具搞定后,就可以运行我们编译的minix镜像了,命令如下:$ cd $home/minix/src$ /opt/qemu/bin/qemu-system-arm -m beaglexm -driveif=sd,cache=writeback,file=minix_arm_sd.img -clock unix -serial stdio -deviceusb-kbd -device usb-mouse -usb运行成功会进入到minix的shell:
我们使用root进行登录就可以了。
烽火通信三大最新成果助力中国5G领先世界
在Altera CycIone II系列FPGA中用VHDL实现E2PROM控制器的设计
PowerShell运行的是什么脚本
苹果Macbook Pro依然热销 国产神舟优雅X4-SL5S1想挑战它
宏碁推出新一代热介面材料 Predator PowerGen
MINIX3代码编译运行案例分析
PID调节,最生动的讲解!
pll倍频最大倍数
推荐几个半入耳式蓝牙耳机,300以内半入耳蓝牙耳机
Ameco成都分公司圆满完成了澳门航空一架A320飞机交付检工作
OPPO R11使用骁龙660 热销机型过半采用高通芯片
接触镜传感器系统收集24小时眼压,测量结果优于诊室的多次眼压测量
贸泽电子荣膺Ohmite 2020年渠道合作伙伴奖
三相电采集模块的使用方法描述
利润缩水 MEMS大厂面临竞争压力
直播回顾 | 4G聚合在线体验交流会首播圆满收官
FPGA电源设计的3大要点
poe供电交换机最大传输距离分析
米家互联网空调新品即将发布 或将继续主打2000元左右价位
回顾小鹏汽车发布首款智能汽车--小鹏G3