亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

其實Unix很簡單

添加時間:2011-3-3  添加: admin 

很多編程的朋友都在網(wǎng)上問我這樣的幾個問題,Unix怎么學(xué)?Unix怎么這么難?如何才能學(xué)好?并且讓我給他們一些學(xué)好Unix的經(jīng)驗。在絕大多數(shù)時候,我發(fā)現(xiàn)問這些問題的朋友都有兩個特點:

1)對Unix有畏難心理,對其沒有信心;

2)喜歡用拿Windows來和Unix做比較。

 兩種特點就像兩個心理暗示,暗示著自己Unix很不好學(xué),暗示著Unix很糟糕,不如Windows好。于是,自己也就被自己的這種長期的暗示所催眠了。因為,從一開始就有畏難情緒,所以也就覺得Unix不好,覺得非常很吃力,最后還會導(dǎo)致對Unix的厭惡和反感的情緒。所以,為了糾正上述朋友們的心理暗示。我想寫下這篇文章,想告訴大家,Unix真的很簡單。

在正式敘述簡單的Unix之前,我想做幾點說明:(以免陷入無意義的爭論)

1)  本文是站在開發(fā)者的角度來說明的,所以,如果有朋友不同意我的觀點,請也以開發(fā)者的角度來向我提出質(zhì)問和討論,本人非常歡迎。

2)  本文難免要用Windows來和Unix做對比。這并不代表我不喜歡Windows,也不代表我要叫你放棄Windows。我們也知道這種對比已經(jīng)沒有什么意思了,但因為眾多的朋友被Windows先入為主了,所以,我一定要拿Windows來開刀,才能扭轉(zhuǎn)那個心理暗示。僅此而已。

       OK,言歸正傳。先說Unix的一個最重要的特點——“高內(nèi)聚,低藕合!也就是說,Unix下的各種應(yīng)用程序都和別人不相干。這就是貫穿整個Unix的思維——模塊和程序的高度獨立性。這樣的設(shè)計和做法,會讓你的系統(tǒng)比較的穩(wěn)定,也會讓你的系統(tǒng)特別地容易管理和維護。Unix下的應(yīng)用程序們就像一支正規(guī)軍一樣排列地整整齊齊,只要司令(內(nèi)核)還在,系統(tǒng)是不會因為某個軍隊的損失而無法自舉的。而Windows的應(yīng)用程序們就像一片樹林一樣,從地表上看過去,樹木們排列地整整齊齊,但是他們的樹根在地下卻相互纏繞在一起,剪不斷,理還亂,異常地復(fù)雜。

 

       高內(nèi)聚,低藕合的給Unix造成的結(jié)果是,其系統(tǒng)中基本上都是功能單一的小程序,這些小程序就像積木一樣,當(dāng)我們需要構(gòu)造建一個自定義的建筑時,大多數(shù)情況下,我們只需要做的只是一個搭積木的簡單游戲。Windows建設(shè)得富麗堂皇,可惜,別人的積木你幾乎不可能拿到自己的建筑中來。總是要你模仿或重寫。

 

2.

