Re: [問卦] 原來上 ptt 可以學 linux 操作..

看板Gossiping作者 (松鼠)時間3年前 (2021/04/23 00:01), 3年前編輯推噓514(519567)
留言591則, 540人參與, 3年前最新討論串2/4 (看更多)
※ 引述《freertos (@@)》之銘言: : 今天在玩 pi : 開始看 linux 指令 : 要修改檔案, 使用 nano : 然後就是要存檔... 噹噹 : 是 ctrl+x : 哇~~~~~ : 原來上 ptt 就已經預習了 linux 操作. : 真的棒! 履歷上可以寫 熟悉 linux 了吧~ 這恰好連結台灣特有的 BBS (電子布告欄) 文化及早期 Linux (和 BSD) 文字編輯器的 關聯。也讓我想起一年前過世的陳昇瑋博士,他的舊名是陳寬達,並以 Xshadow 的名號 馳名於早期的台灣資訊科技圈。為了懷舊和區隔他近期在資料科學、人工智慧,及金融 科技領域的成就,以下我用 Xshadow 稱呼陳博士,強調他在國立清華大學就讀大學部和 碩士班時期,對於台灣 BBS 界做出的顯著貢獻。 台灣的 BBS 站台一度到 1000 個的規模 [1],如今仍有效的站台數量已大幅減少 [2], 清華楓橋驛站 BBS 是其中最知名的站台之一,並直接影響許多 BBS 站的技術發展。 Xshadow 曾投入 MapleBridge BBS (寓意「楓橋」) 的開發,這個專案可簡稱為 Maple BBS,以 GNU GPL 授權條款釋出,儘管部分程式碼的授權有爭議 [3],仍獲得廣大採納 並由若干富有才華的高手 (多為當時的大學生和研究生) 改進,其中包含陽光沙灘(英文 名: Sun of Beach,簡稱 SOB) BBS [4],後者是台灣大學校內第一個由學生架設的 BBS 站台,而 Ptt BBS 則演化自 SOB BBS [5]。 Xshadow 一干高手並非從無到有打造 BBS,而是修改 Phoenix BBS (交大資工鳳凰城 資訊站),後者又修改自 Eagle BBS (作者為 Raymond R. Rocker 及 Dominic B. Tynes) [9]。1990 年代初期,當時 BBS 是命令式的操作界面,玩 BBS 必須要輸入各種命令, 交大資工系的高手將 Eagle BBS 改為選單式界面,使得 BBS 上的網友們只要按上下左右 鍵就可享受豐富的 BBS 功能。由於交大資工站名叫「鳳凰城資訊站」,這套廣泛被採用 (包含中華人民共和國境內的大學院校 BBS 站台) 被稱為 Phoenix BBS。 許多現今我們熟悉的 BBS 功能,如 KTV 包廂式聊天室、線上 Call-in (在後繼的 SOB BBS 稱為「水球」)、動態看板等等,可追溯到清華楓橋驛站提出的實作,可惜那年代 人們不常用版本控制系統,否則我們應該可瞻仰 Xshadow 的程式修改歷程。 Eagles BBS 起源於 Pirate BBS (有時也書寫為 Pirates BBS)。1992 年,台灣國立中山 大學的陳年興教授改寫 Pirates BBS,成為世界上第一款中文版本的 Telnet BBS,在 校園推廣結果一炮而紅,也就是中山大學美麗之島站,陳教授將原始碼回饋給 Pirates BBS 原作者 [6]。 正因為 Pirates BBS 採用 GNU GPL 授權釋出,上述累積的成果才得以公開協作和分享。 Maple BBS 在 Xshadow 等人的投入,逐步成為今日我們熟悉的操作介面和風格,但裡頭 仍保有 Eagles BBS 的影子,我們可瀏覽 Eagles BBS 的程式碼 [7],以 ebbs-3.1.1 (即 Eagles BBS v3.1.1) 為例,檔案 "README" 聲明: : It is the successor to Eagles BBS version 2, which was built upon Ed Luke's : Pirates BBS package Eagles BBS 裡頭涉及到全螢幕文字編輯的程式碼,在檔案 pbbs/vedit.c 中,其中 "pbbs" 就指 Pirates BBS,授權聲明如下: : This program is free software; you can redistribute it and/or modify : it under the terms of the GNU General Public License as published by : the Free Software Foundation; either version 1, or (at your option) : any later version. 亮點是採用 GNU GPL 第 1 版釋出 [8],後者是在 1989 年由自由軟體基金會 (FSF) 所 頒訂,但 Pirates BBS 釋出於 1990 年,GNU GPL 第 2 版要到 1991 年才釋出,恰好 是 Linux 核心對外發布的年份 (但早期 Linux 核心不是透過 GNU GPLv2 發布,是技術 社群朋友建議下,才用 GPLv2 發行至今)。 讓我們繼續研究 Eagles BBS 的原始程式碼 pbbs/vedit.c: (前方數字為行號) 581 | case CTRL('X'): case CTRL('W'): 582 | clear() ; 583 | foo = write_file(filename); 584 | if (foo != KEEP_EDITING) return foo; 不難發現,在 Eagles/Pirates BBS 中,Ctrl-X 和 Ctrl-W 都有儲存目前文章到檔案的 作用,且這樣的按鍵操作延續到現在的 Ptt BBS。同一個原始程式碼另一處: 422 | prints("Type Ctrl-Z for help\n") ; 原來 Ctrl-Z 印出編輯器的操作指引,是三十年前就存在的慣例。繼續閱讀程式碼: 712 | char *helptxt[] = { 713 | "\01General Commands:", 714 | "Ctrl-X Save and Exit (or Ctrl-W)", 715 | "Ctrl-L Redraw Screen", 716 | "Ctrl-Z Call up this help screen", 717 | "", 718 | "\01Cursor and Movement Commands:", 719 | "Ctrl-F Forward character", 720 | "Ctrl-B Backward character", 有沒有發現現在用的 Ptt BBS 是「活化石」呢?上方程式碼定義的快速鍵,實作於名為 vedit 的程式碼中。Maple BBS 改寫源於 Eagle BBS 的 Phoenix BBS 程式碼,保留已有 的組合按鍵,將全螢幕編輯器稱為 ve [10],儘管兩者資料結構和處理邏輯已截然不同, 但 vedit 到 ve 的演化痕跡仍在。截至發文時間,Ptt BBS 關於全螢幕編輯器的原始 程式碼 [11] 最後一次修改於 2019 年五月,裡頭仍存在 "vedit" 函式名稱。 大致說明 Ptt BBS 和此前台灣 BBS 系統的沿革,我們來看 GNU nano [12]。1999 年該 軟體釋出時,使用 TIP 這名稱,模仿 GNU 是 GNU's Not Unix 的簡稱 [13],這個 TIP 表示 "TIP Isn't Pico",其中 Pico [14] 是華盛頓大學為了開發 Pine [15] 郵件客戶 端軟體,一併實作的文字編輯器,首度釋出於 1989 年。Pico 就是 Pine composer 的 簡稱,允許使用者全螢幕進行文字編輯,而由於 Pine 和 Pico 並非採用自由軟體授權 條款發行,所以才有 GNU nano 這項專案的誕生。2007 年華盛頓大學重寫 Pine, 加上 Unicode 支援和若干新特徵,以 Apache License 釋出新軟體 Alpine [16],此時 GNU nano 已是廣泛散佈的軟體,但仍保有 Pico 相容的操作 [17]。 對比 1989 年釋出的 Pine/Pico 和 1990 年發布的 Pirates BBS,我們可見 Ctrl-X 作為離開 (exit) 編輯器,Ctrl-B/F 分別表示 backward 和 forward,和 Ctrl-K 作為 cut (也有刪除列的作用) 等組合鍵有著相似的行為,或許反映那個年代的慣例。 Linux 其實只是作業系統核心,正如 Linus Torvalds 在紀錄片 "Revolution OS" [18] 提及的說法: : 「作業系統就是你永遠不會看到的東西,因為沒有人直接使用作業系統,人們使用的是 : 程式。在他們的電腦上,作業系統唯一的使命就是,幫助其它程式執行,所以作業 : 系統從未獨立運行,而僅是默默等待程式,來向它要求現有資源、某個存在硬碟上的 : 檔案或要求其它程式將這個程式連接到外面去,然後作業系統再一步步地,試著讓 : 人們寫程式容易一些」 無論是 Ptt BBS 的 mbbsd (BBS 文字模式主程式) 抑或 GNU nano,都是 Linux 這個 核心之上的應用程式,你我現在可在 Ptt BBS 上對話,就持續驗證 Linux 核心的作用, 說「熟悉」Linux 的運作狀況,是合理的,只是通常公司行號會期待招聘到「可延伸 Linux 核心的模組和系統呼叫,從而解決特定工程問題」的工程師。 Ptt BBS 運作在 GNU/Linux 作業系統之上。歡迎對 Linux 核心內部運作原理有興趣的 朋友,關注全台灣唯一探討最新 Linux 核心技術的大學課程「Linux 核心設計」,所有 教材都公開釋出,並提供對應的講解錄影: http://wiki.csie.ncku.edu.tw/linux/schedule [1] 台灣的 BBS 發展相當早,並在 1990 年代創造出豐富多元的生態,但可惜隨著關鍵 經營者的淡出,不易追溯完整歷史並作出統計。可參考「電子佈告欄與現代生活」: http://ant.comm.ccu.edu.tw/course/100_Communication_life/network21/bbs.pdf [2] 已知現存中文 BBS 站台: https://bbslist.github.io/ [3] 可見 http://processor.tfcis.org:8080/bmost?itoc&4607 gslin 彙整相關的授權議題討論: https://blog.gslin.org/archives/2006/02/12/365/ [4] 最初的程式碼由清大楓橋驛站移植過來,由於當初台大 (除了校方的 BBS 站) 未有 學生自行架站的經驗,因此架站的過程發生許多困難,當時有位站長隨口說出: "Son of Bitch",沒想到 BBS 站台竟然架設成功,後來由駱子逸提議將站名以諧音 "Sun of Beach" 取為「陽光沙灘」,這便是站名的由來。 [5] 參見「台灣前期 BBS 與 maple 發展史」: https://www.ptt.cc/bbs/BBSview/M.1187798691.A.DD1.html [6] 台灣 Telnet BBS 的沿革: https://www.facebook.com/DannyLin8/posts/10156904689480975 [7] Eagles BBS 和早期 BBS 的原始程式碼: https://github.com/bbsmirror/BBSmirror/tree/master/EaglesBBS [8] Old versions of the GNU General Public License: https://www.gnu.org/licenses/old-licenses/old-licenses.html#GPL [9] Linux Journal 在 1994 年刊載由 Eagles BBS 作者撰寫的 "The Birth of Eagles BBS" 一文: https://www.linuxjournal.com/article/2789 [10] ve 原始程式碼和平台相關的修改: http://mirror.sars.tw/FreeBSD_Chinese_HOWTO/ve.html https://github.com/clamtestbbs/ve [11] Ptt BBS 的全螢幕編輯器原始程式碼: https://github.com/ptt/pttbbs/blob/master/mbbsd/edit.c [12] GNU nano: https://www.nano-editor.org/ [13] GNU's Not Unix: https://www.gnu.org/gnu/gnu-history.html [14] Pico text editor: https://en.wikipedia.org/wiki/Pico_(text_editor) [15] Pine email client: https://en.wikipedia.org/wiki/Pine_(email_client) [16] Alpine (email client): https://en.wikipedia.org/wiki/Alpine_(email_client) [17] GNU nano 發展沿革和功能簡述: https://www.nano-editor.org/history.php [18] 從 Revolution OS 看作業系統生態變化: https://hackmd.io/@sysprog/revolution-os-note -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.246.163 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1619107303.A.AE0.html

