當前位置:
首頁 > 科技 > Hacker曾經知曉的那些事

Hacker曾經知曉的那些事

翻譯 |趙屹華


責編 | 何永燦


筆者想到現在年輕的Hacker們對ASCII表和那些奇怪的控制字元越來越陌生,不禁感慨萬千。


這些知識原本是年輕Hacker們初出茅廬的第一課。然而世事變遷無常,轉眼間這些硬體終端都已經被淘汰,RS-232協議也即將壽終正寢。工具產生文化;當工具過時之後,一些文化共性也隨之煙消雲散,而我們很難察覺到。


這篇文章是筆者收集的一些關於ASCII以及相關技術的介紹,特別是硬體串口終端、RS-232和數據機等技術。昔日,這是些人盡皆知的概念,而如今知者甚少。現在已經很少有人直接使用這些技術了,只有在老古董設備中才能見到它們。即便如此,為了文化的傳承,讓我們來了解它們也無妨。

儘管老一輩Hacker親身經歷了技術的發展進步,他們只記得事件發展的前後順序,對於具體時間的印象已經非常模糊。於是,筆者對此大致做了梳理。即便是各位閱歷豐富的讀者,也許也能從閱讀的過程中發現驚喜。


筆者經常指導年輕Hacker使用Unix衍生系統,比如Linux和BSD等,所以文章會涉及不少Unix的內容。如果你覺得這些術語非常陌生,那你對剩下的內容可能也會感到陌生。


硬體的變遷


如今,兩台計算機一般通過TCP/IP協議交互信息,用戶不必關心物理底層內容。所謂的「終端」事實上也是「終端模擬器」,只是一個使用TCP/IP協議並且控制顯示屏內容的軟體。


在TCP/IP協議和位映射顯示器流行之前,情況則大不相同。對於大部分Hacker而言,這個概念變化大約發生在1992年,對於擁有昂貴工作站的用戶則還要更早一些。


在這之前,人們普遍使用的是視頻顯示終端(vedio display terminals),簡稱VDT。大約是在70年代中期,VDT替代了由「電傳打字機(teletype)」這一更老的技術支持發展的早期列印終端,電傳技術大約是在1900年左右由維多利亞電報網演變而來。60年代後期,最早版本的Unix系統就是為這些列印終端而開發的,特別是為Teletype Model 33(ASR-33)。現在Unix設備上顯示的「tty」就是當年「teletype」的縮寫。這並不是唯一帶有歷史印記的Unix設備名。類似的還有/dev/lp表示系統默認印表機。當時每位Hacker都知道「lp」表示「line printer」,這是一種每次列印一行的機電列印設備,當時在計算機框架中的地位堪比ASR-33。


在前互聯網時代,計算機之間並不需要進行通信,電傳打字機、終端與計算機的通信主要通過「RS-232」的硬體協議(也稱作「EIA RS-232C」)。在USB出現之前,當人們談論「串列」鏈路時,他們指的是RS-232,有時也把與其通信的設備稱為「串列終端」。


RS-232的服役期超級長。它誕生於60年代早期,當時並不是用於計算機,而是為了電傳打字機與數據機的通信。雖然RS-232現在已經過時了,但並沒有完全地消失。


其實,除了RS-232和串列終端之外,IBM大型機上還有很多其他設備和技術,但它們在當下流行的技術中沒有留下什麼印跡或是故事傳說。原因在於現代Unix系統傳承自「小型機」這個已被遺忘的硬體類別,尤其是數字設備公司(Digital Equipment Corporation,DEC)生產的小型機。ASCII、RS-232和串列終端都是小型機的技術組成部分,當然還有Unix本身。


後來,小型機被工作站所取代,工作站又被IBM的PC機取代。但年長的Hacker還是會對他們的入門設備——DEC小型機的年代(60年代中期到80年代中期)百感交集。

懷舊的心情掩蓋了當年這些機器慘淡的計算能力。比如,80年代中期,一台DEC VAX 11-780小型機的運算能力還不及現在低端智能手機的1/1000,存儲能力更是不到1/5000。


實際上,直到80年代小型機還是出了名的慢(還有糟糕的射頻屏蔽能力):若將調幅收音機靠近小型機,喇叭里就會出現異常的噪音,因為無論小型機的基礎頻率還是主要次諧波的頻率都在人類的聽覺範圍之內。自21世紀以來,再也沒有速度如此之慢的計算機。


