一直以来都比较喜欢Linux,这也是大学里学的最好的一门课,现在也对其保持着热情。但每当别人问我Linux有什么有点时,回答的都不是很全面,连自己都说服不了自己...今天看了一篇不错的文章,转载一下,也算是做个总结。

以如今Linux服务器的用户规模,任何技术上的优势都是次要的。决定Linux作为服务器OS不二选择的是"网络效应"。所谓网络效应就是,“先下手为强”(first-moveradvantage)和“赢家通吃”(winner–take–all)。

听起来像是Windows在PC端的优势,事实上两个完全一样。一旦大家都开始用Linux做服务了。丰富的服务器软件、用户都会接踵而来。新用户的使用体验会越来越美好,因为有更加丰富的软件和经验资源(资料和人)。

那么,Linux是怎么达到今天的规模的?

高端种子用户

comp.os.minix 是类Unix内核爱好者/学习者讨论组。这个用户组里的用户理解操作系统原理,具备内核代码的理解,设计能力。Linus做出Linux内核第一版后首先发布到了comp.os.minix,马上引来了众多爱好者关注并贡献代码,很快得以创建comp.os.linux。到了92年已经能够运行X-Window。此后Linux内核代码飞速发展,全靠越来越多的内核贡献者加盟。

和GNU结盟

Linux从0.01开始就要求用户自行安装GNU工具。后来选择以GPL发行。GPL 虽然在帮助创造更好的商业软件上有些争议,但在保证源代码回馈量上却效果极佳。

此时GNU Hurd,遥遥无期,社区迫切需要一个高速迭代,能用的GPL操作系统内核。因此Linux迅速获得更多用户的支持。不论有心无心,这是第二步成功的推广 ——提供目标用户无可替代的必需品。同时期的386BSD,却因为代码和协议问题,没有获得同样推广的机会。

免费的操作系统

Linux内核源代码可以免费下载。大多数Linux发布版本,包括GNU/Linux的发行版本和商业的发行版本几乎都提供免费下载服务。

免费意味着零试用成本,也不需要为安装在第二台机器上付费。如果你在大学机房里勤工俭学,从朋友那里听到一个新兴的操作系统,还是免费的。你有什么理由不下载下来试一试呢?如果你使用之后觉得比一些老掉牙的Unix系统好用,为什么不给安装到机房的其他机器上呢?

这种在“WWW时代”的免费推广方式。在上个世纪就被利用在了Linux的推广中。知乎上的程序员/SA们,谁没有下过一个Linux Distro的镜像刻过盘?

Internet 高速分发

软件的销售和服务,渠道有多重要,各行各业都知道。今天人人称道的App Store 模式,就是把软件发布和更新的渠道做得最NB,才能在短时间内就建立起基于 iOS的生态系统, 迎来了Mac的第二次复兴。但是这种软件分发/更新的渠道不是苹果发明的,也不是苹果最先采用的。Linux和其他开源软件早就知道用类似的方法分发软件。其中典型的就是几乎所有Linux Distro都会带的软件仓库(Software Repository )。

带有软件仓库的Linux Distro, 几张CD不是OS的全部。Repositoy才是。 这些仓库有些安装Compile Farm编译出的二进制包。有的提供从第三方软件网站上的源码包自动编译的脚本。在 Linux的世界里,你不知道满地找软件或它的最新版本是个什么概念。

凭借这个技术,Linux 内核和最新的开源软件被以最快的速度分发到世界各地。

CLI 用户体验

有多少人在Windows服务器下打开CMD, 在 Solaris 和默认的 *BSD系统下打开一个终端模拟器,面对那色盲般的界面皱紧眉头?服务器的用户也是用户,也讲究用户体验。

在今天,很少有Linux Distro会提供那么单调的shell提示符,会不把ls-G设成ls的alias,会不使用readline,会给一个GUI的终端模拟器那么丑的字体。如果你还不满意,还有bash, csh, zsh 等shell可以替换。比如截图中用的是zsh,蓝色代表用户名和主机名,黄色的代表git当前分支,绿色代表当前目录。

这种不起眼的美化,使得同样用途的服务器OS,Linux更能抓住其用户的心。我们今天做产品讲究在满足用户价值的前提下提高视觉和交互体验,其实这些 Linux做得都比同类服务器OS好。

总而言之,正是通过以上几点,Linux才逐渐的积累作为服务器操作系统的优势。至于Web代理,服务器软件的丰富和高性能,都是用户规模形成之后的事了。epoll和 NTPL在2.6 kernel正式分发,但那时Linux作服务器已经势不可挡。而现在再谈Linux作为服务器系统的优势,第一点永远是:你用、我用、大家用,软件多、体验好。