导师让我研究 iPhone 下的程序开发。迫于经济窘迫,手头没有 Mac,四处查资料,终于搞出来了一个跨平台的解决方案,写了 20 多页的英文文档美其名曰 The Cross-Platform Developing Skills for Mac Applications,认真进行了排版,给导师发了过去。可是导师太忙了没有时间看呃。于是我一股脑的跟导师倾诉了一番 Mac、Objective-C、GNUStep 等等之类的东西,虽然我也不太懂。导师看我做的十分认真,比较满意,中午一起吃了饭,下午来了个学长,一起坐下交流一番。我刚想倾诉我伟大的跨平台解决方案,学长说,“现在 Mac OS 可以装载 PC 上了”。于是我就悲剧了。

周五下午去公司跟学长借了盘,插进光驱,改下 BIOS 从 CD 启动,哇,竟然能启动,而且见到了安装界面。窃以为到这步,我的 PC 装苹果之路已经走完了一半。哪知这仅仅是噩梦的开始。整个下午就在网上乱逛,了解下 PC 安装苹果的知识,了解下多系统的安装与启动。晚上回到寝室,真刀真枪,开始干了。

首先是硬盘的问题。由于我的头脑发热,整个硬盘 250 G,就一个 Arch Linux,这么一来要想安装苹果先得给苹果腾点地方啊。于是找到了传说中的 GParted,但是系统正在运行, / 分区和 /home 分区无法 umount ,因此更无法 resize ,于是就找到了 GParted Live CD。 wget 拖了半个小时,用 Brasero 刻盘,第一次可能用了全速刻盘,最后出现了莫名其妙的错误,刻录失败,废了一张 CD。于是又想到了伟大的 UltraISO 9.3 版。咱不是有 VirtualBox 嘛。马上去神网下了 UltraISO,装上,插上 U 盘,打算搞个 GParted Live USB 出来。依然宣告失败。还剩一张 CD,又用 Brasero 刻录了下,这下降低了刻录速度,终于成功。Reboot。

加载了 3、4 分钟的样子,GParted 终于出来了。桌面环境采用的是 Fluxbox,虽然没用过。先把 /home 分区 resize 一下,成功。重启,进入 Arch Linux, df -h 看看文件系统,成功!!很是兴奋的样子。reboot again,又进入了 GParted Live CD,打算给 Mac 腾 30 G 的空间。不知怎么的,我试探性的用了一个貌似叫 new partition table 的功能,谈出个窗口,我点了个确定,又一个窗口,我又点了确定,这下糟了!整个硬盘被重新格式化了,整个过程不超过 1s 中的时间,我想这 GParted 也太 nb 了。250 G 的硬盘, 1s 中不到就全部搞定格式化了。

呜呜,我的 Arch Linux,我的心血啊。索性,一不做,二不休,先装苹果吧。苹果的盘是 ideneb 的 Leopard 10.5.7 的版本。从晚上 7 点到午夜 12 点,总共装了不下 6 次。终于还是没装上。症状是安装完所有软件重启后风火轮转几圈后就黑屏无反应。可能是各种驱动的问题,但是我用手机上网,反复设置,反复选择,还是没有成功,这使我彻底失望。 Mac 的安装确实是一个关乎 rp 的问题。怎么办?

思前想后,还是决定装 Windows 7,再重新装个 Linux 吧。于是找室友帮忙,下载了 Windows MSDN 英文原版,还是用伟大的 UltraISO,刻成了 Live USB,启动,开始安装。半个小时,一个华丽的启动界面出现在我的眼前——果然很绚丽。简单使用了一下,相比 Vista,对 Windows 7 确实做的非常非常不错。尤其是独具匠心的 UI 设计。超级任务栏, Aero Peak,动态的主题效果,重新设计的 Media Center,便捷的网络 VPN 链接,还有许多我觉得不错但是叫不出名字的功能,真的很强大。而且运行起来比 Vista 要轻快多了。看来 MS 这次是下了血本了。

盗版,这个字眼对于中国的 IT 人来说是一种挥之不去的痛。虽然我也不想用盗版,虽然我可以用 Linux 满足自己开发、办公、学习方方面面的需要,但是某些时候环境是不一样的。譬如实验室的同组同学都在用 Visual Studio 2008 做开发,这种情况下想不用盗版的 MS 产品恐怕都很难。据说即将面试的 Visual Studio 2010 正版要 11100+ 美刀。简直是不可想象了。算了。这是在中国。CC98 上有几个 MSDN 的 key,也许这次 rp 不错,竟然能电话激活了。此时已经半夜两点多了,撑不住了,睡了。

第二天早晨 10 点才爬起来。继续搞电脑。得装个 Linux。装哪个版本好呢?Arch,自己配置还是蛮麻烦的。说实话现在对系统安装已经没有多大的兴趣了。每次重装系统都是把自己的精心调制的作品一点一点碾碎,然后再一点一点搭建起来。我是需要 XeTeX 最新版本的,自从用了 LaTeX 后,已经完全不能习惯 Word。Google 了下,Ubuntu 9.10 中的 TeX Live 貌似还停留在 2007 版本。算了,还是 Arch 吧。

