OShomework3
-
Question 1: Application can gain a better performance of memory and file system in exokernel compared with microkernel or monolithic kernel, why? And what's the price of performance profit?
因为在 EXOkernel 的架构下,OS 对硬件不做任何抽象,直接把裸的物理资源交给 application 去使用,而 OS 只负责保证 application 之间互相隔离,并控制资源的发放与回收。
application 通过 libOS 来使用物理资源,相当于 OS 把大部分工作“外包”出去交给 libOS 在user 态运行。
在这种情况下,linux 中的大部分系统调用对应于 EXOkernel 的架构,都成了对于 libOS 的普通函数调用,省去了陷入内核的 overhead,所以性能得到大幅提高。
通过高度客制化提升性能的代价就是不同的应用可以跑它们自己的 libOS,丧失了同一性和普适性,也为维护和售后服务带来了困难。 -
Question 2: Exokernel grants the applications more control over hardware resource. How does exokernel protect application against each other? And how to understand this goal of paper: to separate protection from management?
摘自课堂笔记
-
Open question - do you think why has not exokernel been as popular as monolithic kernel(Linux) and Hybrid kernel(Windows NT)?
- 提高客制化程度换来高性能的代价就是牺牲了同一性和普适性。在 EXOkernel 下,不同的 application 可能跑着完全不同的 libOS,这样就导致兼容性问题和 one fits all 问题。所以在某些功能需求单一的服务器机器上 EXOkernel 是很好的选择,但是需要丰富功能的家用 PC 机就不是很使用 EXOkernel。
- 既有生态圈不利于 EXOkernel 的发展与推广。