阅读数: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. Eclips安装SVN插件

    1.eclipse -> Help ->Install New Software->add 2.弹出窗的"Name"和"URL"中输入如下内容 ...

  2. Hibernate结合JPA编写通用泛型多条件查询

    项目中使用Hibernate和JPA对数据库对象进行实例化,但是生成的方法不支持多条件查询.而如果针对每一个数据库对象进行多条件查询编码,则会变得很麻烦,而且一旦以后发生表结构发生变化,这些方法可能还 ...

  3. linux下部署tomcat服务器之安装jdk

    如果一开始安装过jdk的可以卸载 rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x8 ...

  4. New Concept English Two 11 28

    $课文26 最佳艺术评论家 256. I am an art student and I paint a lot of pictures. 我是个学艺术的学生,画了很多画. 257. Many peo ...

  5. IOS [转]setValue和setObject的区别

    在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setV ...

  6. 谷歌浏览器怎么调试js 谷歌浏览器调试javascript教程

    谷歌浏览器是一款由谷歌公司开发的浏览器.谷歌浏览器是一款基于其他开源软件所撰写的.下面小编为大家分享一篇谷歌浏览器调试javascript的教程,希望帮助大家 首先我们打开开发者工具,你可以直接在页面 ...

  7. 【转】pycharm的一些快捷键

    最近在学着用GA来做游戏的自动化,然后有用到pycharm来做一些脚本的编辑和试调.然后在试调时进行多行注释一行一行来感觉有点儿麻烦,然后就想着pycharm有没有多行注释的快捷方式.. 然后在网上查 ...

  8. Java编程之Date的相关操作

    一:讲字符串的时间格式数据转换成时间对象 //将字符串的时间数据,转换成时间 String dateString="2007-12-12"; DateFormat date=new ...

  9. iperf/iperf3网络测试工具的安装与使用

    1.官网及下载路径: iperf3 homepage at: http://software.es.net/iperf/Report bugs to: https://github.com/esnet ...

  10. StreamSets Data Collector Edge 说明

    Data Collector Edge 是不包含界面的agent 安装 下载包 https://streamsets.com/opensource tar xf streamsets-datacoll ...