04/23 00:02, 3年前 , 1F
首推
04/23 00:02, 1F

04/23 00:03, 3年前 , 2F
先推在睡
04/23 00:03, 2F

04/23 00:03, 3年前 , 3F
有神快拜
04/23 00:03, 3F

04/23 00:03, 3年前 , 4F
是教授
04/23 00:03, 4F

04/23 00:03, 3年前 , 5F
04/23 00:03, 5F

04/23 00:03, 3年前 , 6F
04/23 00:03, 6F

04/23 00:03, 3年前 , 7F
優文推一個
04/23 00:03, 7F

04/23 00:04, 3年前 , 8F
04/23 00:04, 8F

04/23 00:04, 3年前 , 9F
...
04/23 00:04, 9F

04/23 00:04, 3年前 , 10F
這篇文章值1000P幣...
04/23 00:04, 10F

04/23 00:04, 3年前 , 11F
講中文
04/23 00:04, 11F

04/23 00:04, 3年前 , 12F
是教授欸
04/23 00:04, 12F

04/23 00:04, 3年前 , 13F
是jserv...
04/23 00:04, 13F

04/23 00:05, 3年前 , 14F
這篇是PTT史料等級了吧
04/23 00:05, 14F

04/23 00:05, 3年前 , 15F
04/23 00:05, 15F

04/23 00:05, 3年前 , 16F
04/23 00:05, 16F

04/23 00:05, 3年前 , 17F
推推
04/23 00:05, 17F

04/23 00:06, 3年前 , 18F
專業推
04/23 00:06, 18F

04/23 00:06, 3年前 , 19F
看完再推
04/23 00:06, 19F

04/23 00:07, 3年前 , 20F
專業!
04/23 00:07, 20F

04/23 00:07, 3年前 , 21F
玉山金科技長QQ
04/23 00:07, 21F

04/23 00:07, 3年前 , 22F
推推超讚老師
04/23 00:07, 22F

04/23 00:07, 3年前 , 23F
太神啦
04/23 00:07, 23F

04/23 00:07, 3年前 , 24F
推!
04/23 00:07, 24F

04/23 00:08, 3年前 , 25F
有神快拜
04/23 00:08, 25F

04/23 00:08, 3年前 , 26F
太神啦
04/23 00:08, 26F

04/23 00:08, 3年前 , 27F
04/23 00:08, 27F

04/23 00:08, 3年前 , 28F
04/23 00:08, 28F

04/23 00:08, 3年前 , 29F
有神快拜,請收下我的膝蓋
04/23 00:08, 29F

04/23 00:09, 3年前 , 30F
太猛了
04/23 00:09, 30F

