当前位置:首页 > 技术文章 > 服务器为什么大多用 Linux 而不是 Windows ?

服务器为什么大多用 Linux 而不是 Windows ?

go1237个月前 (05-22)技术文章325

“服务器为什么大多用 Linux”,除了开源、好用等原因,回答也代表了各种不同人需求和看法,摘取一些分享给大家

前几天在知乎看到一个话题很有意思,且很有讨论意义。


服务器为什么大多用 Linux”,除了开源好用等原因,回答也代表了各种不同人需求和看法,摘取一些分享给大家,也欢迎留言讨论。


来自知乎好友“熊大你又骗俺”的回答

首先在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容易炸(我真炸过,修复之后近期数据都丢了)。


来自知乎好友“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 抢走了。

来自知乎好友“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。

来自知乎好友“hyu jj”的回答

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


来自知乎好友“Sven”的回答

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

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

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

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

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

来自知乎好友“水雷”的回答

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

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

有谁会在没有任何报酬的情况下来做这些专业的工作?什么样的爱好者可以为他的产品投入三人年(man-year)的开发时间,并且发现所有的错误、编写文档以及无偿发布这个产品?

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

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

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

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

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

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

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


来自知乎好友“没有人”的回答

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

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

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

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

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

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

声明:本站所有内容均为自动采集而来,如有侵权,请联系删除
标签: 回答

相关文章

Redis连环五十二问!看谁顶得住?

Redis连环五十二问!看谁顶得住?

基本 1.说说什么是Redis? Redis是一种基于键...

用 PHP 处理 10 亿行数据!

用 PHP 处理 10 亿行数据!

今天,我将带大家一起走进“挑衅十亿行“数据的世界。当然,这个事情是依据GitHub上的一个“十亿行挑衅”(1brc)运动而来,现在正在进行,如果你没有听说过,可查看Gunnar Morlings 的 1brc 存储库。https://github.com/gunnarmorling/1brc我之所以...

2024 年的最佳 PHP 框架

2024 年的最佳 PHP 框架

在本文中,我们将预测在 2024 年持续风行的最佳 PHP 框架。我们首先将看看PHP框架是什么,什么时候该斟酌应用PHP框架,以及应用PHP框架的重要长处都是什么。我还会介绍最合适初学者的 PHP 框架以及用于 Web 开发的最佳框架。什么是PHP框架?     &...

一文读懂多家厂商的大模型训练、推理、部署策略

一文读懂多家厂商的大模型训练、推理、部署策略

4 月 20 日,第 102 期源创会在武汉胜利举行。本期邀请来自武汉人工智能研讨院、华为、MindSpore、京东云、Gitee AI 的人工智能专家,环绕【大模型竞技与性能优化】主题发表演讲。接下来就一起看看本期运动的出色瞬间吧!大合影 get ✅披萨和礼物不能少!接下来进入主题演讲回想环节。可...

请立刻停止编写 Dockerfiles 并使用 docker init

请立刻停止编写 Dockerfiles 并使用 docker init

您是那种认为编写 Dockerfile 和 docker-compose.yml 文件很苦楚的人之一吗?我承认,我就是其中之一。我总是想知道我是否遵守了 Dockerfile、 docker-compose 文件的最佳编写实践,我畏惧在不知不觉中引入了安全破绽。但是现在,我不必再担忧这个问题了,感激...