[非引战] 请教一下 Windows Server 和 Linux 在技术上的优劣

2020-07-13 10:30:01 +08:00
 alan0liang

请大家不要人身攻击!!! 比如「(v2|帖子)里面充满 xx 的偏见」等等

观 /t/689336 有感,对于「操作系统微软一堆优势是 linux 没办法比的」、「如果不是 Linux 一些功能做得很垃圾」这些话经常看到但是实在是不了解什么情况(才疏学浅,真心求教,请勿嘲讽),想知道两个系统(以及 BSD,如果有人了解的话)下面的生态(包括各种驱动)到底是怎么样的?配置起来哪个简单?资源占用、效率和可扩展性方面怎么样?在生产中哪个更容易蓝屏 /kernel panic ?

例如 MSSQL v. MySQL / Postgres / etc.; Hyper-V v. kvm etc.; IIS v. nginx / Apache; NTFS v. zfs / btrfs / ext4 / etc.; Active Directory v. ??? 等等;以及配置组策略、注册表等等和靠 /etc/whatever 、crontab 等等配置,在实际操作的时候对于一个有经验的系统管理员来说,哪个更好操作?

不考虑往 Windows Server 上装某数字等迷惑行为,以及授权费等问题(认为买了 Windows Server 以及 RHEL )。

请大家不要人身攻击!!!

2248 次点击
所在节点    操作系统
8 条回复
Greenm
2020-07-13 11:12:36 +08:00
我不是开发和专业运维,说一个我更偏好 linux 的原因: 安全性。

linux 的系统得益于设计的风格和理念,将各个服务组件与内核剥离开来,成为独立于操作系统的一部分,这样做带来的好处就是一旦某个服务出现漏洞后,可以直接更新重启该服务,而不影响其他服务。比如 ssh 有漏洞,直接更新 ssh 就好了,web 服务不受影响。
反观 windows,将一大堆东西耦合在一起,rdp, smb 有漏洞了,必须打补丁重启系统,这对于个人来说没有多大问题,但对于稳定运行的服务器来说,问题很大。特别是 windows 作为宿主机,上面还有虚拟机运行的情况。所以你们经常能见到 win 的高危漏洞放出来之后不打补丁的服务器。

来自一个经历过几千台 win 需要更新补丁重启被折磨得痛不欲生的过来人。
namelosw
2020-07-13 11:33:51 +08:00
除非像我们这种很多代码还在用.net framework 的苦逼,否则不推荐 Windows server,就算你用.net core 也建议部在 Linux 上。

Windows Server 学也不好学,刚学会某个地方明年就改了,所以招个厉害的人也难。Docker desktop 只给 Win 10,微软自己的 WSL Windows terminal 都不太好装。

IIS 我感觉和 Tomcat 类似,和 Nginx Apache 还不太一样,现代程序都不应该依赖 IIS 和 Tomcat,比如像 node.js 之类的直接跑才对,.net core 现在也自带 Kestrel 。

那些「操作系统微软一堆优势是 linux 没办法比的」、「如果不是 Linux 一些功能做得很垃圾」都是纠结在某一两点上随便说说的,感觉跟 yinwang 同学一样,去微软之前觉得微软很多设计还挺不错,就是比较理想化,实现差一些,去了微软之后狂喷 — 他前后说的没错,只是立场不同,让那些人去实际的公司维护 Windows server,因为 Windows server 的坑搞不定上面不由分说一顿骂,一样委屈。

推荐的操作系统就是 Docker 里的各种白板镜像,把你的应用以最精简通用的 Dockerfile 表达出来,尽量不和系统强相关就是最好的。外面的系统就随意,能稳定跑 Docker Kubernetes 就好,有问题换也不麻烦(其实 Kuberntes 是个很不错的“操作系统”—因为操作系统的本质就是对硬件资源进行抽象,传统操作系统只抽象单机,Kubernetes 抽象的是集群)。都 0202 年了,争论操作系统感觉意义越来越小了。最好的操作系统就是可以随便换的操作系统。
passerbytiny
2020-07-13 12:22:55 +08:00
windows server 要跟 RHCL 比,不要跟 centos 比。
wysnylc
2020-07-13 12:28:48 +08:00
windows server 使用 gui 更方便操作,但是众所周知 gui 性能必然是下降的,对于早起的互联网来讲这个点性能能压榨就压榨
以后就不好说了,等 cpu 上百核内存几十 tb 的时候也不太在乎这点性能
安全问题,微软做这么多年系统安全比 linux 要强得多,别以为 linux 没洞只是 linux 用的"正常用户"少都是企业用户所以黑客们懒得开发病毒而已
更新问题,linux 打大补丁也得重启,windows 装个软件也不用重启,这是人的问题不是系统的问题
reus
2020-07-13 13:19:27 +08:00
没什么好比的,windows 已经全面落后
Osk
2020-07-13 13:36:03 +08:00
[如果不是 Linux 一些功能做得很垃圾]

是我回复的,既然被楼主提到了就回答吧:
bitlocker + tpm
mikeguan
2020-07-13 13:44:05 +08:00
Linux 你可以试着做出修改,Windows 就很麻烦了。windows 难度远大于 Linux,没必要给自己找麻烦。
Mithril
2020-07-13 13:50:21 +08:00
单纯从 Server 角度讲,你有足够经验的话两者其实差不多。多数区别不过是设计理念不同而已。
就像楼内说的,RDP 和 SMB 更新需要重启。可你如果不是文件服务器为什么要开 SMB ? Linux 做了 FTP,FTP 安全更新难道不需要重启服务吗? RDP 也是,PowerShell 远程管理你连 RDP 都可以不开。
用 Linux 都知道作为生产环境不该开的服务不要开,Windows 就是一把梭然后怪微软垃圾。很多时候都是偏见而已。
如果你是单纯用来跑 Docker,还是建议 Linux 。最小系统更容易配置,只要你别上头去搞什么一键脚本大部分不会出问题。
Windows 也有无 GUI 的 Server Core 和 Nano,但不一定你所有的应用都能跑得起来。而且跑 Docker 的话除非你自己做镜像,不然 Windows 的很少。
如果用的不是 VPS,自己配置的硬件服务器还是建议 Windows,很多硬件和驱动都做过兼容性测试,稳定性会好一些。
当然这都是不差钱的选择,差钱你就 Linux 去吧,免费的。反正人工不值钱不是么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX