系统相关
首页 > 系统相关> > windows和Linux比较

windows和Linux比较

作者:互联网

一、就操作系统设计的复杂度上,windows要超过Linux

如果windows抛弃人机操作的窗口界面,其性能并不比linux差;编写Web浏览器的难度要远大于编写Web服务器的难度;

二、为何大公司喜欢用linux

1、免费且开源,相对于免费,开源更加重要;

2、开源意味着更安全;

3、开源意味着可优化;

因为开源所以透明,因为透明,所以安全,但安全是相对的。

所谓的安全是针对大公司,是针对那些真正懂linux内核的人。他们可以自己定制化linux,比如加入自己特性化的功能,修改潜在的漏洞,或者他们认为需要完善的地方,甚至可以调优linux来解决自身业务的瓶颈。

透明是把双刃剑,对那些只会linux命令的人,开源并不意味着安全,因为你根本搞不清楚自己使用的机器是否被控制, 如果别人给你一个内核中藏有木马的linux,那么恭喜你,你可能永远都会沉浸在自己幻想的所谓安全中。

换句话说,如果windows开源了,那么windows对大公司是安全的,他们可以一窥windows内核,并对其增删改,去掉 所有图形化元素,将动态加载驱动改为内核态加载,优化IOCP并将其发挥到极致,我相信windows也会变成安全、稳定、 可靠、优秀的服务器,而且会比linux还要优秀。

但对于绝大部分在windows下做开发的程序员来说,windows开不开源其实跟你没有半毛钱关系,除非你有能力将windows 上千万行的代码耐心看一遍,前提是你要能看懂。首先,你要把汇编语言再学习一遍,把操作系统的书多看几遍,把编译原理的书也多看几遍,否则这些代码在你面前和天书没本质区别;其次你要有足够的时间和足够耐心;最后,你要真能识别出风险,毕竟windows是最成熟的商业操作系统.


记住:对别人的安全并不意味着对你安全!

开发后台程序和懂服务器、懂操作系统,完全是两个概念,这两者的差别就像狗和热狗的差别一样。 在linux上开发java后台应用服务,并不意味着这个程序员有多了解linux,后台程序跑在Apache、Tomcat、Nginx这些 真正的服务器上,这些服务器在帮你的程序优雅的处理高并发、高吞吐量和低延迟,而这些服务器必须要充分利用 linux内核的性能,这就意味你要真正理解什么是多线程,什么是线程池,select、poll和epoll的区别;

三、在网络方面,windows的IOCP模型要优于linux的epoll模型

1、IOCP真正发挥了多核CPU的性能,让IO操作均衡的负载在不同CPU线程上,epoll很可能会让有的线程累死,有的饿死;

2、IOCP是Proactor异步IO,epoll是reactor同步IO;

打个不恰当的比方,IOCP属于导弹发射后不管,最后通知你击中目标;epoll属于发射后需要分阶段导航。有人说epoll给了程序员更高的自由度处理来自内核的IO数据,毕竟可以手把手的制导导弹,很有成就感,但那是针对高水品程序员,如果你的水平一般的话,那结果可能是灾难性的。很有可能你会亲手把发射的导弹送出地球,或者引发另一场战争。实际上IOCP在业务处理上的难度要大于EPOLL,因为异步IO的原因,你的上层完整的业务已被碎片化了。

3、windows比linux在服务器性能上的慢,并不代表IOCP比Epoll差,这是windows定位的问题,如果你要让用户易用,那就要在某些方面做些牺牲。

标签:epoll,windows,IOCP,Linux,开源,linux,服务器,比较
来源: https://blog.csdn.net/lisheng0947/article/details/121512593