天天看點

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

點選檢視第零章 點選檢視第二章

第1章 Linux系統介紹與環境搭建準備

本章以作業系統的介紹作開篇,首先介紹作業系統的基礎概念以及作業系統的原理;然後帶領讀者了解Unix/Linux的誕生和發展史,以及市面上常見的Unix/Linux系統版本,并且針對發展過程中相關的關鍵人物進行介紹;接着,本章為大家講解了需要重點掌握的GNU、GPL等名詞知識,以及本書的主人公即Linux的優秀特性、常見的Linux發行版本以及不同應用場景的選擇建議;最後,本章将帶讀者了解網際網路常用的兩個重點Linux版本CentOS和Red Hat Linux,并完成CentOS Linux的基本環境搭建準備。

1.1 Linux簡介

1.1.1 什麼是作業系統?

如果被問到什麼是作業系統,可能很多初學者都會一臉茫然。雖然我們都知道平時一直在用的Windows 7/8/10,其實就是作業系統,卻無法準确給出作業系統的定義,或者向提問者解釋清楚什麼是作業系統。

作業系統,英文名稱Operating System,簡稱OS,是計算機系統中必不可少的基礎系統軟體,它是應用程式運作以及使用者操作必備的基礎環境支撐,是計算機系統的核心。

作業系統的作用是管理和控制計算機系統中的硬體和軟體資源,例如,它負責直接管理計算機系統的各種硬體資源,如對CPU、記憶體、磁盤等的管理,同時對系統資源供需的優先順序進行管理。作業系統還可以控制裝置的輸入、輸出以及操作網絡與管理檔案系統等事務。同時,它也負責對計算機系統中各類軟體資源進行管理,例如,各類應用軟體的安裝、運作環境的設定等。圖1-1給出了作業系統與計算機硬體、軟體之間的關系示意圖。

綜上所述,我們可以對作業系統給出一個基本的定義。

作業系統是計算機系統中必不可少的基礎系統軟體,它的作用是負責管理和控制計算機系統中的硬體和軟體資源,合理地組織計算機系統的工作流程,以便有效地利用這些資源為使用者提供一個功能強大、使用友善的操作及使用環境。它在計算機系統(硬體)與使用者之間起到了接口的作用。

上面的定義聽起來是不是有些複雜?下面就來幫助大家更簡單快速地了解什麼是作業系統。作業系統就是處于使用者與計算機系統硬體之間用于傳遞資訊的系統程式軟體。例如,作業系統會在接收到使用者輸入的資訊之後,将其傳遞給計算機系統硬體核心進行處理,然後再把計算機系統硬體的處理結果傳回給使用者。圖1-2所示的是簡單了解作業系統作用的示意圖。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

目前PC(Intel x86系列)計算機上比較常見的作業系統有Windows、Linux、DOS、Unix等。

1.1.2 什麼是Linux?

與大家熟知的Windows作業系統軟體一樣,Linux也是一個作業系統軟體。但是與Windows不同的是,Linux是一套開放源代碼程式的、并且可以自由傳播的類Unix作業系統軟體(Unix系統是Linux系統的前身,具備很多優秀特性)。其在設計之初,就是基于Intel x86系列CPU架構計算機的。它是一個基于POSIX的多使用者、多任務并且支援多線程和多CPU的作業系統。

Linux是由世界各地成千上萬的程式員設計和開發實作的。當初開發Linux系統的目的就是建立不受任何商業化軟體版權制約的、全世界都能自由使用的類Unix作業系統相容産品。在過去的20年裡,Linux系統主要被應用于伺服器端、嵌入式開發和PC桌面3大領域,其中伺服器端領域是重中之重。

我們熟知的大型、超大型網際網路企業(百度、騰訊、Sina、阿裡等)都在使用Linux系統作為其伺服器端的程式運作平台,全球及國内排名前1000的90%以上的網站使用的主流系統都是Linux系統。

從上面的内容可以看出,Linux作業系統之是以如此流行,是因為它具備如下這些優秀的特點。

  • Linux是開放源代碼的程式軟體,可自由修改。
  • 與Unix系統相容,具備Unix幾乎所有的優秀特性。
  • 可自由傳播,無任何商業化版權制約。
  • 适合Intel等x86 CPU系列架構的計算機。
帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.2 Linux的起源

1.2.1 Unix的曆史

說到Linux的起源,就不得不提到Linux之前的Unix系統。Unix系統于1969年在AT&T的貝爾實驗室誕生,20世紀70年代,它逐漸盛行,這期間,又産生了一個比較重要的分支,即大約誕生于1977年的BSD(Berkeley Software Distribution)系統。從BSD系統開始,各大廠商及商業公司開始了根據公司自身的硬體架構,并以BSD系統為基礎進行Unix系統的研發,進而産生了各種版本的Unix系統,例如,SUN公司的Solaris,IBM公司的AIX,HP公司的HP UNIX等。圖1-3給出了Unix系統誕生、發展的時間及版本分支的介紹,供讀者參考。

從圖1-3中可以看到,本書的“主人公”Linux系統,誕生于1991年左右,是以,可以說Linux是從Unix發展而來的。

1.2.2 Unix的5大優秀特性

細心的讀者應該會看到前文曾提到“類Unix作業系統相容産品”或“類Unix作業系統軟體”?為什麼都要開發類Unix系統呢?那是因為Unix是一個非常棒的作業系統,它很像是一個非常聰明伶俐但不太聽話的孩子,而開發者們在開發系統時,一方面想要繼承它的“聰明伶俐”,另一方面又想改善它不聽話的一面,故而會有如此考慮。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

