第 21 章

Commit

Commit illustration

第二十一章:Commit


蓄電池的指示燈從綠轉黃是在凌晨一點十四分。衡遠看了一眼——剩餘容量大約六成。夠跑 Cornelius 一個半小時。他今晚只需要一個小時。

法拉第籠裡的空氣帶著金屬味。工具櫃的門板半敞著,Cornelius 的螢幕是這個空間裡唯一的光源。淡藍色的光映在鋁箔內壁上,折射出不規則的光斑。像一個非常小的、密封的水族箱——裡面沒有魚,只有一台跑不動大型模型的舊機器。

衡遠坐在矮凳上。筆記本攤在膝蓋左側,翻到倒數第二頁。十八步觸發序列的完整邏輯。右邊頁面是葛索的字跡——比他的小一號,但筆畫比他穩。降級之後,九歲兒子的字比他好看。這件事他已經接受了。

他在鍵盤上敲了第一行指令。右手四根手指落鍵,小指翹在 Enter 鍵上方兩公分的位置,像一根永遠搭不上車的天線。

full_sequence_validation --mode=final --constraints=current_physical

Cornelius 的風扇轉速升了一個檔。等待。四秒。七秒。游標閃爍。

結果開始滾動。他沒有逐行看——先掃結構。模組 A 休眠狀態確認、模組 B 休眠狀態確認、模組 C 植入序列十八步邏輯驗證通過、造物派載荷反制邏輯驗證通過。延遲閥參數零點五秒——

他的目光在那裡停了一下。零點五秒。他自己改的。從零點三改到零點五。多出的零點二秒不改變任何實質結果——維生艙的本地容錯系統要嘛來得及啟動,要嘛來不及。零點二秒的差距在級聯故障的混亂中是噪聲級別的波動。

他改的那天,葛索坐在旁邊幫他打字。螢幕上維生艙那一行亮著淡藍色。他盯了很久,然後伸手改了那個數字。葛索按了保存。沒有問為什麼。

零點五秒。他當時告訴自己:這是做了點什麼。不是什麼都沒做。是做了點什麼。

現在那個「點什麼」在螢幕上安靜地等著被驗證。Cornelius 對它的判定和對所有其他參數一樣:通過。合規。在約束範圍內。機器不知道零點五和零點三之間的差距不是工程決策,是一個人在懸崖邊往回挪了半步——然後發現懸崖的寬度是三百公里。

他往下看。

overall_success_probability: 12-18%

range determined by: physical_operator_variance (primary), cascade_timing_uncertainty (secondary), countermeasure_detection_risk (tertiary)

百分之十二到十八。主要變數是操作者的身體狀態。他的手。

衡遠盯著那個數字。不長。三秒左右。然後他開始打下一行指令。手指移動的速度比剛才慢了——不是猶豫,是他在逐個字母確認拼寫。這條指令他從來沒有打過。

if rollback_cascade triggers life_support_failover: estimate civilian_casualty_range --scope=all_affected_nodes --variable=local_failover_capability

Enter。

風扇的聲音沒有變。Cornelius 不知道這個問題和上一個問題有什麼不同。對它來說,都是參數、約束、計算。

六秒。

螢幕上出現了四行字。

Unable to compute precise figure. Estimated range: 50,000 - 3,000,000 Primary variable: per-node local failover capability (data incomplete) Secondary variable: cascade propagation speed (model uncertainty ±40%)

五萬到三百萬。

衡遠讀了一遍。然後讀了第二遍。數字沒有變。它們不會變。

五萬。最好的情況。所有節點的本地容錯系統全部正常運作,級聯速度在預測範圍的低端,獨立電力撐過七十二小時直到外部系統恢復。五萬人死亡——是那些本地容錯恰好有缺陷的節點裡的人。五萬。

三百萬。最壞的情況。級聯速度超出預測,多數節點的本地容錯來不及啟動,獨立電力在外部系統恢復前耗盡。三百萬。

