Answers:
OS X是唯一剩下的基于Mach微内核的操作系统,该操作系统仍在商业上相关。毫无疑问,有一些正在进行的研究项目和过时的OS仍在旧机器的生产环境中使用,但是今天您什么都买不到,只能在新机器上购买。
OS X具有任何* ix常见的各种内核功能不兼容性。我最近不得不解决的最大问题是缺少System V消息队列。(msgget(2)
和朋友。)我们必须用TCP / IP替换消息队列代码(该消息队列代码是为“真实的” System V变体编写的,后来移植到Linux),才能使软件在OS X上运行。对于我们的应用程序,在我们选择使用消息队列时,这两种IPC方法之间的差异很重要,但是由于后来的体系结构更改,最终切换到TCP / IP并不是什么大问题。
说到底,达尔文难道不是Mach 2.0之上的薄BSD层吗?
我曾经使用过NeXTStep,但我不知道当前MacOSX与NeXTStep有多少不同,但是...
Mach 2.0在内核级别提供了一组不同的抽象:
最初的CMU Mach伙计们使用这些抽象来模拟 BSD Unix进程,MS-DOS进程,以及非常奇特的VMS任务。每个VMS任务执行2个Mach任务,以及多个线程。曾经有人为NeXTStep出售Mac OS(pre-OSX)仿真器,该仿真器使用了用户空间寻呼机,效果很好。
CMU Mach的旧出版物页面为:http : //www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
VMS-on-Mach论文:http: //www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
这不是一个完全的答案,但是DTrace是一个很棒的系统调试工具,适用于Solaris,Darwin / OS X和* BSD,但不适用于Linux。
达尔文的受支持文件系统类型相对较少。除了诸如devfs之类的特价商品和诸如webdav之类的网络类型之外,列表还包括:
在此列表中,尽管HFS +已升级为支持所有必需的Unix功能,但只有UFS是为Unix设计的。从Mac OS X 10.6开始,UFS不能用于根分区,尽管此限制可能不适用于Darwin。默认情况下,HFS +不区分大小写,尽管可以在创建时请求区分大小写。尽管Mac OS X将在区分大小写的分区上运行,但是许多知名的Mac应用程序却不会(例如Adobe CS)。
有一段时间,苹果公司计划用ZFS取代HFS ,甚至将ZFS与某些版本的Mac OS X一起发售,但是可悲的是,由于无法解决的许可问题,该实验最终失败了。
我认为最好将Darwin描述为另一种UNIX。Solaris是其中之一。HP / UX是另一个。还有更多,也许不是“引人注目的”,但它们在那里。每种口味都有其自身的特点。这就是为什么首先要有风味的原因。一些公司想出了一些有助于销售的东西(或者只是与它合作甚至是对其进行管理),并创造了它并给它起了自己的名字。
我想到的第一件事就是OSX在控制台中拥有的所有工具。.unix具有许多更有用的命令。Diskutil就像外壳中的分区魔术师一样,该工具具有许多磁盘操作选项,fdisk实际上只是该野兽拥有的磁盘的10%。类型.. Unix真的有这个吗?在你梦里!!; D
SystemProfiler-出色的工具,可以非常舒适地显示所有硬件ID,名称,型号,SN和类似的东西。
darwin内核并不像unix那样完全透明。
达尔文拥有killall util = P Unix,只有技能
也可以使用不同的文件系统。.HFS,HFS +
也许后者我会记得更多=)