賀氏智能調製器的鳳凰涅槃


數據機允許使用銅製電話線來傳遞數字信號,速率按照今天的標準來看屬於龜速,但它卻在前互聯網時代為我們提供了廣域網路。50年代後期,當時大多數人並不了解為軍事通信(特別用於SAGE防空網路)而發明的數據機。


如今,連接銅纜或是光纖的數據機被埋藏在房屋外的互聯網接入點,智能手機和平板電腦里也安裝了數據機。而當時,大多數Hacker熟知的是「外掛」式數據機,一個將計算機與電話線相連的獨立盒子。


其實也有內置式數據機(計算機的擴展卡),但由於置身於機箱之內,容易受到RF信號的干擾,所以從來沒有售賣過。有經驗的Hacker都能解讀出數據機的「貓叫」聲,根據聲音區分是否連接成功了。


以今天的眼光來看,老式的數據機真是慢得出奇。直到90年代後期廣域網技術推廣時,數據機的速度才從最初的每秒110b提高的每秒56kb。在1984年到1991年間,數據機的速度一直穩定在9600bps。這也是現存串口協議設備的默認速率設置為9600bps的原因。


有一種名為「賀氏智能調製器(Hayes Smartmodem)」的設備可以通過串口輸入指令來撥號和設置參數。Hacker們一定都還記得那些「AT」開頭的命令,比在ATDT後跟一個電話號碼就能撥打該號碼。其他生產商複製了賀氏公司的指令集,於是在1981年之後這些指令變得通用。


當時不為人知的一點是「AT」前綴還有特殊的屬性。這個序列(1+0 1000 0010 1+0 0010 1010 1+,『+』表示重複前一個字元一次或者多次)使得接收機很容易識別它,即使接收機不知道傳輸速率,這也使得接收機可以自動同步到該速率。


這個屬性非常有用,於是到現在AT慣例還在許多地方延續使用。智能手機的3G/4G蜂窩數據機使用AT命令執行控制功能。「AT+QLINUXCMD=」也是向晶元自身運行的Linux系統傳輸命令的前綴。

core的身世


在半導體出現前,大約1955年到1975年,計算機內存使用的主導技術是竄在銅導線上的小磁圈。小磁圈被稱為「鐵氧體磁芯」,因此主存儲器又被稱為「內存」或「核」。


Unix術語是在70年代早期形成的,「in core」和「core dump」這些術語保留到了半導體時代。直到90年代後期,相信大部分Hacker還說得出這些術語的來源。


2000年後,隨著多處理器系統在台式機上的迅猛發展,越來越多的人把「core」當做「processor core」的簡稱。如今,「core」一詞仍舊可以指代兩者,但舊用法的來歷已逐漸不被理解,而「in core」之類的術語也將會慢慢消失。


36位系統和八進位


內存單元的字長度通常都是以2的倍數來增長,如現在常見的8位、16位、32位、64位。但這是1983年以後才開始流行的。一種早期的計算機設計傳統是使用36位字。


曾經有一段時間,36位機器吸引了大部分Hacker,這段文化記憶到90年代才逐漸消退。兩款著名的36位機是DEC PDP-10和Symbolics 3600 Lisp Machine。83年取消PDP-10型號鳴響了這類機型的喪鐘,儘管3600機又苟延殘喘了近十年。


在2次冪的體系之下,十六進位是表示機器內存原始數據的一種自然方式。但八進位在36位機器中更為常見。原來,36位實際上是由12個3位欄位組成,每個欄位正好表示一個八進位數字。下面都是Hacker們所熟知的有關這些機器的趣聞:


36位二進位足以表示10位十進位的正負整數,等同於當年機械計算器的精度。32位的標準並不被當時的數值分析師和科學計算工筆者所支持,他們堅持要保留最後4位精度。


這些機器用9個比特表示一個字元,4個字元合并為一個字。因此,為它們設計的鍵盤可能有一個元鍵來表示第8位和一個現已不存在的額外修飾鍵表示第9位。

另外,眾所周知36位結構解釋了C語言的一些難以理解的特性。最初的Unix機器,PDP-7,採用18位位元組,對應於36位機器的半個字。它們就被表示為6個八進位數字(3位)。C語言的直系祖先是在PDP-7上完成的一種解釋性語言,稱為B語言。在B語言中,數字就是以0為起始,用八進位表示。


