返回首頁
科技
重大突破

科技焦點|The full stack of terminals ex・Cursed circuits #5: capacitanc・Trouble Transitioning (2025)

JK Space News2026/07/06 06:012 分鐘閱讀
科技焦點|The full stack of terminals ex・Cursed circuits #5: capacitanc・Trouble Transitioning (2025)

📰 1. The full stack of terminals explained

🔗 原文連結

TITLE:終端機全端解析:Terminal、Shell、TTY、Console 到底在幹嘛?

這篇原文出自我很喜歡的開發者 Ahmad Awais,他直接把終端機從上到下那疊名詞拆開來講—— Terminal、Shell、TTY、Console、POSIX、ANSI Escapes、PTYs、Raw/Canonical Modes。對,就是那些你每天都用、但從來沒搞懂誰是誰的東西。

原文重點就是:大部分開發者用終端機好幾年,卻無法精確定義「終端機」到底是什麼。他知道怎麼用,但講不出它是啥。他從古老的硬體終端機講到現代虛擬終端機,把每一層的角色、歷史、和現代系統的對應關係全部拆開。

原文摘要

Ahmad 把終端機結構分成三層:

  1. 物理層:早期的硬體終端機(TTY),就是一張鍵盤加一台顯示器的機器,直接接在主機上。現在的「console」其實就是系統內建的螢幕與鍵盤。
  2. 核心層:POSIX 標準定義了 TTY 驅動程式,負責處理字元輸入輸出、緩衝、訊號(Ctrl+C)等等。這個驅動程式有兩種模式:Raw Mode(直接送每個按鍵給應用程式)和 Canonical Mode(等使用者按 Enter 才送一行)。
  3. 虛擬化層:因為我們不再接實體終端機,所以有了 PTY(Pseudo Terminal)。它模擬一對終端機裝置:一個是 master(給 terminal emulator 用,比如 iTerm2、Windows Terminal),一個是 slave(給 shell 用,比如 bash、zsh)。PTY 讓程式以為自己在真實終端機上運作,但其實只是在一個虛擬的通道裡跟終端機模擬器溝通。

