alan0liang

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

  •  
  •   alan0liang · Jul 13, 2020 · 2815 views
    This topic created in 2157 days ago, the information mentioned may be changed or developed.

    请大家不要人身攻击!!! 比如「(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 )。

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

    8 replies    2020-07-13 13:50:21 +08:00
    Greenm
        1
    Greenm  
       Jul 13, 2020 via iPhone   ❤️ 1
    我不是开发和专业运维,说一个我更偏好 linux 的原因: 安全性。

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

    来自一个经历过几千台 win 需要更新补丁重启被折磨得痛不欲生的过来人。
    namelosw
        2
    namelosw  
       Jul 13, 2020
    除非像我们这种很多代码还在用.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
        3
    passerbytiny  
       Jul 13, 2020 via Android
    windows server 要跟 RHCL 比,不要跟 centos 比。
    wysnylc
        4
    wysnylc  
       Jul 13, 2020
    windows server 使用 gui 更方便操作,但是众所周知 gui 性能必然是下降的,对于早起的互联网来讲这个点性能能压榨就压榨
    以后就不好说了,等 cpu 上百核内存几十 tb 的时候也不太在乎这点性能
    安全问题,微软做这么多年系统安全比 linux 要强得多,别以为 linux 没洞只是 linux 用的"正常用户"少都是企业用户所以黑客们懒得开发病毒而已
    更新问题,linux 打大补丁也得重启,windows 装个软件也不用重启,这是人的问题不是系统的问题
    reus
        5
    reus  
       Jul 13, 2020 via Android
    没什么好比的,windows 已经全面落后
    Osk
        6
    Osk  
       Jul 13, 2020 via Android
    [如果不是 Linux 一些功能做得很垃圾]

    是我回复的,既然被楼主提到了就回答吧:
    bitlocker + tpm
    mikeguan
        7
    mikeguan  
       Jul 13, 2020 via Android
    Linux 你可以试着做出修改,Windows 就很麻烦了。windows 难度远大于 Linux,没必要给自己找麻烦。
    Mithril
        8
    Mithril  
       Jul 13, 2020
    单纯从 Server 角度讲,你有足够经验的话两者其实差不多。多数区别不过是设计理念不同而已。
    就像楼内说的,RDP 和 SMB 更新需要重启。可你如果不是文件服务器为什么要开 SMB ? Linux 做了 FTP,FTP 安全更新难道不需要重启服务吗? RDP 也是,PowerShell 远程管理你连 RDP 都可以不开。
    用 Linux 都知道作为生产环境不该开的服务不要开,Windows 就是一把梭然后怪微软垃圾。很多时候都是偏见而已。
    如果你是单纯用来跑 Docker,还是建议 Linux 。最小系统更容易配置,只要你别上头去搞什么一键脚本大部分不会出问题。
    Windows 也有无 GUI 的 Server Core 和 Nano,但不一定你所有的应用都能跑得起来。而且跑 Docker 的话除非你自己做镜像,不然 Windows 的很少。
    如果用的不是 VPS,自己配置的硬件服务器还是建议 Windows,很多硬件和驱动都做过兼容性测试,稳定性会好一些。
    当然这都是不差钱的选择,差钱你就 Linux 去吧,免费的。反正人工不值钱不是么。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5445 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 05:46 · PVG 13:46 · LAX 22:46 · JFK 01:46
    ♥ Do have faith in what you're doing.