很不幸,以如今 Linux 服务器的用户规模,任何技术上的优势都是次要的。决定 Linux 作为服务器 OS 不二选择的是"网络效应"。
“当一种产品对用户的价值随着采用相同的产品、或可兼容产品的用户增加而增大时,就出现了网络外部性。” 在具有网络效应的产业,“先下手为强”(first-moveradvantage)和“赢家通吃” (winner–take–all)是市场竞争的重要特征。[1]
听起来像是 Windows 在 PC 端的优势,事实上两个完全一样。一旦大家都开始用 Linux 做服务了。丰富的服务器软件、用户都会接踵而来。新用户的使用体验会越来越美好,因为有更加丰富的软件和经验资源(资料和人)。
那么,Linux是怎么达到今天的规模的?虽然有点跑题,但既然在 @yegle 的答案里聊到了,就就此多聊些吧。今天人人热衷的互联网经济,growth 模式在 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 作为服务器系统的优势,第一点永远是:你用、我用、大家用,软件多、体验好!
1.http://wiki.mbalib.com/wiki/%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94
编辑于 2013-10-23
赞同 41445 条评论
分享
收藏喜欢
收起
哪些创业公司把服务器放在腾讯云了?有哪些弊端?
小祎
自己做过完整的创业项目,踩过腾讯云,阿里云各种坑。也仔细看了回答,试着探讨下这个问题。
1,安全类问题
DDOS这个问题不是很想讲,一想到就头疼,因为无论你是IDC自建还是上云,只要有利益冲突,一定会遇到,而且现在攻击成本越来越低。所以IDC买清洗设备,上云买高防,就是相当于买路钱。
攻击挂马,我说一些我常见的。很多初创公司其实是没有专属运维的,很多开发代替了运维的工作(没别的意思,即使很多专业运维,安全意识一样有限),所以redis服务直接开放公网,大概不用几小时,你的root权限就被拿走了,这样的例子很多,如果你有心看http访问日志,就会发现漏洞扫描请求源源不断,只要一不小心,权限就被拿走,数据库就底朝天了。捎带提一下,简单的网络规划,私有网络划分,服务器,网络级别的端口控制,能比较显著的增加别人攻击成本。
其实安全类问题,锅不应该全由云服务商背,但是谁让厂商一天到晚说云好呢…
2,就是性能问题
比如常见的磁盘io,网络io,开始测试的时候压测没有问题,表现异常优异,晚上7点开始IO一塌糊涂,看监控本地负载并不高,就是卡成翔,这种坑踩过一下子就明白了,你同服务器的别的兄弟肯定是高负载拖累你了。即使你有多台机器做负载均衡也没办法,有的机器快,有的慢,统计监控一把辛酸泪。
其实很多问题没有展开说,而且有些跑题,不仅仅是腾讯云,阿里云,金山云,美团云,各种服务我都有幸体验测试过,一展开我能像怨妇一样说三天三夜。最后我们规模起来之后就是云+IDC自建,通过专线打通,把一些需要高速扩展的业务快速上云,等业务稳定后回落IDC。