关于基于gnu/linux的发行版、Android、mac os、ios、BSD、UNIX之间关系

关于基于gnu/linux的发行版、Android、mac os、ios、BSD、UNIX之间关系

Posix

Posix是一个接口标准,是之前由UNIX提出的标准,是操作系统提供给应用程序的接口,这是因为之前UNIX早期是开源的,而后出现了很多UNIX-like系统,与UNIX基本兼容而又不完全兼容的系统,为了让系统之间更具有兼容性,UNIX提出了Posix接口标准,而后由于UNIX商业化,只有花钱通过了UNIX的Posix接口标准测试的操作系统,才能称为UNIX,其他的只能是UNIX-like os或*nix os。

GNU/linux

GNU/linux最先是由linus大神和开源教主richard分别弄出一个linux内核和一组欠缺内核的操作系统套件,而后结合后便发展成GNU/linux,现在电脑上运行的linux实际上都应该是GNU/linux的发行版。

alt

BSD

BSD是满足Posix标准的UNIX-like操作系统,当然linux也是,然而linux却只是一个内核,BSD是一套完整的系统,GNU本应与BSD一样,然而GNU开发小组一直没有开发出稳定可用的系统内核于是便与linux结合BSD与GNU/linux是并列的都是由UNIX派生出来的操作系统。

Android

Android比较特殊,其基于linux内核,而又没有使用GNU的套件,所以Andriod并不属于GNU/linux,可以说Android是linux发行版,但是又不是GNU/linux分支下。
Android是一套商业系统,而虽然其所用的linux kernel是遵循GPL协议,然而Android在加入移动设备驱动时,为了不让厂家的移动设备驱动被泄露,而刻意不将设备驱动加入linux kernel中,因为那样就意味着设备驱动的开源,所以Android通过将驱动程序移到linux kernel之上,并将其称为"userspace",而后通过一个隧道与硬件电路通信。隧道会被加入到linux kernel中被开源,然而驱动不会。

alt
部分驱动还是被包括在linux kernel中然而还有一些驱动被实现在Libraries层了。

Mac os、ios

Mac os则是发源至Free BSD,这是因为BSD协议的特性,而之后的ios又是在Mac os上改编的。

总览

alt