Mac OS X遭遇记 - 行者无疆 始于足下 - 行走,思考,在路上
Mac OS X遭遇记
3月1号回到玉泉,处理了许多杂事,找导师沟通了下毕业设计的问题。沟通的最终结果就是我又被发配到了手机客户端组,继续做GUI控件。事实上我最开始选的题目是《海量空间数据的高性能引擎研究》,我还是挺喜欢这个方向的,而且与我在Baidu的实习以及日后的工作都有很大的关联性。但是导师一句“题目较难,时间不够”就把我噎了回来,紧接着来一句“我还是希望你能够做一些连续性的工作”——就是去年四月份实验室做的Windows Mobile控件开发了。其实我是非常不喜欢这个项目的。对于一个崇尚自由、分享的Open Source Programmer来说,用着盗版的Windows+VS,盗用Open Source的成果来开发闭源软件,实实在在是一件不怎么惬意的事情——老实说我也算不上合格的Open Source Programmer,因为我至今也没有自己的Open Source软件。其次是我越来越讨厌关于Windows的一切,无论是作为一个User还是Programmer。我最近正计划着写一系列的Windows吐嘈文,构思良久,即将面世。
只不过这次不同,我所面对的不再是Windows Mobile,而是——iOS。
How?这是我脑子里最先冒出的想法——How to write an Win32-Styled GUI program under Windows(or maybe Linux) platform for iOS?我战战兢兢地问了下学长“实验室有苹果机吗?”,答曰“没有,用虚拟机”。
Oh,my god。在Windows平台上运行着虚拟机,在虚拟机里面运行着Mac OS X,在Mac OS X里面运行Xcode,在Xcode写Win32-Styled Program,然后将这个Win32-Styled的Program Load到虚拟机里面的Mac OS X里面的Xcode IDE里面的iOS模拟器上,调试!!!
What a Joke!
不过,吐槽归吐槽,活儿还是要干。鉴于前两次Hacintosh的惨痛经历,所以这才在也不敢在自己精心调制好的ThinkPad x201i上为所欲为,还是乖乖的虚拟机的好。幸好前两天买了根三星金条,武装到了4G内存,否则还真不敢想象在虚拟机里面玩Leopard。
高级的虚拟机咱不懂,所以诸如KVM,Xen就不在考虑之列了。剩下的,最开始接触电脑时玩的Microsoft Virtual PC,不知道现在活的怎么样。VMware,大概是三年前用过,印象就是臃肿,慢。VirtualBox,我的最爱,开源、免费、跨平台、轻量快捷。所以VirtualBox是试验的首选环境。
不过Mac平台的封闭性带来一个众人皆知的事实,那就是Hacintosh的成功性与人品——也无关,我的意思是说,Hacintosh的成功与否完全是莫名其妙的事情,无论是虚拟机还是实体机,能否Hacintosh,要看上帝的心情。
Hacintosh的版本有很多,比如东皇、iATKOS、iDeneb、OSXPCBETA等等,boot loader也有若干种方案,比如变色龙、EFI Emulation等等,个中详细可以参考OSx86。而由这些基本“元件”排列组合出来的网上作为“PC变Mac”的方案更是五花八门,让人目不暇接。照理说,对各种硬件的良好支持是一个OS安身立命的最基本条件,至于Mac如何在违背这个基本原则下打拼出自己的逍遥天地,容我另外一篇文章再做分析。
好了,回到正题,继续我的Mac OS X遭遇记。我按照老赵点滴上的指示在我的ArchLinux+VirtualBox 4.0上做实验,前面都是很顺利的,也出现了下面的Kernel panic情况:
按照教程,重启之后就可以进入期盼的Leopard,可是我却陷入了无限的灰色风火轮等待中。重整多番,调整了多组参数,均以失败告终。
于是转投VMware,我按照VMware的要求,下载了300+M的VMware7.1的bundle,按照ArchWiki上的步骤,成功装上了VMware,但是确始终启动不起来。无奈,转投Windows吧。之所以坚持Linux,是因为我需要LaTeX,我需要Emacs+Auctex+cdlatex+outline-mode来完成我的毕业论文啊。
好在Windows下的VMware还算正常,安装过程也算顺利,我就不在细说了。具体过程可以参考《VMWare下安装MAC OS X Snow Leopard 10.6》,需要注意的主要是:
- 安装之前用securAble检测下CPU是否支持虚拟化;
- 内存至少1G,最好主机配上4G内存,而VMware配上2G内存,否则慢起来很要命,如果搞开发,硬盘最好20G以上;
- 注意修改VMware目录下的.vmx下的guestOS由guestOS = "freebsd-64"改为guestOS = "darwin10";
- 启动时始终需要darwin.iso来引导;
- 成功安装系统后安装darwin.iso里面的vmtools,获得更好地使用体验;
放张图吧:
顺便感叹下,VMware的虚拟化技术还真是强大,2G虚拟内存跑Mac OS X,速度还真是不赖,界面效果也都能跑的出来。如果再弄个分屏软件,再插上一个LCD的液晶屏,就真是两个系统了。
至于Xcode和iOS SDK的安装就简单很多了,可能需要做一次系统升级。至于iOS上如何写Win32-Style的GUI程序,我现在也是丈二的和尚。至于额外的Macintosh吐槽文,还是等以后心情不错的时候再写吧。
Fri, 11 Mar 2011 00:21:38 +0800
blog系统的时间还是有问题。这次又慢了3个小时。看来我需要搞一个wordpress了。
Fri, 11 Mar 2011 00:35:44 +0800
看看你的设置中时区的选项是不是你所在的时区;另外文章的时间是最初草稿创建的时间,而不是最终发布的时间。
Fri, 11 Mar 2011 00:39:29 +0800
嗯。看到了。这次是我弄错了。已经正常了。