PDP-7的下一代,也是第一台主力Unix機器是PDP-11(1970年生產)。它使用16位位元組,但由於指令集的某些不尋常特性,八進位更能解釋它的機器碼。C語言首先應用於PDP-11,於是繼承了B語言的八進位語法,並且進一步擴展:當字元串中的反斜杠符號跟了一個數字,那麼這個數字用八進位解析。


Interdata 32、VAX和後來其他的Unix平台都沒有這些特性。其操作碼採用更自然的十六進位。然而,C語言再也沒有改為十六進位,關於前綴0的詭異解釋也沒有再做更改。


因為許多後來的開發語言(Java、Python等)處於兼容性的考慮複製了C語言的底層規則,所以相對無用甚至存在風險的八進位也許無法徹底擺脫了。


PDP-11非常成功,它深刻地影響了計算機的架構(包括Intel和ARM微處理器),最終一統天下,消滅了36位機。


RS232的功敗


TCP/IP鏈路通常就像一個8比特位元組的數據流,確保網路內數據的傳播速度最快,用戶不用操心錯誤檢測、糾錯等底層事件。RS-232卻不同,兩個通信的設備必須保持傳輸速率一致,而且數據的格式也要相同。RS232設備幾乎都使用ASCII編碼,它利用了ASCII只有7位的特點。最高位除了攜帶數據之外,也會被當做奇偶校驗位。為了保證收發正常,必須要約定兩端設備的數據格式,否則接收端收到的都是亂碼。在1984年之前,數據的格式非常混亂。隨後,逐漸統一為「8N1」的格式,即8位數據,沒有奇偶校驗位,有1位停止位。


另一方面,如果設置了奇偶校驗位,就無法使用RS-232鏈路傳輸二進位數據,高位的數據會被損壞。其他一些已被淘汰的廣域網協議的表現更糟糕。


即使RS-232的物理介面也是不斷地變化。1962年定義的標準RS-232採用25針的D型介面,針腳數比協議所需的更多(也可以用三個腳的迷你介面)。1984年,IBM PC-AT推出了更小的DB-9接頭,各大生產商也轉為生產此型號。如果你身邊有一台帶串口的PC機,這個介面很可能是DB-9。DB-25後來被用在印表機的並行介面上(與此前印表機所用介面不同)。兩種串口現在都被USB和網線所替代了。


曾從事過相關工作的朋友一定接觸過這些特殊設備:公母頭轉換器、DB-25到DB-9轉接器、接線盒、零數據機,以及其他很多早已被淘汰的設備和技術。上了年紀Hacker的工具箱里一定還攢著不少這些設備。

我們今天還在討論這些設備和技術的主要原因是現在很多感測器和控制器件以及物聯網設備仍然使用RS-232通信,往往是被包裹在USB模擬器內。常見的後一類設備可能就是與電腦相連的GPS感測器了(不是手持式GPS或者車載GPS)。因此,我們時不時的還需要理解什麼是RS-232的「握手線」。終端通過修改DTR(數據終端就緒)線來標示接收、初始化、保持連接等狀態是否已經就緒。三線版的RS-232完全拋棄了握手線。


90年代中期,RS-232技術的使用量逐漸減少,直到2010年在通用計算機上幾乎絕跡。而標準RS-232還廣泛用於上述特定領域的應用產品,以及某些商業級的路由器產品中。


遠去的廣域網:網際網路到來之前


今天,TCP/IP協議的網際網路似乎是僅存唯一的廣域網(Wide-Area-Network)。早期並不是如此。從70年代後期到90年代中期,尤其是1981年到1991年之間,存在著大量的廣域網。可能從你的電子郵件存檔中還能找到它們的蹤影。廣域網的特點之一就是人們有時會在簽名中張貼多個不同的網址。


年長的Hacker一定對UUCP或是BBS歷歷在目。許多人同時活躍於兩者之間。在那個年代,如果你不是屬於聯邦機構、軍事單位或者高校研究院的一個組織,就很難接觸到「真實」網路(ARPANET,後來的互聯網)。於是我們自力更生,利用數據機和電話網路實現聯網。


UUCP是Unix to Unix Copy Program的縮寫。自1979年它從貝爾實驗室脫離到90年代中期互聯網大爆發,UUCP利用數據機和電話網路長期提供了慢速卻廉價的網路。


