热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux作为服务器操作系统的优势是什么?

以如今Linux服务器的用户规模,任何技术上的优势都是次要的。决定Linux作为服务器OS不二选择的是"网络效应"。所谓网络效应就是

以如今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作为服务器系统的优势,第一点永远是:你用、我用、大家用,软件多、体验好。


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
author-avatar
笑到哭哈哈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有