Unix與linux均是是多用戶、多任務的操作系統,也有多種版本。Unix誕生于20世紀70年代初,而Linux發明于20世紀90年代初;可以說Unix之于Linux屬于承上啟下的關系。
Unix誕生于貝爾實驗室,而大名鼎鼎的貝爾實驗室必須先了解一下。
一、貝爾實驗室的始與終
貝爾實驗室是一個有史以來最牛的實驗室,一個號稱改變世界的實驗室,一個獲得8項(13人)諾貝爾獎(其中7項物理學獎,1項化學獎)的實驗室,同時還是一個有著3W多項專利的實驗室。但是21世紀的今天,貝爾實驗室逐漸落寞,那么其歷史發展軌跡如何,可以看一下整理的如下幾張圖片:
由于貝爾是在1922年就去世了,因此貝爾實驗室是由當時美國電話電報公司,即AT&T的總裁“華特·基佛德(Walter Gifford)”主導與西方電子公司創建的,總部位于美國新澤西。
貝爾實驗室主要從事電信技術(數學、物理學、材料科學、計算機編程理論)等基礎理論研究,同時也涉及電信網絡的設備和軟件;也就是說,貝爾實驗室不僅做理論研究,而且還將理論研究變為產品,這就是所謂的“理論與實踐相結合”吧,其主要的研究成果有:
以上就是AT&T旗下的貝爾公司的高光時刻,在20世紀80年代,由于AT&T不斷地被拆分和重組,貝爾實驗室也跟著樹倒猢猻散了。
作為貝爾實驗室的背后“大金主”AT&T雖然不斷地拆分重組,但是拆分重組后形成了兩個美麗國電信市場的兩個寡頭:AT&T與Verizon,繼續活躍在世界通信領域的最前沿。
而貝爾實驗室比較悲劇了,在沒落的諾基亞旗下,只是一個小小的研究機構。
二、Unix系統的起源與發展
2.1、Unix起源
前面已經介紹了Unix誕生于貝爾實驗室,但是創造了Unix的兩位大人物必須先介紹一下:肯•湯普森(英文名KenThompson)與丹尼斯•里奇(英文名Dennis Ritchie);肯•湯普森的專業是電子工程,丹尼斯•里奇專業是應用數學。
Unix原本是肯•湯普森自己個人的一個項目,其邀請同在貝爾實驗室的同事丹尼斯•里奇一起參與改進Unix項目。丹尼斯•里奇加入后,所使用的設計思路是著名的KISS原則,也就是英文名Keep it simple stupid的縮寫,即“保持簡單,傻瓜”的意思,也稱為“懶人原則”,就是要把一個產品做得連白癡都會用。
在20世紀70年代,共修改了7個版本的Unix,其中前2個版本是基于匯編語言,難于移植與修改,因此只在實驗室里面做研究應用;第3版開始,基于B語言修改后,發明了C語言,用C語言編寫了第3版的Unix內核,標志著C語言正式踏上歷史的舞臺。
第4版開始,Unix開始面向公眾,引起了學術界的廣泛興趣,并提出要Unix源碼;等到第5版,為滿足業界需求,出臺了“僅用于教育目的”許可協議,遵循該協議的各大學可以使用Unix源碼做教材授課,此時Unix與C語言得到迅速的傳播;第6版時,出品Unix的貝爾實驗室的母公司AT&T,發現Unix市場前景廣闊,于是決定從下一個版本開始對Unix進行商業保護;第7版時,新的Unix許可證禁止大學使用Unix源碼(需高價費用),給學生教學用都不行。
AT&T的這一行為讓各高校和組織很不滿,然后以伯克利大學為首的各大學、公司、組織通過第6版本的Unix源碼(免費),對Unix進行了各種各樣的改進和擴展,發布各種各樣的Unix變種,其中最著名的是由Bill Joy(畢業于加利福尼亞州大學伯克利分校)擴展的Berkeley BSD Unix,后續許多開源的Unix操作系統都是基于BSD Unix發展來的。
而AT&T在第7版Unix基礎上發布了Unix System系列,基于該系列擴展的系統基本都是閉源的。
2.2、Unix的發展
20世紀80年代開始,Unix系統形成了兩大分支:其一是Berkeley BSD Unix(FreeBS、NetBSD、OpenBSD是開源Unix系統),其二是AT&T Unix System系列(基本是閉源Unix)。而Linux跟Unix完全沒有關系,只是參考了Unix系統框架,但是Linux源代碼完全是從頭開始編寫的,所以說業界稱Linux為類Unix。
Unix系統以功能全面而穩定著稱,一般與硬件廠商綁定(即出廠就固化在硬件廠商平臺上)。在AT&T宣布收費后,IBM、HP、SUM、Microsoft、SGI等硬件公司購買了Unix授權后,也發布了針對自己硬件平臺的Unix(Aix、HP-UX、Solaris、Xenix、IRIX等)。
因此,Unix在個人設備上比較少,一般是在要求安全的大型企業型系統上,比如銀行、民航、電信等部門,它們一般都是固定機型的UNIX;電信一般用SUN(Solaris),民航一般用HP(HP-UX),銀行一般用IBM(AIX)。
20世紀80年代末,隨著AT&T的拆分,在1993年,Unix也被轉手賣了,先賣給了Novell;在微軟windows系統強勢崛起之時,Novell感覺Unix前景不妙,于是在1995年,將其賣給了SCO公司,但是SCO公司沒有及時付清尾款,Novell只賣了Unix源代碼,保留了Unix的著作權。
Novell與SCO間的理不清的關系,這給后來Windows、Unix、Linux系統專利戰爭,及IBM、SCO的訴訟戰爭埋下伏筆(詳細可看文章“一段關于 Unix、Linux 和 Windows 的暗黑史”)。
2.3、Apple的個人電腦與操作系統
談起個人電腦與操作系統,不得不提起Apple,即現在大名鼎鼎的蘋果公司;在個人電腦上,比IBM還早(apple在1976年制造了Apple I,IBM在1981年);在桌面操作系統上,也比windows還早。
(1)、早期Apple I/II是不帶操作系統的,也沒有GUI;
(2)、從macintosh開始,使用的蘋果自研的系統Macintosh(也稱為System x.x),后面命名為MAC OS 8/9;
(3)、在1988年,蘋果公司也在創建Unix衍生出來的系統A/UX,用于Macintosh電腦上;
(4)、Macintosh現在簡稱為MAC,換過多種處理器架構,早期是摩托羅拉,90年代逐漸替換為PowerPC架構,21世紀之初換為Intel,明年即將換為ARM架構;
(5)、20世紀90年代Macintosh替換為PowerPC 架構的CPU時,A/UX系統并沒很好支持,然后Apple公司拋棄了它;
如上圖所示,當今使用的apple操作系統版本中,MAC OS X與MAC OS 8/9差距還是很大的;MAC OS 8/9是apple自研的操作系統;而MAC OS X是取BSD Unix(NextStep)、MAC OS 8/9、Mach系統精華的全新系統,內核為Unix,因此蘋果的OS X系統是很穩定的。
2.4、Microsoft操作系統
1975就成立的微軟,在上世紀80年代中,是操作系統競爭中的新生代。在當時如日中天的Unix下,Microsoft也基于Unix 7.0版本衍生了Xenix操作系統,該系統應用于intel的CPU上,后面發現Unix的版權限制很多,比爾蓋茨決定要搞一個自己的操作系統,命運要掌握在自己手中,于是Windows計劃開始了。
(1)、首先,Microsoft賣掉了Xenix,出售給了SCO;
(2)、然后,開始Windows開發計劃,1985年出了第一版windows 1.0,但是市場反應不好;
(3)、當時IBM可是個人PC市場的老大哥,Microsoft決定擁抱IBM大腿,與其合作開發OS/2系統;但是以失敗告終。
(4)windows NT出來后,Microsoft迅速占領了個人PC操作系統市場,后續的發展,大家都懂的。
三、Linux系統的起源與發展
對于Unix,Linux可以說是一個晚輩了,在1991年,Linux內核才出第一個版本,源于其遵循GPL協議完全開發源碼,在20世紀90年代,使其衍生出各種版本,迅速流行開來。因為Linux與Unix的相似性,使其在終端市場不斷蠶食Unix;現在也在個人PC市場上威脅的Windows的地位。
談起Linux,必須介紹3個祖師級人物:Andrew S. Tanenbaum、Linus Torvalds、Richard Stallman;
(1)、Tanenbaum是荷蘭阿姆斯特丹的Vrije大學計算機科學系的教授,因為AT&T禁止各大學用Unix進行授課,于是Tanenbaum教授參考了Unix架構,用C語言重新編寫了Minix系統用于教學,沒有使用Unix的代碼,嚴格來講不是Unix。
(2)、 Linus Torvalds在20世紀80年代末還是個學生,學習的操作系統課程正是Minix系統;因此,其參照Minix系統與BSD Unix的思路,又重新編寫了Linux內核,也是沒有使用Minix和Unix代碼,因此也不是Unix。
(3)Richard Stallman其是GNU與自由軟件基金會的創始人,崇尚軟件自由,發布GPL協議許可。
真正的Linux發行版是由Linus Torvalds編寫的Linux內核,加上Richard Stallman的各GNU軟件組合而成的?,F在Linux發行版本衍生出了好幾個體系。
Linux的發行版非常的多,目前應用比較廣泛的是Debian家族與RedHat家族、及SUSE系列;
(1)、Ubuntu是Debian家族的桌面版本,在PC端安裝比較得多;
(2)、Fedora是Red Hat家族的桌面版本,Red Hat的新技術會在該版本上測試,因此Fedora適用于學習,喜歡新技術的可以安裝該版本;
(3)、centos是Red Hat家族比較穩定的版本,開發源代碼,許多Linux服務器就是用該版本進行部署;
(4)、SUSE是德國 SuSE Linux AG公司發行維護的Linux發行版,也是比較穩定的系統。
Linux發行版本很多,甚至許多版本的包管理工具都不一樣,如上圖所示,但是其內核都是一樣的,因此,總體來講都是相同的,目前最新的Linux內核版本為5.10,如下圖所示: