这个周末闲来无事, 于是在VMware Workstation 5。5。1 Linux版本上安装了一个Mac OS X 10。4。3, 也就是Drawin 8。3。1。 整个安装过程的确碰到些小的问题, 主要的两个”不可能”的问题是:
1. 必须要将ISO刻录成DVD来安装, VMware 5。5的虚拟光驱不兼容Mac OS X的安装。
2. VMware的光驱需要安装在IDE 0:1的位置上, 和硬盘同一个IDE口。
其他需要注意的是Guest OS需要选择FreeBSD, 在安装过程中先删除网卡, 声卡, USB这些模块, 等系统安装完成后再加载。 这样可以让整个安装过程非常顺利。
不过我在这里要谈的一个重点是我之后安装了DVD盘自带的X11, 以及XCode中的GCC和DevSDK。 非常有趣的是我将一个在Linux上基于XLIB开发的程序在Drawin上重新编译, 一切出奇地顺利, 然后就能运行了。
我从来不知道C和XLIB写出来的程序具有如此高的可移植性。 这让我回想到前几周我运行一个JAVA程序所碰到经历, 这个JAVA程序对运行环境的版本出奇地敏感, 这导致了超过半数的机器无法运行。 这不得不让我重新思考一下中低级语言和高级语言之间在可移植性上的问题。
高级语言因为面临其功能的扩充与频繁的升级, 反而导致了开发上的复杂度(最极端的或许就是HTML, JS这样的表层语言)。 那些所谓的低成本维护和高移植性的神话正在被其自身的剧烈变化所击破。 而相比较人们不再去触碰像C这样构筑的中低层结构, 这让程序开发环境变得非常稳定, 而这种稳定也带来了出乎意料的高可移植性与性能。
下图就是我测试的一个程序, 我拿我所有在Linux用C开发的程序在 FreeBSD, NetBSD, Cygwin 以及 Drawin 上均编译运行通过, 并且性能良好。 这或许应该让我们重新思考一下, 我们应该在哪个层次编写代码? 我的观点是: “一个稳定的层次“, 而从物理角度来看待这个问题同样显而易见: 这个最甜的层次通常就是结构的中下层。
(责任编辑:A6)