谁能够详细介绍下MAC系统的内核
发布网友
发布时间:2022-04-22 07:07
我来回答
共4个回答
热心网友
时间:2022-06-17 05:48
Mac OS X系统的内核是混合内核,称之为XNU。 XNU的核心是Mach,BSD层建立在Mach之上。它们都在相同的地址空间中,并且具有与单核相同的高效率。
混合内核:
混合内核希望结合单核和微内核的优势。核心底层服务(包括调度,进程通信和虚拟内存)包含在核心位置,就像微内核一样。对于此核心之外的服务,内核状态与此核心位于相同的内存空间中。
XNU马赫:
马赫和BSD有自己的责任分工,所以让我们说马赫有这些核心责任。
进程和线程管理:我们通常使用的POSIX线程和NSThread与Mach层线程一一对应。 POSIX线程是线程的BSD层的更高级抽象。
虚拟内存分配和管理。
分配和调度CPU等物理设备。
例外:Mach在现有消息传递机制上实现异常处理机制。以下是应用程序级开发人员的详细介绍。如何做Mach异常捕获,可以用它来做一些崩溃信息的收集。其他崩溃收集文章可以在这里找到。
如果要执行mach异常捕获,则需要注册一个异常端口,该端口对当前任务的所有线程都有效。如果要定位单个线程,可以使用thread_set_exception_ports注册自己的异常端口。
发生异常时,首先将异常抛出到线程的异常端口,然后尝试抛出任务的异常端口。当捕获异常时,可以做一些自己的工作,例如当前的堆栈集合。
扩展资料:
HFS +文件系统解析:
除了允许用户稳定存储文件的目标之外,文件系统是各种操作系统功能的基础。 MacOSX的每个主要版本都增加了数百个新功能,其中许多功能严重依赖于文件系统实现。 MacOSX 10.3提供FileVault来加密用户文件,因此用户的主目录存储在HFS +文件系统加密图像中。
参考资料:百度百科-Mac OS
热心网友
时间:2022-06-17 05:48
Mac OS X 系统的内核是混合内核,我们叫它 XNU。XNU的核心是 Mach,同时在 Mach之上建立了一个BSD层 ,他们都在同一地址空间中,和单内核一样具有较高的运行效率。
混合内核
混合内核想要结合单内核和微内核的好处,最核心的底层服务,包括调度、进程通信和虚拟内存,和微内核一样,包含在最核心的位置,对于这个核心之外的服务,也是在内核态的,同时和这个核心在同一内存空间中。
XNU-Mach
Mach 和 BSD 都有自己职责的分工,那么先说 Mach 都有那些核心的职责
1、进程和线程管理:我们平时所用到的 POSIX 线程和 NSThread 都是和 Mach 层线程一一对应的,POSIX 线程是BSD 层对 线程的更高层次抽象。
2、虚拟内存的分配和管理。
3、CPU 等物理设备的分配和调度。
4、异常:Mach 在已有的消息传递机制上实现了一种异常处理机制,下面会仔细介绍作为应用层面的开发者,如何来做 Mach 异常捕获,可以利用这个做一些 crash 信息的收集工作,其他 crash 收集文章可以参考这里。
如果想要做mach 异常捕获,需要注册一个异常端口,这个异常端口会对当前任务的所有线程有效,如果想要针对单个线程,可以通过 thread_set_exception_ports注册自己的异常端口。
发生异常时,首先会将异常抛给线程的异常端口,然后尝试抛给任务的异常端口,当我们捕获异常时,就可以做一些自己的工作,比如,当前堆栈收集等。
扩展资料:
HFS+文件系统解析
文件系统除了让用户供稳定地存放文件这一目标以外,还是各项操作系统功能的基础。MacOSX每个大发行版都要增加数百项新功能,许多新功能严重依赖于文件系统的实现。MacOSX10.3提供了FileVault来加密用户文件,因此用户主目录被保存在一个HFS+文件系统加密镜像中。
参考资料来源:百度百科-Mac OS
热心网友
时间:2022-06-17 05:49
Mac OS X是苹果公司(原苹果电脑公司)为麦金塔电脑开发的专属操作系统Mac OS的最新版本。Mac OS X于2001年首次在市场上推出,并从2002年起随麦金塔电脑发售。它是一套Unix基础的操作系统,包含两个主要的部份:核心名为Darwin,是以FreeBSD源代码和Mach微核心为基础,由苹果公司和独立开发者社区协力开发;及一个由苹果电脑开发,名为Aqua之专有版权的图形用户界面。
Mac OS X是与先前麦金塔操作系统彻底地分离开来,它的底层代码完全地与先前版本不同,这个新的核心名为Darwin,是一个开放源代码、符合POSIX标准的操作系统,伴随着标准的Unix命令行与其强大的应用工具。尽管最重要的架构改变是在表面之下,但是Aqua GUI是最突出和引人注目的特色。柔软边缘的使用,半透明颜色和细条纹(与第一台iMac的硬件相似)把更多的颜色和材质带入到桌面上的视窗和控件,比OS9所提供的"白金"外观更多,引发了用户间大量的争论。很多旧的麦金塔用户把这个接口描述得像是玩具一般,和缺乏专业的优美,而其他的人则为苹果*的新GUI状新为所欢呼。这种外观非常立即地可以辨认出来,即使在第一个Mac OS X版本推出之前,第三方的开发者开始针对可以换外表的程序像是Winamp制作类似Aqua接口的外表。苹果电脑以法律行动,威胁那些声称是由他们有版权的设计下,所制造或散布且提供这种接口软件的人。
Mac OS X包含了自家的软件开发程序,其重大的特色是名为Xcode的集成开发环境。Xcode是一个能与数种编译器沟通的接口,包括C、C++、Objective-C、以及Java。可以编译出目前Mac OS X所运行的两种硬件平台之可执行文件,可以指定编译成PowerPC平台专用,x86平台专用,或是跨越两种平台的通用二进制。纯粹由系统销售的数字来看,这种GUI和核心的组合现在变成最畅销的Unix环境
从技术层面谈谈Mac OS X的优点
1.内核
这里说的内核并不只是系统kernel,还包括BSD子系统。Mac OSX源于jobs创建的Next公司的NeXTSTEP操作系统(这一点从Xcode文档的API名称可以看出来,很多都是NS开头的),前者则是源于最早由卡耐基·梅隆大学开发的mach系统(在Mac系统下依然可以看到/mach_kernel 这个文件,呵呵),这是一个微内核系统。Mach微内核主要负责底层应用,比如抢占式多任务,包括内核线程(Mac OSX用内核线程实现POSIX线程),内存保护,虚拟内存管理,进程间通信,中断管理,实时支持,内核调试支持,以及控制台I/O等等,与Mac OS9相比,这是一个巨大的飞跃(Mac OS 9一度被指责为没有内存管理机制);后来引入的BSD子系统则为Mac OS X带来了强大的网络功能以及完善的权限管理系统(当年BSDSystem的创举就在于使用*的代码实现了完整的TCP/IP协议,在安装Mac OS X时会看到安装“BSDSubsystem”这一项)。这部分代码主要来源与FreeBSD代码库,少部分来源于OpenBSD以及NetBSD。BSD子系统可以说是Mac OS X的精髓所在,一方面它提供了对各种业界标准的兼容,另一方面则保证系统安全性。正是因为BSD子系统提供的良好兼容性,Mac OS X 10.5通过了Open Group的UNIX 03认证,也就是说,Mac OS X是一个标准的Unix操作系统。
此外还有I/O Kit等子系统,主要负责内核扩展(你可以把他理解为硬件的驱动程序)等等。
而把这些全部加起来,就是大名鼎鼎的Darwin(你可以使用uname来查看系统名称)。Apple开放了Darwin的源代码,大家可以在AppleDeveloper网站上下载到相应的源代码。默认情况下,Apple只提供了Console界面而不包括其他软件包;也有人通过port其他平台的软件包将Darwin打造成一个完整的Unix系统内核(XNU)。
2.GUI
先来说说Linux以及其他一些*nix系统的图形界面。一般来说都以X-window(不是windows)作为其GUI的底层。X-window提供了图形界面的底层框架,各种应用程序可以利用x-window提供的这个框架来实现图形显示。目前有两个主要的X-window的实现,一个是XFree86,另一个则是X.org。前者由于从2004年开始不再以GPL协议开源,因此基本上流行的Linux发行版都转向了后者。Apple从10.3系统开始提供X11应用程序环境(大家一定还记得实用工具下面的X11.app),10.5之前一直使用XFree86,而在10.5则转向X.org(其实10.5下的X11.app是一个称为Xquartz的开源项目)。Mac OS X并没有采用X11作为其图形框架,Mac OS X默认的GUI称为Quartz(石英的意思,很遗憾,它不是开源的)。粗略来讲,Quartz通过显卡硬件加速实现了美观而复杂的图形显示效果。Quartz同样源于NeXTSTEP时代,当时为了给出版印刷行业提供便利,NextSTEP使用了Adobe的DisplayPostScript技术(这就是今天PDF所采用的技术)。这里不讲技术细节了,就来对比一下Windows系统。在Win98/2000时代,Windows采用GDI作为图形输出接口(Graphics DevicesInterface),但是这个东西效率极低,运行速度缓慢。举例来说,如果使用GDI输出视频,估计帧数只能达到个位数,因此微软在输出视频时采用了性能更高的、硬件加速的DirectX。在Windows Vista之前,Windows都是使用GDI进行图形输出,由于性能*,不可能实现复杂的图形效果,而Mac OS X在诞生起所有2D输出都经过硬件加速,因此可以实现复杂的图像效果。至于Quartz Extreme,大家不妨将它理解为OpenGL在Mac OS X上的一个实现。
总的来说,以上是我觉得Mac OS X技术层面最为先进的两处。其实各个系统都有其可取之处,比如Windows对硬件的兼容性,Linux的可定制性,以及Mac OS X的美观性与易用性。没有最好的系统,只有最适合的系统。个人觉得Mac OS X在很多方面恰好提供了Windows和Linux两方面的长处,比如良好标准的兼容性(通过UNIX 03认证,绝大多数For*nix的软件都可以在Mac OSX下编译运行)以及美观的GUI。
热心网友
时间:2022-06-17 05:49
是基于Unix的内核,以前是跑在Atom上的不支持X86,现在因为Mac用intel了…它现在支持了但还不是很完善