(插一句:你是否注意到在網(wǎng)上下載Windows的軟件時,會有一種所謂的綠色軟件?這就是對Windows的最大諷刺,Windows下裝一個軟件,N個DLL放到Windows系統(tǒng)目錄下,注冊表里寫入N個鍵值,還有很多你不知道的動作。而在Unix裝軟件,你不用擔(dān)心你的系統(tǒng)目錄下會莫明其妙地多出些亂七八糟的文件。就是copy那么簡單,那怕是rpm自動安裝,安裝完后,你也能夠查詢到軟件安裝后對系統(tǒng)所做的改變。所以,你在Unix下分發(fā)你的軟件時,你會覺得比Windows下要做得簡單了許多許多。)

 

       再說說Unix的另一個最重要的特點——“所有的設(shè)備都可以像文件一樣地操作。簡單吧。所有的調(diào)備,文件、打印機、顯示器、終端、網(wǎng)絡(luò)、軟盤、磁帶、USB、CDROM、等等的I/O操作,都以文件描述符的方式進行操作。兩個Unix下最重要的系統(tǒng)調(diào)用read/write就可以勝任所有設(shè)備的I/O了。Unix早就在/dev目錄下為你建好了這些文件。使用起來很簡單。

 

       也許很多人都覺得Unix的命令行太過復(fù)雜。一個命令有著若干的參數(shù),異常地復(fù)雜。但之所以今天Unix下的應(yīng)用程序還在以字符界面為主,這恰好體現(xiàn)了Unix的簡單的特征。這也是Unix的另一個特點——“命令的相互支持性,命令們通過一個管道或是重定向,可以互相聯(lián)系在一起,再加以Shell腳本的支持,哪怕要實現(xiàn)一些復(fù)雜的功能(比如一個小型的文本數(shù)據(jù)庫),也是簡單之極。

 

       如果上面的論述依然不能讓你信服Unix很簡單,那么,讓我們來用一些具體地實際的例子來看一下,Unix是如何簡單的。讓我們試著做下面的這樣一個假設(shè):如果我們在學(xué)習(xí)編程的時候一開始是學(xué)Unix,然后轉(zhuǎn)去做Windows,那會是怎么樣的一個情況?

 

1)  我們在Unix下創(chuàng)建進程,使用fork調(diào)用。到了Windows下,我們查了MSDN,發(fā)現(xiàn)了一個叫CreateProcess的系統(tǒng)調(diào)用可以創(chuàng)建進程,但我們卻發(fā)現(xiàn)這個系統(tǒng)調(diào)用有10個參數(shù)。而Unix下的fork卻一個參數(shù)都沒有。這種情況下,你是否會有一種頭大的感覺?因為,在Unix下,你根本看不到會有10參數(shù)這樣復(fù)雜的系統(tǒng)調(diào)用API。

 

2)  我們在Unix下操作文件權(quán)限很簡單,文件權(quán)限分三組(本人,同組,別人),每組都是可讀,可寫,可執(zhí)行。兩個簡單的系統(tǒng)調(diào)用chmod/chown就搞定。到了Windows下,如果是NTFS,如果要以程序的方式設(shè)置文件權(quán)限,呵呵,你需要先了解什么是:SID,什么是DACL,什么是SACL,什么是ACE,還有十幾相關(guān)的系統(tǒng)API函數(shù)等著你。(參看我的《以程序操作NTFS文件權(quán)限》)你也許會覺得這么復(fù)雜的安全策略是讓系統(tǒng)更安全的基礎(chǔ),可以自從Windows出現(xiàn)的那一天以后,在安全方面的表現(xiàn)就沒有勝過Unix。這無疑讓人感到Windows做了一件吃力不討好的事。

 

(插一句:Unix下的用戶切換是相當(dāng)簡易方便的。而Windows下的用戶切換會導(dǎo)致你需要退出當(dāng)前用戶的前臺程序。這導(dǎo)致了Windows下的用戶幾乎無一例外地都會選擇在超級用戶的權(quán)限下工作/上網(wǎng),這完全是讓自己的機器在裸奔,所以,Windows下的病毒一旦在系統(tǒng)中運行就為所欲為了。而Unix下,很少用戶會以root身份操作本機,因為切換用戶非常方便。)

 

3)  在Unix下,用戶有ID,用戶組有ID,進程/線程都有ID。ID很簡單易懂,就像我們的身份證一樣。到了Windows下,用戶標(biāo)識叫Token,進程標(biāo)識叫Handle(其實也就是一個DWORD的類型),我看到網(wǎng)上很多問題都在問Windows下的Handle的概念問題。我一直在想,為什么微軟不取一個簡單易懂的術(shù)語?要取得那么抽象,那么讓人很迷惑。雖然這讓W(xué)indows看起很NB,但也會因此加大了學(xué)習(xí)復(fù)雜度。(Windows的開發(fā)學(xué)習(xí)復(fù)雜度要比Unix復(fù)雜多了,而且有太多的看似很高深的術(shù)語讓人一頭霧水)

 

