淺談 Unix, Unix-Like, Linux & Ubuntu(Alphacamp)
淺談 Unix, Unix-Like, Linux & Ubuntu
在談及「類 UNIX」前,我們先來認識「UNIX」。
UNIX
UNIX 是一種電腦作業系統,於1969 年在美國開發,他是一種自由和開放原始碼(Free and Open Source Software,簡稱開源軟體)的程式,也就是說,任何人都被授權可以免費並自由的使用、複製、研究和以任何方式來改動 UNIX,其原始碼是開放和共享的。
UNIX 是最早被普及的電腦作業系統之一,也是科學計算、大型電腦、超級電腦等所用作業系統的主流;現在其仍然被應用於一些對穩定性要求極高的資料中心上。
UNIX-Like
類 UNIX(UNIX-like) 作業系統(UNIX-Like Operating System) - 從 80 年代開始,很多軟體開發者發起了不同的專案,目標在建立完全自由且向下相容 UNIX 的作業系統;我們稱這些為「類 UNIX」作業系統,而 Linux 就是現在非常流行的類 UNIX 作業系統之一。
Linux
Linux 是類 UNIX 作業系統的一種,也是目前運用最廣泛、使用人數最多的作業系統,同時 Linux 也是自由軟體和開放原始碼軟體發展中最著名的例子。該作業系統的核心由 Linus Torvalds 在1991年10月5日首次發布。
現在世界上 500 個最快的超級電腦有 90% 以上正在執行Linux 套件或其變種的版本。Linux 也廣泛應用在嵌入式系統上,如手機、平板電腦、電視和電子遊戲機等,在三星、HTC 等手機上廣泛使用的 Android 作業系統就是建立在 Linux 核心之上。
Ubuntu
Ubuntu 是以桌面應用為主的 Linux 發行版本,所有系統相關的任務採用 Linux、UNIX 系統的基本思維。Ubuntu 是由 Canonical 公司發布的「自由」軟體 -- 自由的意思就是讓人可以免費使用與免費分享,Canonical 透過提供對 Ubuntu 的技術支援和其他周邊服務獲得盈利;Ubuntu 這名稱來自非洲南部祖魯語或科薩語的「ubuntu」一詞,意思是「我的存在是因為大家的存在」,是非洲傳統的一種價值觀。Ubuntu 的作業速度快,穩定度高、同時有蠻完整的社群支援,更是免費的,所以Ubuntu 在程式初學者的社群非常流行;其高效強大的特點也在伺服器領域得到了廣泛的應用。
為何大多數網路開發者會選用 UNIX 或類 UNIX?
一般人 (非軟體工程師) 可能對 UNIX 比較陌生,但它是網路伺服器(Web Server)的標準系統;事實上,世界上數以百萬計的人每天都與 Linux 和 Unix 系統進行互動,其中大多數人從未在他們的生活中寫過一行代碼。
那麼 Unix 又為何受到網路工程師和其他技術人才的喜愛呢?
只有文字的世界 - Everything is text
UNIX 提供的操作介面的是命令行介面(CLI),也是專業的軟體工程師最喜愛的介面。只有文字(Text-only)的介面讓軟體更輕便,能更有效地使用網路伺服器。同時,文字介面對頻寬的要求十分低,更方便網路管理員進行遠端管理。
另外,UNIX 系統對文字檔案的依賴度非常高,所有系統的設定,以及資料的收集與輸出,都是透過文字,這樣的設計對於現在習慣影音、圖像( Youtube、Instagram)的使用者來說可能會有些障礙;然而 UNIX 講究的是使用者的溝通邏輯與文字表達能力,只要肯多練習,使用者很快也會體會到純文字溝通的清楚與便利。.
內建工具與設計邏輯
UNIX 以命令行介面(CLI)介面以及文字檔案為主,這就反應了 UNIX 開發者在設計 UNIX 系統時,導入了工程師思維;而工程師思維的另一個主要特徵,就是會應用小工具去來執行和解決複雜的任務。
打個比方:UNIX 系統有一個符號指令「 | 」,它能將一個程序的輸出結果發送到另一個程序的輸入;這個符號指令允許工程師能更方便地把一系列的工具串連起來。
比如說以下這個 UNIX 指令:
$ who | cut -c1-10 | sort | uniq
這個指令將 “who”、”cut”、”sort”、”uniq” 四個指令(工具)串連起來,那他到底做了什麼呢?
這個指令將 “who”、”cut”、”sort”、”uniq” 四個指令(工具)串連起來,那他到底做了什麼呢?
先讓我們來介紹每個指令的作用:
- who - 尋找登陸在系統裡的用戶
- cut - 用於檔案內的文字處理,您可以使用此指令提取檔案裡面部分的文字。在這裡,cut -c1-10 的意思,就是從資料檔案中,只提取第一到第十個字符(characters)。
- Sort - 依照順序排序(A-Z,0-9)
- uniq - 這裡是指「只保留非重複(unique)的用戶名單」
所以這串指令,就是想要產生一個排序好的列表,把所有的非重複登錄系統(因為用戶可以登錄多次)的用戶的首十個字符顯示出來!希望您有從例子裡理解 UNIX 的設計與語法的邏輯。
社群建立的工具與力量
因為大部分的軟體開發者都在 UNIX 或是 Linux 系統上工作,而軟體開發者的特質是他們會建立新的工具,來簡化自己與他人的工作,所以在網路上您可以找到很多免費與開源的工具,讓軟體開發變得更便利;下為一些免費的開發工具:
- Vim:Linux 上源遠流長的文字編輯器
- Homebrew:管理不同軟體之間的相依問題,幫助解決不同軟體版本的衝突
- Cobbler:幫助你把安裝伺服器的繁瑣過程自動化
- Docker:可以把 OS 模擬器放在雲端上,避免佔用電腦資源
- Back In Time:能用 snapshot 的方式來備份系統,並設定備份計劃
- Open Movie Editor:影片編輯軟體
穩定與安全性
微軟開發的 Windows 是針對不會寫程式、非工程背景的大眾使用者設計的,所以他們會先追求表面上看來簡單、易用;但程式的核心部分,並不是在技術上最完善,也因為這樣市場上的電腦病毒,大部分都是針對 Windows。
Windows 跟 UNIX 最大的差異是在資訊透明度,Windows 上底層的程式必須仰賴微軟更新後才會修復,由於您很難看到底層的原始碼,若在安裝程式開發軟體時有任何不順利,使用者往往會無法研究出是 Windows系統的哪個部分出錯,或是有其他軟體相互排斥的狀況;相對之下您可以看到 UNIX 底層的設定,以及系統運作的紀錄,您可以隨時進入底層修正錯誤。
评论
发表评论