十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
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
1 Mac系统安装理论知识
Mac系统已经和Windows一样,运行在了Intel的X86架构PC硬件上,只不过底层的BIOS必须是EFI,硬盘分区格式必须是GPT而已。话说Windows8、10也都可支持安装在EFI+GPT的新架构硬件上了。如果不熟悉EFI和GPT,网上资料一大片,也可以参考我的一篇博文UEFI主板GPT方式安装CentOS6.4。
由于Mac OS X运行环境和一般PC非常类似,所以大量的Mac OS X被安装到了PC上,被称为“黑苹果“。
然而,毕竟Mac的硬件和软件是绑定到一起发布的,所以Mac机器有其特殊之处:
主板上的固件为Mac特制,BIOS无可视界面,只支持快捷键操作;
GPT硬盘的ESP分区(苹果叫做EFI分区)内的启动程序专为MAC设计;
2 Mac系统安装U盘的制作
Mac的大部分设备都已经抛弃了光盘,所以使用U盘安装系统是最合理的选择。
2.1 下载Mac OS X EI Capitan系统
尽管网上有很多下载的地方,处于安全考虑,还是建议去苹果应用商店免费下载。
(1)进入苹果App Store
(2)找到EI Capitan下载
在国内由于国际网速限制,可能需要数个小时才能下载完毕。
(3)下载完的EI Capitan会存放到应用程序目录中
2.2 制作安装U盘
制作Mac OS X的安装U盘不需要任何第三方工具软件!而且超级简单。
(1)进入系统安装文件的目录中
(2)找到createinstallmedia文件
(3)打开终端软件,不带任何参数执行createinstallmedia文件
zhaojinqiangdeMac-mini:Resources zhaojinqiang$ ./createinstallmedia
Usage: createinstallmedia --volume path to volume to convert --applicationpath path to Install OS X El Capitan.app [--force]
Arguments--volume, A path to a volume that can be unmounted and erased to create the install media.
--applicationpath, A path to copy of the OS installer application to create the bootable media from.
--nointeraction, Erase the disk pointed to by volume without prompting for confirmation.
Example: createinstallmedia --volume /Volumes/Untitled --applicationpath "/Applications/Install OS X El Capitan.app"This tool must be run as root.
zhaojinqiangdeMac-mini:Resources zhaojinqiang$ 1234567891011
可以看到这个命令的使用说明。
(4)一行命令完成启动U盘制作
找一个容量大于8G的U盘,插入Mac机器。假设其挂在路径为/Volumes/Untitled。
首先切换到root用户权限
zhaojinqiangdeMac-mini:Resources zhaojinqiang$ sudo -sPassword:
bash-3.2#123
然后在终端执行如下命令:
createinstallmedia --volume /Volumes/Untitled --applicationpath "/Applications/Install OS X El Capitan.app"1
然后就等着吧,大概20分钟左右,系统U盘就制作好了。
3 U盘全新安装Mac系统的步骤
3.1 选择从U盘启动系统
前面说过,Mac的BIOS没有可视界面,只能通过键盘来交互。重新启动Mac,按住Alt键不动,直到出现启动盘选择界面。(当时没有照相,就用网上的图片吧)
选择名为“Install OS X 11“的U盘来启动。
3.2 傻瓜式安装
选择安装目的分区
然后就是傻瓜式过程了。
4 安装后的基本配置
4.1 使用TimeMachine定期备份系统
TimeMachine是OS X自带的超级好用的自动备份工具,使用它可以放心地折腾OSX而不用担心数据丢失了。
TimeMachine需要一个独立的分区用来做备份存储,该分区的格式必须是HFS+,否则TimeMachine会自动重新格式化该分区。
这次我为MacMini增加了第二块硬盘,正好用来做备份使用,非常方便。
4.2 安装常用软件
QQ,旺旺,迅雷,暴风影音,微信桌面版,大多数软件都有MAC版本,尽情安装吧。需要注意的是,与iOS系统不同,OS X的应用程序商店里软件并不丰富,好多软件商并不把软件在OS X的商店里上架,这就需要去不同网站去下载。
5 搭建开发环境
程序员的电脑必须要有开发环境,OSX开发环境搭建异常简单,只需要把庞大的XCode安装上就行了。
5.1 App Store安装XCode
5.2 从五大系统API中做出选择
Mac OS X为程序员准备了5个独立的API,分别是:
POSIX,严格符合POSIX标准的API,接口为C函数
Carbon,OS 9时代遗留下来的API,接口为C函数
Cocoa,OpenStep标准的一个实现版本,接口为Objective-C
Swift库,最新的Swift语言,接口为Swift,目前仍然依赖于Cocoa
Java,跨平台的Java
其中:
(1)POSIX是传统UNIX标准,经受住了历史的考验,超级稳定,并将持续支持;
(2)Carbon已经被抛弃,不再建议使用;
(3)Cocoa是开发UI程序的不二法门,绝大多数的UI程序基于Cocoa开发;
(4)Swift是新秀,越来越多的UI程序移植到了Swift上,是否会最终取代Objective-C+Cocoa,拭目以待;
(5)Java很少用来开发UI软件,半死不活的状态。
我的选择:对Mac桌面程序需求几乎没有,打算主要使用POSIX作为API来使用。
由于Mac OS X的系统版本(主要指major version)之间某些方面存在一些差异,例如:
一些API在较低版本系统中可以使用,但是到了较高版本系统中变成了deprecated;
一些API仅在较高版本的系统上才存在,如果程序要支持较低的系统版本,则需要通过别的途径来实现同样功能,等等。
因此,在程序中判断系统版本,并根据不同的分支进行处理在一些时候是必要的。
我总结了一下在代码中判断系统版本的几种方法,留在这里备份一下,以便以后查找。
1.使用Gestalt函数,可以获得系统版本的16进制数值:
Mac OS X 实现屏幕取词的方法:
1、系统自带的词典,用DictUnifier转换stardict词典导入Dictionary后,就是Mac OS X 最好用的词典了。
当然要搭配触摸板和手势。
2、操作方法:
三指双击需要翻译的词,翻译就跳出来了,还能有更简便的方法么。
字典可以排序,支持WIKI,对于不明白的中文词汇也可以有WIKI解释。
局限性就是只支持cocoa程序,不过大多数程序都没问题。
《古墓丽影》《地铁离去》都可以
《古墓丽影》这是一款对于芯片要求很高的游戏,也是可以充分发挥苹果自研芯片性能的游戏。虽然《古墓丽影》不是一个利用mac OS Metal图像API优化的游戏,但游戏的画面表现依然出色。作为macOS最近的3A游戏之一,地铁离去是目前Mac上最令人印象深刻的FPS游戏,同时也是在Apple Silicon上表现最好的游戏之一。
Windows及Mac OS X在操作系统架构、开发环境、API、图形环境等环节上的相近处与不同的地方,也简单提出了跨平台应用程序开发的两种策略。事实上在两种平台上开发所需要了解的概念跟技能没有太大的不同,两种平台在性能上的差异也不大。大体说来,Windows和Mac OS X都是为桌面应用环境、图形用户接口(GUI)而设计的操作系统。虽然不同平台细节各有特色,但两者相近的抽象概念,其实远远多于相左之处。本文试图指出方向上明显的异同所在,而非详细列举各种细项差别。最后,我也将简短分享自己在开发跨平台软件时的一些技巧和心得。
系统架构与开发环境的差异
用最简单的话来说,Mac OS X与Windows在架构与开发环境上最大的不同点在于:OS X是UNIX也不是UNIX;OS X主要开发工具Xcode使用GCC作为编译程序,与其他种类的UNIX相同;不过OS X也有独树一格的"bundle"软件包装格式这样的东西,成为它与其他操作系统不同之处。
Windows和OS X都属于现代的操作系统,所以Windows在操作系统层级所提供的功能──执行文件与链接库加载、多任务与多线程、内存管理──在OS X上都找得到对等的API和作法。不过,相较于Windows在微软独力开发下,架构和API都维持着相对的一贯性(另一方面,也背负着各种历史遗迹和向下相容的包袱),Mac OS X则是底层源自NeXTSTEP的Mach微核心(现在称为XNU),而应用层(用准确的UNIX术语来说叫userland)来自FreeBSD 4。这件事情相当重要:OS X透过这样的`架构,才拥有和一般Linux/FreeBSD相似的UNIX应用环境。有相当多Mac软件开发者喜欢在UNIX shell下工作,使用各种UNIX工具。在Windows上,必须加装Cygwin之类的环境才能办到。
Apple几年前有则广告是「把其他牌子的UNIX送进/dev/null里」(用过UNIX的朋友应该不难体会其中的吹嘘意涵)。平心而论,OS X受益自UNIX环境之处不少。尤其,Apple使用了大量的open source工具。举例来说,Apple不像微软,没有自己的C语言编译工具,Apple用的是UNIX业界的标准──open source的GCC(其中当然有不少OS X的扩展功能就是)。虽然Apple有自己的开发环境Xcode,但是底层采用GCC这件事对开发者来说是相当重要的。同时,Apple的C/C++链接库用的也是GCC标准的stdc/stdc++。了解这个差异,在遇到与Microsoft C/C++ compiler不同的地方时,就更容易能找到解答的资源(这类型问题往往不限于OS X,其他UNIX平台也会发现)。
但是Mac OS X并不完全是UNIX。它的GUI环境(Aqua)就完全不是一般Linux/FreeBSD所使用的X11。而在UNIX层之下的微核心也和其他UNIX不同。接下来这一点很重要:OS X虽然有和Windows .EXE和.DLL相对应的文件(OS X跟其他UNIX一样,可执行文件一般不加扩展名,UNIX系的动态加载链接库则冠以.dylib),但更重要的架构差异是bundle。
Bundle概念承袭自NeXTSTEP。简单来说,就是由操作系统提供一种类似对象封装的文件包裹。OS X上最常见的bundle要属.app结尾的应用程序了。虽然.app外观上是个文件,在UNIX shell下看就能发现它其实是个目录,内含各种metadata(通常至少会有一个名为Info.plist的数据文件)、可执行文件、动态链接模块、各种资源等。除了.app外,OS X的各种框架档(以.framework结尾,是一种同时包含头文件及链接库的包装)、应用程序的外挂模块(通常以.bundle结尾)等等,都是以bundle形式呈现的。了解这个差异,才能了解为什么OS X上很少有程序需要额外的安装程序,也鲜少听说有所谓的"DLL hell"(因共享链接库版本不兼容造成的困扰)。
多的IT经理停滞了他们对系统的更新的需求,他们希望在自己的PC升级上配合他们的Windows 7部署。"
一旦Windows 7开始了面向公众的发布,使IT店铺部署Windows XP的比率毫无疑问将出现下降。在其发布的18个月中,或者说在第一个Windows 7版本服务包的发布之后,"OEM许可证与每台PC的绑定将不再进行面向Windows XP的降级。"这就是说,基本上,在企业或SMB(中小型企业)内部署的XP将需要在未使用任何属于Windows XP的批量许可证或购买XP的批量许可证复制从而使用XP。这增加了一个额外的步骤,面向采购过程的IT管理人员可能不愿意参加。
对于Windows XP的支持也将结束,这对那些想继续使用旧版操作系统的IT部门来说增加了不小的复杂性。对Windows XP SP 2、SP 3进行扩展支持的服务将于2014年4月结束,在该日期之后将不再有任何面向XP的更新或补丁。