Unix的成功与Linux的兴起

举报
yd_221104950 发表于 2021/07/13 00:48:28 2021/07/13
【摘要】 Unix起源于贝尔实验室。据说是在Multics多用户操作系统失败之后,贝尔实验室的工程师发现他们处于一个没有可交互的操作系统可用的境地。于是,他们就设计了一个文件系统原型,这就是Unix系统开始的地方。在一开始,Unix系统并不是使用C语言编写的,在1973年时,才用C重写了Unix系统。这使得Unix可以移植到不同的机器去。 Unix系统在发布时会提供源码。这也使用...

Unix起源于贝尔实验室。据说是在Multics多用户操作系统失败之后,贝尔实验室的工程师发现他们处于一个没有可交互的操作系统可用的境地。于是,他们就设计了一个文件系统原型,这就是Unix系统开始的地方。在一开始,Unix系统并不是使用C语言编写的,在1973年时,才用C重写了Unix系统。这使得Unix可以移植到不同的机器去。
Unix系统在发布时会提供源码。这也使用得不同的团体、机构有机会参与Unix的开发。比如BSD,加州伯克利分校对Unix的贡献是很大的。BSD也因其开放性许可,使其开发得以由Darwin、FreeBSD、NetBSD、和OpenBSD继续。还有一些商业机构会在一些Unix的发行版上加上功能特性以满足他们的需求,如HP的HP-UX,IBM的AIX,Digital的Tru64,Sequent的DYNIX/ptx,SGI的IRIX,和Sun的Solaris和SunOS。

至今,Unix仍然是最成功的操作系统之一。从它的成功中,我觉得有几样东西挺值得我们借鉴的。

  1. 首先,它的设计是一流的。这说明设计可以促成产品的成功。塞班系统估计这一点就做得不好
  2. 简洁,意味少。Unix的系统调用只有几百个,而有些系统则有上千个系统调用。简洁应该是我们所应追求的,但不是单纯地追求简洁,有些东西该复杂的,还真不能简洁。
  3. 用C语言重写Unix,为其后的多平台移植铺平了道路。
  4. Unix使用fork()函数创建新进程的,速度快。
  5. Unix拥有稳定而简单的进程间通信元语

操作系统内核只要有:单内核和微内核 。Unix和Linux的内核都属于单内核,但是它们有区别。

所谓单内核就是将内核为一个大过程来实现。它通常以单个静态二进制文件的形式存放于磁盘中,所有内核服务都在这样一个大内核地址空间上支行,内核 之间的通信通过直接调用函数来实现,这样一来性能就提高了。Unix就属于这种类型的。

所谓的微内核就是内核的功能会被划分为多个独立的过程,每一个过程都叫服务器。这些服务器中,有一些运行特权模式下,另一些则运行在用户模式下。它们都保持独立并运行在各自的地址空间上。因为内核间的通信就不可能直接调用函数了,而是要通过消息机制来处理内核通信。微内核的好处是避免了一个服务器的失效祸及另一个。这种模块化的设计允许一个服务器为了另一个服务器而换出。Windows NT和Mac OS X就属于这种类型的。

IPC(进程间通信)开销远多于函数调用,因为它涉及内核空间与用户空间的上下文切换。

Linux内核也属于单内核,但是它很聪明,它博取了众长。Linux取了微内核的精化:模块化设计、抢占式内核、内核线程、动态装载内核模块的能力。同时避免了微内核的短处,它让所有的事情都运行在单独的内核地址空间上,内核通信直接调用函数,无需消息传递。

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/118660444

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200