天天看點

第一講 linux簡介

一、什麼是Linux,Linux的發展史

1、什麼是Linux?

Linux是一種自由和開放源碼的類Unix作業系統,是一個功能強大的作業系統,存在着許多不同的Linux版本,但它們都使用了Linux核心。

編制它的目的:是建立不受任何商品化軟體權制約的、全世界都能自由使用的Unix相容産品。

Linux可安裝在各種計算機硬體裝置中,比如手機、平闆電腦、路由器、視訊遊戲控制台、台式計算機、大型機和超級計算機。§ 

linux與Windows是目前應用最廣泛的兩種作業系統。

UNIX 簡介

§  UNIX作業系統(UNIX),是一個強大的多使用者、多任務網絡作業系統,支援多種處理器架構,按照作業系統的分類,屬于分時作業系統,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的貝爾實驗室開發。

§ 目前分為AT&T System V和Berkley BSD兩個系列

§ 目前常見的UNIX版本有:

 Sun Solaris

 HP-OS

 AIX(IBM開發)

§ 注:Linux同時相容System V和BSD兩種Unix系統

Linux是運作于多種平台(PC、工作站、伺服器等)之上、源代碼公開、免費、遵循 GPL精神、遵守POSIX标準、與UNIX相容的作業系統。

Linux是微機版的UNIX。

常見到處理器平台:x86(Intel、AMD)、ARM、MIPS、Power、C6000

2、Linux發展史

§ 芬蘭赫爾辛基大學研究所學生Linus Torvalds(林納斯·托瓦茲)在從1990年底到1991年的幾個月中,利用Minix作業系統作為開發平台,為他自己的作業系統課程和後來的上網用途而陸續編寫了若幹程式。

(1)、1991.10.5 在Internet的comp.os.minix讨論區發表了一篇文章,表明他正在研制一個要超越Minix的作業系統,進而宣告了Linux的誕生。

(2)、1993年,大約有100餘名程式員參與了Linux核心代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,使用者大約有10萬左右。(由全球黑客合作完成)

(3)、1994年3月,Linux1.0釋出,代碼量17萬行,當時是按照完全自由免費的協定釋出,随後正式采用GPL協定。至此, Linux的代碼開發進入良性循環。

(4)、1996年6月,Linux 2.0核心釋出,此核心有大約40萬行代碼,并可以支援多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。

(5)、1997年夏,大片《泰坦尼克号》在制作特效中使用的160台Alpha圖形工作站中,有105台采用了Linux作業系統。

(6)、1998年是Linux迅猛發展的一年。

①、1月,小紅帽(RedHat)進階研發實驗室成立,

②、4月Mozilla 代碼釋出,成為linux圖形界面上的王牌浏覽器。

③、王牌搜尋引擎"Google"現身,采用的也是Linux伺服器。

④、Oracle 和Informix 兩家資料庫廠商明确表示不支援Linux,這個決定給予了Mysql資料庫充分的發展機會。

   LAMP:linux+apache+MySql+PHP

⑤、微軟在法國釋出了反Linux公開信,這表明微軟公司開始将Linux視作了一個對手來對待。

(7)、2001年1月,Linux 2.4釋出。

(8)、2003年12月,Linux 2.6版核心釋出,相對于2.4版核心2.6在對系統的支援都有很大的變化。

Linux核心

https://www.kernel.org/

二、 linux的特點

1、Linux的基本思想有兩點:

第一,一切都是檔案;

包括指令、硬體和軟體裝置、作業系統、程序等等對于作業系統核心而言,都被視為擁有各自特性或類型的檔案。

第二,每個軟體都有确定的用途。

2、完全免費

Linux是一款免費的作業系統,使用者可以通過網絡或其他途徑免費獲得,并可以任意修改其源代碼。這是其他的作業系統所做不到的。正是由于這一點,來自全世界的無數程式員參與了Linux的修改、編寫工作,程式員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式員的精華,不斷壯大。

3、完全相容POSIX 1.0标準

這使得可以在Linux下通過相應的模拟器運作常見的DOS、Windows的程式。這為使用者從Windows轉到Linux奠定了基礎。許多使用者在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常運作,這一點就消除了他們的疑慮。

4、多使用者、多任務

Linux支援多使用者,各個使用者對于自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。

多任務則是現在電腦最主要的一個特點,Linux可以使多個程式同時并獨立地運作。

5、良好的界面

字元界面:Novell Netware、UNIX、DOS等

圖形:Windows、蘋果作業系統(Mac OS X)等

