iOS OSX Mach Darwin XNU

iOS OSX Mach Darwin XNU_第1张图片
image

OSX iOS

mac iOS内核: Darwin(操作系统) -> XNU(BSD+Mach) -> Unix

终端命令:

查看系统信息: system_profiler SPSoftwareDataType
系统版本:uname -v

Darwin

Darwin: (部分开源)基于乔布斯的:OpenStep

OpenStep:及其前身NextStep则是衍生与加州大学伯克利分校所发布的Berkeley Software Distribution(BSD).

Darwin内核XNU: 结合了BSD 与 Mach,以及苹果自己的一些科技研发出来的。
而 iOS(连同OSX)有很多代码来自 BSD,所以最为一个完整的系统,属于 BSD 家族。

Mac OS X的kernel.Darwin架构:

  • Mach(I/O kit,Driver)
  • BSD(filesystem,NKE)

Darwin主要组件:

  • BSD
  • Mach : 最底层为(BSD和I/O kit提供服务
  • I/O Kit : 面向对象的设备驱动框架
  • Platform Expert
  • libkern
  • libs

Mach

Mach 是对内核运作方式的一次探索创新。Mach 提出了“微内核”的概念——将系统内核的部分任务交给用户层进程处理。(Mach 可以认为是微内核的 BSD 系统)

Mach负责 XNU(“X is Not UNIX”) 比较底层的任务。如:
  • -抢占式多任务,包括内核线程(Mac OS X用内核线程实现POSIX线程)
  • -内存保护
  • -虚拟内存管理
  • -进程间通信
  • -中断管理
  • -实时支持
  • -内核调试支持
  • -控制台I/O

BSD

BSD -> freeBSD:unix重要分支

BSD 主要负责:
  • -处理模型
  • -用户ID、权限,基本安全策略
  • -POSIX API,BSD风格的系统调用
  • -TCP/IP协议栈,BSD套接字,防火墙
  • -VFS和文件系统
  • -System V IPC
  • -加密框架
  • -各种同步机制

Unix

Unix:诞生于1969年的贝尔实验室,由于历史原因,Unix一直处于半闭源状态(理论闭源,代码开源)。
所以出现各种衍生版本。

POSIX:

POSIX是基于UNIX的第一个操作系统簇国际标准,Linux遵循这一标准这使UNIX下许多应用程序可以很容易地移植到Linux下,相反也是这样。

内核大致有 SysV, BSD, 和 Linux 三大家族

SysV:
主要有 A/UX AIX HP-UX IRIX LynxOS SCOOpenServer Tru64 Xenix OS/2 solaris(SUN OS)。

BSD UNIX (386BSD):
主要有,DragonFly BSD,FreeBSD,NetBSD,NEXTSTEP,Mac OS X,OpenBSD,SUN OS,OpenSolaris,OpenIndiana.

UNIX Like:
  主要有GNU / Linux,Minix,QNXUnix的特点。


linux:

芬兰黑客Linus Torvalds于1991年推出。它属于类Unix家族中的一支(linux源码与Unix毫无关系,like Unix而已),不过由于一直开源导致广泛传播,名气要比Unix大得多,有着众多的发行版,比如:

  • 桌面上的Ubuntu
  • 路由器上的OpenWRT(事实上路由器的系统基本都是基于Linux),
  • 以及占据大部分智能手机份额的谷歌Android。Android -> linux
  • linux几乎可以装在所有的服务器,桌面的X86系统中,其还常常被用于嵌入式系统,机顶盒、手机、交换机、游戏机、PDA、网络交换机。。。。
GNU(GNU is not Unix):1983年

GNU操作系统是类Unix操作系统, 由一系列应用程序、系统库和开发工具构成的软件集合, 并加上用于资源分配和硬件管理的内核 (就差Linux)

GNU/Linux:
Linux这个词本身只表示Linux核心,但在实际上人们已经习惯了用Linux来形容整个基于Linux核心,并且使用GNU工程各种工具和数据库的操作系统(也被称为GNU/Linux)


如果你说mac os是基于UNIX的, 那我觉得windows就是基于dos


windows:

windows内核: windows NT(大卫·卡特勒)

NT过于倾心于X86平台(虽然近些年也能在ARM上跑了)

windows phone 基于windows CE(windows CE6.0全开源)

X86

X86: 是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC(机箱+xx主板+xx电源+xx处理器+(光驱选装)的领域。

06年后,苹果也是使用Intel的X86架构(这时mac也就可以装windows系统了)

ARM

ARM :全世界超过95%的智能手机和平板电脑都采用ARM架构

苹果自研A11 处理器基于ARM V8指令集自主设计.加以改进

高通骁龙也是ARM内核. 他们都没得CPU架构研发能力(或者说都不能撼动ARM的商业地位)。


你可能感兴趣的:(iOS OSX Mach Darwin XNU)