那麼Unix都有哪些“聰明伶俐”的特點呢?下面一起來看看吧。

  • 技術成熟,可靠性高

    使用Unix系統時,即使連續運作若幹年也無須重新開機,它依然可以工作得非常好。可以毫不誇張地說,隻要計算機硬體不壞,Unix就會很難出現問題。

  • 極強的可伸縮性

    Unix支援的CPU處理器體系架構非常多,包括Intel/AMD及HP-PA、MIPS、PowerPC、UltraSPARC、ALPHA等RISC晶片,以及SMP、MPP等技術。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備
  • 強大的網絡功能

    Internet互聯最重要的協定TCP/IP就是在Unix上開發和發展起來的。此外,Unix還支援非常多的常用的網絡通信協定,如NFS、DCE、IPX/SPX、SLIP、PPP等。

  • 強大的資料庫支援能力

    Oracle、DB2、Sybase、Informix等大型資料庫,都将Unix作為其主要的資料庫開發和運作平台,一直到目前為止,依然如此。

  • 強大的開發功能

    正是Unix促使了C語言的誕生,并互相促進與發展,成為當時工程師的首選作業系統和開發環境。網際網路早期具有重大意義的軟體新技術的出現幾乎都在Unix上,例如:TCP/IP、WWW、Java、XML等。

1.2.3 Unix作業系統的革命

20世紀70年代中後期,由于各廠商及商業公司開發的Unix及内置軟體都是針對自己公司的特定硬體而進行的,是以在其他公司的硬體上基本上無法直接運作,而且當時沒有人對開發基于x86架構CPU的系統感興趣。另外,20世紀70年代末,Unix又面臨了突如其來的被AT&T回收版權的重大問題,特别是要求禁止對學生群體提供Unix系統源代碼,這樣的問題一度引起了當時Unix業界的恐慌,也是以産生了種種商業糾紛。

由于Unix面臨版權回收問題,以及代碼不開源等問題,這直接或間接地導緻了新的類Unix系統的誕生以及自由軟體運動的建立和發展。

1984年,Richard Stallman發起了開發自由軟體的運動,并成立了自由軟體基金會(Free Software Foundation,FSF)和GNU項目。當時發起這個自由軟體運動和建立GNU項目的目的其實很簡單,就是想開發一個類似于Unix系統、并且是自由軟體的完整作業系統,也就是要解決20世紀70年代末Unix版權問題以及軟體源代碼面臨閉源的問題,這個系統稱為GNU作業系統。

也是在20世紀80年代初期,同樣是由于之前的Unix系統版權和源代碼限制等問題,使得當時大學裡教學Unix系統的束縛很大。是以,當時的一個大學的教授,名為Andrew Tanenbaum(譚邦甯),于1984年(大概)開始着手編寫新的用于教學的Unix系統,目标是開發新的類Unix系統應盡可能地與原有的Unix系統相容,并且可以運作于x86 PC平台,這個系統的名字為Minix。

不過,由于譚邦甯開發這個Minix系統的目的隻是用于教學,是以,Minix系統的功能無法滿足商用的需求,但是Minix的産生對于Linux的誕生又是至關重要的一個關鍵成因,且看下文。

1.2.4 Linux的誕生

Linux系統的誕生開始于芬蘭赫爾辛基大學的一位計算機系的學生,其名字為Linus Torvalds。在大學期間,他接觸到了學校的Unix系統,但是,當時的Unix系統僅為一台主機,且對應了多個終端,使用時存在操作等待時間很長等一些體驗極差的問題,無法滿足年輕的Linus Torvalds的使用需求。是以他就萌生了自己開發一個Unix的想法,不久之後,他就找到了前文提到的譚邦甯教授開發的用于教學的Minix作業系統,與我們現在一樣,他将Minix安裝到了他的I386個人計算機上。此後,Torvalds又開始陸續閱讀了Minix系統的源代碼,從Minix系統中學到了很多重要的系統核心程式設計理念和設計思想,進而逐漸開始了Linux系統雛形的設計和開發。

Linux的标志和吉祥物為一隻名字叫作Tux的企鵝—Torvalds扷nix,如圖1-4所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.2.5 Linux的發展曆程

1. Linux的發展曆程簡介

1)1984年,Andrew S. Tanenbaum開發了用于教學的Unix系統,命名為Minix。

2)1989年,Andrew S. Tanenbaum将Minix系統運作于x86的個人計算機平台上。

3)1990年,芬蘭赫爾辛基大學學生Linus Torvalds首次接觸Minix系統。

4)1991年,Linus Torvalds開始在Minix上編寫各種驅動程式等作業系統核心元件。

5)1991年底,Linus Torvalds 公開了Linux核心源碼0.02版(

http://www.kernel.org

),注意,這裡公開的Linux核心源碼并不是我們現在使用的Linux系統的全部,而僅僅是Linux核心kernel部分的代碼。

6)1993年,Linux 1.0版發行,Linux轉向GPL版權協定。

7)1994年,Linux的第一個商業發行版Slackware問世。

8)1995年,Red Hat 軟體公司成立,同年釋出了Red Hat Linux 2.0。

8)1996年,美國國家标準技術局的計算機系統實驗室确認Linux 版本1.2.13(由Open Linux公司打包)符合POSIX标準。

9)1997年,Red Hat Linux 5.0釋出,它支援Intel、Alpha和Sparc平台以及大多數的應用軟體。極其簡單易用的RPM子產品化的安裝、配置和解除安裝工具,使程式的安裝可在15分鐘内完成。軟體更新也更加友善了。