Linux同時具有字元界面和圖形界面。在字元界面使用者可以通過鍵盤輸入相應的指令來進行操作。

Linux作業系統軟體包不僅包括完整的Linux作業系統,它同時也提供了類似Windows圖形界面的X-Window系統,使用者可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。例如:Ubuntu的界面。

Linux作業系統軟體包還包括了文本編輯器(例如:VI)、進階語言編譯器(例如:GCC)等應用軟體。 

6、支援多種平台

Linux可以運作在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。

此外Linux還是一種嵌入式作業系統,可以運作在掌上電腦、機頂盒或遊戲機上。

2001年1月份釋出的Linux 2.4版核心已經能夠完全支援Intel 64位晶片架構。

同時Linux也支援多處理器技術。多個處理器同時工作,使系統性能大大提高。

7、Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多使用者網絡作業系統。

   Web伺服器,FreeBSD

8、Linux以它的高效性和靈活性著稱,Linux子產品化的設計結構,使得它既能在價格昂貴的工作站上運作,也能夠在廉價的PC機上實作全部的Unix特性,具有多任務、多使用者的能力。

9、Linux能與現有存在的作業系統共存,例如Ubuntu可以安裝在Windows下,做為Windows的一個軟體使用。

三、Linux系統的組成

核心、shell和檔案系統一起形成了基本的作業系統結構

1、Linux核心

Kernel實作作業系統的基本功能

 硬體方面:控制硬體裝置,記憶體管理,硬體接口,基本I/O

 軟體方面:管理檔案系統,為程式配置設定記憶體和CPU時間等

版本号有三個數字組成:r.x.y

 r:目前釋出的Kernel主版本

 x:偶數:穩定版本,奇數:開發中版本

 y:錯誤修補的次數

例1: 2.6.18

2:主版本号

6:次版本号,表示穩定版本(因為有偶數)

18:修訂版本号,表示修改的次數

2、Linux Shell

Shell是系統的使用者界面,提供了使用者與核心進行互動操作的一種接口(指令解釋器)它接收使用者輸入的指令并把它送入核心去執行。

§  目前主要有下列版本的Shell有:

 Bourne Shell:是貝爾實驗室開發的。

 BASH:是GNU的Bourne Again Shell,是GNU作業系統上預設的shell。

 Korn Shell:是對Bourne Shell的發展,在大部分内容上與Bourne Shell相容。

 C Shell:是SUN公司Shell的BSD版本,常用于嵌入式。

3、Linux 檔案系統

§ 檔案系統是檔案存放在磁盤等儲存設備上的組織方法。

§ 主要展現在對檔案和目錄的組織上。

§ Linux采用統一的樹型結構的檔案系統

§ 在Linux檔案系統下可以:

 切換目錄、通路檔案

 設定目錄和檔案的權限

 設定檔案的共享

§ Linux支援多種類型的檔案系統

四、Linux的應用

1、Linux伺服器 (中低端的應用伺服器)

(1)、LAMP:Linux+Apache+Mysql+Perl/PHP/Python

一組常用來搭建動态網站或者伺服器的開源軟體,本身都是各自獨立的程式,但是因為常被放在一起使用,擁有了越來越高的相容度,共同組成了一個強大的Web應用程式平台。随着開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟體形成三足鼎立之勢,并且該軟體開發的項目在軟體方面的投資成本較低,是以受到整個IT界的關注。從網站的流量上來說,70%以上的通路流量是LAMP來提供的,LAMP是最強大的網站解決方案.

(2)、Linux下java web伺服器搭建Linux+JDK1.6+MySQL5.1+Apache2.2+Tomcat6+svn1.6

2、嵌入式Linux系統 :ARM+Linux

嵌入式軟體開發是linux應用最廣的領域

3、桌面(辦公軟體、電子政務)

例:Titanic的特效 -> 350台SGI及160台DEC Alpha工作站,運作Red Hat 4.1

五、linux發行版的選擇

Linux 發行套件(Distribution) :以Linux Kernel為核心,搭配各種應用程式和工具。

1、Red Hat Enterprise Linux(RHEL)、CentOS(CentOS-5.5、CentOS-6.3)、Fedora

2、Ubuntu(Ubuntu9.10)

3、Debian

4、FreeBSD: 最大特點就是穩定和高效,是作為伺服器作業系統的最佳選擇,但對硬體的支援沒有Linux完備,是以并不适合作為桌面系統。

5、紅旗Linux:桌面版和伺服器版

