古詩詞大全網 - 成語大全 - 如何學習linux經驗分享及linux起源與發展

如何學習linux經驗分享及linux起源與發展

妳應該為自己創造壹個學習linux的環境--在電腦上裝壹個linux或unix

如何選擇版本:北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術最先進的linux開發人員中用debian的最多,其次是redhat,從全球linux各應用領域市場份額來看無疑redhat是最多的,此外還有很多出名的發行版本,不再列舉。

對於初學linux的人來說,我建議是使用redhat,原因如下:

1)現在很多書都是以redhat為例講的,為了與書本協調壹致

2)周圍的人都用redhat,交流比較方便

3)redhat應用範圍廣,有典型性和代表性

4)它易於使用和安裝,我們沒有必要把時間浪費在“裝系統”上而應集中精力學習最有用的東西。

註現在覺得RH很死板,AS,ES等用在服務器上或許不錯,Personal desktop用mandrake,debian,suse都不錯,筆者現在用Mandrake,因為她長得漂亮:)

如果妳並不打算深入學習linux,而是有諸如適應北京市政府辦公平臺遷移到linux上這種需要,那麽中軟,紅旗等中文linux是不錯的選擇

我強烈建議:自己親自動手把linux裝到妳的硬盤上,妳必須學會獨立安裝linux系統的技能,對於現在的版本來說,其實跟裝WinXP壹樣簡單

從此現在開始,請不要以windows的工作方式來考慮問題,應該嘗試挖掘linux身上的“天才unix”的氣質。

三.進階

掌握至少50個以上的常用命令

理解shell管道"|",文件流重定向">"及追加">>"等

熟悉Gnome/KDE等X-windows桌面環境操作

掌握.tgz.rpm.biz等軟件包的常用安裝方法

學習添加外設,安裝設備驅動程序(比如modem)

熟悉Grub/Lilo引導器及簡單的修復操作

熟悉系統固有目錄的名稱及公用

學會用mount命令訪問其他文件系統

了解vi,gcc,gdb等常用編輯器,編譯器,調試器

學習linux環境下的簡單組網

建議:買壹本不需要太厚的linux教材,大致可以滿足要求(現在的書越來越多了,還帶很多圖,我當時可沒這麽多書)

四.高級應用

澄清壹些概念:linux的普通操作與真正的系統管理不能相提並論,後者需要很多知識

1.英語

即使妳不學linux,我也強烈建議妳學好英文[U.S.english]。因為實質上計算機語言就是英文和字符,所謂的多國語言只是外部包裝。妳必須能無障礙的閱讀大量的英文技術文檔在搜索引擎找到的英文網站和網頁中熟練的檢索最好能有用英文直接交流的能力,擺脫了這個障礙,妳的學習和理解速度就能快很多,妳就有機會拉開和別人的差距。

2.shell[sed/awk]

shell是命令解釋器,是內核與用戶界面交流通道,shell寫的小腳本有點類似於win下的.bat但shell比.bat強大的多,shell不只是解釋命令,更是壹種編程語言,有時候幾百行的c用shell幾十行就能代替完成工作,因為shell的工作方式建立在系統已有的眾多應用程序之上

這也是CS中的壹個重要思想。此外,shell可以實現工作自動化,這個概念也比較重要sed,awk用來處理文本,歷來很常用。

3.Perl/PHP

漂亮的腳本, CGI的首選,比ASP好,應用面很廣

4.C\C++

C、C++是linux/unix的核心語言,系統代碼都是C寫的

5.ASM

系統底層及內核,硬件,設備驅動程序,嵌入式開發都需要。//走核心路線的話,c\c++,asm最重要

6.Java,Python,Tcl,XML

五、系統管理篇

在熟悉linux的基礎上還需要掌握至少壹種unix。我首推Solaris,其次是FreeBSD比如運營級系統壹般是Solaris+Oracle/DB2之類的學習apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各種應用服務器的構架及電子商務的應用熟悉TCP/IP協議族,學習諸如apache+php+proftp+mysql+quota的實現以及大型局域網,分布式集群等各種企業級應用解決方案熟悉多用戶管理,數據庫管理,文件系統,邏輯存儲管理,日誌分析,備份與災難數據修復系統補丁,內核升級,以及在此基礎上的防火墻構架等以保障系統安全在內的各種系統管理技能。

我覺得,如果在此基礎上再掌握路由/交換設備便是壹個不錯的系統管理員

各種基於linux的解決方案可參考相關書籍和文獻,必要時用google或各大linux站點站內搜索引擎尋找最新文檔,以避免錯誤和漏洞有幾本技術大全和技術內幕我認為都是這方面不錯的書

六、深入學習linux

我個人理解的讀linux內核需要的基礎:在此之前,希望先把應用層的東西學壹下,那樣會比較好理解

1.C

如果學過潭浩強的大學教科書(除了編幾個數學模型好像什麽也做不了的那種),建議再看壹下《The C Programming Language》Second Edition這本聖經(如果想學緩沖區溢出,這點C的功力可能是不夠的,還有<C陷阱與缺陷>,<C專家編程>,<C\C++深層探索>,反正經典書看多了是沒有壞處的)

2.asm (AT&T語法,保護模式)

保護模式下的比較復雜,基本上每本講內核的書都會有介紹有80x86 Intel語法的基礎就行,

有興趣可以看看Intel的官方網站

3.數據結構(離散數學)

計算機專業的核心課程,重要性我就不說了

4.操作系統原理

看懂這個再去讀linux吧

5.微機原理/組成原理(數字電路)

底層直接和硬件打交道,所以這個也要