10)1999年,Linux的簡體中文發行版問世。

11)2003年4月,Red Hat Linux 9.0釋出。其重點放在改善桌面應用方面,包括改進安裝過程、更好的字型浏覽、更好的列印服務等。2003年,Red Hat的 Linux市場佔有率為80%以上。

12)2004年4月,Red Hat公司正式停止對Red Hat 9.0版本的支援,标志着Red Hat Linux的正式完結。原本的桌面版Red Hat Linux發行包則與來自民間的Fedora計劃合并,成為Fedora Core發行版本。Red Hat公司不再開發桌面版的Linux發行包,而将全部力量集中在伺服器版的開發上,也就是Red Hat Enterprise Linux版。

13)2005年10月,RHEL4釋出。

14)2007年3月,主流版本RHEL5釋出,CentOS系統開始在中國網際網路公司流行。

15)2010年4月,RHEL6(RedHat Enterprise Linux 6.0)BETA測試版釋出。

16)2014年6月RedHat Enterprise Linux 7.0釋出,RHEL7.0版本相較于RHEL6.0以前的版本有了較大的變化,例如,核心版本更新到3.10以上,系統啟動和基本管理變化較大,檔案系統也由傳統的ext改為xfs,同時在大資料、雲計算、Docker方面做了很大優化。

2. Linux發展曆程中的相關人物

我們在使用優秀的Linux系統時,一定要向前輩們緻以深深的敬意,沒有他們,就沒有今天優秀的Linux系統存在(如圖1-5所示)。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.3 Linux核心概念知識

1.3.1 自由軟體與FSF

1.自由軟體

簡單地了解,自由軟體的核心就是沒有商業化軟體版權制約,源代碼開放,可以無限制地自由傳播。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

自由意味着freedom,而免費意味着free,這是完全不同的兩個概念。例如,Red Hat Linux自由但不免費,CentOS Linux則是自由且免費的。

自由軟體關乎使用者運作、複制、釋出、研究、修改和改進該軟體的自由。更精确地說,自由軟體賦予軟體使用者四種自由,具體如下。

  • 不論目的為何,有運作該軟體的自由。
  • 有研究該軟體如何運作,以及按需改寫該軟體的自由。當然,取得該軟體源代碼為達成此目的之前提。
  • 有重新釋出拷貝的自由。
  • 有改進該軟體,以及向公衆釋出改進版本的自由,這樣整個社群都可受惠。同樣,取得該軟體的源碼為達成此目的之前提。

2.自由軟體基金會FSF

FSF(Free Software Foundation)的中文意思是自由軟體基金會,是Richard Stallman于1984年發起和創辦的。FSF的主要項目是GNU項目。它的目标是建立可自由釋出和可移植的類Unix作業系統産品。GNU項目本身産生的主要軟體包括:Emacs編輯軟體、gcc編譯軟體、bash指令解釋程式和程式設計語言,以及gawk(GNU抯 awk)等。

1.3.2 GNU知識

GNU的全稱為GNU抯 not Unix,意思是“GNU不是Unix”,GNU計劃,又稱革奴計劃,是由Richard Stallman在1984年公開發起的,是FSF的主要項目。前面已經提到過,這個項目的目标是建立一套完全自由的和可移植的類Unix作業系統。

GNU類Unix作業系統是由一系列應用程式、系統庫和開發工具構成的軟體集合(例如,Emacs編輯軟體、gcc編譯軟體、bash指令解釋程式和程式設計語言,以及gawk等),并加上了用于資源配置設定和硬體管理的核心。

但是GNU自己的核心Hurd仍在開發中,離實用還有一定的距離。是以,這個GNU系統并沒有流行起來。現在的GNU系統通常是使用Linux系統的核心、再加上GNU項目貢獻的一些元件,以及其他相關程式組成的,這樣的組合被稱為GNU/Linux作業系統。

到1991年Linux核心釋出的時候,GNU項目已經完成了除系統核心之外的各種必備軟體的開發。在Linus Torvalds和其他開發人員的努力下, GNU項目的部分元件又運作到了Linux核心之上,例如,GNU項目裡的Emacs、gcc、bash、gawk等,至今都是Linux系統中很重要的基礎軟體。GNU項目的相關圖檔紀念如圖1-6所示。

1.3.3 GPL知識

1. GPL

GPL全稱為General Public License,中文名為通用公共許可,是一個最著名的開源許可協定,開源社群最著名的Linux核心就是在GPL許可下釋出的。GPL許可是由自由軟體基金會(Free Software Foundation)建立的。

1984年,Richard Stallman發起開發自由軟體的運動後不久,在其他人的協作下,他創立了通用公共許可證(GPL),這對推動自由軟體的發展起到了至關重要的作用,那麼,這個GPL到底是什麼意思呢?

簡單的了解,GPL的核心,是保證任何人有共享和修改自由軟體的自由,任何人有權取得、修改和重新釋出自由軟體源代碼的權利,但都必須同時給出具體更改的源代碼。

雖然整個Linux核心都是基于GNU通用公共許可的,但是Linux核心并不是GNU計劃的一部分,這一點請讀者不要混淆。

2. LGPL

LGPL(Lesser General Public License)相對于GPL則較為寬松,其允許不公開全部源代碼,這為基于Linux平台開發商業軟體提供了更廣闊的空間。對于該知識點,本書僅提及一下,有興趣的讀者可到網上查詢相關資訊。

1.3.4 Linux系統組成

