关于Snow Leopard的64bit
自从Snow Leopard发布后,看到网上很多人热衷于如何启用64bit的kernel。似乎使用了64bit的kernel速度就快了很多。其实,不过是个心理安慰罢了。Snow Leopard的64bit kernel和64bit 应用是2回事。
简单来说,按照目前的硬件配置,启用64bit kernel没有什么效果,它的一个好处是允许访问大于32G的内存。而目前的物理限制,没有任何一台macbook pro能够有这么大的内存,因此,这也是snow leopard默认是使用32bit kernel的原因。
64bit的应用则不然,snow leopard完全支持64bit技术,其内置的应用如mail,safari,全部是基于64bit 代码生成的。包括系统自带的framework。(这也是为什么需要升级macports的一个原因)
这就意味着,即便是在32bit kernel下,相关的应用程序也能够享受到64bit的好处,比如16 exabyte的寻址空间,大于2G的文件,等等。
实际上,是否支持64bit取决于你的CPU处理器,只要你的处理器是Core 2 Duo或XEON之后的新处理器,都支持64bit。
(话说回来,其实并非真正的64,而是x86_64而已),都可以在Snow Leopard中运行64bit的应用,而不管当前是启用了什么内核。
澄清几个误区:
- 能否运行64bit应用和当前启用的kernel是否64bit无关
- EFI是否64bit不影响运行64bit应用程序
- Core2Duo或Xeon之后的处理器都可以运行64bit应用
- 64bit Kernel extension目前还没有实际的用处,32bit kernel足以
所以,省省吧,不要徒劳的boot 64bit kernel了。
但是,在用gcc编译的时候,还是使用64bit,这样的确可以享受到64bit的好处。
Patch for Flare on Snow Leopard(OSX 10.6)
Flare的logger.cc中,将opaque pthread_t* cast为 unsigned int, 在Snow Leopard中会无法编译通过,g++报错精度丢失。修改为cast 到 unsigned long就ok了。
解决PHP5在Snow Leopard(Mac OSX 10.6)上的编译错误
今天在Snow Leopard重新编译PHP5.2.6, 在最后link时出现错误:
Undefined symbols:
"_res_9_dn_expand", referenced from:
_zif_dns_get_mx in dns.o
"_res_9_search", referenced from:
_zif_dns_get_mx in dns.o
_zif_dns_check_record in dns.o
"_res_9_dn_skipname", referenced from:
_zif_dns_get_mx in dns.o
_zif_dns_get_mx in dns.o
ld: symbol(s) not found
配置和编译脚本应该没有问题,仔细检查了下configure 的输出,应该是link的时候没有link进 resolv 库。看来是PHP的配置脚本无法正确识别10.6造成的。google了一下,果然:
是这个Bug造成的。在5.2.11-dev中已经修复了。
我需要使用5.2.6, 修正也简单,设置LIBS变量,强制link resolv库就好了:
LIBS='-lresolv' \
./configure \
--prefix=/opt/php5 \
....
其他关于Snow Leopard的一些小问题:
* macport需要更新到1.8
* mysql重新下载5.1.37包
* PD中如果PPS无法观看,重新安装Parallels Tools就ok
* 要避免在macport中重复perl 5.8.9,可以ln -s /opt/local/bin/perl5.10 为/opt/local/bin/perl
这些问题作为普通用户应该遇不到,但在mac port/darwin中编译的libs就有问题了。一般都是dylib无法加载,出现image not found,因为port中gcc只生成特定的代码,而非通用代码,当运行库变更后就无法正常加载了.
解决办法就是重新编译一下。
重新编译一下。
升级到Snow Leopard
昨天SnowLeopard正式发售了,趁着周末有时间,今天下午去了趟三里屯,买了一套回来(零售版248)。升级很简单,把dvd扔进去,点几下鼠标就开始升级安装了,开始后就不需要再任何人工干预了,直到完毕出现登录界面(mac一贯风格,简单,不像win那样啰嗦)。具体时间就不清楚了,主要是复制文件过程慢,我安装开始后就去睡了一觉,等醒来就能用了。
没什么大的变化,初看甚至感觉不到升级。不过用了几下发现有些细节还是精细很多。比如dock上stack改进显示方式还是很赞的,Quicktime Player可以录制屏幕了,很实用。Spotlight的响应速度快多了,和QuickSilver比,没什么差别了。可以长按应用图标在dock上直接expose应用程序窗口,但我还是习惯鼠标移到屏幕角。升级后系统占用的空间明显要比Leopard小很多。
说说开发环境吧,osx/macbook pro是最适宜开发人员的了。升级后原先的XCode开发环境没有了,需要从dvd中安装XCode新版。这次snow leopard也更新了内置的开发工具:
PHP是5.3, Perl 5.10, Ruby 1.8.7, Python 2.6, Gcc 4.2.1 …
PHP5.3没发布多久,竟然就正式进入系统,让我有点奇怪。 Perl更新到5.10倒不奇怪。
升级后的出现的兼容性问题并不多,除了TextMate有些小问题,在TextMate的blog上都有解决方法(今天发布的1.5.9r1510修补了快捷键的问题)。QuickLook个别几个小插件无法工作,但原来就有些小问题,这次索性删除了。
结论: Snow Leopard虽然没有像Leopard对比Tiger那样强烈,但是平滑的升级和速度的改进还是令我满意的,购买这次升级物有所值。