您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Windows 与 Unix 和 Linux架构比较
Windows与Unix和Linux:架构比较胡锐,Ph.D.ruihu@microsoft.com软件架构首席专家微软(中国)有限公司比较特性和基本原理调度虚拟内存安全性集成的服务比较“Doitall”实践Windows+ServicesForUnixUnix+WINE+SAMBA虚拟机化议程文件系统I/O设计网络调度进程结构优先级控制可扩充性问题同步和通知事件vs.信号同步原语进程都调度线程而不是进程术语区别Windows:具有多个线程的进程Solaris:进程,核心线程和用户态轻量进程及线程Linux:任务以进程分组,轻量进程绑定到任务Windows:父/子关系并未通过Win32清晰暴露调度优先级优先级范围:“正常”和“实时”Windows:1-15和16-31Solaris:0-59,60-99,100-159Linux:“nice”+19–-20,实时1-99优先级调节:Solaris,Linux:compute-bound优先级衰减Windows:I/O操作增加优先级Solaris和Linux支持多重调度策略可扩充性问题都归结为锁定和堵塞Linux仍然有一些“biglocks”Windows和Solaris:更细粒度的锁定更灵活的集成解锁在调度中Solaris的算法似乎偏好多处理系统内存模式区别SPARC装载/存储顺序规则没有x86严格Linux缺乏中断优先级消息&同步事件vs.信号信号:固定集合,运载数据,绑定到处理程序事件:无限制,无数据,有时绑定信号堵塞vs.无警告等待同步原语都有基本集合Windows缺乏“条件变量”在用户态难以模拟通常在UnixPthread代码中使用虚拟内存都支持NUMA都进行每CPU内存分配缓冲分页管理的细小区别Solaris/Windows修建每进程的工作集Linux进行全局修剪32-bits调节开关Windows:/3GB开关Linux:编译成1G/3G,2G/2G,or3G/1GSolarisx86:固定3.75G/256MB(!)64-bit:2TB到16TB范围物理内存Linux和Windows共享Intel架构内存限制Linux不暴露PAE内存给应用程序Solaris可扩充性更好比典型Intel大型系统更基于NUMA的大型系统Solaris/Windows支持热添加内存安全性模型特权细粒度vs.粗粒度Administratorvs.rootUnix有一个全部特权的用户Windows把多种特权授予组或用户标识Impersonationvs.setuid/setgidDaemons和services总体趋势是远离以root/SYSTEM运行安全性模型(续)访问控制Windows有一个安全引用监视器Unix:分布式安全机制审核在Windows上通过SRM提供Unix上没有集成保护多个系统Unix没有“域”概念;Kerberos或LDAP通过add-on支持AuthN,AuthZ安全认证WindowsWindows2000通过CommonCriteriaCertEAL4withALCFLR3WindowsXP,WS2003进行中SolarisTrustedSolaris8通过CCEAL4LSPP在网络环境中认证多级别安全性Linux未认证;没有进行中文件系统Linux:ext2,ext3,Reiserext2没有journal/log,要求fsckext2/ext3不自带ACL;需要一个补丁32-bit应用程序使用transitionalAPI访问2GB文件Solaris:UFS,VeritasSolaris7中UFS局限于1TB文件系统32-bit应用程序使用transitionalAPI访问2GB文件Windows:FAT/FAT32,NTFSNTFS具有已证实的非常高可扩充性非常健壮(最近有人运行过chkdsk吗?)网络文件系统NFS三个都支持(Windows通过SFU)固有的不安全(都未实现AUTH_KERB)为LAN设计(Solaris有cachefs)SMB/CIFS三个都支持(Unix通过Samba)更紧密的安全性有一些涉及WAN的试图AFS没有真正的Windows支持为LAN/WAN环境设计有限的企业应用,但是对那些组织很关键I/O设计“万物皆文件”vs.类型对象Unix上没有“打开”的通用代码Windows上所有的打开通过SRM驱动程序模型Windows:分层,基于封包使过滤器,插件功能更容易实现Unix:基于调用;仅文件系统是部分分层的即插即用仅Windows和LinuxLinux对ISA有更多支持应用程序I/O设计同步UnixAPIs缺省是同步的WindowsI/O缺省是异步的管理同步I/O选择vs.WaitForMultipleEvents惊醒“ThunderingHerd”I/O完成回叫在Unix上可用但未常用I/O完成端口仅Windows都支持高性能网络感知的文件传输APIs嵌入式操作系统Solaris不是一个玩家Linux小体积,细粒度的组件困难的开发环境EmbeddedWinXP,WinCE大体积,更大的组件容易得多的开发嵌入式市场预测研究(7/18/03):Windows上的总研发费用比Linux低得多–达300%更低!网络协议IPv4,IPv6三个都支持RPC:DCE,CORBA,COM,ONC…ONCRPC在Windows上通过SFU有Windows上的CORBA实现DCERPCvs.WindowsRPCCOM在Unix通过WINE,一种…服务Telnet,ftp,remoteshellSSH是Solaris,Linux的一部分;Windows上通过ISVWebServices在Windows上都实现ServicesForUnix和Windows互操作性文件和打印缺少:AFS,Unix打印过滤,64-bit标识管理通过AD为Unix验证:Kerberos,LDAP,NIS应用程序非常少的Unix-only应用程序(一些例外)客户应用程序可被移植SFU的ISV库支持质量不一使用cygwin,MKS,作为替代在Unix上都实现WINE和SAMBAWine应程序可移植性也有其他的对20大Windows-only应用程序有效,但…支持是一个大风险SAMBA连接Windows世界文件和打印验证限制域控制器替换?对于小规模的域,也许无信任关系,森林,等都实现,虚拟的VMWare到处都是经常被视作灵丹妙药很多缺陷合用存储,内存管理网络访问性能损失扩充性能被有效的实现总结核心特性集不都是那么困难历史特性驱动应用程序行为应用程序行为支配高端性能Linux在很快的变得更好还需要改进Linux会追赶Windows至少一或两个内核周期参考资料InsideWindows20003rdEditionSolomon,Russinovich/MSPressSolarisInternalsMauro,McDougall/Prentice-HallUnderstandingtheLinuxKernelBovet,Cesati/O’ReillyUsingSambaEckstein,Collier-Brown/O’Reilly©2003MicrosoftCorporation.Allrightsreserved.Thispresentationisforinformationalpurposesonly.Microsoftmakesnowarranties,expressorimplied,inthissummary.
本文标题:Windows 与 Unix 和 Linux架构比较
链接地址:https://www.777doc.com/doc-3870325 .html