Linux作業系統的核心為Linus Torvalds開發的Kernel,Linux核心之上的元件可分為如下幾部分:一部分是GNU元件,如Emacs、gcc、bash、gawk等;另一些重要組成部分則來自加利福尼亞大學Berkeley分校的BSD Unix項目和麻省理工學院的X Windows系統項目,以及在這之後成千上萬的程式員開發的應用程式等(見表1-1)。正是基于Linux核心與GNU項目、BSD Unix以及MIT的X11(X Windows)的結合,才使得整個Linux作業系統得以很快形成,并得到了發展,進而組成了今天優秀的Linux系統。

Linux作業系統=Linux核心+GNU軟體及系統軟體+必要的應用程式

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備
帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.4 Linux的特點

1.4.1 Linux為什麼受歡迎?

Linux以高效和靈活著稱。Linux運作于個人計算機上,可以實作幾乎全部的Unix特性,同時還具有多任務、多使用者的能力,支援多線程、多CPU。Linux是在GNU公共許可(GPL)權限下免費獲得的,是一個符合POSIX标準的作業系統。

Linux作業系統軟體包不僅包括完整的Linux作業系統,而且還包括了文本編輯器、進階語言編譯器,以及X-Windows圖形使用者界面等應用軟體,使用Linux也可以像使用Windows 7、Windows 10一樣,通過視窗、圖示和菜單對系統進行操作,當然,這是Linux個人桌面領域的應用,在伺服器端領域絕大多數場景下都還是使用指令行、文本模式操作Linux的。

Linux系統之是以受到廣大計算機愛好者的喜愛,主要原因有兩個,具體如下。

1)Linux屬于自由軟體,使用者可以不用支付任何費用就可以獲得系統和系統的源代碼,并且可以根據自己的需要對源代碼進行必要的修改,無償使用,無限制地進行自由傳播。

2)Linux具有Unix的全部優秀特性,任何使用Unix作業系統或想要學習Unix作業系統的人,都可以通過學習Linux來了解Unix,同樣可以獲得Unix中的幾乎所有優秀的功能,并且,Linux系統更開放,社群開發和全世界的使用者也更活躍。

1.4.2 Linux更多特點介紹

還記得前文對Linux作業系統特性的小結麼?除了那些特點以外,其實,Linux還具有如下一些特點。

  • 可以說Linux是Unix在個人計算機上的克隆版,仿Unix核心建構,幾乎與Unix指令集向下完全相容。
  • 是一個完善的支援多使用者、多任務,多程序、多CPU的系統。
  • 具有很高的系統穩定性與可靠性。
  • 具有很高的系統安全性。
  • 有完善的網絡服務,支援HTTP、FTP、SMTP、POP、SAMBA、SNMP、DNS、DHCP、SSH、TELNET等。
  • 是基于GNU許可,自由開放的系統。
  • 有大量第三方免費應用程式。
  • 得到了衆多業界廠商的支援,如IBM、Oracle、Intel、HP、MOTO、Google等。
  • 有完善的大型資料庫平台,包括Oracle、DB/2、Sybase、MySQL、PostgreSQL等。
  • 有完善的圖形使用者界面,包括GNOME、KDE等。
  • 有完善的開發平台,包括C/C++、Java、Perl等,支援各類圖形界面API ,如GTK+、QT等。

1.5 Linux的應用領域

1.5.1 IT伺服器Linux系統的應用領域

如今的IT伺服器領域是Linux、Unix、Windows三分天下,Linux系統可謂後起之秀,特别是最近幾年來,伺服器端Linux作業系統不斷地擴大市場佔有率,且每年增長勢頭迅猛,并且開始對Windows及Unix伺服器市場的地位構成嚴重威脅。圖1-8是國内服務端各個系統使用百分比的一個參考餅圖。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

從圖1-8中可以看出,Linux(包括CentOS、Ubuntu等)市場佔有率占80%左右,Windows占12.8%,Solaris占6.2%。可見,在未來的伺服器領域市場裡,Linux是大勢所趨,筆者同時還查閱了相關的資料,有些資料顯示會有差異,不過可以肯定的是國内一二線網際網路公司使用Linux作為伺服器系統至少占比90%以上,而且這其中的80%以上使用的都是CentOS或同源的Linux系統。

Linux作為企業級伺服器的應用十分廣泛,利用Linux系統可以為企業構架WWW伺服器、資料庫伺服器、負載均衡伺服器、郵件伺服器、DNS伺服器、代理伺服器(透明網關)、路由器等,這些不但使企業降低了營運成本,同時還獲得了Linux系統帶來的高穩定性和高可靠性,且無須考慮商業軟體的版權問題。

随着Linux在伺服器領域的廣泛應用,近幾年來,該系統已經滲透到電信、金融、政府、教育、銀行、石油等各個行業,同時各大硬體廠商也相繼支援Linux作業系統。這一切均表明,Linux在伺服器市場前景光明。同時,大型、超大型網際網路企業(百度、Sina、淘寶等)都在使用Linux系統作為其伺服器端的程式運作平台,全球及國内排名前十的網站使用的幾乎都是Linux系統,Linux已經逐漸滲透到了各個領域的企業裡。

1.5.2 嵌入式Linux系統應用領域

由于Linux系統開放源代碼,功能強大、可靠、穩定性強、靈活而且具有極大的伸縮性,再加上它廣泛支援大量的微處理器體系結構、硬體裝置、圖形支援和通信協定,是以,在嵌入式應用的領域裡,從網際網路裝置(路由器、交換機、防火牆、負載均衡器等)到專用的控制系統(自動售貨機、手機、PDA、各種家用電器等),Linux 作業系統都有很廣闊的應用市場。特别是經過這幾年的發展,它已經成功地跻身于主流嵌入式開發平台。例如,在智能手機領域,Android Linux已經在智能手機開發平台上牢牢地占據了一席之地。嵌入式系統是另一個應用領域,不是本書讨論的主要話題,讀者若對此感興趣,可參考相關文章和書籍。

