阅读数:1245

苹果公司在各类开源项目中长期贡献着自己的力量,但其UNIX系统技术一直都属于闭源阵营(这一点可以从NUX OS阵营和家谱图中得到答案)。然而,以封闭闻名的苹果公司,2017年国庆期间在GitHub上公布了旗舰操作系统的XNU内核源代码,XNU(XNU is Not Unix的缩写)属于 MacOS(包括以往全部版本)以及 iOS 所使用的类Unix内核(对应各类苹果Darwin操作系统)。通过公开内核代码,苹果公司将帮助开发人员更轻松地理解其设备与更高软件层同内核之间的协作原理。

XNU源代码基于苹果公共源许可(Apple Public Source License 2.0),这其实是一项相当严格的许可 ; 开发人员可将此次发布的内核代码引入自有项目(GitHub源码和详细信息可通过原文链接获取)。

UNIX操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构,起源于贝尔实验室、通用电气和麻省理工学院合作的计划MULTICS操作系统计划,由Ken Thompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。当时被称为" Niplexed Information and Computing Service" 缩写为"UNICS",后来就将其称其为"UNIX"了。

目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX,其中苹果XNU就是类UNIX系统。

Unix在开发的过程中没有对应任何的奖励制度和管理体制,Unix发展的动力主要源自科研和兴趣。直到现在,Unix的发展历史和家谱体系可以总结为下图(图片来源网络,点击看大图)。

然而在20世纪70年代,AT&T公司开始注意到Unix所带来的商业价值并开始寻找一些手段来保护Unix,包括通过许可证方式教学使用Unix的源码。在20世纪80年代,Unix发展为有两个最主要的版本线,Berkeley的BSD UNIX和AT&T的Unix。后来Unix的发展越来越快,这主要归根于不断地出现各种各样的变种(类Unix)。

Sun Microsystems公司基于BSD UNIX开发的SunOS(即后来大家熟悉的Solaris)的工作站。AT&T发布的Unix System V的第一版最终也造就了IBM的AIX和HP的HP-UX。下面讨论下几个主流类UNIX系统。

Mac OS

Mac OS是基于Unix内核的图形化操作系统,2011年7月20日Mac OS X(X为10的罗马数字写法)已经正式被苹果改名为OS X。也是一套运行于苹果Macintosh系列电脑上的操作系统,后来也推出在PC上运行的Mac系统(简称 Mac PC)。

AIX

AIX是IBM开发的一套UNIX操作系统。它符合Open group的UNIX 98行业标准,通过全面集成对32位和64位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM P系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。另外,AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格操作系统中。

Solaris
      Solaris是SUN公司研制的类Unix操作系统。直至2013年,Solaris的最新版为 Solaris 11。早期的Solaris是由BSD Unix发展而来。但至今Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。

Sun的操作系统最初叫做SunOS。SunOS 5.0开始,SUN的操作系统开发开始转向System V4,并且有了新的名字叫做Solaris 2.0。Solaris 2.6以后,SUN删除了版本号中的"2",因此,SunOS 5.10就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分组成。

Solaris运行在Intel x86及SPARC、Ultra SPARC两个平台。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。

HP UX
      HP UX取自Hewlett Packard UniX,是惠普公司以System V为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。

IRIX
      IRIX是由硅谷图形公司(简称SGI,SGI被HPE收购)以System V与BSD延伸程序为基础所发展成的UNIX操作系统,IRIX可以在SGI公司的RISC型电脑上运行,即运行基于32位、64位MIPS架构的SGI工作站、服务器之上。

Xenix
      Xenix是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX (亦被称作SCO OpenServer)为名发售。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合UNIX System V的接口规格(SVID)。

A/UX
      A/UX取自Apple Unix,是苹果电脑公司所开发的UNIX操作系统,此操作系统可以在该公司的Macintosh电脑上运行,A/UX于1988年首次发表,最终的3.1.1版本于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元PMMU (Paged Memory Management Unit)的处理器才能运行。

A/UX是以System V 2.2版为基础所发展,同时使用System V3、System V4、BSD 4.2、BSD 4.3等的传统特色,它也遵循POSIX规范及SVID规范。

从Unix操作系统的发展历史来看,又可以分为古典Unix,近代Unix和现代Unix,其中Linux起源于Minix,在严格意义上来讲不属于Unix范畴。智能终端系统除了苹果iOS外,Android、MeeGo和WebOS都属于Linux系统分支。

