申明:本文并不是《Things Every Hacker Once Knew》的完整、準(zhǔn)確的中譯版,其中不乏自認(rèn)為正確的個(gè)人觀點(diǎn),詳情請(qǐng)參考原文。
硬件
現(xiàn)在,當(dāng)兩臺(tái)物理機(jī)進(jìn)行信息交互時(shí),通常會(huì)遵守 TCP/IP 協(xié)議,即使是終端這樣的模擬器,也同樣如此。但在 1992 年之前,如果你能夠接觸到當(dāng)時(shí)非常昂貴的工作站硬件,你會(huì)發(fā)現(xiàn)情況和現(xiàn)在是完全不同的。
20 世紀(jì) 70 年代中期,視頻顯示終端實(shí)際上是由“電傳打字機(jī)”演變而來的,而“電傳打字機(jī)”則是由維多利亞時(shí)代的電報(bào)演變而來的。1960 年末,Unix 剛出現(xiàn)時(shí),主要是為打印顯示終端而編寫的,尤其是被稱為 Teletype Model 33(簡稱 ASR-33)的機(jī)型,我們現(xiàn)在依然能在 Unix 設(shè)備上看到的 “tty” 是當(dāng)時(shí)流行的 “teletype” 的縮寫。
在互聯(lián)網(wǎng)之前的,計(jì)算機(jī)之間很少交互,電傳打字機(jī)和終端需要使用一種稱為 “RS-232” 的硬件協(xié)議與計(jì)算機(jī)交互。RS-232 的壽命很長,20 世紀(jì) 60 年代問世,至今仍被使用,最初不是用于和計(jì)算機(jī)通信,而是用于電傳打字機(jī)與調(diào)制解調(diào)器通訊。在 USB 之前,當(dāng)人們談到 "串行 "鏈接時(shí),他們指的是 RS-232,有時(shí)也將使用它的設(shè)備稱為 "串行終端"。
今天,一臺(tái)個(gè)人電腦上有多個(gè)處理器,可以同時(shí)處理多個(gè)任務(wù),但在過去,多個(gè)用戶的多個(gè)任務(wù)被分配到一臺(tái)機(jī)器的一個(gè)處理器上,這被稱為“分時(shí)租憑”。20 世紀(jì) 80 年代中期的 DEC VAX 11-780 微型計(jì)算機(jī),采用分時(shí)租賃的方式處理任務(wù),能夠支持十幾個(gè)用戶同時(shí)使用,但相比于 2017 年的低端智能手機(jī),其運(yùn)算能力不到它的 1/1000,可用存儲(chǔ)空間不到它的 1/5000。
調(diào)制解調(diào)器
調(diào)制解調(diào)器起初是為 1950 年代的美軍半自動(dòng)地面防空系統(tǒng)(Semi-Automatic Ground Environment,簡稱 SAGE )研制,用來連接不同基地的終端,雷達(dá)站和指令控制中心到美國和加拿大的 SAGE 指揮中心。 SAGE 運(yùn)行在專用線路上,但是當(dāng)時(shí)兩端使用的設(shè)備跟今天的調(diào)制解調(diào)器根本不是一回事。IBM 是 SAGE 系統(tǒng)中計(jì)算機(jī)和調(diào)制解調(diào)器的供貨商。幾年后美國航空的首席執(zhí)行官與 IBM 一位區(qū)域經(jīng)理的一次會(huì)晤促使"mini-SAGE"這種航空自動(dòng)訂票系統(tǒng)。在這系統(tǒng)中,一個(gè)位于票務(wù)中心的終端連接在中心電腦上,用來管理機(jī)票有效性和時(shí)間。這個(gè)系統(tǒng),叫做 Sabre,是今天SABRE 系統(tǒng)的早期原型。 1960 年代早期,商業(yè)計(jì)算機(jī)的應(yīng)用逐漸普及,加上上述技術(shù)成果,1962 年,AT&T 發(fā)布了第一個(gè)商業(yè)化調(diào)制解調(diào)器 Bell 103。使用兩個(gè)音調(diào)表示 1 和 0 的移頻鍵控技術(shù),103 已經(jīng)能夠?qū)崿F(xiàn) 300 bps的傳輸速度。很短時(shí)間后繼版本 Bell 212 就研制出來,轉(zhuǎn)移到更穩(wěn)定的移相鍵控技術(shù)把數(shù)據(jù)速率提高到 1200 bps。 類似 Bell 201 的系統(tǒng)用雙向信號(hào)集在4對(duì)專用線路上實(shí)現(xiàn)了 2400 bps。 賀氏智能調(diào)制解調(diào)器(Hayes Smartmodem)是一個(gè)重大的進(jìn)步,1981年由賀氏通訊研制成功。最早的智能調(diào)制解調(diào)器是一個(gè)300 bps調(diào)制解調(diào)器,使用Bell 103通信協(xié)議標(biāo)準(zhǔn),并內(nèi)置了一個(gè)微控制器,可以讓計(jì)算機(jī)發(fā)送命令來控制電話線,例如摘機(jī)、撥號(hào)、重?fù)?、掛機(jī)等功能。這些指令被廣為沿用,并逐漸擴(kuò)展,被稱為海斯指令集(Hayes command set)。
在智能調(diào)制解調(diào)器之前,幾乎所有的調(diào)制解調(diào)器都需要兩個(gè)步驟來產(chǎn)生一個(gè)連接:第一步,人工在電話機(jī)上撥叫對(duì)方的號(hào)碼,然后將聽筒放在調(diào)制解調(diào)器附帶的聲音耦合器(acoustic coupler)里,一個(gè)用兩個(gè)橡膠杯組成的用來在聲音信號(hào)和電信號(hào)之間轉(zhuǎn)換的設(shè)備。使用智能調(diào)制解調(diào)器除了不需要聲音耦合器,更重要的是直接將調(diào)制解調(diào)器連接在標(biāo)準(zhǔn)電話線或插座上。然后電腦就能自動(dòng)完成接通電話并撥叫號(hào)碼的功能。這個(gè)改變極大的簡化了電子布告欄系統(tǒng)(BBS)的安裝和使用。
核心的意義
從 1955 年到 1975 年,在半導(dǎo)體存儲(chǔ)器出現(xiàn)之前,計(jì)算機(jī)存儲(chǔ)器數(shù)據(jù)主要依賴于帶有磁性的銅線圈,這些銅線圈被稱為“鐵氧體磁芯”,主存儲(chǔ)器也因此被稱為“核心存儲(chǔ)器”或“核心”。
Unix 這個(gè)詞是 20 世紀(jì) 70 年代初產(chǎn)生的,直到 20 世紀(jì) 90 年代,每個(gè)黑客都知道這個(gè)詞的意義,然而,2000 年以后,隨著多處理器系統(tǒng)變得越來越普遍,“處理器核心”開始簡稱為“核心”。2017 年以后,“核心”這個(gè)詞的意義開始變得模糊,舊時(shí)的稱呼已經(jīng)不再被大眾所理解,這個(gè)詞語的意義開始變得令人費(fèi)解。
36 位機(jī)器和 8 進(jìn)制的持久性
現(xiàn)在的系統(tǒng)通常是 2 的 N 次方大小,8 位、16 位、32 位或者 64 位,但在 1983 年之前,曾經(jīng)出現(xiàn)過一個(gè) 36 位的計(jì)算機(jī)系統(tǒng)架構(gòu),當(dāng)時(shí),關(guān)于 36 位機(jī)器的知識(shí)在黑客界得到了廣泛的傳播,其中最具代表性的兩臺(tái)機(jī)器分別是 DEC PDP-10 和 Symbolics 3600 Lisp。
現(xiàn)在回過頭來看,16 位機(jī)器存儲(chǔ) 2 進(jìn)制的字節(jié),這是理所應(yīng)當(dāng)?shù)氖虑?,但那時(shí),人們普遍認(rèn)為,通過在內(nèi)存轉(zhuǎn)存中是否能看到大于 7 的數(shù)字,就能夠判斷一臺(tái)機(jī)器是 32 位的機(jī)器還是 36 位的機(jī)器。
下面是關(guān)于過去那臺(tái) 36 位機(jī)器的一些事情:
- 36 位能夠代表期待范圍的正負(fù)整數(shù)和小數(shù),32 位的標(biāo)準(zhǔn)化的過程遭到了數(shù)字分析師和科學(xué)計(jì)算領(lǐng)域人士的抵制,他們非常希望能夠有多出來的那 4 位的精確度,但是沒有成功;
- 在 36 位機(jī)器上,一個(gè)“字符”可能是 9 位,一個(gè)字就是 4 個(gè)字符,因此,為這些機(jī)器設(shè)計(jì)的鍵盤就會(huì)有一個(gè)鍵來表示這個(gè)字符是 8 位還是 9 位。
- 在 36 位機(jī)器上,一個(gè)“字符”也有可能是 6 位,也因此會(huì)有許多不同的 6 位字符編碼,而且不僅不同制造商之間不統(tǒng)一,單個(gè)制造商也會(huì)使用不同的編碼。
C 的祖先是一種寫在 PDP-7 上的解釋性語言,被命名為 B,在 B 語言中,以 0 開頭的數(shù)字被解釋為 8 進(jìn)制。
PDP-7 的繼任者,也是第一臺(tái) Unix 系統(tǒng)的機(jī)器 PDP-11,首次實(shí)現(xiàn)了 C 語言的雛形,它主要采用 16 進(jìn)制解釋器,并對(duì)其的語法進(jìn)行了拓展:當(dāng)字符串的反斜杠后面有一個(gè)數(shù)字時(shí),會(huì)被識(shí)別為八進(jìn)制。PDP-11 如此成功,不僅成為了主流,扼殺了 36 位機(jī)器,還影響了后來的語言(Java、Python 等)的設(shè)計(jì),這些語言出于兼容性的考慮,復(fù)制了 C 語言低級(jí)的規(guī)則,這有時(shí)會(huì)對(duì)那些 3 比特內(nèi)核的系統(tǒng)造成困擾,而且這個(gè)困擾或許永遠(yuǎn)也也不會(huì)消除了。
RS232 和它的不足之處
TCP/IP 就像一個(gè)簡單清晰的八位字節(jié)流,數(shù)據(jù)傳輸?shù)乃俣热Q于網(wǎng)絡(luò)傳輸?shù)乃俣龋义e(cuò)誤檢測(cè)/糾正是在后臺(tái)進(jìn)行處理的。
但 RS-232 不是這樣的,使用 RS-232 協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)膬膳_(tái)機(jī)器,必須使用相同的數(shù)據(jù)編碼格式,在傳輸之前需要協(xié)商好數(shù)據(jù)傳輸?shù)乃俣?,并且錯(cuò)誤檢測(cè)和糾正也是在數(shù)據(jù)流中完成的。這就要求你在進(jìn)行數(shù)據(jù)傳輸之前,對(duì)兩端的設(shè)備進(jìn)行設(shè)置,如果一端的設(shè)置和另一端不匹配,則會(huì)帶來可怕的錯(cuò)誤,在過去的那些日子里,數(shù)據(jù)傳輸?shù)摹按嗳跣浴辈谎远鳌?/p>
RS-232 的硬件設(shè)備也并不是同意的,1962 年定義的標(biāo)準(zhǔn) RS-232 使用了一個(gè) D 型的外殼,有 25 個(gè)物理針腳,遠(yuǎn)超過了物理協(xié)議的實(shí)際需求,20 年后,在 1984 年的 IBM PC-AT 推出后,大多數(shù)制造商轉(zhuǎn)而使用了較小的 DB-9 連接器,最后,這些端口被 USB 和以太網(wǎng)淘汰了。
RS-232 在發(fā)展的過程中,存在眾多令人難受的體驗(yàn),比如,你無法區(qū)分一個(gè)設(shè)備是失去連接還是默默工作,在 2000 年以后,更是存在兩種不同電壓的外接設(shè)備,導(dǎo)致 TTL 端的元件在誤操作的情況下發(fā)生燒毀,最終,RS-232 在 20 世紀(jì) 90 年代中后期,慢慢被人遺忘,但直到 2010 年左右,才最終從通用計(jì)算機(jī)中消失。
我之所以討論這個(gè)問題,是因?yàn)橐恍┰O(shè)備(比如 GPS),可能仍然需要知道什么是 RS-232 “握手的過程”,比如:一個(gè)終端可以改變 DTR(數(shù)據(jù)終端就緒)線的狀態(tài),以此表明它準(zhǔn)備接受、啟動(dòng)或者繼續(xù)一個(gè)調(diào)制解調(diào)器會(huì)話。而且在銷售系統(tǒng)、商業(yè)級(jí)路由器的診斷控制臺(tái)和嵌入式系統(tǒng)的調(diào)試控制臺(tái)中也被使用。
廣域網(wǎng)時(shí)代的到來:前互聯(lián)網(wǎng)時(shí)代
今天,TCP/IP 幾乎是僅存的廣域網(wǎng),但在 70 年代末期到 90 年代中期,尤其是 1981 年到 1991 年間,情況卻是完全不同的,當(dāng)時(shí)有大量的廣域網(wǎng)同時(shí)存在,人們有時(shí)會(huì)在宣傳自己的網(wǎng)站時(shí)書寫多個(gè)不同的網(wǎng)絡(luò)地址。
一些年紀(jì)稍長的黑客都會(huì)記得 UUCP 和 BBS,大量的人參與過這兩個(gè)活動(dòng),那時(shí)候,如果你不是隸屬于聯(lián)邦機(jī)構(gòu)、軍事項(xiàng)目或大學(xué)研究實(shí)驗(yàn)室,就很難從事“真正”的互聯(lián)網(wǎng)(APPANET)。因此,人們嘗試用他們已有的設(shè)備,調(diào)制解調(diào)器和電話線來進(jìn)行信息傳輸。
UUCP 是 Unix to Unix Copy Program 的縮寫,1979 年誕生于貝爾實(shí)驗(yàn)室,1990 年中期,在互聯(lián)網(wǎng)中名聲大噪,它用調(diào)制解調(diào)器和電話網(wǎng)絡(luò),在 Unix 站點(diǎn)之間提供了緩慢但非常成功的網(wǎng)絡(luò)。 UUCP 是一個(gè)存儲(chǔ)和轉(zhuǎn)發(fā)系統(tǒng),最初是為了軟件的更新和發(fā)版,但它的使用場景迅速轉(zhuǎn)變?yōu)殡娮余]件和一個(gè)叫做 USENET(Stack Overflow 和其他現(xiàn)代網(wǎng)絡(luò)論壇的前身)的東西。它支持信息的分類和聚合,將這些信息通過 UUCP 從源頭進(jìn)行傳播,最終涌向整個(gè)網(wǎng)絡(luò)。從某種程度上來看,UUCP 和 USENET 是對(duì)當(dāng)時(shí)已經(jīng)存在的電話系統(tǒng)的破解,當(dāng)時(shí)的電話分為“本地”和“長途”,“本地”電話按月收費(fèi),“長途“電話按分鐘收費(fèi),價(jià)格昂貴。UUCP 的流量通過本地轉(zhuǎn)換,可以進(jìn)行長距離傳輸,在便宜的互聯(lián)網(wǎng)到來之前,這對(duì)于黑客文化的形成,非常重要,USENET 小組可以通過這種方式分享源代碼,一些慣例至今仍在使用,比如將項(xiàng)目根目錄的數(shù)據(jù)文件命名為 README。
USENET 有兩個(gè)歷史上非常重要的日期,一個(gè)是 1987 年的重命名,另一個(gè)是 1993 年的“永不結(jié)束的九月”,前者對(duì) USENET 主題分類進(jìn)行了重新命名,后者可以讓用戶使用分時(shí)服務(wù)的 USENET。UUCP 非常難配置,以至于那些知道如何配置的人經(jīng)常在他們的簡歷上寫上這種技能,并以此獲得一份工作。
與此同時(shí),在微型計(jì)算機(jī)的世界里,一種全新的存儲(chǔ)和轉(zhuǎn)發(fā)方式也在發(fā)展——BBS(公告板系統(tǒng))。BBS 是一個(gè)在計(jì)算機(jī)上運(yùn)行的軟件,有一個(gè)連接調(diào)制解調(diào)器的位置,可以接受電話線連接。用戶可以使用他們自己的調(diào)制解調(diào)器和終端程序訪問 BBS,BBS 軟件允許他們互相留言,上傳和下載文件,有時(shí)還可以玩游戲。
第一個(gè) BBS 系統(tǒng)的商業(yè)運(yùn)營在 1978 年芝加哥的超市里以社區(qū)廣告牌的形式展示在大家面前,在接下來的 18 年里,有超過十萬個(gè) BBS 閃亮登場,很多時(shí)候只是系統(tǒng)管理員的私人電腦或者車庫里的備用電腦。1984 年開始,BBS 文化發(fā)展出了一種另類的形式,叫做 “FidoNet”,支持跨網(wǎng)站的電子郵件和類似于 USENET 的論壇系統(tǒng),也有一些 UUCP 移植到 DOS 個(gè)人電腦上,但都沒有改變 UUCP 和 BBS 各自獨(dú)立的現(xiàn)狀,最終兩者都被互聯(lián)網(wǎng)的浪潮所吞沒。
現(xiàn)在仍有少數(shù) BBS 由一些懷舊者運(yùn)營著,一些文化得以傳承,但就像 UUCP 網(wǎng)絡(luò)一樣,在互聯(lián)網(wǎng)如此廉價(jià)的今天,BBS 的存在已經(jīng)失去了最初的意義,關(guān)于 BBS 的記憶幾乎只剩下圍繞著一系列文件傳輸協(xié)議——XMODEM、YMODEM 和 ZMODEM,這些在 BBS 之前就已經(jīng)開發(fā)出來,主要用于 BBS 的協(xié)議。
FTP、Gopher 和被遺忘的前網(wǎng)絡(luò)時(shí)代
在 20 世紀(jì) 90 年代初的短短幾年時(shí)間里,王維網(wǎng)從無到有,無處不在。在此之前,,從 1971 年開始,互聯(lián)網(wǎng)網(wǎng)站之間的文件傳輸通常是由一個(gè)名為 ftp 的工具完成的,因?yàn)樗褂玫氖俏募鬏攨f(xié)議,但最終,ftp 被其他使用 FTP 協(xié)議的網(wǎng)絡(luò)瀏覽器所取代。
與此同時(shí),蒂姆-伯納斯-李發(fā)明萬維網(wǎng)的同一年(1991 年),明尼蘇達(dá)大學(xué)的一群黑客設(shè)計(jì)了“Gopher”,一個(gè)以菜單為中心而不是以鏈接為中心的超文本協(xié)議,幾年時(shí)間里,Gopher 與早期的萬維網(wǎng)展開了激烈的競爭,許多黑客同時(shí)使用這兩種協(xié)議,直到 1993 年,大學(xué)開始對(duì)其實(shí)施使用許可費(fèi)后,Gopher 開始沒落。盡管現(xiàn)在仍有一些 Gopher 服務(wù)器在運(yùn)行,但 Gopher 實(shí)際上已經(jīng)名存實(shí)亡了。
終端的混亂
現(xiàn)代 Unix 系統(tǒng)上的軟件終端經(jīng)歷了一個(gè)漫長而且混亂的發(fā)展過程,它最初源于早期的顯示器,有時(shí)被稱為“玻璃 TTY”——因?yàn)樗梢阅M打印機(jī)現(xiàn)實(shí)內(nèi)容,但是不需要消耗紙張。
第一臺(tái)終端在 1969 年出廠,其中最被大眾所知的,可能是 1975 年的 ADM-3 型號(hào)。就像早期的 ASR-33 一樣,這些設(shè)備有一個(gè)有趣的歷史遺留問題,盡管 1975 年后制造的顯示器可以展示小寫字母,但 Unix (以及 2018 年之前的 Linux)對(duì)以大寫字母開頭的輸入,會(huì)產(chǎn)生令人費(fèi)解的結(jié)果。
終端的發(fā)展還曾經(jīng)歷過代碼進(jìn)行輸出控制的過程,直到 1979 年后,一個(gè)叫做 DEC VT-100 的終端控制 ANSI 標(biāo)準(zhǔn)的出現(xiàn),這個(gè)局面才得以改變。
如今,那些能夠顯示各種圖案和顏色的顯示界面被我們稱為“GUI“,那些只使用字符的程序界面現(xiàn)在被稱為”TUI“。
一些黑客會(huì)知道,屏保的出現(xiàn),是為了避免陰極射線管持續(xù)受到一種叫做“熒光粉燒毀”的現(xiàn)象的影響,這種影響會(huì)永久性地?fù)p害屏幕。
位圖顯示
早期的終端機(jī)只能顯示固定的字母組成的字符,1973 年,施樂公司第一個(gè)采用位圖顯示圖像,并創(chuàng)造了第一個(gè)生產(chǎn)系統(tǒng)阿爾托。
早期的 Alto 顯示器只有 608808 像素,1981 年,它的繼任者“蒲公英”達(dá)到了 1024809 像素,施樂公司曾稱其為“施樂之星”,但最終商業(yè)化運(yùn)營失敗。1982 年,Sun Microsystems 公司推出了 1024*800 像素的 Sun-1,這臺(tái)機(jī)器的一系列產(chǎn)品獲得了巨大的成功,直到 90 年代末 IBM PC 的出現(xiàn),但是這些機(jī)器都太昂貴了。
1975 年開始,位圖開始能夠顯示彩色,如蘋果二代,但是它們的像素只有 280*192。
很長一段時(shí)間里,黑客們不得不選擇分辨率較高的黑白顯示器,它們相對(duì)便宜,且夠大,更適合黑客們?nèi)粘5墓ぷ骱蜕睢?990 年左右,1024*1024 的彩色顯示器才進(jìn)入高端消費(fèi)市場,但那時(shí)的顯示器質(zhì)量仍然很差,由于為陰極射線管制造彩色的費(fèi)用相對(duì)較高,難度很大,成像存在著明顯的瑕疵。這些問題直到平面顯示器出現(xiàn)之后才得到解決。
ASCII 碼
ASCII 碼,即美國信息交換標(biāo)準(zhǔn)代碼,是 20 世紀(jì) 60 年代初,從電傳打字機(jī)上使用的一系列字符碼中演變而來的。與許多早期的字符編碼不同,ASCII 碼至今仍被使用且可能長期被使用。如果你不知道 UTF-8 是什么樣的,ASCII 碼也是 UTF-8。
下表是 ASCII-1967,也是現(xiàn)在正在使用的版本:
Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex
0 00 NUL 16 10 DLE 32 20 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p
1 01 SOH 17 11 DC1 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q
2 02 STX 18 12 DC2 34 22 " 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r
3 03 ETX 19 13 DC3 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s
4 04 EOT 20 14 DC4 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t
5 05 ENQ 21 15 NAK 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u
6 06 ACK 22 16 SYN 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v
7 07 BEL 23 17 ETB 39 27 ' 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w
8 08 BS 24 18 CAN 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x
9 09 HT 25 19 EM 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y
10 0A LF 26 1A SUB 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z
11 0B VT 27 1B ESC 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {
12 0C FF 28 1C FS 44 2C , 60 3C < 76 4C L 92 5C \\ 108 6C l 124 7C |
13 0D CR 29 1D GS 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }
14 0E SO 30 1E RS 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~
15 0F SI 31 1F US 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL
然而這種格式因?yàn)楦袷絾栴},很少被使用,目前使用更多的是下面這種格式:
0000000 NUL 0100000 1000000 @ 1100000 `
0000001 SOH 0100001 ! 1000001 A 1100001 a
0000010 STX 0100010 " 1000010 B 1100010 b
0000011 ETX 0100011 # 1000011 C 1100011 c
0000100 EOT 0100100 $ 1000100 D 1100100 d
0000101 ENQ 0100101 % 1000101 E 1100101 e
0000110 ACK 0100110 & 1000110 F 1100110 f
0000111 BEL 0100111 ' 1000111 G 1100111 g
0001000 BS 0101000 ( 1001000 H 1101000 h
0001001 HT 0101001 ) 1001001 I 1101001 i
0001010 LF 0101010 * 1001010 J 1101010 j
0001011 VT 0101011 + 1001011 K 1101011 k
0001100 FF 0101100 , 1001100 L 1101100 l
0001101 CR 0101101 - 1001101 M 1101101 m
0001110 SO 0101110 . 1001110 N 1101110 n
0001111 SI 0101111 / 1001111 O 1101111 o
0010000 DLE 0110000 0 1010000 P 1110000 p
0010001 DC1 0110001 1 1010001 Q 1110001 q
0010010 DC2 0110010 2 1010010 R 1110010 r
0010011 DC3 0110011 3 1010011 S 1110011 s
0010100 DC4 0110100 4 1010100 T 1110100 t
0010101 NAK 0110101 5 1010101 U 1110101 u
0010110 SYN 0110110 6 1010110 V 1110110 v
0010111 ETB 0110111 7 1010111 W 1110111 w
0011000 CAN 0111000 8 1011000 X 1111000 x
0011001 EM 0111001 9 1011001 Y 1111001 y
0011010 SUB 0111010 : 1011010 Z 1111010 z
0011011 ESC 0111011 ; 1011011 [ 1111011 {
0011100 FS 0111100 < 1011100 \\ 1111100 |
0011101 GS 0111101 = 1011101 ] 1111101 }
0011110 RS 0111110 > 1011110 ^ 1111110 ~
0011111 US 0111111 ? 1011111 _ 1111111 DEL
分布式協(xié)作系統(tǒng)的誕生
如今,分布式版本控制的公共設(shè)施和與之相適應(yīng)的分布式團(tuán)隊(duì)的許多做法都以標(biāo)準(zhǔn)化,但是,這些工具的發(fā)展與演變其實(shí)經(jīng)歷了漫長的過程。
最早的軟件是通過一種叫做 DECUS 磁帶的進(jìn)行數(shù)據(jù)共享的,那時(shí)候,并沒有版本控制、補(bǔ)丁和偽造者。版本控制最早誕生于 1972 年,而補(bǔ)丁,直到 1984 年才出現(xiàn)。
1989 年到 1993 年,互聯(lián)網(wǎng)呈現(xiàn)出爆發(fā)式的增長,互聯(lián)網(wǎng)的傳輸速度已經(jīng)足夠黑客們大展手腳了,接下來,他們開始考慮文化上的變化了。 1991 年,Linux Torvalds 宣布 Linux 將采用分布式協(xié)作的方式進(jìn)行開發(fā),但那時(shí)的 Linux,打補(bǔ)丁仍要通過類似于發(fā)郵件的方式進(jìn)行,直到埃里克·斯蒂芬·雷蒙在《大教堂和市集》中宣揚(yáng)——應(yīng)該把公共資源庫作為主項(xiàng)目,共享公共資源庫,這一方式才得到改變。
第一個(gè)專門的維護(hù)軟件機(jī)構(gòu)直到 1999 年才成立,它就是 SourceForge,起初,它只支持 CVS 格式的文件,也因此促進(jìn)了 CVS 的開發(fā)。2005 年,Linus Torvalds 發(fā)明了 Git,它迅速的淘汰了之前所有的版本控制系統(tǒng),現(xiàn)在成為了黑客界的標(biāo)桿。