1.5.3 個人桌面Linux應用領域

所謂個人桌面系統,其實就是我們在辦公室使用的個人計算機系統,例如,Windows XP、Windows 7、MAC等。Linux系統在這方面的支援也已經非常好了,完全可以滿足日常的辦公及家用需求,具體列舉如下。

  • 浏覽器上網浏覽(例如,Firefox浏覽器)。
  • 辦公室軟體(Open Office等,相容微軟Office軟體)處理資料。
  • 收發電子郵件(例如,ThunderBird軟體)。
  • 實時通信(例如,QQ等)。
  • 文字編輯(例如,vi、vim、Emacs)。
  • 多媒體應用。

雖然Linux個人桌面系統的支援已經很廣泛了, 但是在目前,其桌面市場佔有率還遠遠無法與Windows競争,這其中的最大障礙可能不在于Linux桌面系統産品本身,而是使用者的使用觀念、操作習慣和應用技能,以及曾經在Windows上開發的軟體的移植問題。

1.5.4 本書主要講解的Linux領域說明

本書主要講解Linux系統伺服器端的知識、技術,企業生産運維經驗實踐。下面列舉本書将要讨論的技術核心,以及哪些企業機關會用到本書的技術知識。

  • 伺服器領域的Linux運維技術。
  • 基于x86 CPU架構的計算機硬體的Linux系統。
  • 面向網際網路的企業,或者即将将業務轉移到網際網路的企業。

1.6 如何選擇Linux的發行版本

1.6.1 Linux的發行版本介紹

Linux核心(kernel)版本主要有4個系列,分别為Linux kernel 2.2、Linux kernel 2.4、Linux kernel 2.6,Linux kernel3.x ,Linux kernel4.x,更多更新的核心版本請浏覽

https://www.kernel.org/

Linux的發行商包括Slackware、Redhat、Debian、Fedora、TurboLinux、Mandrake、SUSE、CentOS、Ubuntu、紅旗、麒麟……

下面來看看其中幾個重要的發行版本。

1)Red Hat:Red Hat Linux9.0的核心為2.4.20。在版本9.0之後,Red Hat不再遵循GPL協定,成為收費産品(但仍開源),發展的新版本依次為Red Hat 3.x、Red Hat 4.x、Red Hat 5.x、Red Hat 6.x、Red Hat 7.x。

2)Fedora:為Red Hat的一個分支,仍遵循GPL協定,可以認為是Red Hat預釋出版。

3)CentOS(Community Enterprise Operating System):Red Hat的另一個重要分支,以Red Hat 所釋出的源代碼重建符合GPL許可協定的Linux系統,即将Red Hat Linux源代碼的商标LOGO以及非自由軟體部分去除後再編譯而成的版本,目前CentOS已被Red Hat公司收購,但仍開源免費。CentOS Linux是國内網際網路公司使用最多的Linux系統版本,也是本書的“主人公”,本書後面所有的内容講解都是基于CentOS這個作業系統的,絕大部分内容幾乎無須任何修改也能同樣适合于其他作業系統版本。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.6.2 選擇适合的Linux系統學習

在了解了Linux版本及應用領域之後,接下來就要定位我們到底該往哪個方向發展了。如果你想做一個網站的後端運維工程師,那就走伺服器領域的路線,如果你想進入嵌入式領域,那就要學習嵌入式領域的技能。如果你對桌面Linux系統感興趣,那麼可以深入了解桌面系統領域。選擇的領域不同,學習和要掌握的技能自然就會有差别,是以,這個選擇就顯得很重要了,當你閱讀本書的時候,相信你已經選擇了IT伺服器Linux系統應用領域。沒錯,我們整本書的主要内容就是基于Linux伺服器應用領域而寫的。

1. Linux發行版本的應用場景

在确定了自己的發展路線之後,針對Linux系統選擇一個合适的版本就顯得尤為重要了。事實上,這個問題也正是大多數初學者最為頭疼的一個問題,對于此,筆者的建議如下。

如果你是一個Linux愛好者,想選擇一個桌面系統,并且既不想使用盜版,又不想花太多錢購買商業系統軟體,那麼可以選擇Ubuntu桌面系統。如果你需要伺服器端的Linux系統,想要使用一個比較穩定的伺服器系統,或者說你的目标就是進入企業從事Linux運維工作,那麼建議你選擇CentOS或Red Hat。在這兩者當中又應首選CentOS,因為目前市場的趨勢就是這樣的,CentOS社群非常活躍。如果是對系統穩定性、安全性有更高的要求,或者是有特殊使用偏好的使用者,可以考慮Debian或FreeBSD。如果是特别癡迷于新技術體驗和追求最新的軟體版本,那麼可以選擇Fedora,但要容忍Fedora潛在的新技術軟體的Bug和系統穩定性的問題。如果喜歡更好的中文環境支援,可以選擇麒麟Linux……本書主要側重于伺服器領域,并且根據國内網際網路企業的市場需求來選擇,本書所選擇的Linux版本為CentOS,當然所講的技術也适合Red Hat Linux及其他大部分Linux系列,CentOS是國内目前網際網路企業伺服器端實際應用最多的系統。

