## 1.3 Linux當前應用的角色
了解了什么是 Linux 之后,再來談談,那目前 Linux 用在哪里呢?由于Linux kernel實在是非常的小巧精致,可以在很多強調省電以及較低硬件資源的環境下面執行; 此外,由于Linux distributions整合了非常多非常棒的軟件(不論是專利軟件或自由軟件), 因此也相當適合目前個人計算機的使用呢!傳統上,Linux常見的應用可約略分為企業應用與個人應用兩方面,但這幾年很流行的云端運算機制中, 讓 Linux 似乎又更有著力點啰!
### 1.3.1 企業環境的利用
企業對于數碼化的目標在于提供消費者或員工一些產品方面的信息 (例如網頁介紹),以及整合整個企業內部的數據統一性 (例如統一的帳號管理/文件管理系統等)。另外,某些企業例如金融業等,則強調在數據庫、安全強化等重大關鍵應用。 學術單位則很需要強大的運算能力等。所以企業環境運用Linux作些什么呢?
* 網絡服務器:
這是Linux當前最熱門的應用了!承襲了Unix高穩定性的良好傳統,Linux上面的網絡功能特別的穩定與強大! 此外,由于GNU計劃與Linux的GPL授權模式,讓很多優秀的軟件都在Linux上面發展, 且這些在Linux上面的服務器軟件幾乎都是自由軟件!因此,做為一部網絡服務器,例如WWW, Mail Server, File Server等等,Linux絕對是上上之選!當然,這也是Linux的強項!由于 Linux server 的需求強烈,因此許多硬件廠商推出產品時, 還得要特別說明有支持的 Linux distributions 呢!方便提供企業采購部門的規劃喔!例如下面的鏈接可以瞧瞧:
* Dell 公司的 Server 對 OS 的支持度:
[http://www.dell.com/support/contents/tw/en/twbsd1/article/Product-Support/
Self-support-Knowledgebase/enterprise-resource-center/server-operating-system-support](http://www.dell.com/support/contents/us/en/04/article/Product-Support/Self-support-Knowledgebase/enterprise-resource-center/server-operating-system-support)
* HP 公司的支持:
[http://www8.hp.com/us/en/business-services/it-services.html?compURI=1078888#tab=TAB1](http://www8.hp.com/us/en/business-services/it-services.html?compURI=1078888#tab=TAB1)
* IBM 公司的支持:
[http://www-03.ibm.com/systems/hardware/browse/linux/](http://www-03.ibm.com/systems/hardware/browse/linux/)
* VMWare 的虛擬化支持:
[https://www.vmware.com/support/ws55/doc/intro_supguest_ws.html](https://www.vmware.com/support/ws55/doc/intro_supguest_ws.html)
從上面的幾個大廠的 Linux 支持情況來看,目前 (2015) 支持度比較廣泛的依舊是 Red Hat 以及 SuSU 兩個大廠喔! 提估給企業采購的時候參考參考!

**Tips** 前一陣子參加一個座談會,會上許多企業界的前輩們在聊,如果想要選擇某個 Linux distribution 時,哪個 distribution 會是企業采購時的最愛呢? 與會的朋友說,要采購嗎?看看服務器大廠對于該 distribution 的支持度就知道了!答案是什么?就是上面許多鏈接的結果啰! ^_^
* 關鍵任務的應用(金融數據庫、大型企業網管環境):
由于個人計算機的性能大幅提升且價格便宜,所以金融業與大型企業的環境為了要精實自己機房的機器設備, 因此很多企業漸漸的走向Intel相容的x86主機環境。而這些企業所使用的軟件大多使用Unix操作系統平臺的軟件, 總不能連過去發展的軟件都一口氣全部換掉吧!所以啰,這個時候符合Unix操作系統標準并且可以在x86上運行的Linux就漸漸嶄露頭角了!^_^
目前很多金融業界都已經使用Linux做為他們的關鍵任務應用。所謂的關鍵任務就是該企業最重要的業務啦! 舉例來說,金融業最重要的就是那些投資者、帳戶的數據了,這些數據大多使用數據庫系統來作為存取接口, 這些數據很重要吧!很多金融業將這么重要的任務交給了Linux了!你說Linux厲不厲害啊?
* 學術機構的高性能運算任務:
學術機構的研究常常需要自行開發軟件,所以對于可作為開發環境的操作系統需求非常的迫切!舉例來說, 非常多技職體系的科技大學就很需要這方面的環境,好進行一些畢業專題的制作呢! 又例如工程界流體力學的數值模式運算、娛樂事業的特效功能處理、軟件開發者的工作平臺等等。 由于Linux的創造者本身就是個計算機性能癖,所以Linux有強大的運算能力;并且Linux具有支持度相當廣泛的GCC編譯軟件, 因此Linux在這方面的優勢可是相當明顯的!
舉個鳥哥自己的案例好了,鳥哥之前待的研究室有跑一套空氣品質模式的數值仿真軟件。 這套軟件原本只能在Sun的SPARC機器上面跑。后來該軟件轉向Linux操作系統平臺發展, 鳥哥也將自己實驗室的數值模式程序由Sun的Solaris平臺移植到Linux上面呢! 據美國環保署內部人員的測試,發現Linux平臺的整體硬件費用不但比較便宜(x86系統嘛!)而且速度還比較快呢!
另外,為了加強整體系統的性能,叢集計算機系統(Cluster)的平行運算能力在近年來一直被拿出來討論[[11]](#ps11)。 所謂的平行運算指的是“將原本的工作分成多份,然后交給多部主機去運算,最終再將結果收集起來”的一種方式。 由于通過高速網絡使用到多部主機,將能夠讓原本需要很長運算時間的工作,大幅的降低等待的時間! 例如中央氣象局的氣象預報就很需要這樣的系統來幫忙!而Linux操作系統則是這種架構下相當重要的一個環境平臺呢!

**Tips** 由于服務器的 CPU 數量可以增加許多,而且也能夠達到比較省電的功能,因此鳥哥最近更換了昆山科大資傳系的模式運算服務器組, 通過 20 核心 40 超執行續的以及 12 核心 24 超執行續的兩部系統,搭配 10G 網卡來處理模式的運行!用的是本書談到的 CentOS Linux, 跑得模式是美國環保署公布,現行于世界最流行的 CMAQ 空品模式喔!
### 1.3.2 個人環境的使用
你知道你平時接觸的電子用品中,哪些咚咚里面有Linux系統存在呢?其實相當的多呢!我們就來談一談吧!
* 桌面電腦:
所謂的桌面電腦,其實就是你我在辦公室使用的計算機啦。一般我們稱之為Desktop的系統。那么這個 Desktop 的系統平時都在做什么呢?大概都是這些工作吧:
* 上網瀏覽+實時通訊(Skype, FB, Google, Yahoo...);
* 文書處理;
* 網絡接口之公文處理系統;
* 辦公室軟件(Office Software)處理數據;
* 收發電子郵件;
想進行這些計算機工作時,你的Desktop環境需要什么咚咚?很簡單,“就是需要窗口”! 因為上網瀏覽、文書編排的所見即所得接口,以及電子公文系統等等, 如果沒有窗口接口的輔助,那么將對使用者造成很大的困擾。而眾所皆知的, Linux早期都是由工程師所發展的,對于窗口接口并沒有很需要,所以造成Linux不太友好的印象。
好在,為了要強化桌面電腦的使用率,Linux與X Window System結合了! 要注意的是,X Window System僅只是Linux上面的一套軟件, 而不是核心喔!所以即使X Window掛了,對Linux也可能不會有直接的影響呢! 更多關于 X window system 的詳細信息我們留待[第二十三章](../Text/index.html)再來介紹。
近年來在各大社群的團結合作之下,Linux的窗口系統上面能夠跑的軟件實在是多的嚇人!而且也能夠應付的了企業的辦公環境! 例如美觀的KDE與GNOME窗口接口,搭配可相容微軟Office的 OpenOffice / LibreOffice ([https://www.openoffice.org/zh-cn/](https://www.openoffice.org/zh-cn/), [https://zh-cn.libreoffice.org/](https://zh-cn.libreoffice.org/)) 等軟件, 這些自由的辦公室軟件包含了文書處理、電子試算表、簡報軟件等等,功能齊全啊!然后配合功能強大速度又快的Firefox瀏覽器, 以及可下載信件的雷鳥(ThunderBird)軟件(類似微軟的Outlook Express),還有可連上多種實時通訊的Pidgin! Linux能夠做到企業所需要的各項功能啦!

**Tips** 鳥哥真的垂垂老已~前一陣子 (2014) 上課時,跟學生說:“各位啊!你們考取的證照也轉一份給老師來備份嘛!用 emai 寄給鳥哥喔!” 結果有幾個學生竟然舉手說:“老師!我知道 email 啊!不過,從來沒有用過 email 寄附件耶!所以才沒有傳給你啊!”哇!! 瞎密?“那你們怎么傳送文件啊?用 FTP 喔?”鳥哥問,他說“沒啊!就用 FB 或者是 Line 啊!或者 dropbox!真沒用過 email 耶!”...時代不同了...
* 手持系統(PDA、手機):
自從 iphone4 在 2010 年面世之后,整個手機市場開始大搬風!智能手機市場將原本商務用的 PDA 市場整個吃掉!然后原本在 2010 年前后很熱門的小筆記本也被平板電腦打趴了!在這個潮流下,Google 成立了開放手機聯盟 (Open Handset Alliance),并且推出 Android 手機專用操作系統! 而 Android 其實就是 Linux 核心的一支,只是專門用來針對手機/平板這類的 ARM 機器所設計的 [[12]](#ps12)!
2015 最新的 Android 系統 5.x 使用的就是 Linux kernel 3.4.x 版本,另外,調查中也顯示,從 2013 年之后,Android 系統已經是全球最多人使用的手機系統。也就是說,現在手機市場的主流操作系統是 Linux 分支出來的 Android 喔! 那怎么能說 Linux 很少人用呢?哈哈!天天都在用耶各位!

**Tips** 如果你的手機是 Android 系統的話,請拿出來,然后點選“設置”--> “關于(手機)” --> “軟件信息”,你就會看到 Android 版本,然后又點選“更多”, 這時你就會看到類似 3.4.10-xxx 的代號,那是什么?查一查上頭提到的 Linux 版本,就知道那是啥鬼東西啰! ^_^
* 嵌入式系統:
在[第零章](../Text/index.html)當中我們談到過硬件系統, 而要讓硬件系統順利的運行就得要撰寫合適的操作系統才行。那硬件系統除了我們常看到的計算機之外, 其實家電產品、PDA、手機、數碼相機以及其他微型的計算機配備也是硬件系統啦! 這些計算機配備也都是需要操作系統來控制的!而操作系統是直接嵌入于產品當中的,理論上你不應該會更動到這個操作系統, 所以就稱為嵌入式系統啦!
包括路由器、防火墻、手機、IP分享器、交換器、機器人控制芯片、家電用品的微計算機控制器等等,都可以是Linux操作系統喔! [酷學園](http://phorum.study-area.org/)內的Hoyo大大就曾經介紹過如何在嵌入式設備上面載入Linux! 你桌面上用來備份的 NAS 說不定內部也是精簡化過的 Linux 系統啊!
雖然嵌入式設備很多,大家也想要轉而使用Linux操作系統,不過在臺灣,這方面的人才還是太少了! 要玩嵌入式系統必須要很熟悉Linux Kernel與驅動程序的結合才行!這方面的學習可就不是那么簡單喔! ^_^
### 1.3.3 云端運用
自從個人計算機的 CPU 內置的核心數越來越多,單一主機的能力太過強大,導致硬件資源經常閑置,這個現象讓虛擬化技術得以快速發展! 而由于硬件資源大量集中化,然后行動辦公室之類的需求越來越多,因此讓辦公數據集中于云程序中,讓企業員工僅須通過端點設備連線到云去取用運算資源, 這樣就變成無時無地都可以辦公啦 (其實很慘...永遠不得休息啊!真可憐~)!
這就是三國演義里面談到的“天下大勢,分久必合、合久必分”的名言啊! 從(1)早期的貴森森的大型主機分配數個終端機的集中運算機制,到 (2)2010 年前個人計算機運算能力增強后,大部分的運算都是在臺式機或筆記本上自行達成, 再也不需要跑去大型主機取得運算資源了!到現在(3)由于行動設備的發達,產生的龐大數據需要集中處理,因而產生云端系統的需求!讓信息/資源集中管理! 這不是分分合合的過程嗎?^_^
* 云程序
許多公司都有將資源集中管理的打算,之前參與一場座談會,有幸遇到阿里巴巴的架構師,鳥哥偷偷問他說,他們機房里面有多少計算機主機啊? 他說不多!差不多才 2 萬部主機而已...鳥哥正在搞的可提供 200 個左右的虛擬機的系統,使用大約 7 部主機就覺得麻煩了,他們家至少有 2 萬部耶! 這么多的設備底層使用的就是 Linux 操作系統來統一管理。
另外,除了公司自己內部的私有云之外,許多大型網際網絡供應商 (ISP) 也提供了所謂的公有云來讓企業用戶或個人用戶來使用 ISP 的虛擬化產品。 因此,如果公司內部缺乏專業管理維護人才,很有可能就將自家所需要的關鍵應用如 Web、Mail、系統開發環境等操作系統交由 ISP 代管, 自家公司僅須遠端登陸該系統進行網站內容維護或程序開發而已。那這些虛擬化后的系統,也經常是 Linux 啊!因為跟上頭企業環境利用提到的功能是相同的!
所以說云程序的底層就是 Linux ,而云程序搭建出來的虛擬機,內容也是 Linux 操作系統哩!用的越來越多啊!

**Tips** 所謂的“虛擬化”指的是:在一部實體主機上面仿真出多個邏輯上完全獨立的硬件,這個假的虛擬出來的硬件主機,可以用來安裝一部邏輯上完全獨立的操作系統! 因此,通過虛擬化技術,你可以將一部實體主機安裝多個同時運行的操作系統 (非多重開機),以達到將硬件資源完整利用的效果。 很多 ISP 就是通過販售這個虛擬機的使用權來賺錢的喔!
* 端設備
既然運算資源都集中在云里面了,那我需要連線到云程序的設備應該可以越來越輕量吧?當然沒錯!所以智能手機才會這么熱門啊! 很多時候你只要有智能手機或者是平板,連線到公司的云里面去,就可以開始辦公了哩!
此外,還有更便宜的端點設備喔!那就是近年來很熱門又流行的樹莓派 (Raspberry Pi) 與香蕉派 (Banana Pi),這兩個小東西售價都不到 50 美元, 有的甚至臺幣 1000 塊有找!這個 Raspberry Pi 其實就是一部小型的計算機,只要加上 USB 鍵盤、鼠標與 HDMI 的屏幕,立刻就是可以讓小朋友學習程序語言的環境! 如果加上通過網絡去取得具有更強大運算資源的云端虛擬機,不就可以做任何事了嗎?所以,端點設備理論上會越來越輕量化的!

**Tips** 鳥哥近幾年來做的主要研究,就是通過一組沒很貴的 server 系統達成打開多個虛擬機的環境,然后讓學生可以在教室利用類似 banana pi 的設備來連線到服務器, 這時學生就可以通過網絡來取得一套完整的操作系統,可以拿來上課、回家實作練習、上機考試等等!相當有趣!鳥哥稱為虛擬計算機教室! 而 server 與 banana pi 的內部操作系統當然就是 Linux 啊!
- 鳥哥的Linux私房菜:基礎學習篇 第四版
- 目錄及概述
- 第零章、計算機概論
- 0.1 電腦:輔助人腦的好工具
- 0.2 個人電腦架構與相關設備元件
- 0.3 數據表示方式
- 0.4 軟件程序運行
- 0.5 重點回顧
- 0.6 本章習題
- 0.7 參考資料與延伸閱讀
- 第一章、Linux是什么與如何學習
- 1.1 Linux是什么
- 1.2 Torvalds的Linux發展
- 1.3 Linux當前應用的角色
- 1.4 Linux 該如何學習
- 1.5 重點回顧
- 1.6 本章習題
- 1.7 參考資料與延伸閱讀
- 第二章、主機規劃與磁盤分區
- 2.1 Linux與硬件的搭配
- 2.2 磁盤分區
- 2.3 安裝Linux前的規劃
- 2.4 重點回顧
- 2.5 本章習題
- 2.6 參考資料與延伸閱讀
- 第三章、安裝 CentOS7.x
- 3.1 本練習機的規劃--尤其是分區參數
- 3.2 開始安裝CentOS 7
- 3.3 多重開機安裝流程與管理(Option)
- 3.4 重點回顧
- 3.5 本章習題
- 3.6 參考資料與延伸閱讀
- 第四章、首次登陸與線上求助
- 4.1 首次登陸系統
- 4.2 文字模式下指令的下達
- 4.3 Linux系統的線上求助man page與info page
- 4.4 超簡單文書編輯器: nano
- 4.5 正確的關機方法
- 4.6 重點回顧
- 4.7 本章習題
- 4.8 參考資料與延伸閱讀
- 第五章、Linux 的文件權限與目錄配置
- 5.1 使用者與群組
- 5.2 Linux 文件權限概念
- 5.3 Linux目錄配置
- 5.4 重點回顧
- 5.5 本章練習
- 5.6 參考資料與延伸閱讀
- 第六章、Linux 文件與目錄管理
- 6.1 目錄與路徑
- 6.2 文件與目錄管理
- 6.3 文件內容查閱
- 6.4 文件與目錄的默認權限與隱藏權限
- 6.5 指令與文件的搜尋
- 6.6 極重要的復習!權限與指令間的關系
- 6.7 重點回顧
- 6.8 本章習題:
- 6.9 參考資料與延伸閱讀
- 第七章、Linux 磁盤與文件系統管理
- 7.1 認識 Linux 文件系統
- 7.2 文件系統的簡單操作
- 7.3 磁盤的分區、格式化、檢驗與掛載
- 7.4 設置開機掛載
- 7.5 內存交換空間(swap)之創建
- 7.6 文件系統的特殊觀察與操作
- 7.7 重點回顧
- 7.8 本章習題 - 第一題一定要做
- 7.9 參考資料與延伸閱讀
- 第八章、文件與文件系統的壓縮,打包與備份
- 8.1 壓縮文件的用途與技術
- 8.2 Linux 系統常見的壓縮指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系統的備份與還原
- 8.5 光盤寫入工具
- 8.6 其他常見的壓縮與備份工具
- 8.7 重點回顧
- 8.8 本章習題
- 8.9 參考資料與延伸閱讀
- 第九章、vim 程序編輯器
- 9.1 vi 與 vim
- 9.2 vi 的使用
- 9.3 vim 的額外功能
- 9.4 其他 vim 使用注意事項
- 9.5 重點回顧
- 9.6 本章練習
- 9.7 參考資料與延伸閱讀
- 第十章、認識與學習BASH
- 10.1 認識 BASH 這個 Shell
- 10.2 Shell 的變量功能
- 10.3 命令別名與歷史命令
- 10.4 Bash Shell 的操作環境:
- 10.5 數據流重導向
- 10.6 管線命令 (pipe)
- 10.7 重點回顧
- 10.8 本章習題
- 10.9 參考資料與延伸閱讀
- 第十一章、正則表達式與文件格式化處理
- 11.1 開始之前:什么是正則表達式
- 11.2 基礎正則表達式
- 11.3 延伸正則表達式
- 11.4 文件的格式化與相關處理
- 11.5 重點回顧
- 11.6 本章習題
- 11.7 參考資料與延伸閱讀
- 第十二章、學習 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 簡單的 shell script 練習
- 12.3 善用判斷式
- 12.4 條件判斷式
- 12.5 循環 (loop)
- 12.6 shell script 的追蹤與 debug
- 12.7 重點回顧
- 12.8 本章習題
- 第十三章、Linux 帳號管理與 ACL 權限設置
- 13.1 Linux 的帳號與群組
- 13.2 帳號管理
- 13.3 主機的細部權限規劃:ACL 的使用
- 13.4 使用者身份切換
- 13.5 使用者的特殊 shell 與 PAM 模塊
- 13.6 Linux 主機上的使用者訊息傳遞
- 13.7 CentOS 7 環境下大量創建帳號的方法
- 13.8 重點回顧
- 13.9 本章習題
- 13.10 參考資料與延伸閱讀
- 第十四章、磁盤配額(Quota)與進階文件系統管理
- 14.1 磁盤配額 (Quota) 的應用與實作
- 14.2 軟件磁盤陣列 (Software RAID)
- 14.3 邏輯卷軸管理員 (Logical Volume Manager)
- 14.4 重點回顧
- 14.5 本章習題
- 14.6 參考資料與延伸閱讀
- 第十五章、例行性工作調度(crontab)
- 15.1 什么是例行性工作調度
- 15.2 僅執行一次的工作調度
- 15.3 循環執行的例行性工作調度
- 15.4 可喚醒停機期間的工作任務
- 15.5 重點回顧
- 15.6 本章習題
- 第十六章、程序管理與 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件與程序
- 16.5 SELinux 初探
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考資料與延伸閱讀
- 第十七章、認識系統服務 (daemons)
- 17.1 什么是 daemon 與服務 (service)
- 17.2 通過 systemctl 管理服務
- 17.3 systemctl 針對 service 類型的配置文件
- 17.4 systemctl 針對 timer 的配置文件
- 17.5 CentOS 7.x 默認啟動的服務簡易說明
- 17.6 重點回顧
- 17.7 本章習題
- 17.8 參考資料與延伸閱讀
- 第十八章、認識與分析登錄文件
- 18.1 什么是登錄文件
- 18.2 rsyslog.service :記錄登錄文件的服務
- 18.3 登錄文件的輪替(logrotate)
- 18.4 systemd-journald.service 簡介
- 18.5 分析登錄文件
- 18.6 重點回顧
- 18.7 本章習題
- 18.8 參考資料與延伸閱讀
- 第十九章、開機流程、模塊管理與 Loader
- 19.1 Linux 的開機流程分析
- 19.2 核心與核心模塊
- 19.3 Boot Loader: Grub2
- 19.4 開機過程的問題解決
- 19.5 重點回顧
- 19.6 本章習題
- 19.7 參考資料與延伸閱讀
- 第二十章、基礎系統設置與備份策略
- 20.1 系統基本設置
- 20.2 服務器硬件數據的收集
- 20.3 備份要點
- 20.4 備份的種類、頻率與工具的選擇
- 20.5 鳥哥的備份策略
- 20.6 災難復原的考慮
- 20.7 重點回顧
- 20.8 本章習題
- 20.9 參考資料與延伸閱讀
- 第二十一章、軟件安裝:源代碼與 Tarball
- 20.1 開放源碼的軟件安裝與升級簡介
- 21.2 使用傳統程序語言進行編譯的簡單范例
- 21.3 用 make 進行宏編譯
- 21.4 Tarball 的管理與建議
- 21.5 函數庫管理
- 21.6 檢驗軟件正確性
- 21.7 重點回顧
- 21.8 本章習題
- 21.9 參考資料與延伸閱讀
- 第二十二章、軟件安裝 RPM, SRPM 與 YUM
- 22.1 軟件管理員簡介
- 22.2 RPM 軟件管理程序: rpm
- 22.3 YUM 線上升級機制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重點回顧
- 22.6 本章習題
- 22.7 參考資料與延伸閱讀
- 第二十三章、X Window 設置介紹
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析與設置
- 23.3 顯卡驅動程序安裝范例
- 23.4 重點回顧
- 23.5 本章習題
- 23.6 參考資料與延伸閱讀
- 第二十四章、Linux 核心編譯與管理
- 24.1 編譯前的任務:認識核心與取得核心源代碼
- 24.2 核心編譯的前處理與核心功能選擇
- 24.3 核心的編譯與安裝
- 24.4 額外(單一)核心模塊編譯
- 24.5 以最新核心版本編譯 CentOS 7.x 的核心
- 24.6 重點回顧
- 24.7 本章習題
- 24.8 參考資料與延伸閱讀