注意:MacOS X系统支持多种形式的应用程序,请参考:苹果新手Mac OS X 使用笔记--------四种应用程序类型
本文特指具有GUI的基于Cocoa开发的程序,此种程序也是MacOS X中的最普遍最“苹果”的程序。
学习一种新的操作系统,就必须要学习一个应用程序是如何组织和运行的。也就是一个可执行程序的静态和动态布局。静态布局指的是程序作为文件或者文件夹是如何存放到文件系统中的,动态布局则是指操作系统的程序加载器如何把程序文件加载到内存中并跳转到程序入口点执行。对于同样的硬件体系结构来说,程序的动态布局基本相同,而静态布局则相差甚远。
1 Windows、Linux系统应用程序静态布局及其问题
1. 1 Windows系统应用程序静态布局及问题
对Windows用户来说,应该很熟悉一个程序的静态布局了。对于常见的程序如Word来说,基本上程序的文件和配置分散到三个地方:
- l 第一个是程序的安装主目录,如C:\ProgramFiles\Microsfot Office
- l 第二个是系统共享动态库目录C:\Windows\System32
- l 第三个就是系统注册表。
这种布局导致的问题已经众所周知了。其中system32下动态链接库版本问题导致的“dll地狱”让人尤其头疼,注册表过于庞大杂乱臃肿让人心烦。
微软为了解决这个问题,发起了.net项目。目前.net已经成为了微软操作系统的核心组成部分,也确实解决了上述问题,用.net开发绿色软件非常方便可行。
1.2 linux系统应用程序静态布局及问题
Linux系统本身并没有应用程序的静态布局规范,不同的安装软件方式导致不