OpenSolaris 中文件共享协议共存的艺术

如今,任何 OS 都需要对业界两种主流的文件共享协议(NFS 和 CIFS)提供支持。虽然有一些不错的实现(如 SAMBA)可以在 OS “上”的用户空间运行,不过理想情况是,您希望两种文件共享协议都能在内核“中”运行部分实现。既然 OpenSolaris 具有可与 NFS 结合使用的基于内核的 CIFS 服务器,我想在这里向实现这项技术的几个人致敬。不要忘了,在任何内核中实现任何文件协议都是一件非常困难的事情。当您将 Windows 和 OpenSolaris 在内核级别上结合起来从而令二者和谐“共存”,人们会为您能够驾驭这种复杂性感到由衷地感激和钦佩。实现共存有一个前提,即代码需能够进行无缝添加,并且服务不会受到这些“外来者”(即新添加的代码)的不利影响。文件系统、安全性、权限、列集 (marshaling) 等等,这些基本的东西在很大程度上使“无缝共存”成为一个难以攀登的技术高峰。也就是说,OpenSolaris 团队解决了一些相当重要的技术问题,使 OpenSolaris 中的 CIFS 服务器可以供每个人使用。尽管某些自封的专家坚持认为这项技术永远无法实现,在这里我要向大家介绍几位人士,他们善于协同工作、不断创新,而且有时很善于描述如何“搞定难题”。您可以自己去看一看许多 ARC 案例(已经发起和批准的大约有 35 个),以及一些关于如何解决问题的复杂细节。您可以从开发者那里直接了解相关信息,而且,既然 OpenSolaris 已经开放源代码,您可以仔细阅读发布的大约 370,000 行代码,这些代码现在已经成为 OpenSolaris 的一部分。让我们先从 Mike Shapiro 和 Alan M. Wright 两位说起。一位是爱国者队 (Patriots) 和红袜队 (Red Sox) 的球迷(和我一样),另一位则喜欢橄榄球(和我不同……我喜欢爱国者队)。这两位都是一流的工程师,他们可以很熟练地构造体系结构并编写大量的代码……并且它们可以正常运行。Mike 和 Alan 在 "Unified POSIX and Window Credentials for Solaris"(适用于 Solaris 的 POSIX 和 Window 统一证书)方面解决了一个很大的技术问题(是的,正是这些难题激发了他们的斗志)。Mike 在他最近的一篇博客文章中详细介绍了这个问题。Alan 通过他的博客带领我们了解了关于完全集成的 CIFS 服务是如何集成到 OpenSolaris 中的整个发展过程。他很擅长于撰写某些主题的文章,例如 SMB 自动主目录共享以及为何要发展这些技术。我们也不要忘了 AfshinDougNico。他们也都很擅长于详细描述如何以及为何将完全集成的 CIFS 服务集成到 OpenSolaris 中,而不只是记录某种工作的流水帐。从体系结构的观点来看,许多设计需求经过多次复审。以字节存储顺序 (endianness) 为例来说明。CIFS 协议对 x86 处理器字节存储顺序非常敏感。不过,通过在列集 (marshaling) 方面的努力研究,已经很谨慎地对此进行处理,以使 OpenSolaris 中的 CIFS 协议能够在大端字节序 (big-endian) 和小端字节序 (little-endian) 两种体系结构上工作。因此这意味着,如果社区成员打算构建工具或只是将该服务作为通用服务器的一部分运行,OpenSolaris CIFS 服务器将可在基于 SPARC 的平台上运行。是的,Niagara-II 和 Rock 微处理器工作时就象它们是 OpenSolaris 体系结构的一部分,可以与该体系结构保持一致。其他还有哪个开放源代码 OS 支持基于内核的 CIFS 服务且能在大端字节序 (big-endian) 和小端字节序 (little-endian) 两种计算机上运行?

The Art of Coexistant File Sharing in OpenSolaris in English

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s