Linux有许多不同的版本,而且Linux的内核的发行和使用是完全免费的。所以很多的公司、组织,甚至是个人开发了他们自己Linux操作系统版本。随着Linux成熟发展和开放,Linux也经常内嵌在许多硬件设备之中,例如路由器、交换机、电话系统、智能手机、GPS系统等。比较受欢迎的Linux发行版如Fedora、Ubuntu、Red Hat、Debian、SUSE等

【转】从Mac/OS和iOS开放源码浅谈UNIX家谱的更多相关文章

  1. 浅谈 unix, linux, ios, android 区别和联系

    浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux   UNIX 操作系统(尤尼斯) ...

  2. IOS中 浅谈iOS中MVVM的架构设计与团队协作

    今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  3. iOS Architectures 浅谈

    iOS项目打包,或者只是在项目里面调用第三方静态库抑或是自己新建一个静态库,就要无可避免的和Architectures打交道.Architectures在Targets面板的Build Setting ...

  4. iOS开发--浅谈CocoaAsyncSocket编程

    Socket就是一种特殊的文件.它是一个连接了两个用户的文件,任何一个用户向Socket里写数据,另一个用户都能看得到,不管这两个用户分布在世界上相距多么遥远的角落,感觉就像坐在一起传纸条一样. 这么 ...

  5. [转]iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    参考:http://www.mamicode.com/info-detail-469709.html 一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能( ...

  6. iOS开发——浅谈构架与用户体验

    工作不是千篇一律的重复,从中寻找乐趣才是我们应该做的. 作为一名码农,做过几个项目,每次做项目的时候都会自己构思,如果完全是我自己设计,会怎么去设计?心里一直没有满意的答案,不管怎么布局,好像都感觉差 ...

  7. iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    .最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能,有 ...

  8. iOS学习——浅谈RunLoop

    RunLoop的字面意思是运行循环.跑圈,一个App启动后能一直执行,就是因为启动后进入了一个循环,在这个循环中不断监听各种状态.手势动作,并做出相应的响应.这个循环就是我们今天要探究的RunLoop ...

  9. 浅谈 UNIX、Linux、ios、android 他们之间的关系

    开源Linux 一个执着于技术的公众号 Unix, 简化形成了Linux,Linux则是Android的内核,而苹果则是使用unix系统作为ios和macos的内核. 几个系统出现的时间 UNIX系统 ...

随机推荐

  1. IOS-网络(JSON解析数据与XML解析数据)

    一.JSON解析数据 // // VideoModel.h // IOS_0130_网络视频 // // Created by ma c on 16/1/30. // Copyright © 2016 ...

  2. [Python开发工具] Pycharm之快捷键

    [Python开发工具] Pycharm之快捷键 1 全局搜索: Ctrl+Shift+F,不过PyCharm的更强大, 你可以点选左侧某个目录后再按Ctrl+Shift+F, 这样默认会搜索改目录; ...

  3. JS object(对象)的学习汇总

    Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象,而每一个事物都有自己的表示的属性和对于某一信息作出的相应的操作.而这些东西就变成了事物的属性和方法. ...

  4. delphi文件操作的总结

    csfinal90我的:收件箱资源博客空间设置|帮助|退出 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 windzb的专栏 目录视图 摘要视图 订阅 IT俱乐部创始人杜鸿飞专访       ...

  5. 使用Array类处理基本数组对象

    java里面的Arrays类有个asList方法,参数是1或多个Object对象,如果传入一个Object数组,则可以将该数组转化为List,但如果传入的是一个基本类型的数据(int,long,sho ...

  6. Jenkins无法读取覆盖率报告的解决方法

    报错信息如下: log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 coverage-report: [mkdir] Cre ...

  7. Windows 10 安装 Docker

    下载Docker For Windows 地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

  8. ubuntu14.04安装Android Studio出现error while loading shared libraries: libz.so.1的解决方法

    参考博客地址: http://blog.csdn.net/newairzhang/article/details/28656693 安装lib32z1就可以解决,如下: 首先,sudo apt-get ...

  9. jquery3.1.1报错Uncaught TypeError: a.indexOf is not a function

    jquery3.1.1报错Uncaught TypeError: a.indexOf is not a function 使用1.9就没有问题,解决办法: 就是把写的代码中: $(window).lo ...

  10. JDk和Mevan安装和配置

    一.Mevan安装和配置 1.下载Maven 官方下载地址:http://maven.apache.org/download.html 选择你所希望下载的版本,并保存到常用安装目录.这里以Maven ...