其實Linux雖然發行版本衆多,但是系統的核心以及大部分外圍基礎應用軟體,都是相同的或者是簡單的變種,是以隻要學會學透其中的一種,即可觸類旁通,是以不建議讀者同時學習多個系統,更不建議工作中同時使用多個系統版本,這不但會浪費自己的學習時間,也影響企業業務的穩定性,徒增無謂的維護成本。前面已說明,本書将以企業最常用的CentOS系統為主進行講解,但是想學習其他版本的Linux的讀者,也同樣适合閱讀本書,因為它們的使用方法絕大部分都是相同的。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

2.選擇CentOS Linux的版本

本書講解的Linux運維技術主要是基于CentOS x86_64 Linux的,絕大部分知識幾乎無需任何修改,同樣也适用于Red Hat Linux等同源或類似Linux系統版本。

下面是CentOS的主流版本在國内網際網路企業的使用現狀說明。

  • CentOS5系列:主流版本有CentOS5.5、CentOS5.8、CentOS5.10、CentOS5.11,CentOS5在企業的新業務中已經使用極少了,不推薦新手學習。
  • CentOS6系列:主流版本有CentOS6.4、CentOS6.6、CentOS6.7、CentOS6.9,CentOS6在企業的新業務中使用也已經不多了,不推薦新手學習。
  • CentOS7系列:該系列已經成熟,很多企業開始正式使用該版本,目前與6系列并行,CentOS7已經逐漸成為企業主流,比較推薦新手選擇此版本學習。

綜上所述,老男孩推薦學習當下企業的主流應用,即CentOS7系列,本書選取了當下最新的CentOS7.6作為主要版本來講解,讓讀者掌握最新的企業級作業系統技術。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.7 搭建學習Linux的運維環境

1.7.1 虛拟機軟體介紹

簡單地說,虛拟機(Virtual Machine)軟體就是一套特殊的軟體,它可以作為作業系統獨立運作,也可以運作于作業系統之上。若是運作于系統之上的虛拟機軟體,在一台電腦(PC或筆記本等)上安裝完虛拟機軟體之後,就可以模拟出來若幹台相對獨立的虛拟PC裝置,并且可以在每台虛拟的PC裝置上安裝運作作業系統,運作網絡服務,其與真實的計算機裝置幾乎無任何使用差别。

使用時,需要先在電腦上安裝好虛拟機軟體(例如,VMware Workstation),然後通過安裝的虛拟機軟體建立一個或多個虛拟機系統(即虛拟的電腦裝置),最後在這些虛拟的電腦裝置上安裝作業系統并進行啟動配置。最終實作在一台電腦上“同時”運作多個虛拟機裝置系統。

另外,還可以将這些虛拟的系統連成區域網路,用來部署網站叢集架構等更深層次的運維技術,這樣的虛拟環境,在後文會有講解。圖1-9為安裝WMware Workstation虛拟機軟體後打開的軟體界面。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

如圖1-9所展示的是在Windows 7桌面作業系統上安裝的虛拟機軟體VMware,這裡通過配置VMware虛拟出了6台PC裝置,且分别在這6台PC上安裝了Linux系統和XP系統。這6個虛拟機同時在一台電腦上獨立運作,幾乎互不幹擾,并且可以同在一個區域網路内,還可以互相通信。

經過前面對虛拟機軟體的介紹,相信讀者應該知道了虛拟機軟體到底是什麼了吧。下面,筆者介紹一些網友常用的虛拟機軟體,如表1-2所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

1.7.2 通過虛拟機軟體學習

通過虛拟機軟體學習是初學者學習Linux運維的最佳方式。

在與部分網友和學生的交流中,“老男孩教育”的老師發現,很多初學者都認為,學習Linux就必須将自己的電腦裝成Linux系統或者必須要有真正的伺服器裝置。而實際上這些是一些機構、書籍或網絡文章給人傳導的錯誤思想和思維。其實,學習Linux最簡單、最實用的環境就是虛拟機環境(例如,通過VMware Workstation等軟體學習)。筆者這樣說的原因有如下幾點。

1)利用虛拟機軟體搭建Linux學習環境簡單,容易上手,最重要的是利用虛拟機模拟出來的Linux與真實的Linux幾乎沒有任何差別。如果購買伺服器動則就要一兩萬元人民币,不是一般的網友所能承受的,而且聲音很大,很費電。如果用PC和筆記本搭建Linux(包括雙系統共存方式),那就完全是Linux環境了,這樣做不但加大了你的學習難度(例如,沒法用Word等記筆記,以及正常浏覽網頁),也與實際的工作環境相差很遠,即南轅北轍了,企業裡運維人員的工作環境絕大多數都是在Windows桌面系統下通過SSH工具(SecureCRT/Xshell)遠端連接配接千百裡之外的Linux伺服器進行管理和維護的。是以,用虛拟機軟體來搭建環境是最接近企業工作環境的。

2)搭建Linux叢集等大規模環境有時需要同時開啟幾台虛拟機(每台虛拟機僅需256~512MB記憶體(CentOS7以上最好是1GB以上)、6~8GB的硬碟空間即可(CentOS7以上最好12GB以上)),此時如果是用伺服器或者自己的電腦安裝Linux,則很難滿足學習要求,購買多台伺服器就更不現實了。事實上,僅僅利用價值四五千元人民币的個人筆記本電腦就可以輕松實作搭建中小規模Linux叢集架構的學習需求。

