kre*_*tar 8 windows registry macos dll operating-system
我正在观看WWDC 2009主题演讲以及有人对Windows 7/Vista所说的话让我很好奇......
该发言者声称7仍然是一个糟糕的操作系统,因为它仍然使用相同的技术,如DLL和注册表.他的说法有多准确,OS X的做法有多么不同?即使os x也动态加载了库吗?我猜注册表的东西可能有些重量..
任何人都可以向我解释每个操作系统策略的差异吗?
我不想在这里或任何地方煽动粉丝,我只是想知道两种操作系统如何解决一般问题.
谢谢,
克雷布斯
当然,这两个操作系统有设施使用的DLL(它们取决于他们是如何包装是所谓的OS X dylibs或框架).dylibs很像DLL的 - 他们是一个动态链接库,因此有可能它们的多个版本浮动.另一方面,框架实际上是一个目录结构.它们包含动态链接库(可能是它们的多个版本),资源,标题,文档等.OS X上的动态链接器自动处理从框架中为每个可执行文件选择正确的库版本.该系统似乎比Windows的DLL管理工作得更好,这仍然是一个混乱(当然,Windows系统与苹果公司迁移到OS X时遗留的遗留问题相关联).公平地说,Unix已经解决了这个问题很长一段时间,并使用符号链接将dylib链接到正确的版本化实现,允许多个已安装的版本.
没有OS X等效的Windows注册表.这是好事还是坏事.好的一面是,通过注册表搞砸来破坏整个OS X系统要困难得多.OS X将配置存储在许多单独的文件中,通常是每个应用程序,用户等一个或多个文件.这些文件通常是plist(表示字典,数组和基元类型的XML模式)格式化文件.不好的一面是,通过保留这种Unix-y传统,OS X没有相同的über-admin工具,可以通过注册表流失并做各种疯狂的事情.
DLL文件
OS X和Windows之间的主要区别在于Windows历史上试图通过让每个人共享代码来节省空间/内存(即,您安装一个DLL,每个人都可以使用它).Apple将所有非系统库静态编译到每个应用程序中(好吧,不是真的,但也可能是).浪费磁盘空间/内存,但使应用程序的部署方式更简单,没有版本的问题.
注册处
OS X 确实有一个注册表,它们只是一个名为plists的平面文件,而不是一个神奇的组件,它主要是一个文件系统,除非它不是.Apple的方法可以很容易地将设置从一台机器迁移到另一台机器,而Windows的方法在内存中更快,并且允许应用程序轻松"观察"一个键而不会产生大的性能(即一个应用程序更改密钥和另一个应用程序)立即知道它).
结论
主旨演讲的全部的话,10.6大多是相同的代码为10.5,这是几乎相同的代码为10.4等,就像Win7的大多是Vista中,其中大部分是服务器'03,等有远太多的测试代码一个操作系统,可以在每个版本中丢弃它,特别是如果您真的希望客户的应用程序正常工作.
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |