`
lovnet
  • 浏览: 6921385 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Mac OS X Programming读书笔记1 - 系统架构

阅读更多

Chapter 1 System Components and Programming Technologies

1. Mac OS X Introduction

Mac OS XApple最新一代的操作系统,基于UNIX,最显著的特点是有着极其漂亮的界面,称之为Aqua

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="Picture_x0020_2" style="VISIBILITY: visible; WIDTH: 450pt; HEIGHT: 281.25pt; mso-wrap-style: square" alt="Mac OS X Leopard desktop" type="#_x0000_t75" o:spid="_x0000_i1026"><imagedata o:title="Mac OS X Leopard desktop" src="file:///D:%5Ctmp%5Cmsohtmlclip1%5C01%5Cclip_image001.jpg"></imagedata></shape>

2. Mac OS X Architecture

Mac OS X的架构图:

<shape id="Picture_x0020_1" style="VISIBILITY: visible; WIDTH: 332.25pt; HEIGHT: 199.5pt; mso-wrap-style: square" type="#_x0000_t75" o:spid="_x0000_i1025"><imagedata o:title="" src="file:///D:%5Ctmp%5Cmsohtmlclip1%5C01%5Cclip_image002.emz"></imagedata></shape>

2.1 User Interface用户界面层

1. AquaMac OS X的用户界面

2. 对于一般用户来说, Mac OS X = Aqua

3. Aqua界面可以用ResEdit / Interface Builder来创建

2.2 Application Environments – 应用程序环境层

2.2.1 Classic

1. Classic Environment是为了兼容Mac OS X以前的Mac OS 8/9而存在的

2. Classic Environment并非是Mac OS X模拟器。实际上,Mac OS X运行一个 虚拟机,启动一个基本上未作改变的Mac OS 9Mac OS X替换了Mac OS 9的硬件抽象层,使之将请求传递给Mac OS X本身执行。

2.2.2 Carbon

1. Carbon是老版本的Mac OSMacintosh Toolbox API经过删减增强而来,作者认为Carbon = A enhanced subset of Macintosh Toolbox API

2. Carbon API很大程度上和老的Macintosh Toolbox API保持兼容,70%APIInterface保持不变

3. 同时,为了使用Mac OS X新加的功能,AppleCarbon中加入了不少新的API

4. 部分情况下,Mac OS X下的使用Carbon API的程序可以不加修改在Mac OS 8/9上面运行

5. Carbon API所写的老程序移植到Mac OS X会相对容易

6. Carbon API是为C设计的,并非面向对象。比较类似Windows APIC++也可以使用Carbon,其他的可以调用C函数的语言理论上都可以调用Carbon API

2.2.1 Cocoa

1. Cocoa是特别为Mac OS X设计的一套面向对象的Framework,因此无法在Mac OS 8/9上面运行

2. 编写Cocoa程序的主要语言是Objective-CJava,推荐使用Objective-C

2.2.1 Java

1. Mac OS X支持Java程序的执行,支持最新的JDKVM

2. Java也可以用来编写Cocoa程序

2.2.1 BSD

1. BSD环境用于支持BSD工具和应用程序

2. Mac OS X支持整套BSD API

2.3 Application Services – 应用程序服务层

2.3.1 Quartz & Windows

1. Quartz实现2D绘图和窗口

2. Quartz是基于PDF的,因此Quartz支持自动PDF生成

3. Quartz的大部分不能直接用API访问

4. Quartz比较类似WindowsUser32.dll

2.3.2 Quick Draw

1. Quick Draw是另外一套支持2D绘图的API

2. Quick Draw可以直接通过API调用大部分功能

3. Quick Draw比较类似WindowsGDI/GDI+

2.3.3 OpenGL

Open GLMac OS X三维绘图的标准API。应该不用多介绍了吧。

2.3.4 Quick Time

1. Quick Time用于支持Mac OS X的多媒体功能

2. Quick Time功能可以通过API调用

2.3.5 Others

1. Process Manager提供对进程的管理

2. Event Manager提供对事件的管理

3. Clipboard提供对剪贴板的访问

2.4 Core Services – 核心服务层

2.4.1 Carbon Managers

1. 大量系统服务以Managers的形式提供

2. File Manager提供对文件的访问

3. Text Encoding Conversion Manager提供对文本的操作

4. Memory Manager Utilities提供对内存的访问

5. Thread Manager提供对线程的访问

6. 等等

2.4.2 Apple Events

1. Apple Events是应用程序之间互相通讯

2. 应用程序之间可以互相发送Apple Events,并回复Apple Events

3. Apple Events的主要用途是供第三方程序使用来操作其他程序,如Apple Script

2.4.3 Open Transport

OpenTransport提供对网络的访问和对协议的支持,如TCP/IP

2.4.4 Core Foundation

Core Foundation提供对一些非常基本的大部分程序都回用到的服务的支持,如日期操作,字符串操作等。

2.5 Kernel Environment – 内核层

Apple的内核又称为Darwin

2.5.1 Mach

1. MachMac OS X的核心,是在老的MachMkLinux, Mac OS X Server, Next OS等基础上面修改而来的

2. Mach是微内核架构(Micro-Kernel),而一般的Unix Kernelmonolithic kernel

3. 负责提供最基本的操作系统服务,如进程调度,IPCSMP,虚拟内存管理等

4. Mach调度的单位是线程

2.5.2 BSD

1. Mac OS XMach内核的基础上实现了4.4 BSD内核

2. Mach有着部分没有实现的基本内核功能,这部分由BSD Kernel来实现,如I/O,文件系统,网络等

2.5.3 Networking

1. Mac OS X的网络基于4.4 BSD实现

2. 支持TCP/IP协议栈,Sockets

2.5.4 I/O Kit

I/O Kit是用于编写Driver的一个面向对象的Framework

2.5.5 File System

1. Mac OS X支持以前的Mac OS所支持的HPS (Hierarchical Filing System Standard), HPS+文件系统

2. 除此之外,Mac OS X还支持UFS(Unix File System), NFS(Network File System), ISO 9660(for CDROM)

分享到:
评论

相关推荐

    Advanced Mac OS X Programming

    《高级Mac OS X编程》是Mark Dalrymple所著,由Big Nerd Ranch出版社出版的一本深入探讨Mac OS X编程技术的专业书籍。本书聚焦于使用Objective-C语言进行开发,旨在帮助读者掌握Mac OS X平台上的高级编程技巧,涵盖...

    Mac OS X Cocoa Programming-1

    ### Mac OS X Cocoa Programming #### 课程介绍与背景 欢迎参加斯坦福大学的CS193E课程——《Mac OS X Cocoa编程》。这门课程由James Dempsey(邮箱:dempsey1@stanford.edu)和Paul Marcos(邮箱:pmarcos@...

    Low-Level Programming on iOS & Mac OS X pdf

    iOS Macos底层类似,pdf内容讲述深层次系统知识框架,针对有底层编程需要的开发人员

    Mac OS X Cocoa Programming-5

    ### Mac OS X Cocoa Programming-5 #### 讲座概述与讲师介绍 本次讲座为CS193E课程的第五次授课,主题为“Mac OS X Cocoa Programming”。该课程由斯坦福大学提供,讲师包括James Dempsey(邮箱:dempsey1@...

    Advanced Mac OS X Programming The Big Nerd Ranch Guide 无水印pdf

    Advanced Mac OS X Programming The Big Nerd Ranch Guide 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自...

    Mac OS X Cocoa Programming-3

    Welcome to CS193E Mac OS X Cocoa Programming James Dempsey dempsey1@stanford.edu Paul Marcos pmarcos@stanford.edu

    Mac OS X Cocoa Programming-7

    Welcome to CS193E Mac OS X Cocoa Programming James Dempsey dempsey1@stanford.edu Paul Marcos pmarcos@stanford.edu

    Cocoa Programming for Mac OS X 4th Edition

    If you’re developing applications for Mac OS X, Cocoa® Programming for Mac® OS X, Fourth Edition, is the book you’ve been waiting to get your hands on. If you’re new to the Mac environment, it’s...

    Mac OS X Cocoa Programming-4

    ### Mac OS X Cocoa Programming-4 #### 概述 本次讲座是斯坦福大学课程CS193E的一部分,由James Dempsey(邮箱:dempsey1@stanford.edu)和Paul Marcos(邮箱:pmarcos@stanford.edu)共同讲授。本节课将围绕Mac ...

    Mac OS X Cocoa Programming-2

    ### Mac OS X Cocoa Programming-2 #### 概述与课程信息 本次课程是斯坦福大学CS193E的一部分,由James Dempsey (dempsey1@stanford.edu) 和Paul Marcos (pmarcos@stanford.edu) 主讲。课程的主题为Mac OS X Cocoa...

    Cocoa® Programming for Mac® OS X, Third Edition

    Spencer, Apple Certified Technical Coordinator &lt;br&gt;If you're developing applications for Mac OS X, Cocoa® Programming for Mac® OS X, Third Edition, is the book you've been waiting to get your ...

    Mac OS X Cocoa Programming-6

    ### Mac OS X Cocoa Programming-6 #### 讲座概述与讲师介绍 本次讲座为CS193E课程的第六次授课,主题为Mac OS X Cocoa编程。本课程由斯坦福大学教授James Dempsey (dempsey1@stanford.edu) 和Paul Marcos ...

    Advanced.Mac.OS.X.Programming.2011

    《Advanced Mac OS X Programming 2011》是一本深入探讨Mac OS X操作系统编程技术的专业书籍,适合已经具备一定Objective-C编程基础,并希望通过更高级的视角理解和开发Mac平台应用的开发者。这本书的内容涵盖广泛,...

    Programming with Quartz 2D and PDF Graphics in Mac OS X

    **革命性的图形系统**:本书是关于Mac OS X图形系统的权威指南,该系统基于可移植文档格式(Portable Document Format,简称PDF)构建其成像模型。这意味着开发者可以利用PDF的强大功能来创建高质量的图形应用。 **...

    IA-32架构软件开发人员手册_1~3卷:系统编程指南

    Intel® 64 and IA-32 架构软件开发人员手册1~3卷,英文版 Intel® 64 and IA-32 ArchitecturesSoftware Developer’s ManualVolume (1, 2A, 2B, 2C, 3A, 3B and 3C):System Programming Guide

    Programming in the OSEK-VDX Environment

    2. **系统架构**:详细描述了OSEK/VDX系统的整体架构,包括各个组件之间的交互关系。 3. **任务管理**:讨论了OSEK OS中的任务管理和调度策略,帮助开发者理解如何有效地组织和优化软件任务。 4. **通信协议**:重点...

    Inside Mac OS X Kernel Programming

    综上所述,Mac OS X内核编程涉及多个方面,从内核架构设计到具体的模块开发,再到内存管理和文件系统支持等方面。通过深入了解这些知识点,开发者可以更好地掌握如何为Mac OS X系统编写高效稳定的内核模块。

Global site tag (gtag.js) - Google Analytics