1.开源
Linux Server 相较 Windows Server 领先的首要原因是完全免费且可用作开源用途。通过开源方式,您可以轻松查看用于创建 Linux 内核的代码,也可以对代码进行修改和再创作。通过许多编程接口,您甚至可以开发自己的程序并将其添加到 Linux 操作系统中。还可以对 Linux Server 操作系统进行自定义,以满足使用要求,这是 Windows 无法实现的。
2.稳定性
Linux 系统一直以其稳定性而闻名,它们可以连续运行多年而不发生任何重大问题。事实上,很多 Linux 用户都从未在自己的环境中遇到过系统崩溃的情况。相对 Windows 而言,挂起和崩溃完全是一种常态。
尽管 Windows 也可以很好地执行多任务处理,但 Linux 可以在处理各种任务的同时,仍能提供坚如磐石的性能。
当将 Linux 与 Windows 进行对比时,对每项系统配置的更改都需要重启 Windows Server,而 Linux 更改大多数配置时都无需重启服务器即可生效,这也确保了 Linux 服务器最短的停机时间。
3.安全
Linux 由最初的多用户操作系统开发的 UNIX 操作系统发展而来,在安全方面显然比 Windows 更强。与 Windows 作为病毒和恶意软件攻击的首要目标不同,Linux Server 只有管理员或特定用户才有权访问 Linux 内核,而且 Linux 服务器(相较 Windows 而言)不会经常受到攻击,并且被发现的任何漏洞都会在第一时间由大批 Linux 开发人员修复。
4.硬件
当将 Linux Server 与 Windows Server 在硬件方面进行比较时,Windows 需要经常对硬件进行升级以满足各方面性能需求。而 Linux 对硬件的需求则很低,也不需要频繁对硬件进行升级更新,并且无论系统架构或处理器如何,都能表现得非常出色。
5.灵活性
Linux 是世界上最灵活的操作系统,没有之一,您可以根据需要自定义系统。使用 Linux,您可以随心所欲地安装 GUI 界面或仅使用「终端」管理服务器;使用 Linux,您可以选择各种工具和实用程序来管理所有与服务器相关的活动,如:添加用户、管理服务和网络,安装新应用程序以及监控性能等。
而 Shell 是 Linux 系统中最强大的组件,允许您运行各种程序并允许与内核进行交互。 总的来说,Linux 为您提供了对服务器的完全控制、掌控权利。
6.总体拥有成本(TCO)和维护
在总体拥有成本方面,由于 Linux 在使用上属于完全免费。即便您购买了针对企业或组织的 Linux 发行版,也会比 Windows 或其他许可软件花费更少。
7.自由
对 Linux 而言,您不会被商业供应商强加产品和服务,用户可以自由选择适合需求的产品。正是这种自由使得像 Amazon 和 Google 这样的大公司选择了基于 Linux 的服务器来提供服务。
8.访问开源应用程序
Linux 为开源应用程序开辟了一个新的世界,有数以千计的开源应用程序正在等待用户探索,您甚至可以使用特殊界面在 Linux 服务器上运行 Windows 应用程序。
9.易于变更
与 Windows Servers 不同,您可以轻松对 Linux Server 进行变更,并且无需重启服务器。对于 Windows Server 而言,要使用微软发布的新功能就得购买下一个版本。
10.社区支持
Linux 社区在全球都十分活跃和使用广泛,总有数千名志愿者在线活动以解决其他Linux 用户的问题,所以几乎在任何 Linux 论坛上发布的任何问题都会得到即时响应。而选择使用 Linux Enterprise 版本时,还会附有付费支持选项。
来源:sysheek
优点:
Linux开源还不要版权费用(Windows盗版不谈),甚至可以省去图形化的硬件设备,硬件需求小,成本低。
可以高度定制化,从而提供效率,效率高。
用户管理严格,病毒难以破坏,安全性稳定性高。
linux本身是网络操作系统,支持所有TCP/IP协议,网络功能是内核中六大模块之一,支持几乎所有的网络协议及开发语言。
缺点:
没有Windows图形化操作方便。
可安装办公应用、娱乐产品方面的软件相对匮乏。
所以说,仅仅是部署服务器的话,用Linux再好不过了。
windows的nginx 默认只有几个模块,仅用了select()连接方法,无法实现高性能、高可扩展,也不能编译启用外部模块,不能代理UDP 连接数不能超过1024 并且只有一个主进程。
linux设置nginx会自动补全前缀名
windows不会自动补全前缀名
在Redis的源码中,使用的是单线程 epoll + 自己开发的一个事件框架实现的,很多地方写死了需要调用Linux的Epoll方法来实现多路复用,但是Windows并没有Epoll方法,微软也曾尝试实现一个功能类似的方法,用的是IOCP,但是最终也放弃了。
Redis 通过 IO多路复用 实现了高性能处理. windows 下没有。虽然说微软曾经成功的通过替换 epoll 为 IOCP 实现类似的效果,但是 IOCP 是非阻塞异步模型,epoll 则是非阻塞同步模型。替换起来难度还是比较大的。所以后来连微软自己都放弃了。
除此以外,Windows也没有fork()函数
也就是说,Windows版的Redis始终是一个阉割版本。