UUCP是一種存儲-轉發系統,原本用於傳播軟體的更新。但它的主要用戶很快地拓展為電子郵件和USENET(1981年發布),後者是Stack Overflow和許多其他網站的前身。消息藉助UUCPU從話題組傳播到整個網路。


uuencode和uudecode是目前UUCP遺留的痕迹之一,這是一對用來渲染8位數據的濾波器。Unix老鳥們都知道這曾是UUCP使用電話線網路傳輸8位數據的工具。


UUCP和USENET採用的雙重速率結構(two-tier rate structure)是後來電話計費系統的前身,「本地」通話按照包月計算,昂貴的「長途」通話按照通話時長計費。UUCP的長途通話可能會因為中繼器而產生延遲。


USENET的歷史上有兩個重要的事件。一個是1987年的大換名事件(Great Renaming),當時USENET的話題名稱被重新排列組織。另一個是1993年的「永恆九月」(September that never ended),美國在線向它的用戶提供訪問Usenet的服務。菜鳥用戶的湧入持續地降低了Usenet乃至更多互聯網上的行為、言論的水準。

與此同時,在微型計算機的圈子內,另一種存儲-轉發系統也在發展,稱為BBS(Bulletin-Board System)。BBS是計算機上運行的一款服務軟體。用戶通過一個調製器和一個終端來訪問BBS,BBS允許用戶之間相互留言,上傳和下載文件,有時甚至可以玩遊戲。


BBS的靈感來源於超市的公告欄,1978年首個BBS在芝加哥出現。隨後18年中,成千上萬的BBS如雨後春筍般出現,背後的伺服器往往只是車庫裡的一台廢棄電腦主機。


其後經過幾番修改,1984年出現了一套名為FidoNet的新BBS系統。它可通過Internet電子郵件訪問,具有跨站郵件功能,以及類似USENET的論壇系統。


90年代中期,隨著互聯網的廣泛普及,BBS文化很快地消退。只有少數具有懷舊情懷的用戶還在使用BBS,還有一些具有藝術風格的站點被保留了下來。


BBS留下的文化印記幾乎只剩下一些興起於BBS的文件傳輸協議,比如XMODEM、YMODEM和ZMODEM。這些協議可以在7位的鏈路上傳遞8位數據。當年還未接觸過TCP/IP的用戶正是通過它們首次了解信息分包、錯誤檢測等概念。如今,還有至少一家路由器生產商家支持通過串口用XMODEM上傳數據。


當年,除了USENET和BBS之外,也有諸如AOL、CompuServe和GEnie等運營商提供服務,互聯網時代到來之後,它們或多或少都受到了衝擊,甚至完全消亡。


在這期間,有一件事物僥倖地存活到了2000年左右,那就是各大校園裡的學術廣域網:CSNET、BITNET、EARN、VIDYANET等等。當時它們也支持收發郵件和傳輸文件。現在電子郵件列表中的術語「listserv」就來自於當年的BITNET。


混亂的終端


現代Unix系統的軟體終端模擬器處於一段漫長且混亂的歷史盡頭。這段歷史起源於早期稱為「glass TYYs」的一種顯示器,因為它們模擬電傳打字機,但是成本較低,因為不需要消耗紙張。第一台設備於1969年發明,其中最出名的也許是1975年生產的ADM-3。


最早的VDT顯示器,比如ASR-33,只能顯示大寫字母。有意思的是,儘管1975年之後大多數VDT顯示器都能支持顯示小寫字母,但很長一段時間內Unix和Linux的登錄系統都習慣於將輸入內容轉換為大寫字母。如果用戶創建了一個全大寫字母的用戶名和大小寫混雜的密碼,各種麻煩就會隨之而來。

Lear-Siegler ADM-3A(1976)和DEC VT-100(1978)等設備繼承了每行80個字元的穿孔卡片的慣例,顯示的行數取決於4:3顯示屏的高度(2K位元組的顯示內存);這是現在軟體終端模擬器的默認尺寸設置為24x80或者25x80的緣由。


這些終端被稱為「智能終端」的原因是它們可以解釋控制代碼來執行操作,比如將游標移動到屏幕的任何位置。加粗、下劃線、高亮顯示等功能也得到了快速普及。然而,彩色文字和彩色背景是在VDT顯示器即將淘汰的前幾年才開始流行,在此之前的顯示器都是單色的。有部分顯示器支持粗糙的低解析度點陣圖,也有一部分支持黑白的矢量圖形。


早期VDT顯示器使用的控制碼雜亂無章。這一時期的主要遺產是管理這些控制碼的Unix terminfo資料庫,因而終端和應用程序之間可以據此完成抽象的操作,比如「移動游標」等等。目前終端模擬器仍在使用的游標庫函數當初就是為了簡化這些操作。


1979年,基於DEC VT-100,推出了終端控制碼的ANSI標準。到90年代前期,ANSI標準在VDT顯示器中已經非常普及,這也是現在終端模擬器選用它的原因。


大約1992年,個人電腦的位映射彩色顯示器已經能與單色VDT顯示器相媲美,並且價格也降到了大眾所能承受的範圍,這整個技術領域隨即迅速地完成了新舊更迭。有少量VDT設備一直存活到2010年左右。


有些人認為VDT時代遺留的痕迹可以解釋Unix命令行,事實情況並非如此,後者出現的時間顯然早於VDT,可以追溯到60年代晚期和70年代早期的最後一代終端列印設備。大家都明白,這就是為何我們現在通常把輸送到終端模擬器的標準輸出稱為「列印」。


VDT技術時代真正能夠解釋的是下一節將要介紹的一些古董級遊戲,以及一些仍然使用的工具程序,比如vi、top、mutt等。這些才是VDT年代的高級圖形交互技術。


前GUI時代的遊戲


位映射彩色顯示器的流行帶動了圖像界面遊戲的發展。在此之前,VDT顯示器上也流行過大量僅需文字交互或者使用字元圖案的遊戲。


這些VDT遊戲也曾在早期的微型機上流行過。一方面由於早期的微型機沒有圖像顯示功能或者功能很弱,另一方面是因為文字類遊戲相對容易開發並且容易從書籍雜誌上遷移過來。

最早期的一組遊戲是眾所周知的Trek家族,於1971年推出,玩家駕駛星艦與克林貢人和羅慕倫人以及其他敵人戰鬥。各個年齡段的Hacker們對此遊戲應該都有深刻的印象。


關於Trek遊戲的歷史總結過於複雜。值得我們注意的是,它及其簡陋的界面(甚至不是為VDT顯示器而設計,而是為了電傳打字機)掩蓋了其背後相當複雜的戰爭遊戲,包括積極策略、戰術奇襲和嚴密邏輯。


還有另一組遊戲採取了與dungeon-crawling不同的方式,它們更為直觀。它們被統稱為「roguelikes」,Rogue是這一系列中最早被開發的,那是1980年。它們支持地牢層面的俯瞰視角,玩家可以藉此遊走對抗怪物和尋找寶貝。


這個系列中最受歡迎的遊戲是Hack(1984)和Nethack(1987)。Nethack是最早一批由開發團隊藉助互聯網分布式協作完成的項目之一。在當時,這是一個非常新穎的工作方式,因此用這個想法給遊戲冠名。


90年代中期以後,這些遊戲逐漸淡出了我們的視野,但直到今天它們仍舊有少數的忠實粉絲。粉絲們任務原始的界面設計使得他們能更專註於情節和故事,留給他們了豐富的想像空間。


ASCll表


ASCII的全稱是美國信息交換標準代碼(American Standard Code for Information Interchange),是60年代發明的一套基於拉丁字母的電腦編碼系統。不像其他早期的字元編碼,ASCII一直沿用至今。它與Unicode前127個字元編碼相同。如果你知道UTF-8編碼,每個ASCII編碼的文件也可以看作是UTF-8編碼的。


下表是ASCII-1967,也就是今天仍然使用的版本。

Hacker曾經知曉的那些事


它與最初的1963年版ASCII表略有不同。這張表沒有包含波浪線和豎線,5E由尖號改為向上的箭頭,5F由下劃線改為向左的箭頭。


如果你在90年代之後才接觸計算機,那些控制字元就顯得非常神秘,即0~31號字元。也許你知道NUL是C語言的字元串結束標誌,還知道LF表示換行,HT表示水平製表,那麼剩餘的符號都代表什麼呢?


其中,大多數的符號都是電傳協議留下的遺產,一部分符號早就停用了,另一部分甚至都不為圈內人所知。只有極少數的符號還留存於目前的二進位協議中。


筆者列舉了前32個符號的含義:


NUL (Null) C語言中字元串結束的標識符。


SOH (Start of Heading) 標題開始標誌,某些版本的Unix把它當做收件箱的消息分隔符。


