Windows,linux与windows区别

Linux系统和Windows系统本质上的区别是什么?
一、就操作系统设计的复杂度上,windows要超过Linux如果windows抛弃人机操作的窗口界面,其性能并不比linux差;编写Web浏览器的难度要远大于编写Web服务器的难度;二、为何大公司喜欢用linux1、免费且开源,相对于免费,开源更加重要;2、开源意味着更安全;3、开源意味着可优化;因为开源所以透明,因为透明,所以安全,但安全是相对的 。
所谓的安全是针对大公司,是针对那些真正懂linux内核的人 。他们可以自己定制化linux,比如加入自己特性化的功能,修改潜在的漏洞,或者他们认为需要完善的地方,甚至可以调优linux来解决自身业务的瓶颈 。透明是把双刃剑,对那些只会linux命令的人,开源并不意味着安全,因为你根本搞不清楚自己使用的机器是否被控制,如果别人给你一个内核中藏有木马的linux,那么恭喜你,你可能永远都会沉浸在自己幻想的所谓安全中 。
换句话说,如果windows开源了,那么windows对大公司是安全的,他们可以一窥windows内核,并对其增删改,去掉 所有图形化元素,将动态加载驱动改为内核态加载,优化IOCP并将其发挥到极致,我相信windows也会变成安全、稳定、 可靠、优秀的服务器,而且会比linux还要优秀 。但对于绝大部分在windows下做开发的程序员来说,windows开不开源其实跟你没有半毛钱关系,除非你有能力将windows 上千万行的代码耐心看一遍,前提是你要能看懂 。
首先,你要把汇编语言再学习一遍,把操作系统的书多看几遍,把编译原理的书也多看几遍,否则这些代码在你面前和天书没本质区别;其次你要有足够的时间和足够耐心;最后,你要真能识别出风险,毕竟windows是最成熟的商业操作系统,如果你认为自己的智商能够超越微软那些顶级架构师几十年的精心设计和打磨,那你还改屁操作系统啊,直接进中科院设计国产OS为国增光吧 。
记住:对别人的安全并不意味着对你安全!开发后台程序和懂服务器、懂操作系统,完全是两个概念,这两者的差别就像狗和热狗的差别一样 。在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的原因,你的上层完整的业务已被碎片化了 。
【Windows,linux与windows区别】3、windows比linux在服务器性能上的慢,并不代表IOCP比Epoll差,这是windows定位的问题,如果你要让用户易用,那就要在某些方面做些牺牲 。多说几句:1、我特烦那些人云亦云,一知半解的人,言必谈linux好,说来说去就是那么几条:linux开源、安全、稳定 。你看,很多大公司在用,windows还要经常打补丁,有时还崩溃 。

推荐阅读