中間的每一個數字都是某個具體的人。在某個具體的維生艙裡。意識被困在某個虛擬困境中。容錯系統啟動或不啟動。電力耗盡或沒有。活著或者不再活著。

他想到了延遲閥。零點五秒。他「做了點什麼」。那零點二秒的餘量在五萬到三百萬的尺度面前——

像一個人在海嘯前搬了一塊沙袋。不是一堵牆。是一塊。

他關掉了那個念頭。不是第一次關掉它。之前他用模糊的概率分佈把它封裝起來——「維生艙在波及範圍」是一個系統級的敘述,沒有人的臉。但現在 Cornelius 給了他數字。數字不是系統。數字是人數。

他把游標移到螢幕最上方。把這次推演的完整結果存進本地文件。文件名他打的是 final_validation_log。手指在鍵盤上停了一下。然後他改成 fv_log。短一點。沒有別的原因。

蓄電池指示燈還是黃色。Cornelius 的風扇穩定地轉著。法拉第籠外面,整棟樓都是黑的。沒有路燈。窗外偶爾有一條手電筒的光束掃過——拾荒者,或者巡邏。光束在鋁箔表面滑過,被擋在外面。

衡遠伸手,按住螢幕右上角的實體按鈕。螢幕滅了。

法拉第籠瞬間變成全黑。只有蓄電池指示燈的微弱黃光。他坐在黑暗裡。鍵盤還溫熱。風扇的嗡嗡聲在沒有螢幕光的情況下顯得更大聲。

他站起來。矮凳腳在地面上刮了一聲。頸後的切口在他直起身時繃了一下——三毫米的傷口長了兩天,邊緣開始收合,但仍然知道它在那裡。


走廊不長。七步。

他數了,因為黑暗中沒有別的座標系。第一步踩到了白天掃剩的碎髮——腳底的觸感非常輕微,像踩到了時間的碎片。第四步他的右手碰到了牆壁。瓷磚表面有冷凝水。夜裡的室內外溫差剛好夠在北面牆上凝出一層薄薄的水氣。

第七步。他停在兒子們的房間門口。

門沒關。永康特區的規矩是門不鎖——停電時需要快速集合。兩張矮床靠牆放著,中間隔了不到一公尺。窗簾是剪開的舊衣服拼的,月光從縫隙裡漏進來,在地板上畫了幾條白線。

葛索面向門口。他睡覺時翻身的頻率在過去兩週明顯增加了——衡遠記得,因為他半夜經過時計算過。高壓期行為。身體在睡眠中仍然保持某種警戒姿態。面向門口。面向聲音來的方向。九歲的孩子不應該在睡夢中保持警戒。

葛絡的臉埋在枕頭裡,只露出一隻耳朵和半個後腦勺。新剪的短髮參差不齊,在月光下看起來像一片剛割過的草地。他的呼吸很輕,規律,偶爾帶著一個微弱的鼻音——不是哼聲,更像是呼氣時聲帶無意識地振動了一下。

衡遠站在門框邊。左手扶著門框。右手垂在身側,小指微微翹著。

五萬到三百萬。

他看著葛索面向門口的臉。輪廓在月光裡只有一半——額頭、鼻梁、嘴唇的上緣。另一半沉在陰影裡。

他看著葛絡露出的那隻耳朵。很小。耳廓的弧度還沒長開,帶著那種只有兒童才有的柔軟的圓。

五萬到三百萬人裡面,有多少個九歲的孩子。

這個念頭進來的時候,他的膝蓋彎了。

不是跪下。不是踉蹌。是站著的身體突然失去了一個支撐層——就像系統在運行中被抽掉了一個底層依賴,上面的所有東西還在,但地基塌了一級,整個結構往下沉了兩公分。從外面看,只是一個人的身高突然矮了一點。

他站在那裡。膝蓋彎著。沒有蹲下去。也沒有直起來。

