歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> 從Windows轉向UNIX的一些困惑

從Windows轉向UNIX的一些困惑

日期:2017/3/3 15:24:04   编辑:Unix基礎知識

相信很多朋友Windows已經用得相當熟悉了,由於種種原因,想試試UNIX。無奈Windows的思想根深蒂 固,這給學習UNIX造成很多困惑,經常四處碰壁。於是抱怨UNIX太難學,拋在一邊眼不見為淨,繼續用著 Windows。當然如果你只是普通用戶,聽聽歌玩玩游戲灌灌水,那大可不必裝什麼UNIX,因為你根本沒必 要去跟UNIX瞎折騰。Windows那麼方便,用著多舒服,何必自找麻煩,去弄那難配置又“莫名其妙 ”的UNIX?說到這裡,很多人可以不用看這篇文章了。這篇文章是為想學UNIX的跟我一樣菜的新手寫 的,目的是為了在學習過程中少走一些彎路。就從我個人的經歷來說吧!

最初聽說UNIX,大概是在 大一的時候。當時對這個系統超級崇拜,認為能駕馭這個系統的一定是絕頂大牛。某天偶然聽說又有一個 操作系統叫Linux,據說跟UNIX很像,而且還有一個叫做RedHat的東西。因為我有刻錄機,於是在校網的 某處下了三個ISO,刻成了盤,但一直不敢試,因為根本不知道怎麼把它“放”到硬盤上去。 也就是說,它有沒有分區?有分區的話怎麼弄?因為一直擔心把Windows損壞,所以這幾張盤就被我擱到了 一邊,這一擱就是一年。

大二了,Windows已經玩得相當熟了,這時對分區之類的也算挺了解了吧 ,於是又從抽屜的角落裡找到那幾張盤,打算試試。具體怎麼樣我也記不清了,反正是安裝成功了,不過 刷新率非常低,眼睛根本受不了,所以沒多久又被我刪了,還是繼續我的Windows。說出來不怕笑話,到 這時我還不知道Linux有好多發行版本,以為RedHat就是Linux。

大二的暑假,Windows我已經玩得 不想再玩了,而且隨著對UNIX的漸漸了解,我開始對這東西有了點好感。於是在網上搜了一通,由於當初 對Linux的感覺相當糟糕,所以我沒把目光放在Linux上,而是放到了BSD上。BSD有三個分支 ——FreeBSD、NetBSD和OpenBSD。當時看著NetBSD和OpenBSD感覺不大舒服(呵呵,其實看著 Linux這幾個字也不怎麼舒服,這也是我當時不選Linux的原因之一,不過現在不會了),於是自然而然地 選擇了FreeBSD。

然而,對於我這個有著很深的Windows情節的人來說,想一下子適應FreeBSD真的 很不容易。還是回到分區。FreeBSD的“分區”是怎麼樣的?這讓我怵了好久,直到從圖書館借 到《FreeBSD使用大全》的時候才有點眉目。不過,當時並不知道這本書其實不大適合初學者。但那時在 家裡只能看這本書了,花了十幾天吧,把這本書看了個大概。

回到學校後就開始了學FreeBSD,但 也是斷斷續續,沒有當初學Windows那麼大的好奇心。不過,雖然進展緩慢,收獲多多少少還是有一些的 。在這當中逛了好多論壇技術,看了很多技術文章,說實話感覺還真的挺不錯。現在就稍微總結一下吧, 以下僅以FreeBSD為例,因為我到現在為止,經過一些比較,還是認為FreeBSD最適合我的性格。好了,現 在開始言歸正傳了。

首先,我必須讓你擺脫一些誤解。或許你會有這樣的不屑:UNIX那黑頭土臉的 能算得上系統?能正常工作?能提供FTP和Web等服務?能受得了大負荷?我才不相信,我才不用那破東西!如 果你這麼想,我可以很認真地告訴你,你錯了!知道麼,世界使用量第一的Web服務器Apache最初是為UNIX 開發的,超級數據庫Oracle最初也是為UNIX開發的,高端的服務器用的是什麼操作系統?是UNIX!而不是你 想象的Windows 2003!