STX (Start of Text), ETX (End of Text) 很少用於數據包和數據流的分隔符。ETX是Ctrl-C,在Unix系統中表示為中斷字元,但這與ASCII表示的意義毫無關係,也許是從「Cancel」一詞引申而來。


EOT (End of Transmission) 相當於Ctrl+D,Unix終端的傳輸結束標誌。


ENQ (Enquiry) 在硬體串列終端的年代,如果計算機發送ENQ到終端,終端需要做出應答。雖然這種做法並不普遍,它至少給了計算機自動配置終端能力的辦法。在更早的電傳打字機年代,應答內容是基站ID而不是設備類型。在70年代,人們都記得ENQ在ascii表裡的名字是WRU,意為「Who Are You?」


ACK (Acknowledge) ENQ/ACK用於通信連接時的握手確認。當時,Hacker們在日常交流中用「ACK」來表示「I hear you」。


BEL (Bell) 讓電傳機的電鈴發出提示聲音。通常VDT設備也支持這個功能,但是現在的軟體終端模擬器不一定支持。有些設備把它改為標題欄閃爍的提示。


BS (Backspace) 退格,即字面意思。曾經爭議過鍵盤上的Backspace是否應該只支持退格功能,還是要兼顧退格和刪除的功能。


HT (Horizontal tab) 水平製表符,如字面意思。曾經用作Unix的文本文件的分隔符。


LF (Line Feed) Unix文本換行符。終端將其解讀為「向下滾動一行」。


VT (Vertical Tab) 垂直製表符。在終端列印輸出的時代,這個符號可以讓紙張向下滾動若干行。有些ANSI編碼將VT定義為「向上滾動一行」。大家還記得這個符號的唯一原因是它在Unix系統中定義了空格字元,而在其他系統中早就銷聲匿跡。


FF (Form Feed) 換頁鍵。許多VDT顯示器將它定義為「清屏」的指令。軟體終端模擬器有時也保留了這個習慣。


CR (Carriage Return) 現在的讀者可能從未見過當年的印表機,所以需要解釋一下:「回車」是將列印頭或游標移動到最左邊的操作。Windows、其他非Unix操作系統和一些互聯網協議(例如SMTP)把CR-LF作為行結束符,而不是僅僅用LF。MacOS則只用CR表示。


SO (Shift Out), SI (Shift In) 切入、切出字符集。雙色電傳印表機(另一種顏色通常是紅色)用SO指令切換為備用顏色,SI指令換回原有的默認顏色。


DLE (Data Link Escape) 數據鏈路轉義,有時在二進位協議中用來表示數據包標識符。也就是說,一個數據包以DLE開始,以DLE結束,如果數據中包含有DLE字元,則連續輸入兩個DLE。


DC (Device Control) 在筆者的印象中,除了電傳打字機之外別無用途。


NAK (Negative Acknowledge) 參見上文ACK詞條的介紹。


SYN (Synchronous Idle) 除了電傳打字機之外也別無用途。注意,不要將它與TCP/IP協議初始連接時,三次握手SYN SYN-ACK中的SYN搞混淆。


ETB (End of Transmission Block) 除了電傳打字機之外也別無用途。


CAN (Cancel), EM (End of Medium) 除了電傳打字機之外也別無用途。


SUB (Substitute) DOS和Windows系統使用Ctrl-z作為文件結束標誌,但與它的ASCII含義並不相關。當時的人們都知道^Z繼承自CP/M(1974)的操作系統,這個系統早已被人遺忘。


ESC (Escape) 現在仍被廣泛使用。它的用法最初是和VT00和ANSI標準的VDT有關,現在已經被所有軟體終端模擬器所使用。


[FGRU]S ( Separator) ( 各種分隔符),現在很少使用。


DEL (Delete) 表示退格並且刪除。


上述這些符號並不是都被我們熟知,有些看著眼熟卻不知道功能,有些知道功能卻又想不起表示符號。現如今仍然常用的符合主要是NUL、BEL、BS、HT、LF、FF、CR、ESC和DEL。


大事記


1961年MIT發布PDP-1,現在公認的Hacker文化也隨之誕生。


1969年Ken Thompson開始研發Unix系統的雛形。首台商業化的VDT發布。首次通過ARPANET交換數據包,奠定了今天網際網路的發展基礎。


