架构比较解读

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Unix有一个全部特权的用户 Windows把多种特权授予组或用户
标识
Impersonation vs. setuid/setgid Daemons 和 services
总体趋势是远离以root/SYSTEM运行
安全性模型(续)
访问控制
Windows有一个安全引用监视器 Unix: 分布式安全机制
即插即用
仅Windows和Linux Linux 对ISA有更多支持
应用程序 I/O 设计
同步
Unix APIs缺省是同步的 Windows I/O缺省是异步的
管理同步I/O
选择 vs. WaitForMultipleEvents
惊醒“Thundering Herd”
I/O 完成回叫
在Unix上可用但未常用
审核
在Windows上通过SRM提供 Unix上没有集成
保护多个系统
Unix没有“域”概念; Kerberos或LDAP通过 add-on支持AuthN, AuthZ
安全认证
Windows
Windows 2000通过Common Criteria Cert EAL4 with ALC FLR3 Windows XP, WS 2003进行中
Solaris: UFS, Veritas
Windows: FAT/FAT32, NTFS
网络文件系统
NFS
三个都支持 (Windows通过SFU) 固有的不安全 (都未实现AUTH_KERB) 为LAN设计(Solaris有cachefs)
SMB/CIFS
三个都支持(Unix通过Samba) 更紧密的安全性 有一些涉及WAN的试图
调度
进程结构 优先级控制 可扩充性问题 同步和通知
事件 vs. 信号 同步原语
进程
都调度线程而不是进程 术语区别
Windows: 具有多个线程的进程 Solaris: 进程,核心线程和用户态轻量进程及 线程 Linux: 任务以进程分组,轻量进程绑定到任务
Windows: 父/子关系并未通过Win32清晰 暴露
网络
协议
IPv4, IPv6三个都支持 RPC: DCE, CORBA, COM, ONC…
ONC RPC在Windows上通过SFU 有Windows上的CORBA实现 DCE RPC vs. Windows RPC COM在Unix通过WINE, 一种…
I/O 完成端口
仅Windows
都支持高性能网络感知的文件传输APIs
嵌入式操作系统
Solaris不是一个玩家 Linux
小体积, 细粒度的组件 困难的开发环境
Embedded WinXP, Win CE
大体积, 更大的组件 容易得多的开发 嵌入式市场预测研究 (7/18/03):
Windows上的总研发费用比Linux低得多 – 达300%更低!
调度优先级
优先级范围:“正常”和“实时”
Windows: 1-15 和 16-31 Solaris: 0-59, 60-99, 100-159 Linux: “nice” +19 – -20, 实时 1-99
优先级调节:
Solaris, Linux: compute-bound 优先级衰减 Windows: I/O 操作增加优先级
物理内存
Linux和Windows共享Intel架构内存限制 Linux不暴露PAE内存给应用程序 Solaris可扩充性更好
比典型Intel大型系统更基于NUMA的大型系统
Solaris/Windows支持热添加内存
安全性模型
特权
细粒度 vs. 粗粒度 Administrator vs. root
Solaris和Linux支持多重调度策略
可扩充性问题
都归结为锁定和堵塞
Linux仍然有一些“big locks” Windows和Solaris:
更细粒度的锁定 更灵活的集成解锁在调度中
Solaris的算法似乎偏好多处理系统
内存模式区别
SPARC装载/存储顺序规则没有x86严格
Linux缺乏中断优先级
Solaris/Windows修建每进程的工作集 Linux进行全局修剪
Fra Baidu bibliotek
32-bits调节开关
Windows: /3GB 开关 Linux: 编译成 1G/3G, 2G/2G, or 3G/1G Solaris x86: 固定 3.75G/256MB (!)
64-bit: 2TB 到 16TB 范围
Windows 与 Unix 和 Linux: 架构比较
胡锐, Ph.D. ruihu@microsoft.com 软件架构首席专家 微软(中国)有限公司
议程
比较特性和基本原理
调度 虚拟内存 安全性 集成的服务
文件系统 I/O 设计 网络
比较 “Do it all” 实践
Windows + Services For Unix Unix + WINE + SAMBA 虚拟机化
Solaris
Trusted Solaris 8通过CC EAL4 LSPP 在网络环境中认证 多级别安全性
Linux
未认证;没有进行中
文件系统
Linux: ext2, ext3, Reiser
ext2 没有journal/log, 要求fsck ext2/ext3不自带ACL; 需要一个补丁 32-bit应用程序使用 transitional API访问 >2GB 文件 Solaris 7中UFS局限于1TB文件系统 32-bit应用程序使用 transitional API访问 >2GB 文件 NTFS具有已证实的非常高可扩充性 非常健壮(最近有人运行过chkdsk吗?)
AFS
没有真正的Windows支持 为LAN/WAN环境设计 有限的企业应用, 但是对那些组织很关键
I/O 设计
“万物皆文件” vs. 类型对象
Unix上没有“打开”的通用代码 Windows上所有的打开通过SRM
驱动程序模型
Windows: 分层, 基于封包
使过滤器, 插件功能更容易实现
Unix: 基于调用; 仅文件系统是部分分层的
消息 & 同步
事件 vs. 信号
信号: 固定集合, 运载数据, 绑定到处理程序 事件: 无限制, 无数据, 有时绑定 信号堵塞 vs. 无警告等待
同步原语
都有基本集合 Windows缺乏“条件变量”
在用户态难以模拟 通常在Unix Pthread代码中使用
虚拟内存
都支持NUMA 都进行每CPU内存分配缓冲 分页管理的细小区别
相关文档
最新文档