另外還有 ANSI Escape Sequences(那些 \033[31m 的字串),它們是程式用來跟終端機說「喂,我要把這段文字變紅色」的語言。

我的觀點

我完全贊成 Ahmad 的觀點:絕大多數工程師的「終端機知識」停留在肌肉記憶層級,缺乏結構性理解。

你以為你每天用的「終端機」是什麼?其實不是那個視窗。視窗是終端機模擬器。真正的終端機是核心裡的 TTY 驅動程式。Shell 更可憐,它只是跑在 TTY 上面的應用程式。你亂打 cat /dev/urandom 導致整個終端機炸掉,對,你以為你砸了「終端機」,其實你只是讓 TTY 驅動程式收到了亂碼,然後它不知道怎麼處理,只好崩潰。

這個結構很重要,因為它解釋了為什麼某些設定檔(stty)、某些行為(如 job control、前景背景執行)、甚至某些奇怪的問題(按 Enter 沒反應?那就是 Canonical Mode 在搞你)會有這些現象。不懂這些層次,你永遠只能靠 Google 考古修 bug。

我還想特別提一下 Raw Mode。很多人以為「我要即時處理按鍵」就是用 Raw Mode,但實際上 Raw Mode 只是關閉了核心的緩衝和行編輯。真正的即時性還需要 Terminal Emulator 自己處理字元緩衝。這就是為什麼寫 TUI 應用(如 vim, top)時需要同時設定 PTY 的 Raw Mode 和 Terminal Emulator 的屬性。

延伸思考

把這個「終端機全端」類比到現在流行的 AI 工具鏈上,其實很像—— 我們常常只知道怎麼用工具(比如 ! 執行指令、 Ctrl+R 搜尋歷史),但如果不知道底層的 SIGINT 訊號是怎麼傳遞給 process group、或是 PTY 的 buffer 大小如何影響某個 docker container 的輸出被截斷,遇到奇奇怪怪的問題就抓瞎了。

另外有一個有趣的點:現代開發工具如 VS Code 的「整合終端機」其實就是一個 Terminal Emulator 綁在一個 PTY master 上。這個結構跟 1970 年代 PDP-11 上的實體終端機概念一模一樣,只是把所有東西塞進一個視窗裡。所以你看,這個設計撐了半世紀,還是沒人能改掉——它夠低階、夠抽象、也夠通用。

📝 編輯說:: 這篇文章在 Hacker News 上引發不少討論,許多人留言說「我用終端機十五年,這還是第一次有人用我能理解的方式把 TTY 和 PTY 講清楚。」筆者認為這篇最有價值的觀點是:不要被介面欺騙,你以為你只是「開了一個終端機」,實際上你開了一整條虛擬化的歷史產物。


📰 2. Cursed circuits #5: capacitance multiplier

🔗 原文連結

TITLE:受詛咒的電路 #5:電容倍乘器

原文摘要

lcamtuf 在「Cursed Circuits」系列第五集中,拆解了電容倍乘器(capacitance multiplier)這個看似巧妙的電路。它利用一顆小電容搭配電晶體或運算放大器,來模擬出上百倍甚至上千倍的電容值,常用於電源濾波或降噪。但 lcamtuf 點出,這種電路本質上是把主動元件當被動元件用,結果會出現一堆「詛咒」般的副作用:高頻響應爛到爆、啟動時電流衝擊驚人、溫度漂移讓濾波效果變形,甚至在某些負載條件下會自己震盪起來。他認為,很多開發者只看優點就套用,最後反而讓電源品質更糟。

我的觀點

電容倍乘器的核心矛盾在於:它用主動電路去模仿被動元件的特性,卻妄想保有被動元件的單純。被動電容沒有相位延遲、沒有頻寬限制、不會自己發熱,但一顆電容倍乘器卻同時引入了運算放大器的 slew rate、電晶體的儲存時間,還有偏壓電流的雜訊。這就像是你想用一台電腦模擬一個開關,結果電腦開機還要三十秒。

我認為 lcamtuf 真正想提醒的是:別把電路簡化當成萬靈丹。遇到需要大電容濾波的場合,與其搞一堆主動補償電路,不如花錢買一顆真正的電解電容。倍乘器只有在極度受限的空間、或是需要極低 ESR 的特定應用(例如音訊電路的前端)才有意義。而且一定要在設計初期就把它的寄生參數和穩定邊際算進去,不然你只會得到一個會唱歌的電源。

延伸思考

其實這種「以小博大」的思維在軟體開發也很常見——用抽象層去模擬底層行為,結果效能被犧牲、除錯變地獄。硬體設計更殘酷,因為物理世界不會妥協。當你把電容倍乘器用在 RF 電路或高速數位系統時,它引入的相移很可能讓你的訊號完整性直接崩潰。

回頭來看,lcamtuf 這系列「受詛咒的電路」不只是技術吐槽,更像是一本反面教材。它提醒我們:學習電路時,不只要會用工具,更要理解什麼時候不能用工具。下一次當你看到一個號稱「一顆電容就能搞定」的電路,記得先懷疑它是不是被詛咒了。

📝 編輯說:: 這篇文章在 Hacker News 上被許多硬體工程師拿來當作面試考題,筆者認為最有價值的觀點是「被動元件的主動模擬永遠有代價」,這句話值得所有 PCB Layout 新手貼在螢幕上。


📰 3. Trouble Transitioning (2025)

🔗 原文連結

TITLE:轉型困境:什麼能源轉型?

META_DESC:能源轉型真的發生了嗎?Adam Tooze 在《倫敦書評》的文章顛覆你對綠色能源與氣候政策的認知。

原文標題是 Adam Tooze 在《倫敦書評》的〈Trouble Transitioning: What energy transition?〉(2025)。作者直接挑明一個讓很多人不願面對的事實:如果你真正誠實回顧能源歷史,你會發現「能源轉型」從來就不是人類社會的常態。文章摘要點出,過去的歷史並非由一系列乾淨俐落的能源轉型構成,而是充滿了混亂、疊加與停滯。簡單來說,我們現在喊得震天價響的「告別化石燃料」,可能根本沒有歷史先例可以參照。

原文摘要:歷史打臉了誰?

Tooze 的核心論點很簡單卻也夠嗆:人類過去從來沒有「主動」且「全面」地用一種全新能源取代舊能源。從木材到煤炭,再到石油與天然氣,每一次所謂的「轉型」其實都是在舊系統上疊加新系統,舊能源的消耗量並沒有因此大幅下降,反而是總量持續暴衝。舉例來說,當石油崛起時,煤炭的使用量非但沒減少,還因為工業化規模擴大而持續成長。現在我們喊著要轉向太陽能與風電,但全球煤炭與天然氣的需求依然創下歷史新高——這不是轉型,這是「加料」。

我的觀點:你家的電費帳單就是照妖鏡

你可能最近剛收到台電漲價通知,或者考慮在屋頂裝太陽能板。很好,這代表你已經感受到轉型的壓力。但你有沒有想過,為什麼政府補貼太陽能那麼多年,你家旁邊的燃氣電廠還是在蓋?Tooze 的文章點出一個關鍵盲點:我們習慣把「能源轉型」想像成一場平滑升級,像是手機從iPhone 14換到15。但能源系統根本不是這樣運作——它牽涉數兆美元的基礎設施、供應鏈、地緣政治,還有數十億人的日常習慣。當中國持續蓋燃煤電廠,當美國頁岩油產量又創新高,你就知道「轉型」兩個字比你想像的複雜得多。我的觀點是:與其說我們正在轉型,不如說我們正在「硬撐著把再生能源塞進化石燃料的骨架裡」。

延伸思考:如果轉型不是線性的,那政策該怎麼改?

這篇文章啟發我們重新思考氣候政策的假設。太多計畫都建立在「只要補貼夠多、綠電夠便宜,化石燃料就會自然退場」的幻想上。但歷史告訴我們,便宜的能源只會讓總需求增加,而不是取代舊系統。更殘酷的是,開發中國家根本沒有意願犧牲經濟發展去減碳。那怎麼辦?或許我們該放棄「終極目標」(零碳排)的迷思,轉而專注於「階段性策略」:例如全力投資儲能技術、重啟核電討論、對化石燃料課徵真正的環境稅,而不是像現在這樣用補貼綠能來自我安慰。Tooze 的文章雖沉重,但那份誠實反而是一種解藥。

📝 編輯說::這篇文章在《倫敦書評》引發學界與能源社群的激烈討論,筆者認為最有價值的觀點在於戳破「轉型是歷史常態」的幻覺,


📚 本日原文來源


本文由JK Space News彙整,不代表任何投資建議。