從這裡開始學習 Linux

Rocloud發表於2014-05-01

從這裡開始學習 Linux

大致瞭解一些基本概念

本文將向您推薦一些資料,這些資料有助於您開始使用 Linux。Linux 不是 UNIX,儘管它與 UNIX 非常相似。IBM 在 Linux 和 UNIX 領域(以及其它許多領域)都有很多產品。

developerWorks 工作人員EMC

2010 年 9 月 21 日

  • +內容

Linux 究竟是什麼?

用最簡單的話說,Linux 是一個作業系統。它是一位赫爾辛基大學學生 Linus Torvalds(Linux 是 Linus's UNIX 的縮寫)在 1991 年 10 月創造的。Linux 本身實際上只是其核心;它實現了多工和多使用者功能,管理硬體,分配記憶體並且使應用程式能夠執行。

對於任何一種作業系統,普通使用者絕對沒有足夠的興趣去了解如核心內部細節這樣的內容。只有真正致力於此的人 — 那些放棄個人生活或受僱做這種工作的人 — 才願意探索這些複雜的東西。

但即使您從未親身深入研究過核心,那麼也別擔心,您可以很容易地僱用一家承包商或公司來為您做這項工作;要對一個專有系統進行這樣的修改常常較困難,花費也比較大。

對於初學者,有關核心要記住的最重要的事是:帶奇數的核心版本(即 2.3、2.5、2.7 等)是實驗性的開發版核心。穩定的發行版核心的版本號是偶數(即 2.4、2.6、2.8 等)。

典型的 Linux 分發版(distribution)包含 Linux 核心,但還包含許多應用程式和工具。總的說來,Linux 分發版中出現的許多系統級別和使用者級別的工具都來自自由軟體基金會(Free Software Foundation)的 GNU 專案(GNU 是“GNU's Not UNIX”的縮寫)。

Linux 核心和 GNU 工具套件都在 GNU 通用公共許可證(GNU General Public License,GNU GPL)下發行。如果您還不熟悉 GNU GPL,那麼理解它的最佳方法就是去閱讀它。冒著可能會遺漏某些重要方面的風險,我這樣概括 GNU GPL:它是一種使計算機程式碼可自由使用的方式,使用其程式碼的使用者可隨意使用和實驗它。

  • 我們強烈推薦 Linus Torvalds 以前的同事 Lars Wirzenius 所寫的一篇很有趣的對 Linux 歷史的概括。
  • Linux Online提供中立的 Linux 新聞和資訊。
  • “Linux 在 IBM”的 Linux Line提供有關合作夥伴的新聞、Linux 學習資源、成功案例和新的進展 — 所有這些都是 IBM Linux 所關注的。
  • IBM Linux 技術中心(IBM Linux Technology Center)直接與 Linux 社群協同工作;它的網站跟蹤 IBM 對 Linux 以及相關的開發社群作出的貢獻。

UNIX 和 Linux 有什麼不同?

UNIX(此名稱是源自以前的“Multics”作業系統)於 1969 年在 AT&T 貝爾實驗室被創造出來,它是一種健壯的、靈活的和對開發人員友好的計算環境。儘管 UNIX 最初是為 Digital Equipment Corporation(DEC)的 PDP 微型計算機系列編寫的,但它卻成為最受歡迎的多使用者通用作業系統,並已在所有計算領域 — 甚至包括曾一度被大型機壟斷的領域 — 佔據主導地位。

UNIX 和 IBM

IBM 在 Linux 和 UNIX 領域(以及許多其它領域)都有產品。

歷經 20 多年的發展,UNIX 已經開始 — 至少在某些領域 — 被 Linux 超越。Linux 不是 UNIX;它只是非常象 UNIX。對於有些任務,您需要 Linux — 對於其它任務,您仍需要 UNIX。UNIX 和 Linux 可以在一起非常協調地工作,編寫得好的程式可以非常容易地在這兩個系統之間進行移植。有關 UNIX 在 IBM(UNIX at IBM)的更多資訊,請參閱下面一些站點。

  • 在軟體方面,您可以瞭解有關 IBM 的 AIX 5L UNIX作業系統的更多資訊。
  • IBM 開發者園地入口網站為使用者提供最佳實踐和技巧。特別地, IBM eServer 開發者園地有介紹硬體和軟體的文章、產品幫助和參考資料,所涉及的 IBM 伺服器硬體從基於 Intel 的機器到大型機,軟體從 Linux 和 UNIX 到 z/OS,一應俱全。
  • z/OS UNIX 系統組有一頁介紹由 IBM 員工以及由社群開發的 免費 UNIX 工具和小玩意
  • 要了解有關 Multics(Multiplexed Information and Computing Service,多路資訊和計算服務)的更多資訊,請訪問 Multics 主頁

為什麼 Linux 很重要?

因為它是自由軟體,通過 GNU 通用公共許可證授權,Linux 使程式設計師無需在每次開發新專案時都要不斷重新設計操作層。打個比方,GNU 的系列工具就好比免版稅的磚塊和灰泥,您可以用它們構建獨立的專案。自由軟體的批評者們常常擔心自由軟體的自由和低成本會將導致一場計算行業的經濟災難。然而,自由軟體對計算領域的影響只不過象(不然的話更象)古騰堡(Gutenberg)的印刷機對文字世界的影響一樣。

  • GNU 通用公共許可證說明了自由軟體使用者所享有的自由和要承擔的責任。
  • 在 自由軟體基金會(Free Software Foundation,FSF)網站,您可以閱讀有關自由軟體的“思想”並且可以找到大量可下載的文件和軟體包。
  • IBM 公共許可證(IBM Public License,IPL)也是一個自由軟體許可證。它是在 FSF 創始人 Richard Stallman 的幫助下建立的。
  • IBM developerWorks 的 開放原始碼專案專區提供了在開放和/或自由許可證下發行的下載。

用 Linux 能做什麼?

您希望用 Linux 系統做什麼將決定您想要什麼樣的 Linux 系統,以及在開始使用該系統之前要對它有多深的理解。

Linux 是進行核心研究、學習 UNIX 或學習程式設計的絕佳學習平臺;有許多工具和應用程式可用來玩遊戲、進行桌面排版或者只是閒來無事發一下電子郵件和瀏覽 Web。

它也是開放和封閉式生產系統的絕佳平臺,因為可自由地對其進行最大程度的定製。Linux 可以作為各種事物的平臺,從中介軟體到嵌入式計算和群集,從並行超級計算機到小玩意兒。IBM 已經參與了製造在 Linux 上執行的收銀機的專案,以及製造 Linux 手錶的專案。其他開發人員已經在手機、Sony PlayStation、TiVo 和 Sharp Zaurus 上使用了 Linux。

儘管 GNU 通用公共許可證要求將修改過的程式碼釋出給使用該程式碼的客戶,但它不要求將所有修改後的程式碼都發布給公眾(這是某些自由軟體的批評者沒有領會的關鍵一點)。的確,對於基於 Linux 的收銀機,把程式碼釋出給大眾在安全性上完全是一種冒險。GNU GPL 只要求使用程式碼的客戶可以獲得修改後的程式碼。

  • IBM developerWorks Linux 專區是一個不可缺少的教程與文章資源,裡面介紹了 Linux 的所有知識,從基礎知識到高階程式設計和部署。
  • 概念驗證 手錶上的 Linux專案是一項由 IBM Research 開發的非常流行且廣受歡迎的專案。
  • 檢視 IBM 的智慧自動售貨機
  • 從 Linux at IBM入口網站頁面瞭解令人振奮的 Linux 專案和隨需應變的計算。
  • Linux Services Overview著重描述 IBM 的 Linux 解決方案,並專門關注電子商務的使用和應用程式。
  • IBM 全球服務為您提供諮詢和支援;它的服務無所不含,從實現新安裝到遷移或更新舊安裝。在 Linux services頁面上了解 IGS 在 Linux 領域所做的工作,或者通過檢視“Linux 在 IBM”的 案例研究,看看它最近提供了什麼樣的解決方案。

如何開始使用 Linux?

如果完全不瞭解 Linux,或者正在使用 Linux 作為桌面作業系統,那麼您至少需要學習一些有關係統管理和安全性的基本知識。和試圖將這些任務自動化的商業性個人作業系統不同,Linux 並不承諾手把手幫助您,也不承諾跟在您後面做一些清理工作:您必須自己管理系統。幸運的是,基本的維護和基本的安全性都很簡單。在許多方面,現在的 Linux 和 UNIX 管理要比流行的商業性個人作業系統的管理容易得多,因為前者更透明。

儘管 Linux 的確有幾個視窗環境可讓您執行管理,但控制系統最直接的方法是使用命令列。構建在命令列環境結構之中的是大量的命令和數種基於文字的幫助系統。

在 Web 上,在現實世界中,有許多資源可以幫助您開始使用 Linux。有許多專門針對這一主題的網站、文章和書籍,Linux 使用者組(Linux User Groups,也稱為 LUG)在世界各個國家和城市舉行會議 — 眾所周知,他們對新使用者也非常友好。

如何在應用程式開發中使用 Linux?

Linux 是作為程式設計平臺的絕佳選擇。它符合 GCC,這意味著您可以使用 GNU 專案出色的程式設計與除錯工具套件 — 絕對免費,而且享有 GNU GPL 保證的所有自由。商業性程式設計軟體包和商業性作業系統一樣,要花很多錢。是的,某些專案常常需要它們,而它們也物有所值,但對於新手或學習程式設計的人 — 以及某些職業人士 — 自由軟體絕對是不可替代的。如果您正在使用 Linux 作為開發平臺,請不要跳過學習管理和安全性這第一步。不能掌握自己的計算機的程式設計師實在是愚蠢。

  • IBM 拿出十億美元支援 Linux 的行動成了頭條新聞;它對 Linux 開發人員的支援旨在使應用程式程式設計的工作變得更容易。不管您的專案是普通專案還是位於前沿的專案,
  • UnitedLinux 公共程式碼庫承諾使 Linux 上的程式設計變得更簡單。
  • IBM developerWorks 線上時事通訊:技術版本專門為您提供與最新技術和開發保持同步所需的文章和資訊。
  • IBM 國際技術支援組織(International Technical Support Organization,ITSO)推出的 IBM 紅皮書提供類似的服務。您將會特別喜歡涉及方方面面的 線上提示和技巧

在 Linux 上可以使用哪些程式語言?

除了象 Fortran 和 C/C++ 這樣一直流行的傳統程式語言,許多指令碼和其它計算機語言也都可以在 Linux 上正常執行(甚至被設計成與 Linux 能最融洽地工作)。最受歡迎的程式語言包括 Perl、Python、PHP 和 Tcl。

象 Java 技術和 XML 那樣不斷髮展的新技術可以在 Linux 上暢順地執行,許多其它更深奧的程式語言(從 Logo 和 Rebol 到 Smalltalk 及其它語言)也是如此。

Web 服務與 Linux 有什麼關係?

Web 開發人員在決定以什麼技術作為其電子商務應用程式的基礎時,有許多選擇。因為 Linux 符合標準,所以許多新技術 — 從 Java 技術和 XML 這樣的開放成果到語音應用程式、無線、普及計算甚至 Web 服務這樣最前沿的服務 — 都支援 Linux。

Linux 如何適用於網格計算?

使 Linux 或 UNIX 機器與其它出售的作業系統一起出色地工作一直就不太容易,而且現在這仍然不是件簡單的事。但是,當今現有的作業系統實際上都有這個問題。

在互操作性和可移植性方面已經有了巨大進步,在這個領域,新的工具和技術仍不斷被開發出來。

這方面的 Linux 工作包括移植和聯網,這涉及到編寫或重寫裝置驅動程式。儘管裝置驅動程式和 Linux 的其它高階方面一樣較為複雜,但有必要不時地重新設計它們,以便將各種系統和外設(無論是舊的還是新的)連線到 Linux 或 UNIX 機器。幸運的是,從所涉及的範圍看,它們通常比核心和系統的其它高階方面小很多。

我理解了 Linux,但如何能進一步提高技能?

如果您希望使用 Linux 作為非常高階的應用程式或應用程式集的平臺,您將會對系統的某些領域感興趣,譬如核心研究、各種檔案系統的差異以及其它一些基本的細節。

高階應用程式(或遊戲)所需要的另一套技能是調優 Linux 機器、群集或網路以獲得最佳效能。這需要掌握多處理、執行緒技術、群集和其它神祕而複雜的系統管理知識。理解 Linux 的這些方面不象實際的核心研究那樣需要勇氣,但也會非常困難。

IBM Learning Services 提供的各種課程涉及各個方面,從基礎知識到開發,以及非常專業化的技能 — 並且還有認證(稍後將詳細介紹)。IBM 開發人員解決方案提供有關 IBM 產品的文章和 HOWTO,更多的 IBM 網站提供許多資源,其中有許多(如果不是大部分的話)也都在 Linux 上執行。IBM developerWorks 提供了關於 Linux 和其它幾種開放或自由技術的文章、教程和資源,其它技術包括 XML、無線、Web 服務、Java 技術和網格計算。

怎樣才能向別人證明我具備 Linux 技能?

Linux 培訓有各種認證專案。既有聯盟計劃,也有獨立的技能測試和公司贊助的認證。IBM 提供了數種 Linux 專門技能的認證途徑。

  • 看看 IBM 培訓與認證服務提供了哪些 Linux 認證課程。
  • IBM 也提供 UNIX 和 Linux 硬體及各種軟體技術(包括 IBM 產品) 專業認證
  • IBM developerWorks 提供了兩個內容豐富的系列教程,專門用於準備 Linux Professional Institute(LPI)認證。從 101 系列開始: 第 1 部分介紹 Linux 基礎知識; 第 2 部分、 第 3 部分和 第 4 部分介紹管理。在 102 系列中, 第 1 部分演示如何從原始碼編譯程式; 第 2 部分講解如何編譯核心本身; 第 3 部分介紹聯網; 第 4 部分深入探討了安全性。
  • 請訪問 LPI,瞭解有關他們認證計劃的更多資訊。
  • Red Hat也提供針對其分發版的認證。

哪些 IBM 工具可用於 Linux?

Linux 是一個出色的作業系統,可以在它上面執行標準的應用程式 — 從辦公應用程式(如字處理程式和電子製表軟體)到資料庫系統,以及 Web 釋出和服務環境。諸如 DB2、Lotus、Tivoli 和 WebSphere 這樣的 IBM 產品都可在 Linux 上執行,而且 IBM 不是唯一認識到 Linux 是中介軟體的絕佳平臺的業界領導者。雖然受到誤解並且常遭誹謗 — 至少某些自吹自擂的數字文人是這麼幹的 — 但首先,中介軟體卻是計算機得以實時運轉的主要原因(對於許多計算機使用者是 唯一的主要原因)。Linux 的開放性質允許中介軟體供應商對其解決方案進行細緻的調優以滿足使用者的需要,這是封閉式系統做不到的。

  • 為您的 Linux 應用開發加油提速 2003提供一個用於 Linux 的免費的軟體評估工具箱(Software Evaluation Kit,SEK)。SEK 可以針對以下軟體:DB2 通用資料庫、WebSphere Application Server、WebSphere Studio Site Developer、WebSphere MQ、Lotus Domino、Tivoli Access Manager 等等。
  • Why DB2 for Linux?提供了各種資訊、下載和連結以便您瞭解有關 IBM 這一主要資料庫系統的更多資訊。
  • WebSphere Portal 專區將回答您有關應用程式服務、電子商務和體系結構中介軟體的所有問題。
  • 除了最為人熟知的訊息傳遞和協作功能之外, Lotus軟體套件的整合功能還提供小組會議、網路遠端教育、知識管理及其它功能。
  • Tivoli技術擴充套件了系統管理並將 Linux 機器與其它 IT 系統整合在一起。另請參閱有關 自主計算的 IBM 資訊。

Linux 有怎樣的前景?

Linux 的開放性和靈活性使它得以在實驗室和其它研究機構中被用於創新性技術變革的前沿。IBM 的研究涵蓋資訊科技的所有領域,從物理和認知科學到前沿應用研究等。但 IBM 的研究人員(在很多情況下)也涉及純科學。和其它機構一樣,IBM 也常常在這些場合中使用 Linux。

針對極具創新性的實驗或原型、模擬或者測試,可以很容易地群集或定製 Linux;也可以以同樣具有創新性的方法使用大量的自由軟體工具(為了使用這些工具而建立了 Linux)。即使有了現在正在開發的所有令人振奮的新技術 — 從網格計算和無線語音應用程式到人工智慧和量子計算 — 我們所處的計算時代的潛能和前景仍然遠沒有被充分利用。Linux 健壯和開放的靈活性意味著它在今後很多年都將處於開發戰線的最前沿。

參考資料

Linux 天生就符合標準。使操作層以及構建在其上的那些軟體保持開放、可互操作和支援標準 — Linux 開發人員對這一點通常給予很高的重視。

  • Linux Standard Base(或簡稱 LSB)提供了特定於 Linux 的業界規範和認證計劃。LSB 是Free Standards Group的工作組。
  • UnitedLinux被設計成支援 LSB,它提供了最新的公共程式碼庫。UnitedLinux 是由四個領先的 Linux 供應商支援的聯合專案。
  • The Open Group通常與 UNIX 緊密結合,它是一個獨立於供應商且技術中立的國際聯盟,它的目標是在計算領域實現安全可靠的互操作性。
  • IEEE 的可移植應用程式標準委員會(Portable Application Standards Committee,PASC)負責 UNIX 標準的 POSIX系列。
  • 註釋請求(Requests for Comments,RFC)文件系列是一組有關因特網的技術和組織說明。由 IETF 祕書處(Secretariat)維護,“RFC 釋出過程”(RFC publication process)在 Internet 標準處理中起到重要作用。

相關文章