04/23 00:09, 3年前 , 31F
推~
04/23 00:09, 31F

04/23 00:10, 3年前 , 32F
我想到今年還沒在八卦板發文廣告課程,就發篇廢文(116特色)
04/23 00:10, 32F

04/23 00:10, 3年前 , 33F
推!
04/23 00:10, 33F

04/23 00:10, 3年前 , 34F
Holy
04/23 00:10, 34F

04/23 00:10, 3年前 , 35F
順便緬懷 Xshadow 博士...
04/23 00:10, 35F
※ 編輯: jserv (140.116.246.163 臺灣), 04/23/2021 00:12:17

04/23 00:11, 3年前 , 36F
娘子快出來看上帝
04/23 00:11, 36F

04/23 00:11, 3年前 , 37F
04/23 00:11, 37F

04/23 00:11, 3年前 , 38F
04/23 00:11, 38F
還有 513 則推文
還有 2 段內文
04/23 12:33, 3年前 , 552F
04/23 12:33, 552F

04/23 12:35, 3年前 , 553F
專業推
04/23 12:35, 553F

04/23 12:52, 3年前 , 554F
看來應該可以開設數位考古系了
04/23 12:52, 554F

04/23 12:55, 3年前 , 555F
當年連資工系大一生都在架bbs
04/23 12:55, 555F

