服务器为什么大多用 Linux ?看看这些老运维人怎么说

号主:老杨丨11年资深网络工程师更多网工提升干货,请关注公众号:网络工程师俱乐部

下午好,我的网工朋友。

最近我在知乎看到个问题,“服务器为什么大多用 Linux?”

这个话题其实挺有意思的,这属于是“运维届”的基操,但很少有人去思考背后的原因,用就完事儿了。

ee150d39ae84a64b12d77732625c2470.jpeg

其实Linux这个老牌系统,1991年就有了。

稳定、安全、灵活、成本效益等等多个因素的加成,服务器市场绝对离不开它。不管你是在小型企业还是大型数据中心,又或是云计算平台到嵌入式系统,Linux都是你的工作必备吧。

那Linux究竟有啥魅力?能够让这么多服务器选择它作为操作系统?又是为什么让众多网工、运维朋友都对Linux青睐有加?

除了开源、好用等原因,今天就和你挖一挖不同人需求和看法,要我说,确实很有趣。

今天就来展开聊聊,看看是不是戳中了你的想法。

今日文章阅读福利:《 必备linux命令大全 》

给你分享一份工作必备的好用资料,发送暗号“linux命令”,即可限时获取。

01 知乎好友“熊大你又骗俺”的回答:

首先在20年前,windows server+iis+asp+access 的方案,还是流行过一段时间的。

简单易用,非常适合一些内容发布频率不高的小企业网站。

国内有个热门的论坛就是用asp+access做的,叫“动网论坛”,安装简便。我记得好像连ODBC都不用配,直接就能访问了。

后续好像还是这个叫“动网先锋”的公司,又搞出了使用 asp.net 的文章系统,叫”动网新闻”和将源代码封装成 DLL 防止剽窃的“动易”。

当年许多国内虚拟主机会在配置里单独强调”支持动易组件”。而 ASP.NET 的应用成本较高,不如 PHP 受欢迎,PHPWIND 因使用 zend 而快速崛起。

于是乎,那几年出现了一个非常有意思的局面就是:买 Windows 主机要带”动易组件“的,买 Linux 主机要带 zend 的。而有段时间,出现了一个非常好笑的现象。

由于当时都是买虚拟主机,根本不能修改服务器的配置参数。尤其是windows server的虚拟主机。当时可没有什么web.config来给你修改。

而许多主机商,非常不负责。许多就是不知道在哪个IDC那里租了台服务器,也不弄其他的配额啥的,就把硬盘划分成N份,接着开卖。

最多在合同里强调一句:”不允许跑【江湖】游戏之类过于占用资源的程序“。

碰上这种主机商,MIME类型啥是不管的。而且,这类虚拟主机,就提供一层根目录。web和FTP使用的是同一个根目录。用户想改,还改不了。

再加上当时使用ASP的,新手居多,经验较少。就会出现:web目录里放着index.asp,index.asp的旁边,放着data.mdb。结果就一目了然了,客户端访问“http://xxxx.xxx/data.mdb”,就能把数据库下载下来了。

着打开data.mdb,转到user表

哎嗨,密码是明文的呦!

后来,新手使用asp第一课:如果虚拟主机没有上一级目录的权限,那就把data.mdb改扩展名,变成data.asp!!!!

而过了一两年之后,国外的linux虚拟主机,基本上都更新换代支持ZEND了。

而WINDOWS主机?给人的印象就是:ASP效率低下,不安全。MDB容易炸(我真炸过,修复之后近期数据都丢了)。

02 知乎好友“Sental Cristar”的回答:这个事,IIS(微软的Web Server)至少要负一大半责任。

首先,大家不要去按照现在 Linux 情况跟 Windows比。很多东西在发展过程中就是一种生态强弱的比较。在那个关键的时间点,你的生态强,大家都用你,那么你就统治了行业。

然后回头再看,当时很重要的那个业务或者特性,后面已经不存在了。但统治地位建立了,就很难逆转了。在大概2000年的时候,Windows的WebServer其实还是有一定优势的。

