purplewall
2019-05-02 21:52:44 +08:00
1. 两个操作系统的本质区别区别就是内核的区别。MacOS 完全可以当做 Linux 使用。
2. 两个操作系统都参考了 POSIX 标准,这意味着 fork,系统调用等操作使用方式基本是一致的,但是实现方式各有不同。
3. 主要的区别是内核架构的区别,macOS 内核是微内核架构,内核代码量小只负责地址空间管理、IPC 等基础功能,很多系统服务都可以放到用户态搞定(但是需要特殊机制保护一下),拓展性移植性比较好,缺点是 io 的时候可能要经过很多次特权级别切换,速度较慢。
4. linux 内核架构是 monolithic (单内核 /宏内核)形式的,页表、中断、异常等等全都在内核搞定,只使用 Ring0 和 Ring3 两个特权级别(内核态 /用户态)。当处理异常和系统调用时进行特权切换,缺点是代码量特别大。
5. 另外现阶段的 windows 操作系统的内核架构很可能已经碎片化了,就很复杂,期待某位大佬能出本权威的书介绍。
6. 从使用角度讲 linux 的社区较之 macOS 更大,linux 社区对各种开发工具的支持很可能更加全面。
7. 极客感和复古感什么的主要是自己用的开心就好啦。