4)  讓我們再來看一下用戶管理和程序所有者方面的東西。在Unix下,需要你做的是配置NIS服務(wù)器和NFS服務(wù)器(以Autofs自動mount),簡潔,清楚。到了Windows下,與其相似的是一個叫Domain的東西(主域控制器),首先,為了加入域,你需要重啟電腦(Unix下只需要配置/etc/nsswitch.conf文件來告訴本機的用戶登錄源,無需重啟),而對開發(fā)者來說,Unix的這個配置對程序是完全透明的。而Windows的域用戶和本地用戶需要一個域名來區(qū)分。在程序中切換用戶時,Unix只需要setuid/seteuid就行了,Windows對此有三個比較復(fù)雜的API:CreateProcessAsUser, ImpersonateLoggedOnUser, LogonUser,其復(fù)雜度就不用比較了。另外,在Domain方式下,你的Document and Setting目錄下的文件,會全部放到Domain服務(wù)器上去,你在別的機器上登錄時,需要下載這些文件。最后,我倒不擔(dān)心你和網(wǎng)友的MSN聊天記錄會因為你的登錄而到處都是,我擔(dān)心的是,你在這么復(fù)雜的管理環(huán)境中寫出來的代碼是否能讓別人放心?:-(

 

5)  在Unix下,要把自己的程序加入系統(tǒng)的啟動服務(wù)只需要在/etc/init.d中配置就行了。寫下一個有啟動停止功能腳本,以特殊命名的方式鏈接到不同啟動模式目錄下就行了。Windows下加一個啟動服務(wù),如果你不編寫程序,估計比較困難。

 

6)  在Unix下,如果要取得系統(tǒng)的信息。只需要到/proc目錄下去cat那堆文件。所有進/線程的狀態(tài)、命令行、內(nèi)存/交換區(qū)使用情況、打開的文件描述符,等等,系統(tǒng)的CPU,內(nèi)存,交換區(qū),內(nèi)存文件IO,分區(qū),信息,網(wǎng)絡(luò),系統(tǒng)運行狀態(tài),系統(tǒng)設(shè)備,等等,要有多詳細就有多詳細,而且完全是純文本的,直接就可以看了。到了Windows下,要窮舉系統(tǒng)當(dāng)前進程的信息,就不是一樣很容易的事,更別說要取得別的信息了。

 

 

我很佩服微軟把操作系統(tǒng)搞得那么復(fù)雜,又是注冊表,又是安全策略,又是OLE,又是COM……。每次打開regedit.exe時,我根本不敢碰HKEY_CLASSES_ROOT,因為我看著里面那些成千上萬個CLSID,我有點暈菜。

 

自1995年以來,10來年過去了。微軟推出了多種各式各樣的技術(shù)。我還記得Visual Studio 6.0中還有兩個叫做FoxPro和J++的東西,F(xiàn)oxPro來自Foxbase,還有個幾年,J++好像就沒有幾年。ActiveX Control完全是一個失敗的技術(shù),而那個叫做VB的編程語言,今天看來,它的確毀了很多很有潛力的程序員。在COM出現(xiàn)的時候,不知道今天還有多少人還記得一個叫MTS的玩意?今天,不知道還有多少人記得有一個叫ODBC的東西?在這種復(fù)雜混亂的Windows世界中,是否讓你疲于追趕?今天的.NET不知道又有多少技術(shù)會隨著時間所沉淀?在Windows上面,我們學(xué)習(xí)了許多的失敗技術(shù)或是說是過渡技術(shù)。而我們的Unix自從上紀70年代以來,就沒有多大的變化,而因為Unix應(yīng)運而生的C語言直到今天依然光彩奪目。我相信這個30多年來久經(jīng)考驗還那么簡單的Unix。

 

關(guān)健詞:Unix

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站