04/23 12:57, 3年前 , 556F
專業文推
04/23 12:57, 556F

04/23 13:00, 3年前 , 557F
有神
04/23 13:00, 557F

04/23 13:13, 3年前 , 558F
04/23 13:13, 558F

04/23 13:13, 3年前 , 559F
推大神
04/23 13:13, 559F

04/23 13:14, 3年前 , 560F
04/23 13:14, 560F

04/23 13:16, 3年前 , 561F
04/23 13:16, 561F

04/23 13:19, 3年前 , 562F
優文
04/23 13:19, 562F

04/23 13:40, 3年前 , 563F
04/23 13:40, 563F

04/23 13:44, 3年前 , 564F
04/23 13:44, 564F

04/23 14:00, 3年前 , 565F
推 當年真的就maple跟phoenix兩套在玩比較多XD
04/23 14:00, 565F

04/23 14:01, 3年前 , 566F
我記得還有windtop 但忘記細節了
04/23 14:01, 566F

04/23 14:45, 3年前 , 567F
感謝前輩的貢獻
04/23 14:45, 567F

04/23 14:55, 3年前 , 568F
鍵盤史學家(無誤
04/23 14:55, 568F

04/23 15:23, 3年前 , 569F
推神
04/23 15:23, 569F

04/23 15:31, 3年前 , 570F
媽我在這
04/23 15:31, 570F

04/23 15:32, 3年前 , 571F
04/23 15:32, 571F

04/23 15:36, 3年前 , 572F
04/23 15:36, 572F

04/23 16:16, 3年前 , 573F
04/23 16:16, 573F

04/23 16:19, 3年前 , 574F
04/23 16:19, 574F

04/23 16:56, 3年前 , 575F
04/23 16:56, 575F

04/23 17:29, 3年前 , 576F
跪了
04/23 17:29, 576F

04/23 17:40, 3年前 , 577F
04/23 17:40, 577F

04/23 17:43, 3年前 , 578F
推 啦 太 神 啦
04/23 17:43, 578F

04/23 18:32, 3年前 , 579F
在八卦版也太認真
04/23 18:32, 579F

04/23 19:40, 3年前 , 580F
有神快拜!
04/23 19:40, 580F

04/23 20:10, 3年前 , 581F
04/23 20:10, 581F

04/23 21:09, 3年前 , 582F
04/23 21:09, 582F

04/23 22:40, 3年前 , 583F
優文推推
04/23 22:40, 583F

04/23 23:00, 3年前 , 584F
謝謝 jserv 學長精闢的整理與見解,覺得一時興起而整理
04/23 23:00, 584F

04/23 23:01, 3年前 , 585F
的一些資料都有繼續留下來的意義了
04/23 23:01, 585F

04/24 00:25, 3年前 , 586F
有趣的歷史
04/24 00:25, 586F

04/24 02:53, 3年前 , 587F
優文朝聖XDD
04/24 02:53, 587F

04/24 03:14, 3年前 , 588F
這種東西真的希望看到
04/24 03:14, 588F

04/24 13:33, 3年前 , 589F
04/24 13:33, 589F

04/24 21:41, 3年前 , 590F
ww 原來如此 但非此領域專業 所以有看沒懂XD
04/24 21:41, 590F

04/25 01:20, 3年前 , 591F
推饒老師
04/25 01:20, 591F
文章代碼(AID): #1WWPtdhW (Gossiping)
文章代碼(AID): #1WWPtdhW (Gossiping)