附:個人用過的版本

Red Hat Linux9,Fedora、RHEL5.1-Server、CentOS-5.5、Ubuntu9.10、Magic Linux、紅旗Linux等

六、如何學好Linux(興趣是最好的老師)

1、學Linux需要什麼基礎?

(1)、多動手:熟能生巧

(2)、C語言(尤其是嵌入式Linux)

(3)、英語:英文版

2、程咬金的三闆斧

(1)、linux安裝

(2)、Linux文本編輯器(vi、vim)

(3)、shell腳本

七、linux學習書籍推薦

1、《Linux/Unix設計思想》

2、《RHCSA/RHCE Red Hat Linux認證學習指南(第6版)》

附1、GNU&GPL

&  GPL(General public License)軟體

通用公共許可軟體。此類軟體的開發不是為了經濟目的,而是不斷開發幵傳播新的軟體,并讓每個人都能獲得、擁有。CopyLeft。

該類軟體遵循一定的規則:

1. 傳播者不能限制購買軟體的使用者自由權。即如果使用者買了一套GPL軟體,就可以免費複制和傳播或自己出售。

2. 傳播者必須清楚告訴使用者該軟體屬于GPL軟體。

3. 傳播者必須免費提供軟體的完整源代碼。

4. 允許個人組織為盈利而傳播,獲得利潤。

& GNU– Gnu’s Not Unix

§是自由軟體基金會FSF(Free Software Foundation)中頭一個名為GNU的團體,目前近400人。它的目标是建立一套完全自由的作業系統。

§ GPL –GNU通用公共許可證軟體的源程式可以自由流通,軟體公司不應該把源程式拒為己有,或借發行編譯過的軟體赢利,軟體公司要賺取的應該是系統內建和服務的費用,所有的程式員可以交換心得,保證軟體品質。

附2、GNU和linux

§ Linus本人認為:“使Linux成為GPL的一員是我一生中所作過的最漂亮的一件事”。

§ GNU的開發過程:

先開發gcc等強大工具,最後再開發GNU Kernel ( Hurd ) 最優秀的作業系統Gnu’s Not Unix

§ Linux的出現 Linux Kernel + GNU Software Debian/Linux 填補Hurd出現前的真空狀态

附3、POSIX簡介

 POSIX标準

UNIX發展過程中,出現了許多變種(BSD,System V 等)。為統一标準,出現了POSIX系列标準,它定義了一套标準的作業系統接口和工具。從理論上說,POSIX标準代碼很容易移植到仸何遵守POSIX的作業系統中。今天,幾乎所有的正式作業系統都以支援POSIX标準為目标。

§ POSIX – Portable Operating System Interface

§ 各家廠商發展自己的Unix -> 各Unix系統不相容!

§ 1988年,NTST/CSL的組織召開各Unix廠商,組織和使用者共同制定了POSIX,可移植作業系統标準界面(IEEE 1003.1)

§ 結果:隻要遵循POSIX,某一個Unix環境下的軟體,隻需做少許的修改,就能在其他的Unix環境下編譯成功。

附4、開放源代碼(Open Source)

§ 宗旨

允許任何人自由傳播複制及修改軟體的程式代碼,而不在于不收費

§ 起源

1983.9,Richard M. Stallman (RMS) 理查德·馬修·斯托曼,FSF(Free Software Foundation)的創始人,目前為GNU Project的項目主持人

産品種類

- Kernel

- Editor

- Shell

- C compiler,linker,assembler

附5、UNIX特性

1、UNIX系統是一個多使用者,多任務的分時作業系統。

2、UNIX的系統結構可分為兩部分:作業系統核心(由檔案子系統和程序控制子系統構成,最貼近硬體),系統的外殼(貼近使用者)。外殼由Shell解釋程式,支援程式設計的各種語言,編譯程式和解釋程式,實用程式和系統調用接口等組成

3、UNIX系統大部分是由C語言編寫的,這使得系統易讀,易修改,易移植。

4、UNIX提供了豐富的,精心挑選的系統調用,整個系統的實作十分緊湊,簡潔。

5、UNIX提供了功能強大的可程式設計的Shell語言(外殼語言)作為使用者界面具有簡潔,高效的特點。

6、UNIX系統采用樹狀目錄結構,具有良好的安全性,保密性和可維護性。

7、UNIX系統采用程序對換(Swapping)的記憶體管理機制和請求調頁的存儲方式,實作了虛拟記憶體管理,大大提高了記憶體的使用效率。

繼續閱讀