當然,我用過Windows 2003,也用它架過相當多的服務,我知道2003的性能 不錯。但請相信,世界上這麼多大型站點使用的都是UNIX,你說他們的管理員難道就都那麼笨?如果 Windows 2003性能真的比UNIX好,他們會不用這麼好的東西?事實是,他們選擇了UNIX。不相信?好,你可 以去這裡看看:http://www.netcraft.com,隨便輸入幾個大型站點,如www.google.com,www.yahoo.com ,www.baidu.com,看看OS部分寫的是什麼?或者,你再看看這個網 址:http://uptime.netcraft.com/up/today/top.avg.html,看看世界上運行時間最長的機器用的是什麼 系統?如果你還是執意認為Windows 2003牛,那麼OK,這篇文章你也沒有看下去的必要了,那麼就關上這 個網頁吧!

如果你繼續看下來了,那我繼續說,呵呵。我們知道,Windows上的服務器很多都是以 GUI頁面和服務的方式存在的,但在UNIX中,它們基本上是在命令行下以daemon的形式存在。你可能很困 惑,命令行下也能運行服務?嗯,沒錯,正是。daemon在UNIX中的地位,有點像服務在Windows中的地位, 但又不盡然。現在你可以把daemon就當成服務看待。

那麼,UNIX下的文件是怎麼樣的?UNIX跟 Windows不同,它把所有的文件都當成一回事,不像Windows那樣以後綴名來區分不同類型的文件。可能你 會很困惑,如果這樣的話,我怎麼打開不同的文件?事實上,在UNIX系統中,文件只是存儲上硬盤上的單 純的字節。UNIX下區分不同文件的方法是看這些字節的前幾個字符。當然,UNIX本身可不管你是什麼文件 ,它只當你是一些字節。

區分這些文件的工作由應用程序來負責,比如你有一個文件名為 “diogin”的文件,你想“打開”它。怎麼打開?我不知道它的文件格式!麻煩大了 吧?不大。用file命令一看,這個文件是什麼類型馬上出來了,雖然不一定准,但絕大多數情況下是沒錯 的。好了,現在你知道它是個可執行文件,在shell下敲入./diogin後,程序執行了,打印出了 “Hello, World!”,看!就這麼簡單。可是問題又來了,什麼是shell?還有,UNIX沒有像 Windows那樣的桌面嗎?

shell,簡單地說,就是讓用戶與操作系統內核溝通的一個媒介,你在 Windows下用過命令行吧,你可以把shell想象成命令行,但shell可比命令行強大多了,功能上根本不是 一個數量級,這一點在你深入理解shell後肯定會感覺到。那桌面呢?這個可能是最讓人困惑的問題了,當 時我就一直不理解這個X跟桌面到底是怎麼回事,甚至一度抱怨Windows怎麼這麼霸道,把我的思想全禁锢 住了。

當你開始使用UNIX系統的時候,你會遇到很多驚訝的事情,最讓你驚訝的,可能就是重新 編譯內核。天哪,這是什麼東西?剛從Windows轉過來的用戶可能會嚇出一身冷汗。其實不用怕,編譯內核 是學習UNIX系統必須經過的一關,而且也不像想象中那麼神秘。簡單地說,就是改變系統最本質的部分, 讓它適合你的機器和你的需要,換句話說,你可以用重新編譯內核來完全定制你的系統。