自带FTP功能。

ASP动态网页不需要额外部署软件。(当时ASP还是挺好用的一种开发语言)有图形界面来做配置,适合小白管理员。

但很快,Windows 太封闭的问题,就开始有很大影响了。IIS 在 Apache+Nginx+Lighttpd 面前,被打得毫无还手之力。

首先是对php、ruby等越来越多的开发语言,支持太差。IIS过度绑定 asp.net,其他开发语言在上边部署经常出现各种各样的幺蛾子。2005年前后那会,正是各种开发语言井喷的时间,大家对 Apache 的兼容性,都要好于对IIS的兼容性。IIS搞那一大堆权限、运行生命周期啥的,让很多语言的runtime难以适从。

其次是,IIS的性能被nginx和lighttpd吊打了。

这两个基于poll和epoll的项目,因为项目特别轻量,所以性能上往往能够拿出IIS几倍的并发能力来。加上IIS把自己的配置搞得太复杂、太难以调试了,导致很多用户根本不会做性能优化。

这两个原因,让Web Server业务基本就被 Linux 抢走了。

03 知乎好友“Kero”的回答:

前一阵开帕鲁服,教程都是 winserver 的,遂在租的云服务器装win server,结果帕鲁的服务端比较难绷,还需要vc runtime和dx runtime,网上找半天安装包都没合适的

最后觉得好麻烦,换成了Ubuntu,apt install装好steamcmd和服务端,再运行server.sh就行了。。。

说到jdk忘记一个重要原因,能跑win server是因为为了解决帕鲁服内存泄露选了4C8G的配置。

而之前开用来4-5个人玩的MC服普遍都是2C2G/2C4G,2G跑Win属于几乎不可能,而之前开用来4-5个人玩的MC服普遍都是2C2G/2C4G,2G跑Win属于几乎不可能,4G就算能跑但要被ram系统吃掉一大部分未免太亏了,这种轻量场景更适用Linux。

04 知乎好友“hyu jj”的回答:

Windows 按 CPU 核心收费,一台服务器正版授权要10万元左右,Linux 免费。

05 知乎好友“Sven”的回答:

回答的时候选择换一个方向:为什么不用 Linux?

作为一个专业的基础设施开发人员和半专业的运维,我看到的是 Linux 相比于 Windows 的一系列优势:

生态。这个不用说了,生态是决定技术栈发展的核心:大家都用,自然就受欢迎。微软在服务器端生态上起步晚了,当.net core出现的时候java golang node已经差不多在服务器端三分天下了。

轻量。这里说的轻量不是一般爱好者眼中ubuntu或者centos那种的轻量,而是指诸如alpine这样的轻量级Linux,这意味着可以用极小的空间来完成容器化的工作,使得运维部署变得更加灵活高效。

容器。上面提到了容器,实际上容器本身也是 Linux 的一个巨大优势,windows和osx因为诸多限制使得容器化始终无法从最底层直接起步,而当下的服务器端架构/运维上,容器化是一个无法规避的需求,因此能够完美支持容器化的 Linux 就成了更好的选择。

06 知乎好友“水雷”的回答:

补充一个当时微软企业自身的问题:微软和开源的对立。

早期的时候,比尔盖茨就有一封特别有名的信:致爱好者的公开信 。信里面他表达了业余爱好者使用盗版的憎恨。

同时有一句,有谁会在没有任何报酬的情况下来做这些专业的工作?

什么样的爱好者可以为他的产品投入三人年(man-year)的开发时间,并且发现所有的错误、编写文档以及无偿发布这个产品?

微软主要营收靠的 Windows 和 Office。

这部分业务主要就是开发操作系统/软件卖给用户,收取授权和维护费用。在99年达到了第一次巅峰。当时世界上市值最高的公司。