3)用虛拟機學習,如果電腦組態高一點,那麼可以同時開啟多個Linux虛拟機學習,上班、回家的路上,帶着筆記本電腦即可随時學習,如果是多台真實電腦和伺服器裝置,就沒法移動了。當然有讀者會說可以放機房裡,但這個代價也太大了。大多數學習者很難有這樣的資源。

4)使用虛拟機系統環境,我們可以對虛拟系統随意進行任何的設定和更改操作,甚至可以格式化虛拟機系統硬碟,進行重新分區等操作,而且完全不用擔心會丢掉有用的資料,因為虛拟機是系統上運作的一個虛拟軟體,對虛拟機系統的任何操作都相當于是在操作虛拟機的虛拟機裝置和系統,不會影響電腦上的真實資料。

綜上所述,筆者給大家的建議就是,踏實地用虛拟機學習就足夠了,學習Linux運維,幾乎99.9%的知識都與硬體裝置無關,我們不要為自己設定太多的限制和門檻,那樣會影響學習Linux的進度,進而可能喪失學習Linux的興趣。

當然了,如果在學習的過程中有條件的話可以去接觸一下真正的伺服器裝置。在實際教學中,我們會讓學生接觸到伺服器,不僅可以進行RAID制作,還可以為真實的實體伺服器裝系統。總之一句話,如果沒有裝置,則用電腦上安裝的虛拟機一樣可以搭建逼近工作環境的學習環境;如果有了裝置配合虛拟機學習,那麼能利用好裝置學習則更佳。在實際工作中,絕大多數人員都會使用雲環境提供的虛拟機,運維人員接觸到真實硬體的機會越來越少了。

企業真正伺服器硬體手把手介紹

http://v.qq.com/page/g/x/y/g016789xvxy.html

1.7.3 選擇适合自己的虛拟機軟體

1.選擇适合的虛拟機軟體

如果你使用的是Windows系統,那麼,老男孩推薦你使用VMware WorkStation,如果是MacOS平台則可以選擇Virtual PC,如果你用的是Ubuntu系統,則可以選擇Xen、KVM、VMware(Linux版本)。本書将以在Windows 7系統上安裝VMware WorkStation 12(這裡讀者也可以選擇更高版本即14 PRO版)為例,為大家講解Linux運維技術,同時還會在DELL R710真實伺服器環境上進行測試,其他環境的搭建大同小異,進入到Linux裡面幾乎沒有差别。

2.虛拟機軟體對硬體的要求

虛拟機軟體的原理是利用主控端實體硬體資源虛拟PC裝置,是以對實體機硬體的要求比較高,其中最主要的是記憶體、硬碟和CPU資源。首先,主控端實體記憶體要足夠大,最低要在8GB以上(CentOS7最好是16GB以上),因為在建立虛拟裝置時,要為每個虛拟機配置設定一定的記憶體資源(CentOS7一般最小為1024MB,記憶體設定太小會出現特殊問題)和硬碟空間(預設為10GB以上,實際最好是20GB以上),SSD(固态硬碟)最好,同樣也要配置設定CPU資源,CPU最好是I5以上,例如,為每個虛拟機配置設定一核CPU。當然了,多個虛拟機系統也可以同時占用一核CPU,在日常學習Linux時,如果不進行大量并行安裝軟體等消耗CPU資源的操作,使用虛拟機環境還是非常舒服的。

1.7.4 安裝與使用VMware虛拟機軟體

1.對VMware Workstation版本的建議

表1-3中給出的是選擇VMware Workstation版本的建議,僅為建議,非必須。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

2.虛拟機軟體的安裝

在Windows系統下安裝了适合Windows版本的VMware Workstation之後,就可以在VMware Workstation上建立虛拟機了,之後運作建立的虛拟機,在虛拟機上安裝CentOS Linux作業系統,這個安裝過程與在實際生産環境下的安裝是一樣的。

VMware Workstation虛拟機軟體的安裝很簡單,隻需要按照Windows正常方法持續按“下一步”即可完成,這裡不再講述,如果你遇到了問題可以去前言中尋找筆者為本書建立的問題回報交流群。

1.7.5 建立一個虛拟機實踐

1.建立一個新的虛拟機

1)虛拟機軟體安裝完畢後,輕按兩下桌面上的VMware Workstation圖示或者在開始程式菜單裡找到VMware Workstation圖示以啟動VM應用程式,如圖1-10所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

2)接下來按Ctrl+N快捷鍵(或者選擇菜單欄“檔案”→“建立虛拟機”)建立一個新的虛拟機,此時會出現建立虛拟機向導視窗,如圖1-11所示。

3)在如圖1-11所示的虛拟機建立向導界面中,選擇“自定義(進階)”,即自定義安裝,然後點選“下一步”按鈕繼續,彈出如圖1-12所示的界面。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

4)圖1-12描述了虛拟機硬體相容和虛拟裝置大小限制,在圖1-12右側的“限制”下面,可以發現軟體對要建立的虛拟機的硬體大小會有限制,例如,記憶體最大為64GB,CPU“16個處理器”,磁盤“8TB磁盤大小”等,不過,這些并不會影響我們的學習,保留預設選擇即可。然後點選“下一步”按鈕繼續,此時會出現如圖1-13所示的視窗。

5)在如圖1-13所示的界面中,“為虛拟機選擇如何安裝系統”這一步驟很關鍵,請選擇界面最下面标示的“稍後安裝作業系統”,表示建立虛拟機後不再預設安裝系統了,即建立虛拟機後,我們可以手動選擇鏡像或CD光牒放入虛拟光驅自行安裝,如果選擇了“安裝程式CD光牒映像檔案”則在建立完虛拟機後就會自動安裝系統,這樣做雖然很友善,但是會增加太多的安裝包,并且會自動分區,這樣就不是企業環境安裝的标準了。選擇完畢,然後點選“下一步”按鈕繼續,這時會出現如圖1-14所示的界面。