1970年DEC PDP-11首次發布;它的體系結構主導了後續機型的研發,包括後來的Intel微處理器。


1973年這一年Interdata 32發布,32位機的時代開啟。Unix Edition 5從貝爾實驗室走向了一大批教育科研機構。XEROX Alto率先創造了「工作站」的概念,當時它是一台具有高解析度顯示器和滑鼠的聯網個人計算機。


1975年首台Altair 8800發布,微型計算機時代的大幕拉開。首台24x80和25x80的VDT投產。ARPANET宣布「可用」,開始進入主流的高校。


1976年經典書籍《Lions』Commentary on UNIX第六版》發布。大多數Hacker首次得以窺視Unix的內核代碼,對後來開源社區的發展也意義深遠。


1977年Unix被移植到了Interdata,是首個用C語言替代彙編語言開發內核的版本。


1978年世界上首個BBS在芝加哥問世,取名為CBBS。


1982年Sun Microsys公司成立。商業化Unix工作站的時代到來。


1983年PDP-10項目被砍,標誌著36位系統架構的徹底結束。ARPANET在經歷一番脫胎換骨之後,進化為了Internet。


1984年AT&T開始大規模地推廣商業版Unix,避免用戶直接接觸源代碼。


FidoNet在BBS圈子裡誕生。


1985年RMS發布GNU Manifesto。同年,C語言已成為系統開發和應用開發的主流編程語言,最終完全替代了更早期的編譯語言。IBM的model M首發。


1986年Intel 386首發,8位和16位PC機隨之而淘汰。大約到1989年此級別的消費級硬體設備才普及,但在那之後的計算機性能迅速地超越了早期的32位迷你機和工作站。


1987年USENET正在經歷大換名行動(Great Renaming)。


1991年Linux和萬維網分別誕生。


1992年位映像彩色顯示器應用於消費級PC設備。VDT顯示器逐漸被淘汰。


1993年Linux系統支持了TCP/IP協議,從業餘級產品升級為專業級操作系統。美國在線給USENET引入流量,「September That Never Ended」時代來臨。


1994年互聯網在美國初具規模。USB標準頒布。


1995年-1996年UUCP/USENET和BBS文化達到了巔峰時期,之後隨著互聯網的崛起而沒落。


1997年筆者做了「Cathedral and Bazaar」的演講。


1999年互聯網泡沫刺破前的最後瘋狂。工作站時代結束:隨著運行Linux系統的PC機普及,Suns和其他Unix工作站的市場快速萎縮。


2005年顯示器生廠商把主要生產力量由陰極射線管調整為純平顯示器。2003年之後純平顯示器成為主流產品。另外,2005年AOL不再扶持USENET,Endless September終歸結束。


2007年-2008年64位系統成為主流,32位系統逐步淘汰。單個處理器的速度穩定在4GHz左右。iPhone和Android首發。


作者簡介


Eric S.Raymond,著名Hacker和開源軟體的積極倡導者。他是INTERCAL編程語言的主要創作者之一,曾經為EMACS編輯器作出貢獻。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

6位AI技術大咖分享研發經驗
阿里、英特爾、百度、蘇寧等企業老司機帶你淘乾貨,架構+大數據熱點話題享不停
推薦16款免費開源的商業智能工具
Swat.io如何在兩年內從MySQL遷移到PostgreSQL

TAG:CSDN |

您可能感興趣

HackerRank 開發者調查報告:Python 最受歡迎
HackerOne優秀白帽黑客採訪系列-Fredrik Alexandersson
Hacker基礎之工具篇 braa
Hacker狂歡節,一起來戰鬥:Hackathon、TechPark、極客大會、神秘明星驚喜不斷……
不涼冰淇淋奶凍-Hacker cream
HackerOne優秀白帽黑客採訪系列-Rachel Tobac
HackerOne優秀白帽黑客採訪系列-Johnny Nipper
HackerOne優秀白帽黑客採訪系列-Sean Melia
記我在HackerOne上參與的一次漏洞眾測邀請項目
黑客神器BuckHacker:可抓取AWS敏感數據的搜索引擎
languagehacker奪冠 世界錦標賽秋季賽圓滿落幕
這個煙油軟綿綿-Hacker ceram冰淇淋奶凍煙油
看我如何反覆獲取到HackerOne的漏洞測試邀請
新加坡將與HackerOne啟動第二次漏洞賞金計劃
重磅!HackerOne2018年黑客調查報告