葛索翻了一下身。還是面向門口。他的手在枕頭邊摸了一下——摸到了什麼,又放開了。可能是白天的習慣殘留在睡夢裡。可能什麼都不是。

衡遠的左手在門框上收緊。指節壓住木頭的邊緣。他的呼吸沒有亂。心跳他量不到,但體感沒有變快。身體的其他部分都還在正常運行。只有膝蓋——膝蓋不聽了。它自己做了一個決定,而這個決定不經過大腦皮層。

五萬到三百萬個維生艙。每個艙裡有一個人。每個人可能有孩子。每個孩子可能在某張床上面向門口睡著。

他的膝蓋又往下沉了一點。

然後停住了。

不是他控制住的。是到底了。系統沉降到了新的平衡點——比原來矮了幾公分,但穩住了。不會繼續塌。結構還在。

他在門口站了很久。月光移動了一小段——從葛索的額頭滑到了眉骨。他看著那條光線走。沒有想任何具體的事。腦子裡不是語言,不是數字,不是觸發序列。是一種填滿了整個顱腔的白色靜噪。

然後膝蓋直了。

不是慢慢直的。是一瞬間的事。像硬件重啟。系統從沉降狀態彈回運行高度,沒有過渡動畫。

衡遠轉身。走廊七步。他走回法拉第籠。

矮凳。鍵盤。螢幕。他按下電源按鈕。淡藍色的光重新亮起來,照在他的臉上。Cornelius 的啟動介面在載入。風扇轉速恢復。他看了一眼蓄電池——黃燈,大概還有四十多分鐘的運行時間。他不需要四十分鐘。

他把手放在鍵盤上。

十根手指。九根落在鍵帽上。第十根——右手小指——懸在 Enter 鍵的右側,碰不到任何東西。

Cornelius 的命令行等在那裡。游標閃爍。一秒。兩秒。

他沒有動。

鍵盤的塑膠表面還留著剛才的溫度。他的指腹壓在字母鍵上,沒有按下去。風扇轉。蓄電池的黃燈在螢幕邊緣的鋁箔上映出一個模糊的橢圓。法拉第籠外面是睡著的兒子、沒有路燈的巷弄、沒有算力的夜空。

五秒。十秒。

腦子裡的循環不肯停。「五萬到三百萬」這個範圍裡的每一個單位被還原成一個人,然後那個人有一張床、一個門口、一個面向門口的孩子。循環跑不完。數據集太大。但處理器不停。

十五秒。二十秒。

循環沒有結論。不會有結論。這不是一個有解的問題。

二十五秒。

他的右手動了。食指先落。然後中指。然後無名指。

C-o-m-m-i-t

六個字母。鍵帽的行程大約兩毫米。每一個字母的觸發力度都是均勻的——沒有遲疑的輕,沒有憤怒的重。只是一個操作者在執行一個指令。他打字的速度和這一整晚的所有輸入完全一致。

小指懸在 Enter 右側。

他用無名指按下 Enter。

螢幕上 Commit 的回顯亮了一瞬。Cornelius 開始執行最終鎖定序列——所有參數固化,推演環境關閉,文件標記為只讀。這不是 Cornelius 的功能要求。是衡遠自己寫的腳本。Commit 之後不允許再修改。和版本控制一樣。寫入歷史。不可撤回。

他看著螢幕上的進度條走完。一行確認信息:

Sequence locked. No further modifications permitted.

衡遠沒有關機。他把手從鍵盤上拿開,放在膝蓋上。右手的小指翹著。左手平放,穩定,比右手像一隻正常的手。

法拉第籠裡很安靜。風扇還在轉。蓄電池的黃燈還亮著。螢幕上的確認信息停在那裡,不動了。

他坐了一會兒。不長。可能三十秒,可能一分鐘。然後他關掉 Cornelius,關掉螢幕,把工具櫃的門板合上。鋁箔膠帶重新封好邊緣。

走出法拉第籠的時候,他的腳又踩到了那些碎髮。

讀者留言

載入留言中…