什麼是 Unix 以及它為什麼這麼重要?

2021-09-08 19:11:58 字數 2713 閱讀 3839

大多數作業系統可以被劃分到兩個不同的家族。除了微軟的基於windows nt的作業系統外,幾乎所有其他的都可以追溯到unix。 linux,mac os x,android,ios,chrome os,playstaion 4上執行的orbis os,執行在路由器上的各種韌體,所有這些作業系統通常都被稱為「類unix」作業系統。

unix的設計現在都還在應用

unix在20世紀60年代中晚期誕生於at&t的貝爾實驗室中。最初發布的unix中的一些重要設計因素到如今都還在使用。

其中乙個設計是「unix哲學」,建立小的模組化的應用,只做一件事情並把它做好。如果你對linux終端很熟悉的話,應該對這個不陌生-系統提供了大量的應用,可以通過管道或其他特性形成不同的組合來完成更複雜的任務。甚至圖形介面程式也經常會在後台呼叫更簡單的應用去做比較耗時的任務。這種模式也讓建立終端指令碼更為簡單,通過文字把一些簡單工具結合起來去做複雜的事情。

unix還設計了乙個單一的檔案系統,程式可以通過它互相通訊。這也是為什麼在linux裡說「一切都是檔案」-包括硬體裝置檔案,和提供系統資訊及其他資料的特殊檔案。這也是為什麼只有windows系統中才有磁碟碟符,這是從dos繼承過來的-在其他作業系統中,所有檔案都是乙個單一目錄結構中的一部分。

那些從unix派生出的系統

類似任何可以往前追溯40年的歷史,unix的歷史和它的派生系統一片混亂。為了簡單,我們把unix的派生系統大致分成兩組。

一組unix派生系統是學術界開發的。

首 先是bsd(伯克利軟體發布版),乙個開源的類unix作業系統。bsd如今還存在於freebsd,netbsd和openbsd等系統中。 nextstep基於最初版的bsd開發,蘋果的mac os x基於nextstep,ios基於mac os x。許多其他作業系統,包括執行在playstation 4上的orbis os,也源於各種bsd作業系統。

richard stallman建立gnu專案的目的是為了反對at&t的unix軟體協議條款日漸嚴格的限制。minix是乙個類unix作業系統,為教育目的而實現的,而linux則是受到了minix的啟發。我們今天所熟悉的linux其實應該叫gnu/linux, 因為它是由linux核心和大量gnu應用組成的。gnu/linux不是直接從bsd繼承下來的,但是它繼承了unix的設計而且根植於學術界。如今許 多作業系統,包括android,chrome os,steam os,以及數量巨大的在各種裝置上使用的嵌入式作業系統,都基於linux。

另 一組是商用的unix作業系統。at&t unix,sco unixware,sun microsystem solaris,hp-ux,ibm aix,sgi irix-許多大型企業都希望建立並授權自己版本的unix。它們如今並不常見,但其中一些仍然存在。

致謝: wikimedia commons

dos和windows nt的崛起

許多人希望unix能夠成為工業標準作業系統,但是dos和「ibm pc相容」計算機卻最終人氣爆發而普及開來。微軟的dos也成為眾多dos系統中最成功的乙個。dos完全沒有參照unix,這也是為什麼windows使用反斜槓劃分檔案路徑,而其他所有系統都使用正斜槓。這個決定是在早期的dos系統中做出的,而之後的windows版本繼承了這一設定,就像bsd,linux,mac os x,和其他類unix作業系統繼承了許多unix設計因素一樣。

windows 3.1,windows 95,windows 98,和 windows me都是建立在dos的基礎上。當時微軟已經在開發乙個更現代更穩定的作業系統,叫做windows nt-意思是「windows新技術」。windows nt最終通過windows xp應用到普通計算機使用者中,但是之前它都只用於針對企業使用者的windows 2000和windows nt。

如今所有微軟的作業系統 都基於windows nt核心。windows 7,windows 8,windows rt,windows phone 8,windows server,以及xbox one上的作業系統都在使用windows nt核心。不像其他大多數作業系統那樣,windows nt沒有被開發成乙個類unix作業系統。

當然,微軟也不是完全從零開始的。為了維護dos和舊版本windows軟體的相容性,windows nt繼承了許多dos裡的設定,比如磁碟碟符,反斜槓區分檔案路徑,正斜槓作為命令列引數開關。

為什麼它影響很大

不知道你有沒有看過mac os x終端或是檔案系統,有沒有注意到它們和linux是如此相似,而又和windows是如此不同?好吧,原因是-mac os x和linux兩個都是類unix作業系統。

了解了這點歷史,就可以幫助你理解什麼是「類unix」作業系統,以及為什麼這麼多作業系統看起來都差不多,而windows卻那麼與眾不同。這也可以解釋為什麼linux極客對mac os x上的終端會感覺如此熟悉,而windows 7上的command prompt和powershell相對於其他命令列環境顯得格格不入。

為什麼redis是單執行緒的以及為什麼這麼快?

我們先來認真看一下官網的說法。翻譯過來大意如下 cpu並不是您使用redis的瓶頸,因為通常redis要麼受記憶體限制,要麼受網路限制。例如,使用在一般linux系統上執行的流水線redis每秒可以傳送一百萬個請求,因此,如果您的應用程式主要使用o n 或o log n 命令,則幾乎不會使用過多的c...

什麼是對齊,以及為什麼要對齊

現代計算機中記憶體空間都是按照byte劃分的,從理論上講似乎對任何型別的變數的訪問可以從任何位址開始,但實際情況是在訪問特定變數的時候經常在特定的記憶體位址訪問,這就需要各型別資料按照一定的規則在空間上排列,而不是順序的乙個接乙個的排放,這就是對齊。對齊的作用和原因 各個硬體平台對儲存空間的處理上有...

Redis Redis是什麼 為什麼這麼快

完全基於記憶體,將資料儲存在記憶體中,讀取的時候不需要進行磁碟的 io reids的瓶頸是記憶體以及網路,之前單執行緒實現是因為單執行緒實現簡單 採用單執行緒,避免了不必要的上下文切換和競爭條件,也不存在多程序或者多執行緒導致的切換而消耗 cpu 這是歷史遺留問題,以前伺服器的配置低,單執行緒實現簡...