引子:无论是MingW还是Cygwin,包括最近冒起的MSYS2,都存在各种奇怪之处,一言蔽之,就是离不开Windows但又对POSIX心痒难搔。Gentoo prefix让你实实在在地操练POSIX,又不失Windows的优雅。
Gentoo是一种GNU/Linux发行版,就像Ubuntu是一种GNU/Linux发行版一样。Gentoo的特点就是好,真的好。其中的原理在于,Gentoo是基于POSIX标准的源代码发行版,而实现POSIX标准的二进制通常千奇百怪,由于二进制兼容的问题只能交给脱耦来解决,因此在POSIX的标准上提供了一个源代码文本兼容的优雅发行版,就是Gentoo。Gentoo prefix是让POSIX标准运行在普通账户之下的的版本。Gentoo prefix天然地继承了Gentoo的特点,能够紧密地贴合POSIX接口厂商具体实现的方式运行。
夸张类比来说,两台有细微差别的Gentoo计算机之间可能存在这样一对二进制文件,二者位置相同而内容有很大的不同,那么可以判断在用那些二进制发行版(Ubuntu等)时,这个位置的二进制文件很可能正在低效地运作着。
Interix是Microsoft Windows对POSIX标准的实现,在Vista上叫SUA——基于UNIX应用程序的子系统。在早些时候它有别的称谓,统一的叫法是interix。Interix仅仅是提供了POSIX接口,它的具体实现依然是PE可执行文件。
与MingW相比,interix实现了更多的POSIX标准,比方说SUA 6.1提供了300多个实用工具。MingW的实现是值得赞誉的,它的许可证很友好,因此得到很多开源社区的支持。
与Cygwin相比,interix是纯原生的。Cygwin将POSIX标准接口封装在了几个核心的DLL文件中,更悲催的是它的许可证。尽管如此,Cygwin上手很容易,为许多新手和一些对POSIX高级应用有依赖的专家所采用。
与GNU/Linux相比,interix更有UNIX味。好吧,实际上一代人心中的UNIX是一种艺术,而非copyleft这种极客和社区文化。UNIX的实现是不同的,甚至用法律对UNIX的具体实现进行了保护。人们只需要集中于POSIX标准进行工作就行。实际上GNU/Linux几个发行版的快速普及已经极大稀释了这种艺术化的技术观,大家都会装一大堆根本用不上而又常常要更新的软件。UNIX说,软件是音乐。
1、POSIX标准在Windows上真正应该具有的效率和稳定性。因为interix是Microsoft 自身的实现,而且到SUA6+已经调整得比较到位。实际上Microsoft一直雄心勃勃地想用interix征服UNIX市场,对历史有兴趣的同学可以查证一下,八卦这里就不摆了。
2、Gentoo的激进性。Gentoo社区本身是比较激进的。当然,过于逼格就适得其反了。Gentoo有相当优秀的“软件包管理系统”。虽然源代码依赖和二进制依赖不是一回事,但可以这么理解。
3、先进的GNU工具集。这是Gentoo-prefix/interix超过原版interix的重点。
4、极简的安装方法。既然Gentoo-prefix/interix是给Windows用户使用的,发行者已经制作好了易用的安装程序(还是用了一些C#写的哦~)。
5、自己从源代码扩展的灵活性。我只尝试写了几个C语言新手程序,汗。
a.下载安装文件和安装教程
安装镜像:http://distfiles.gentoo.org/experimental/prefix/x86-interix/current/gpx-universal-20110831.iso
安装指导:http://distfiles.gentoo.org/experimental/prefix/x86-interix/current/gpx-installation-20110617.pdf
b.安装实操
安装镜像保存好,安装指导看着玩。真正的安装步骤是:
最好能在安装Gentoo-prefix之前安装一套Visual Studio 2008,这样就能在Gentoo-prefix中开发Windows应用程序了。
推荐使用XMing作为X Server。因为发行者称XMing经过最充分的测试。
可以通过Putty以注册过的账户登录到Gentoo-prefix。
新的包最好通过源代码编译的方式签入。
Gentoo-prefix/interix的“安装源”已经被墙。更新的消息笔者无法获取。
Gentoo-portage-interix不能和最新的Gentoo-portage之间通用,它是定制过的。
Gentoo-prefix社区对Gentoo-portage-interix的维护程度是BAD。