有了上次的安装经验,这次的安装也算是轻车熟路了。但是自己又没有十全的把握与信心,于是在 Windows 7 下把 Arch Linux 官网 wiki 上的 Beginner's Guide 打印了下来,七十多页。具体的安装过程不讲了,大体上都一样的,真想自己装的话看 Beginner's Guide。只是记录一下安装过程中遇到的几个小问题。

  • GRUB 的引导问题。很幸运的是 Arch Linux 自动识别了 Windows 7,只需要在 GRUB 的 menu.lst 文件中去掉几行注释就行。这是我的 menu.lst 文件:
# general configuration:
timeout   5
default   0
color light-blue/black light-cyan/blue

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel
line.
#
#-*

# (0) Arch Linux
title  Arch Linux
root   (hd0,8)
kernel /vmlinuz26
root=/dev/disk/by-uuid/06ec3189-80fa-471d-b8be-20de1d458f63 ro nomodeset
vga=773
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,8)
kernel /vmlinuz26
root=/dev/disk/by-uuid/06ec3189-80fa-471d-b8be-20de1d458f63 ro
initrd /kernel26-fallback.img

# (2) Windows
title Windows
rootnoverify (hd0,0)
#makeactive
chainloader +1
  • rc.conf 的问题,最重要的是要安装 HAL,并把它放到 rc.confdaemons 里面,否则进入 GUI 后无法识别键盘鼠标。这是我的 daemons 设置:
DAEMONS=(@syslog-ng @network @netfs @crond @hal @kdm @alsa)
  • 语言选择问题,在 rc.conf 会有一个 LOCALE 的设置问题,建议不要更改成中文,保持默认就好。我就是看了某个教程的知道改成了 zh_CN.utf8 ,结果进入 KDE 时,界面字体非常难看。也可能是我的字体还没有配置好的原因。

  • localtime 和 UTC 的选择。wiki上说如果是 Windows 和 Linux 双系统,还是选择 localtime 比较好。

LOCALE="en_US.utf8"
HARDWARECLOCK="localtime"
USEDIRECTISA="no"
TIMEZONE="Asia/Shanghai"
  • 字体配置我选择的是 WenQuanYi Micro Hei 系列,效果还算不错的。仿雅黑字体的。

  • 触摸板的增强可以用 GSynaptics 驱动,其中有个 circular scrolling 的功能,非常的有趣。实现了 Mac 触摸板的某些功能。自己 Google 一下就知道了。在触摸板上画圈 circular,就可以实现 srolling 的功能。呵呵。注意,GSynaptics 的设置默认每次是不能保存的。把下面语句加入到你自己主目录下的 .xprofile 文件中即可。

gsynaptics-init &
  • 显卡驱动的问题。我的是 ATI X1450 卡。采用 xf86-video-ati 的开源驱动即可。但是最新的内核(2.6.31以上版本)开发了一个叫做 kernal mode setting 的功能,会引起一些冲突,导致桌面效果无法启用。具体可以参考 archlinux wiki 上的这篇文章。解决方法是禁用 kernal mode setting 功能。在 GRUB menu.lst 中实现。~nomodeset~ 表示禁用 kernal mode setting, vga=773 表示启用控制台的 framebuffer。至于 framebuffer 是什么,自己百度吧。
kernel /vmlinuz26
root=/dev/disk/by-uuid/06ec3189-80fa-471d-b8be-20de1d458f63 ro nomodeset
vga=773
  • XeTeX 的字体问题。直接将下载的字体 cp/usr/share/fonts 里面,最好建一个目录来存放自己的字体,然后
  • OkularEvince 不能显示中文问题。据说二者都是基于 Poppler 的,安装 poppler-data 即可完美解决这个问题:
  • 从普通用户到 root 用户 GUI 程序无法启动的问题:
[lox@freelox ~]$ su root
Password:
[root@freelox lox]# firefox
No protocol specified
No protocol specified
Error: cannot open display: :0.0
[root@freelox lox]#
[lox@freelox ~]$ xhost +
access control disabled, clients can connect from any host
[lox@freelox ~]$ su root
Password:
[root@freelox lox]# firefox
[root@freelox lox]#

解决办法是在转到 root 之前输入 xhost + 命令:

应该是与 X11 协议的实现有关。我没大看明白。自己百度吧。

能想起来的问题大体就这么多,放上一张 Arch Linux + KDE 的图片的,是我现在的桌面:

后来的后来,在 Windows 7 里面装上了 Visual Studio 2008, Visual Assist 和 ViEmu 以及 VMware 6.5,当然,全部都是中国特色的 db,呃,很矛盾。

周日看了一天的计算理论,教材是《Elements of the Theory of Computation: Second Edition》的中文版,张立昂、刘田译。不过质量实在不怎么样。看了三十页,就发现了至少三处错误。边看教材边做习题,打算把习题全部做完,统一给老师交上去好了。中途要画几个 finite automata,于是又头脑发热翻了翻 PGF/TikZ manual,还算有点小成果。

又是繁忙的一周,汇编语言要补,计算机组成的实验更要补,计算几何的期中考试,数值分析新的内容,操作系统两份报告,还有很多很多。呃。加油吧。从来没感到学业如此繁重过。