Unix操作系統設計理念先進,當前許多流行的技術和方法如微內核技術、進程通信方法、TCP/IP協議、客戶/服務模式等都源自Unix,Unix幾乎對近代的操作系統都產生了影響。這次,我們來學習下Unix文本的知識。
整個Unix操作系統可分為五層:最底層是裸機,即硬件部分;第二層是UNIX的核心,它直接建立在裸機的上面,實現了操作系統重要的功能,如進程管理、存儲管理、設備管理、文件管理、網絡管理等,用戶不能直接執行UNIX內核中的程序,而只能通過一種稱為"系統調用"的指令,以規定的方法訪問核心,以獲得系統服務。
第三層系統調用構成了第四層應用程序層和第二層核心層之間的接口界面;應用層主要是Unix操作系統的核外支持程序,如文本編輯處理程序、編譯程序、系統命令程序、通信軟件包和窗口圖形軟件包、各種庫函數及用戶自編程序。
Unix操作系統的最外層是Shell解釋程序,它作為用戶與操作系統交互的接口,分析用戶鍵入的命令和解釋並執行命令,Shell中的一些內部命令可不經過應用層,直接通過系統調用訪問核心層。
用utrledit打開Unix文本文件時總會提示:是否將文件轉換為dos格式。以前一直不知道為什麼。前段時間做項目,在windows編輯 shell,然後用ftp上傳到linux主機,發現不能運行。由於沒有經驗,分析了半天。
不過最後終於得出了結論:dos和Unix文本文件格式有區別,這也是為什麼前邊提到utraledit會提示的原因。具體分析,在utrledit下打開分別打開一個dos和Unix的文本文件,然後選擇hex 編輯,即可看到其編碼內容。
原來Unix下的回車是用0x0A表示的,而dos下的回車則是0x0D0A。如果我們用wordpad打開Unix文本文件,會發現其換行處都不能正確識別。
分析了原因,就要找到解決的辦法。在windows下用utraledit編輯後,可以在文件菜單下找到轉換為Unix格式,然後再上傳主機。但是這時還有問題,因為有的ftp工具可以選擇以文本或者二進制格式傳輸,這時則必須選擇二進制,否則傳輸時又會被改為dos格式。
關於Unix文本的知識,我們就講解到這裡。其實在Unix下已經有一個工具 dos2Unix可以直接將dos格式文件轉換為Unix格式。看來各個系統間的區別不僅是在大的方面,也體現在這種細微的地方。