Chapter 1 System Components and Programming Technologies
1. Mac OS X Introduction
Mac OS X是Apple最新一代的作業系統,基於UNIX,最顯著的特點是有著極其漂亮的介面,稱之為Aqua:
2. Mac OS X Architecture
Mac OS X的架構圖:
2.1 User Interface – 使用者介面層
1. Aqua是Mac 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 9。Mac OS X替換了Mac OS 9的硬體抽象層,使之將請求傳遞給Mac OS X本身執行。
2.2.2 Carbon
1. Carbon是老版本的Mac OS的Macintosh Toolbox API經過刪減增強而來,作者認為Carbon = A enhanced subset of Macintosh Toolbox API。
2. Carbon API很大程度上和老的Macintosh Toolbox API保持相容,70%的API的Interface保持不變
3. 同時,為了使用Mac OS X新加的功能,Apple往Carbon中加入了不少新的API
4. 部分情況下,Mac OS X下的使用Carbon API的程式可以不加修改在Mac OS 8/9上面運行
5. Carbon API所寫的老程式移植到Mac OS X會相對容易
6. Carbon API是為C設計的,並非物件導向。比較類似Windows API。C++也可以使用Carbon,其他的可以調用C函數的語言理論上都可以調用Carbon API
2.2.1 Cocoa
1. Cocoa是特別為Mac OS X設計的一套物件導向的Framework,因此無法在Mac OS 8/9上面運行
2. 編寫Cocoa程式的主要語言是Objective-C和Java,推薦使用Objective-C
2.2.1 Java
1. Mac OS X支援Java程式的執行,支援最新的JDK和VM
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比較類似Windows的User32.dll
2.3.2 Quick Draw
1. Quick Draw是另外一套支援2D繪圖的API
2. Quick Draw可以直接通過API調用大部分功能
3. Quick Draw比較類似Windows的GDI/GDI+
2.3.3 OpenGL
Open GL是Mac 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. Mach是Mac OS X的核心,是在老的Mach,MkLinux, Mac OS X Server, Next OS等基礎上面修改而來的
2. Mach是微核心架構(Micro-Kernel),而一般的Unix Kernel是monolithic kernel。
3. 負責提供最基本的作業系統服務,如進程調度,IPC,SMP,虛擬記憶體管理等
4. Mach調度的單位是線程
2.5.2 BSD
1. Mac OS X在Mach核心的基礎上實現了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)
http://page.renren.com/600423195/note/748005115?op=pre&curTime=1312769487000