网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Solaris > 文章  
Solaris、Linux和FreeBSD的内核比较
文章来源: chinaitlab 文章作者: 佚名(翻译) 发布时间: 2006-03-30   字体: [ ]  
 

  文件系统

  3个系统都使用数据抽象层向应用隐藏文件系统实现细节。就是用大家熟悉的openclosereadwritestat,等等系统调用访问文件,无论下层的文件数据的实现和组织如何。Solaris和FreeBSD把这种机制称为VFS(virtual file system),基本数据结构是vnode(virtual node)。Solaris和FreeBSD里每个被访问的文件都有一个赋给他们的vnode。除了generic 的文件信息外,vnode还包含到file-system-specific 信息的指针。Linux采用了详细的机制,也叫VFS(virtual file switch),文件系统无关的数据结构是inode。这个机构和vnode类似(小心:Solaris和FreeBSD也另有自己的inode--是UFS文件系统里file-system-dependent 的数据)。Linux还有两个不同的结构,一个用于文件操作,另一个用于inode操作。Solaris和FreeBSD将他们合并为vnode操作。
VFS允许在系统里实现多种文件系统。这意味着他们相互访问对方的文件系统没问题。只要相关的文件系统例程和数据结构已经被移植到VFS上。所有这3个系统都允许文件系统堆叠stacking。下表列出了每个OS实现的文件系统类型,不是全部哈。

  结论

  Solaris,FreeBSD和Linux显然都在从对方身上获益。随着Solaris的开源,这种相互促进有望更快。Max个人已经感觉到Linux的变化是最快的。新技术被快速地集成进系统,只是文档和健壮性可能有点落后。Linux有很多--或者有时是看上去有很多--开发者。FreeBSD则大概是(从某种意义上)3个系统中历史最长的。Solaris来自BSD Unix和AT&T Bell实验室Unix的结合,使用了更多数据抽象层,因而一般说来能更简便地支持更多功能。不过,内核中大多数这样的分层都没有文档描述。可能随着代码的开放这一点会有所改善。

  至于他们的差别,最大的地方之一是page fault处理了。在Solaris中,发生page fault时,代码是从平台相关的trap handler开始执行的(以大家的智商,这好像不用说了吧。。。),然后会调用generic的as_fault例程,这个例程判断发生page fault的segment,然后调用segment driver处理page fault。segment driver调用文件系统代码,后者再调用进驱动程序,换入页面。换入完成后,segment driver 调用HAT层来更新页表项。在Linux上,发生page fault后,内核调用的代码在会马上进入平台相关部分,这些处理可能更快,不过可能不太容易扩展和移植(后半段说得太省,不知道作者有没有真的研究过Linux下对应的处理过程)。

  内核观察和调试工具对正确理解系统行为有关键意义。在这方面,Solaris有kmdbmdb和DTrace 。在开源之前,Max就对Solaris做过多年“反向工程”--他发现解决问题的时候使用工具总比阅读代码来得快--我也知道,不过得看什么场合,大家可不要被他误导。Linux嘛,我看作者Max不太熟,所以认为没有太多工具。对FreeBSD,他也认为只是可以用GDB调试内核的dump--Liux也可以。

--
原文链接: http://publish.it168.com/2006/0330/20060330026901.shtml

 
推荐文章
·教你制作软盘上运行的FreeBSD系
·教你定制自己的压缩的FreeBSD内
·服务器安全:架构安全的Solaris系
·FreeBSD6.0中cpu_switch调度机制
 
 
共3页: 上一页 [1] [2] 3 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·认识Solaris通用桌面环
·认识Solaris通用桌面环
·在 Solaris 10 上启动 n
·网管经验谈:解析Solaris
·教你制作软盘上运行的Fr
·solaris 9 x86安装的一
·认识Solaris通用桌面环
·服务器安全:架构安全的S
相关文章
·服务器安全:架构安全的S
·认识Solaris通用桌面环
·认识Solaris通用桌面环
·认识Solaris通用桌面环
·网管经验谈:解析Solaris
·FreeBSD6.0中cpu_switch
·教你定制自己的压缩的Fr
·教你制作软盘上运行的Fr
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统