6)“為虛拟機選擇系統類型及核心版本”也很關鍵,其作用是選擇什麼系統類型以及核心版本進行系統安裝,如果選錯了,則可能無法正确安裝系統。

這裡選擇的是“Linux”系統類型,為“CentOS 64位”系統,是以也可以在系統類型中直接選擇,選擇完畢,然後點選“下一步”按鈕繼續,這時會出現如圖1-15所示的界面。

7)在如圖1-15所示的界面中,要為虛拟機命名并選擇安裝程式的路徑,路徑要選擇大一點的主控端磁盤分區,剩餘空間至少要大于20GB,配置完畢後點選“下一步”按鈕繼續,這時出現的界面如圖1-16所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

8)在如圖1-16所示的界面中,要選擇虛拟機對應的CPU的顆數,以及每個CPU的核數,預設都是1,保持預設選擇即可,我們僅僅是用虛拟機進行學習和實驗,不要求虛拟機裝置資源有多好。點選“下一步”按鈕繼續,這時出現的界面如圖1-17所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

9)“為虛拟機選擇記憶體資源大小”也很關鍵,預設選擇的虛拟機記憶體大小為1024MB,對于CentOS7來說正好合适。之後,點選“下一步”按鈕繼續,這時出現的界面如圖1-18所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

10)“為虛拟機選擇網絡類型”極其關鍵,VMware虛拟機常見的網絡類型有bridged(橋接)、NAT(位址轉換)、host-only(僅主機)3種,在分析如何選擇之前,先向大家簡單介紹下這三種網絡類型。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備
帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備
帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

筆者的寫書環境是辦公室環境,有實體路由器,不經常更換網絡環境,是以,這裡選擇以橋接模式為例為大家講解(如圖1-22所示)。在選擇了網絡類型之後,點選“下一步”按鈕繼續,此時出現的界面如圖1-23所示。

11)在如圖1-23所示的界面中選擇虛拟機的I/O控制器類型,采用預設類型即可,選擇完畢,點選“下一步”按鈕繼續,此時出現的界面如圖1-24所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

12)在選擇虛拟機磁盤類型時,采用預設的SCSI即可(VM高版本會有SAS選項,不過建議不要選該選項),選擇完畢後,點選“下一步”按鈕繼續,會出現如圖1-25所示的界面。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

13)在選擇虛拟機使用的磁盤時,采用預設的“建立新虛拟磁盤”即可建立一個虛拟磁盤,選擇完畢後,點選“下一步”按鈕繼續,會彈出如圖1-26所示的界面。

14)在選擇虛拟機使用的磁盤容量時,仍然是采用預設的20GB的配置,選擇完畢後,點選“下一步”按鈕繼續,此時出現的界面如圖1-27所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

15)如圖1-28所示的界面顯示的是配置的虛拟機的所有選項資訊,如果與前面選擇一緻的話,則點選“下一步”按鈕繼續,出現的界面如圖1-28所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

16)圖1-28為顯示配置的虛拟機的所有選項資訊,可以通過滾動條下拉檢視,點選左下的“自定義硬體”按鈕可以自定義添加其他硬體,例如磁盤、網卡等,這裡保留預設。選擇完畢後,點選“下一步”按鈕繼續,會出現如圖1-29所示的界面。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

17)圖1-29所示的界面中展示的是建立虛拟機後的界面資訊,左邊是虛拟機的名稱,右邊是虛拟機的實際配置。在這個視窗中,可以為建立好的虛拟機配置光驅,将CentOS鏡像檔案(CentOS-7-x86_64-DVD-1810,需要單獨下載下傳,如果阿裡雲提供的位址沒有CentOS7.6了,那麼下載下傳更高的7系列版本也可以,隻要是7系列都可以)放到光驅裡,就可以啟動虛拟機安裝Linux系統了。選擇視窗右邊的光驅選項,會出現如圖1-30所示的界面。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

18)将CentOS7.6 ISO鏡像檔案載入光驅,接下來就隻剩下啟動虛拟機安裝系統了。點選“開啟虛拟機”即可,如圖1-31所示。

帶你讀《跟老男孩學Linux運維:核心基礎篇(上)(第2版)》之二:Linux系統介紹與環境搭建準備第1章 Linux系統介紹與環境搭建準備

到此為止,VMware虛拟機的準備工作就全部做完了,第2章将為大家講解安裝Linux系統的知識。

1.8 本章重點

1)了解什麼是作業系統以及作業系統簡單原理圖。

2)了解Unix/Linux的發展曆史。

3)了解市面上常見的Unix系統版本。

4)了解Unix及Linux誕生發展的幾個關鍵人物。

5)重點了解GNU、GPL知識。

6)了解Linux系統的特點。

7)了解Linux系統的常見發行版本,不同場景選擇。

8)重點了解CentOS和Red Hat的差別和聯系。

9)了解CentOS各個版本的應用場景及企業應用情況。

10)學會搭建學習Linux的環境。

注意:最好是能口頭表達出上述了解的内容。

1.9 本章相關問題

1)請較長的描述GNU的相關知識和曆史事件。

2)請描述什麼是GPL?

3)企業工作中如何選擇各Linux發行版?

4)Red Hat Linux和CentOS Linux有什麼差別和聯系?

5)請說出3個以上你認為Linux受歡迎的特點。

1.10 本章參考資料

繼續閱讀