一個最 高級的系統都是能讓自己定制的,我不需要我用不著的東西。很好,那開始編譯吧!怎麼入手?以FreeBSD 操作系統為例,安裝的時候你選擇安裝系統內核源碼(呵呵,沒錯,是系統內核源碼,這個東西是最有價 值含量的,但現在你可以完全免費得到它,而不是花幾千元去買一個完全保密的東西!這通常會安裝 在/usr/src/sys目錄下,然後根據你的CPU架構,選擇不同的目錄進入,裡面會有內核配置文件。FreeBSD 的內核配置文件為/usr/src/sys/i386/conf/GENERIC,即通用內核配置文件,適合大多數機器使用的內核 配置文件。

說到這裡你可能明白了吧,默認安裝的時候使用的就是按這個配置文件編譯出來的內 核,很明顯,為了讓大多數不同的電腦能用,裡面肯定包含了很多你機器上沒有的東西。現在你的任務就 是把這些東西全都去掉,同時加進去你想要的東西。用任何一個文本編輯器打開它,怎麼編輯我就不說了 ,你可以查看手冊,裡面有詳細的說明的。編譯的過程,會在某個目錄下產生新的內核源碼,你進入那個 目錄後就可以開始編譯並安裝新系統了。我的機器,刪除沒用的東西後的內核非常精簡,256M的內存啟動 後完全Free的內存有231M,也就是說在啟動過程中被“經歷”過的內存區域只有25M,而且這 不是活動內存,活動內存只有2650K,跟Windows的上百兆內存占用相比……

要想正 常搞定新內核是有點挑戰的,你需要對硬件相當熟悉。好了,接下來我講講文件安裝吧,這也是在使用 UNIX的過程中我感到挺困惑的一個問題。我們都知道,在Windows系統中,安裝一個軟件很簡單,下載文 件壓縮包,解壓,雙擊setup.exe開始安裝,選擇一下路徑就OK了,很簡單吧!安裝好後,文件通常會寫注 冊表,說實話這是很麻煩的一件事情,當你重裝過系統後就知道了,你需要重新安裝一次這些軟件,很麻 煩吧?

於是在Windows下產生一些新名詞,典型的如“綠色軟件”,意思是說不會寫注 冊表,直接解壓後就能用的軟件。當這些思想深深地圈住你的時候,你接觸了UNIX,你也用這套思想給搬 過來了,於是你去下了個軟件包,解壓,咦,安裝文件呢?找不到安裝文件怎麼安裝?呵呵 ……我還是來簡要說明一下UNIX下的文件安裝吧,拿FreeBSD舉個例子,在這裡我就先不說 FreeBSD的ports軟件安裝機制和package軟件安裝機制了,這些是在你想學FreeBSD後才需要掌握的東西。 首先,你下載了一個軟件包,這個軟件包裡面可能是源碼,也可能是二進制軟件。

如果是源碼, 你解壓後,它會自動生成一個目錄。比如我假設這個軟件包是httpd-2.0.55.tar.gz,你用tar zxvf httpd-2.0.55.tar.gz命令將它解壓,在當前目錄下得到httpd-2.0.55目錄。cd httpd-2.0.55,進入這個 目錄,裡面就是源碼了,一般情況下會有一個Makefile的文件,這個是用來編譯軟件用的。現在只要做的 ,只是先做一下配置,./configure --help,會顯示出配置幫助,你可以根據自己的需要來定制,配置好 後敲入make命令,make程序會自動從這些源碼編譯出二進制軟件,這個二進制軟件跟上面我說的二進制軟 件基本一樣,區別只在於一些不同機器上編譯的一些細節,還有就是後者打過包而已。

好了,現 在你敲入make install來安裝這個軟件。那麼,這個命令做了些什麼東西呢?很簡單,它只是把編譯出來 的軟件復制到它應該去的地方,其它什麼都沒做!就這樣麼?它不寫“注冊表”麼?是的,寫什 麼啊,UNIX的軟件是靠它自己的配置文件來控制的!如果你想知道它詳細的動作,你可以去看看Makefile 文件裡的install部分,看它是怎麼寫的,你就知道當你敲入這個命令後系統都做了些什麼東西了。

一個典型的UNIX軟件,可以看作組件、二進制程序和配置文件組成,而這些文件都是獨立的(當然 除了某些必要的依賴軟件在這之前必須安裝外),當你知道這個軟件在另一個系統上是二進制兼容的時候 ,你把這個軟件所在的目錄完全拷貝到那個系統上,這個軟件可以立即正常工作!多自然的事情,還寫什 麼注冊表,塞什麼“開始”菜單啊,UNIX就是這麼井然有序!那麼卸載呢?就是把這個文件夾刪 除!不會留下垃圾麼?留什麼垃圾啊,在Windows下的“綠色軟件”不就是直接刪除麼?呵呵,可 以這樣說,UNIX下的軟件,都是“綠色軟件”。

說了這麼多,還是有兩個方面得講講 的,就是UNIX的目錄結構和進程。拿FreeBSD為例,安裝的時候會讓你創建“掛載點”。可能 你又有困惑了吧?可以這樣理解:Windows下不是有C,D等盤符麼,UNIX下的“掛載點”就相當 於這個“盤符”,下面掛著文件系統,不同的文件系統可以有不同的格式。好了,你現在創建 了/、swap、/var、/tmp、/home和/usr這幾個“掛載點”,你用Windows下的思考方式,將它 們相像成C盤、頁面文件、D盤等等。其實沒什麼大礙,這樣類比會讓你比較好接受。好了,你進入了系統 ,ls /一下,發現了好多東西,你可能又驚訝了:怎麼這麼亂啊?

當你熟悉了之後,你就不會這麼 說了。如果你一開始學的就是UNIX,你會說亂麼?事實上,一點也不亂,而且非常有秩序—— 這些可是經過了幾十年定格下來的目錄結構!除了/var,/tmp,/home和/usr,其它都是在/目錄下的文件 或目錄,而且對一個系統來說,這些東西基本上不會變化。swap目錄是交換分區,相當於Windows下的頁 面文件,/tmp目錄是臨時“垃圾場”,當然裡面的東西可不是“垃圾”,都是軟件 運行產生的臨時文件。/home是用戶的家目錄所在地,每個用戶(除了root)在登錄後都被定位在家目 錄。/usr是使用頻率最高的一個目錄,因為絕大部分本地軟件都安裝在這裡(/usr/local)。當然,你可以 再自己建立新的“掛載點”,如/ftp,來提供ftp服務等等。

再談談進程,這東西也曾 讓我困惑了一段時間。Windows 2003下,我們可以把進程減小到開機12個左右,普通的應用基本上不超出 30個進程。但當你進入UNIX後,看著幾十個上百個進程,是不是嚇了一跳?其實這跟UNIX當初的設計有關 。舉個例子,apache在Windows下正常工作只顯示兩個進程,一個是主進程,另一個是服務進程。而在 UNIX下,則視連接情況有不同的進程數。如果當前有50個連接,則會有51個進程,其中一個是主進程。也 就是說,apache為每個連接啟動一個進程(假設使用的是prefork方式的多道處理機制)。這樣一來,進程 數一下子就上去了,我們可以把它看成Windows下的線程(只是簡單的類比而已,事實上不是兩回事)。

最後順便講講FreeBSD的安裝吧!安裝的大致過程,在FreeBSD的手冊裡已經有詳細的講解。需要注 意的是,必須弄明白什麼是主分區、什麼是擴展分區和邏輯分區。對於玩熟了Windows的人來說,這一步 沒什麼問題。好,接下來我假設你已經有Windows系統在硬盤上了,而且你是把整個硬盤都給了Windows。 現在你要劃出一部分空間出來裝FreeBSD。如果你的分區情況是:C盤為系統盤,占一個主分區;D、E、F盤 為邏輯分區,在一個擴展分區上。注意,這個擴展分區也是主分區!接下來怎麼辦呢?這裡必須明 確:FreeBSD必須安裝在主分區!所以你要從D,E,F這三個盤裡分出空閒的空間,從哪裡分?

當然是F 盤了,用什麼分?請先准備一個軟件:partition manager。這是一個分區軟件,可以很容易地分區。怎麼 用這個軟件我就不說了,你不會的話先研究一下它的說明,相信你能搞定(我給點思路,不是用刪除,而 是用壓縮第二個主分區的方法來擠掉F盤,這樣才會縮小第二個主分區,否則那部分空間還是第二個主分 區的,等於白干)。於是,你把F盤騰了出來,得到了一個空閒空間。好了,現在准備工作做好了,插入盤 開始安裝。選分區的時候你就可以把FreeBSD放到那塊空閒的硬盤區域上了。系統裝好後,去借幾本書開 始認真學吧!只是FreeBSD方面的書實在太少,能在學校圖書館借到的就三本:《FreeBSD使用大全》、 《FreeBSD技術內幕》和《FreeBSD手冊》。當然如果你能把這三本書都看透,水平肯定不低了!

Copyright © Linux教程網 All Rights Reserved