SAMBA (SMB – Server Message Block) 是一個讓 Windows 系統存取 Linux 檔案系統的 protocol, 鳥哥對此有很好的介紹. 他也提到, CIFS (Common Internet File System) 和 NFS (Network File System) 只在 Windows 或 Unix 裡面互通. 原文說:
不過,NFS 僅能讓 Unix 機器溝通, CIFS 只能讓 Windows 機器溝通。傷腦筋,那麼有沒有讓 Windows 與 Unix-Like 這兩個不同的平台相互分享檔案資料的檔案系統呢?
果真這樣的話, 那麼來推銷 CIFS IP 的廠商不就是來亂的嗎?也不是, 中間有個演變的過程.
根據歷史, 1991 年先有 SMB 之後, Microsoft 到 1996 年才仿效 SMB 發展出 CIFS 與之匹敵, 放在 Windows NT 裡面. 到了 2006 年推出 Vista 的時候, Microsoft 乾脆就把新的 CIFS 命名為 SMB 2, 頗有雀巢鳩佔的味道. 到了 Windows 7 的時代, 微軟繼續地推出了 SMB 2.1 版, 老實不客氣地搶坐了正統的大位. (Java、Java script 的故事也差不多).
所以今天的 SAMBA 已經是 SMB + CIFS 的綜合體, 這裡有一篇說明. CIFS 代表比較新, 相容性比較好, 解決了 unicode, access control lists, aggressive cacheing, 2/4GB transfer bug 等問題. 不過若是舊電腦連不上去的話, 請回到老 SAMBA 吧!
此外, 原始的 SMB 要從 GPL 2.0 升級到 3.0 了. 如果要避免 open source, 可以考慮搬家到 CIFS.CIFS 由 SNIA (Storage Networking Industry Association) 所維護, 理論上可以看著 CIFS 的 technology Reference 自己 implement. 但是其中用到的技術, 要向原始的 owner, reasonable and non-discriminatory (合理而無差別) 地取得授權. 此外, 真正握有技術的 Microsoft 把 CIFS 的規格弄得含糊不清, 因此產生了賣 CIFS IP 的軟體生意出來.
看來看去, 網路上這篇介紹得最好: SMB: The Server Message Block Protocol
其中的這句話寫得更是傳神: Like NetBIOS, the Server Message Block protocol originated a long time ago at IBM. Microsoft embraced it, extended it, and in 1996 gave it a marketing upgrade by renaming it "CIFS".希望有一天我的文章也可以寫得這麼精煉.