上面提到的业余爱好者,很大一部分是高校和学术界。这部分人接触计算机很早,同时也有使用计算机工作的需求。在开源的历史上,你可以看到很多高校的名字。

在第一阶段较量的时候,微软无疑是胜利者,聚集了一大批有实力的的程序员,高效的开发(毕竟就他一家)了个人桌面电脑所需要的基本操作系统、软件。并且卖到了全世界。

但是到了 Linux,其实已经是第二阶段了。这里由于微软自己上一个阶段的成功经验,整个微软都会认为给软件付费是天经地义的。你用了我的代码,就要掏钱。

但是开源发展壮大了。这种最初只是分享一下自己的程序,借助互联网快速传播,形成了新的生态乃至产业。

面对新的开源模式,当时微软和社区都是互相敌视的。毕竟这是根本理念的不同。

后来的事情我们都清楚了。微软现在也拥抱了开源。

07 知乎好友“没有人”的回答:

感觉太多人犯了一个错误,即为结果找原因。

如果你盯着张学良的高寿去学他吸烟喝酒玩女人,犯的就是这种错误。

系统发展的过程中,马太效应是存在的,所以这个问题严格来说应该被界定清楚,是"现在的服务器为什么用Linux"还是"为什么现在的服务器用Linux(为什么历史选择了Linux)。

前者的答案很明显,也很多人说了,方案成熟,工具多,维护方便,等等等等。

后者的答案其实很多人也没说错,就是为了省钱,但对手不是windows,而是Lunix。linux 91年才被写出来,还只是个内核,但是它上面跑的软件等全与unix兼容,操作命令也是一样的,可谓无缝转换,又不收费,用的人就多。

windows在服务器领域当年面对的困难与今天 Linux 在桌面类似。可以作为服务器的nt 93年才出来,比较流行的版本已经是2000了,这个时候大家关注重点在免费的Linux上,生态已经有了。打个比方,你学了rh,毕业就能做运维,你学windows,学完了上哪找win服务器给你维护?

整理:老杨丨11年资深网络工程师更多网工提升干货,请关注公众号:网络工程师俱乐部

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Linux运维需要有一定的路线和计划。根据引用和引用的观点,初级阶段学习Linux需要循序渐进,以下是一个可能的学习路线: 1. 入门知识:首先,你需要学习Linux的基础知识,包括基本的操作系统概念、命令行操作和文件系统管理等。可以通过在线教程、书籍或者参加培训课程来学习。 2. 系统管理:一旦你掌握了Linux的基本知识,你可以进一步学习系统管理的技能,包括用户和权限管理、安装和配置软件、网络设置和故障排除等。这些知识将帮助你更好地管理和维护Linux系统。 3. Shell脚本编程:学习Shell脚本编程可以帮助你自动化系统管理任务。你可以学习写脚本来简化重复的操作、自动化任务和管理系统配置。 4. 网络和安全:深入了解Linux系统的网络配置和安全设置是非常重要的。你可以学习网络协议、网络服务配置、防火墙设置和安全漏洞修复等知识来提高系统的安全性。 5. 服务器管理:学习如何配置和管理各种服务器应用程序,如Web服务器、数据库服务器和邮件服务器等。这些知识将帮助你在企业环境中管理和维护服务器。 根据引用的观点,学习Linux运维还可以根据自己的职业目标进一步深入学习特定领域的知识,如云计算系统工程师、大数据运维工程师或运维开发工程师。在这些领域中,Linux运维工程师的技能是必不可少的进阶要求。 总结来,学习Linux运维需要从基础知识开始,逐步深入学习系统管理、Shell脚本编程、网络和安全以及服务器管理等领域的知识。根据自己的职业目标进一步学习特定领域的知识,将有助于你成为一名优秀的Linux运维工程师。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [零基础学Linux运维,看这一篇就够了(含30G自学教程笔记)](https://blog.csdn.net/Cloud_Native/article/details/125585272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux运维工程师学习成长路线](https://blog.csdn.net/qq_34274756/article/details/130542591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值