6.了解linux/unix

我想至少妳要會操作吧,了解unix的API

7.軟件工程/編譯原理

這方面的經典書去www.china-pub.com可以搜到很多我覺得APUE這種書不適合初學者,還是先看看UPE

從 Unix 到 Linux 這壹段歷史

為什麽大家常常會說, Linux 是很穩定的壹套操作系統呢?這是因為, Linux 他有個老前輩,那就是 Unix 家族啰!有這個前輩的提攜,讓 Linux 這個小老弟很快的就成為壹套穩定而優良的操作系統啦!所以,底下我們來談壹談 Unix 到 Linux 的這壹段歷史吧!

早在 Linux 出現之前的二十年 ( 大約在 1970 年代 ), 就有壹個相當穩定而成熟的操作系統存在了!那就是 Linux 的老大哥『 Unix 』是也!怎麽這麽說呢?!他們這兩個家夥有什麽關系呀?這裏就給他說壹說啰!眾所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的時候給他開發出來的,並且丟到網絡上提供大家下載,後來大家覺得這個小東西 ( Linux Kernel ) 相當的小而精巧,所以慢慢的就有相當多的朋友投入這個小東西的研究領域裏面去了!但是為什麽這的小東西這麽棒呢?!然而又為什麽大家都可以免費的下載這個東西呢?!嗯!等鳥哥慢慢的唬xx....喔不!聽我慢慢的道來!

壹個沒有完成的夢想: Bell, MIT 與 GE 的『 Multics 』系統

早期的計算機並不像現在的個人計算機壹般,他可不是壹般人碰的到的玩意兒,除非是軍事或者是高科技用途才有可能接觸到這類的 Computer !而如前面所言,有計算機硬件還需要操作系統的配合才能夠發揮計算機的效能,不過,在那個年代,由於計算機算是『奢侈品』,喔~應該說是『貴重物品』,所以,可能壹間學校就只有壹部大型主機當然,那個年代所謂的大型主機仍然無法提供適度的運算能力的。不過,既然只有壹部大型主機,然而有許許多多的教師、學生要想要來使用,怎麽辦呢?為了解決這個問題,在 1960 年代初期,麻省理工學院 ( MIT ) 發展了所謂的『兼容分時系統 ( Compatible Time-Sharing System, CTSS )』,就字面上的意義來看,他主要讓大型主機可以提供多個終端機聯機進入主機使用主機的資源, ( 附帶壹提,當時的終端機 ( Terminal ) 本身並沒有軟件或者可供使用的資源,這些終端機要能使用,壹定必需要聯機登入主機之後,才能夠使用主機的資源來工作!) 當時可以讓約 30 位使用者聯機使用主機。而為了讓這個分時系統更加的強大,所以,在 1965 年前後由貝爾研究室 ( Bell )、 麻省理工學院 ( MIT ) 及奇異電器公司 ( GE ) 開始來***同開發壹個名為 Multics 的大型計畫,目標是想讓大型主機可以聯機 300 位以上的使用者。不過,在奮鬥了四年之後,該計畫仍然宣告不治...喔!是失敗啦!(註: Multics 有復雜、多數的意思。)

壹個小型檔案系統的產生:1969 年 Ken Thompson 的小型 file server system

在復雜的 Multics 系統的計畫失敗後,貝爾研究室當然就退出該計畫。就在這個計畫解散之後,曾經參與 Muitics 的貝爾研究室的成員 Ken Thompson 由於自己工作上的需求,需要壹套檔案存取的小型操作系統,便在 1969 年的時候以 DEC 公司 ( Digital Equipment Corporation ) 的計算機 PDP-7 為硬件基準,設計了壹個適合自己工作環境的小型檔案系統,其中也含有他自行開發的壹些小工具。那個系統就是最早期的 Unix 的源頭!當初 Ken 設計這個檔案系統時,主要是為了自己的存取方便所設計的簡單 OS ,因此將原有的 Multics 系統大幅度的簡化,不過,在當時還並沒有 Unix 這個名詞的出現!

Unix 的正式誕生:1973 年 Ritchie 等人以 C 語言寫出第壹個正式 Unix 核心

由於 Thompson 寫的那個操作系統實在太好用了,所以在 Bell 研究室內部廣為流傳,並且數度經過改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人為了讓這個系統的執行效能更佳化,所以使用編譯效能更好的 C 語言將原有的 1969 年的那個系統之核心大幅度的改寫過,並且確定該操作系統名稱為 Unix,呵呵!那就是最早的 Unix 操作系統啰!不過,由於這個操作系統是由這壹群工程師所開發完成的,而且使用者也大多是這方面的工程師,因此造成了後來 Unix 系統接口較難被壹般使用者接受的情況 @_@ (註: 相對於 Multics ,Unix 具有單壹的意思!)

重要的 Unix 分支: 1977 年 BSD 的誕生

在 Unix 早期的發展中,有壹件相當重要的事情,那就是 BSD 的誕生!由於 C 語言是壹種高級語言,他可以被應用在不同的硬件架構上面,而 Unix 本身就是 C 語言寫成的!在 Unix 發表之後, 柏克萊大學 ( Berkeley ) 的教授對於這個操作系統相當的有興趣,在經過取得 Unix 的原始碼,並且幾經修改之後,終於在 1977 年發表了第壹代的 Berkeley Software Distribution ( BSD ) 。這個 BSD 是 Unix 的壹個分支,他的發展對於 Unix 有相當大的影響,例如後來的 Sun 公司就是使用 BSD 發展的核心進行自己商業的 Unix 版本的發展的!