首先,咱們知道基於文件的幾種服務:ftp,sftp,這兩種服務都是文件傳輸服務,偏重於網絡傳輸,並非實時互訪。一般,咱們須要在遠程和本地同時操做同一個目錄,如:在Windows下使用各類強大的IDE編輯代碼,在Linux下編譯和運行該代碼。若是在Windows下編寫好代碼再拷貝到Linux下編譯,這樣修改時很費事,直接在Linux下修改,還要同步回Windows,至關費事。固然有人會說,全部的工做都在Linux下搞定,VI、Linux命令行足夠強大,沒有須要使用Windows系統的理由,本文的重點不在討論命令行熟練程度與工做效率的問題。網絡
怎樣像訪問本地文件系統同樣訪問遠程的文件呢?若是遠程的系統與本地系統是不一樣類型的,又該如何作呢。app
咱們知道,在Windows系統之間,能夠經過共享目錄的方式,讓遠程系統直接訪問。其實這裏是Windows提供一種遠程文件系統機制,NAS協議的一種——CIFS協議。若是是Linux系統呢,一樣有另一種NAS協議——NFS協議來實現遠程訪問。那麼這兩種NAS協議可否互通呢?答案是否認的。雖然兩者不能互通,可是,在Linux系統上面已經有了CIFS協議的服務端和客戶端的實現,這樣,不管是Linux給Windows共享仍是Windows給Linux共享均可以藉助這些已有的實現來作到了。工具
相反的,Windows上面有沒有NFS的客戶端或者服務端呢?也有,可是不經常使用,這裏就不詳細介紹了。spa
這裏主要圍繞着Linux上面使用CIFS協議來闡述如何實現兩個系統之間的跨文件系統,跨操做系統共享。按照上面的描述,有兩種方式來實現共享。Linux分別做爲CIFS的服務端和客戶端。下面分別就這兩種方式來講明操做步驟和簡單的原理介紹:操作系統
Samba軟件被譽爲10大最有價值的開源軟件之第五位。其獲取方式很是容易,配置使用也很是簡單。下面以fedora系統爲例,先看一下本地是否已經安裝好samba,若是/etc/init.d/smb 文件存在,則說明已經安裝好了samba軟件,不然使用以下命令安裝:命令行
安裝完成後,修改配置文件,打開:/etc/samba/smb.conf,在文件末尾加上以下配置:3d
這個配置的意思是,建立一個名爲root的共享,將根文件目錄「/」共享給用戶。容許登陸的用戶名是root。調試
而後給samba系統添加root用戶,使用以下命令:rest
按照提示設置root用戶的密碼。code
從新啓動samba服務。
檢查smb進程是否已經運行:
root 1787 0.0 0.4 33068 4784 ? Ss 21:51 0:00 smbd
root 1788 0.0 0.2 33068 2580 ? S 21:51 0:00 \_ smbd
在須要訪問該Linux系統的Windows客戶機上面,打開Windows的資源管理器,在地址欄輸入:\\192.168.1.110
會發現,提示有一個共享root,雙擊訪問時,提示輸入用戶名和密碼,輸入此前配置的root用戶和密碼便可訪問。這裏就是Samba軟件實現了CIFS的服務端,Windows資源管理做爲客戶端訪問遠程的共享文件系統。爲了更爲方便的使用該文件系統,還能夠將該共享映射成一個本地的盤符,讓Windows上面的各類工具像使用本地磁盤同樣使用該目錄。全部在Windows上面對該共享作的操做都會實時同步到Linux系統上面。
上面的藉助於Samba的方式是你們經常使用的。還有一種,Windows系統自然就是一個CIFS的服務端和客戶端,既然Windows系統能夠給Windows系統共享目錄,那麼Linux系統可否訪問這些共享呢?答案是確定的,因爲有強大的VFS支撐,Linux支持掛載和訪問各類文件系統。mount工具支持掛在CIFS甚至NTFS的文件系統。若是是Windows本機上面的Linux虛擬機,那麼能夠直接經過虛擬機管理軟件,如Vmware直接共享本地的磁盤分區給Linux系統,Linux系統根據Windows的磁盤分區的文件系統類型掛載便可。這裏不詳述該方案。
進入本段的正題,首先咱們須要共享一個Windows的目錄:
下面以Windows XP爲例,Windows 7未作驗證,應該相似。在共享以前,首先須要確保Windows系統的server服務處於啓動狀態,以下圖:
選擇須要共享的目錄,右鍵,屬性,選擇「共享」頁,以下圖:
選擇在網絡上共享這個文件夾,並指定共享名。根據須要選擇是否容許遠程用戶修改該文件夾。這樣這個文件夾就被共享給遠程訪問了。
在Linux系統下掛載該共享:
按照要求輸入指定用戶的密碼便可。
此時,Windows的共享sourcecode目錄就已經掛載到Linux系統上面了,Linux系統能夠像訪問本地目錄同樣訪問該目錄了。
這種方法應該是更好的訪問方式,由於通常而言,咱們操做的文件和工做空間都是在Windows上面的,只有少數時候,須要在Linux上面進行編譯,調試。可是用起來稍顯麻煩。注意,此前曾遇到過Windows系統與虛擬出來的Linux系統之間沒法傳輸數據的問題,緣由是Windows系統的防火牆未開啓。