Mac OSX & iOS 操作系统学习笔记02——OSX和iOS的架构

15 篇文章 0 订阅

1.OSX和iOS有着优雅的分层:

a).用户体验层:包括Aqua、Dashboard、Spotlight、和辅助功能等。

b).应用框架层:包括Cocoa、Carbon、和java。(iOS中是cocoa Touch)

c).核心框架层:又称为图形和媒体层,包括核心框架、OpenGL和QuickTime。

d).Darwin:操作系统核心——包括内核和UNIX shell环境。

2.Darwin并不是一单层组件,具体如下图所示。

3.用户体验层

1)QuickLook:允许在Finder中快速预览多种不同类型的文件。是以插件形式实现的。

2)Spotlight:是一项快速搜索技术。其背后的核心力量是一个索引服务器mds.它是一个没有GUI的后台服务程序,每当有任何文件操作发生时,内核都会通知这个后台服务程序。

4.Darwin(UNIX核心):OSX 中的Darwin是一个完全成熟的UNIX实现。

5.UNIX的目录结构:

/bin

UNIX中的二进制程序。常用UNIX命令等在此。

/sbin

系统程序。用于系统管理的程序,如文件系统管理和网络配置等。

/usr

User目录。类似于windowprogram files,第三方软件可以装到此处。

/etc

其他文件。包含了大部分系统配置文件,OSX中此目录实际上是指向/private/etc符号链接

/dev

BSD设备文件。这些特殊文件表示系统中存在的设备(字符设备和块设备)

/tmp

临时目录。这是系统中唯一所有人都可写的目录。OSX中此目录实际上是指向/private/tmp符号链接

/var

各种杂项。此目录保存了日志文件、邮件存储等。OSX中此目录实际上是指向/private/var符号链接

6.除了上面的文件目录,OSX还有自己特有的文件目录。

/Applications

系统中所有应用程序的默认目录

/Developer

好像现在没看到了,知道的给我说下哈

/Library

系统应用的暑假文件、帮助文档等数据都在此

/Network

用于邻居借点发现和访问的虚拟目录

/System

系统文件目录。仅包含了/Library目录,这个目录几乎包含了系统中的所有重要组件,框架、内核和字体等

/Users

所有用户的主目录所在的目录,每个用户都会在此建立一个目录

/Volumes

可移动媒体和网络文件系统的挂载点所在目录

/Cores

如果启动了核心转储,那么这个目录保存核心转储文件

7.bundle:bundle是OSX的一个重要概念,是neXTSTEP的遗产。bundle的概念不仅是应用程序的根基也是框架、插件、小物件、甚至内核扩展的根基。apple对bundle的定义是:“一种标准化的层次结构,保存了可执行代码以及代码所需的资源”,尽管具体的bundle类型和内容可能会不同,但所有的bundle都有着相同的内部结构。一个程序的bundle结构如下:

Cocoa提供了一种简单的编程方法用于访问和加载bundle,通过NSBundle对象和CoreFoundation提供的CFBundle系列API可以访问和加载bundle。

8.在应用中有一个属性列表文件info.plist,位于应用程序的contents目录下,保存的是bundle的元数据信息。此外还有3种熟悉列表的形式:xml、二进制格式、json。实际上,Cocoa可以通过内建的字典或数组对象直接实例化一个plist,而不需要指定文件格式。如下:

 NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfURL:plistURL];
    NSArray *array = [NSArray arrayWithContentsOfURL:plistURL];

9.一个标准的info.plist包含的条目

CFBundleDisplayName

显示给用户的bundle名称。

CFBundleDocumentTypes

这个bundle关联的文档类型。这是一个字典,字典中的值指定了这个bundle能够处理的文件扩展名。这个字典还指定了对于关联文档显示的图标。

CFBundleExecutable

这个bundle中实际的可执行文件(二进制文件或库文件)。可执行文件位于Contents/MacOS目录。

CFBundleIconFile

Finder视图中显示的图标文件。

CFBundleIdentifier

DNS表示法的标识符。

CFBundleName

bundle的名称(限制在16个字符之内)

CFBundlePackageType

表示一个4字母的代码,例如APPL = ApplicationFRMW = FrameworkBNDL = Bundle

CFBundleSignature

bundle4字母短名。

CFBundleURLTypes

:这个bundle关联的URL。这是一个字典,值指定了这个bundle处理的URL scheme以及处理方式。

10.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值