首頁 分類 排行榜 閱讀記錄 我的書架

第26章 痕跡

2026-04-29 作者:小怡不吃魚

痕跡

沈清珩發現自己最近在寫程式碼的時候,會不自覺地停下來。

不是卡住了。是“感知”到了甚麼。他的黑色程式碼在系統評估功能關閉後完成了最終的內化,不再需要主動呼叫——它已經成為他神經系統的一部分,就像呼吸一樣自然,不需要去想“我現在要呼吸了”,身體自己就會呼吸。寫程式碼的時候,他的黑色程式碼會自動讀取螢幕上的每一行程式碼的“底層狀態”。不是語法檢查,不是邏輯分析,而是更深層的東西——這行程式碼在被編譯成機器指令之後,會在CPU的哪個核心上執行,會佔用多少快取,會在流水線中經歷多少次冒險。這些資訊對寫程式碼沒有任何幫助,但他就是能“看”到。

他寫了一個排序演算法。黑色程式碼讀取了演算法的底層狀態——時間複雜度O(n log n),空間複雜度O(1),在Intel i7-H的CPU上執行時,會在效能核心上執行,L1快取命中率大約百分之八十七。他不需要這些資料。但他還是看到了。就像方硯不需要知道路面的摩擦係數,但他還是讀到了。

他從顯示器前靠回椅背。

蘇曉棠在客廳裡看一本書——不是程式設計書,是一本小說,王安憶的《長恨歌》。她最近開始讀上海作家寫的上海故事,說是想多瞭解一下這座城市。搬來上海一年多,她對這座城市的瞭解還侷限在便利店方圓兩公里之內。現在想擴大一點。沈清珩覺得這個想法很好,但他自己沒讀過《長恨歌》。他讀過的上海故事只有石庫門弄堂口的指示牌。

“沈老師,你怎麼不寫了?”蘇曉棠從書裡抬起頭。

“在想事情。”

“想甚麼?”

“想我怎麼才能讓黑色程式碼不讀那些沒用的資訊。”

蘇曉棠放下書。她穿著沈清珩的舊衛衣,灰色的,領口有些鬆了,露出一截鎖骨。夜燈開著。十幾塊錢的雜貨店燈,插上電就亮。“方硯也有同樣的問題。他的亮金色程式碼在讀所有東西。路面、行人、花、綠蘿。他說他在練習‘刪除’。”

“我的黑色程式碼不是在讀,是在‘寫’。不是寫程式碼,是‘留痕跡’。我坐過的椅子、摸過的門把手、踩過的地板——都會短暫地留下我的程式碼簽名。不是故意的,是黑色程式碼在物理世界裡還沒學會不留痕跡。方硯在第七層裡學會了刪除,我在物理世界裡需要學會不留。或者學會擦掉。”沈清珩低頭看著自己的手。黑色印記從左手手背蜿蜒到前臂中段,在夜燈光線下幾乎是看不見的,但蘇曉棠知道它在那裡。她見過它在系統裡發光的樣子。

蘇曉棠從沙發上站起來,走到書桌前,拉起沈清珩的左手,翻開手背。那道印記在她指尖的觸控下,微微亮了一下。不是發光,是“回應”。蘇曉棠的金鑰和沈清珩的黑色程式碼之間的連線,在物理接觸時會自動啟用。不傳遞資訊,不交換資料,只是“確認”——確認對方還在。

“方硯說,在第七層深處,他發現系統的自我認知程式碼每一層都在問同一個問題:‘我是誰?’你的黑色程式碼在物理世界裡留痕跡,是不是也在問這個問題?‘我在這裡。你看到我了嗎?’”

沈清珩看著蘇曉棠的手指在他的印記上停留。

“也許。”

蘇曉棠鬆開他的手,回到沙發上,拿起《長恨歌》。沈清珩轉回螢幕前,看著那個排序演算法。黑色程式碼還在讀——L1快取命中率百分之八十七,效能核心,時間複雜度O(n log n)。這次他沒有刪。他把那條資訊存在了意識裡,‘存在’不是出於需要,而是出於‘接受’——資訊讀到了就讀到了,不需要刻意刪除,也不需要刻意保留。讓它自己消失。方硯花了兩週學會“刪除”。沈清珩不知道自己需要多長時間學會“順其自然”。

週五下午,公司提前發了一個通知——專案上線,今晚需要留守。沈清珩所在的電商公司正在做“雙十二”的壓測,運維組的人手不夠,從研發組抽調了幾個人幫忙盯著監控大盤。沈清珩是其中之一。他從下午六點開始盯,一直盯到凌晨一點。

監控大盤在辦公室正前方的巨幕上,五十五寸,四塊拼接,實時顯示著系統的各項指標——QPS、RT、CPU、記憶體、網路IO、磁碟IO。所有數字都在正常範圍內波動。但沈清珩的黑色程式碼在盯著大盤的同時,也在讀別的東西。不是在讀大盤上的數字,而是在讀“監控系統本身的底層狀態”。這個監控系統是誰寫的,用了甚麼框架,資料採集的取樣率是多少,儲存引擎是MySQL還是ClickHouse,資料保留策略是多久。他不需要這些資訊,但他讀到了。

他讀到了監控系統底層的一個微小異常。不是QPS突增,不是RT飆升,不是任何運維指標會報警的異常。是一個資料取樣的時間戳格式不統一的問題——同一個監控項,在不同伺服器上採集到的資料,時間戳有的用的是UTC+8,有的用的是UTC+0。差值正好八個小時。

這個異常不會影響監控系統的準確性,因為取樣的時間戳只是為了排序,不是用於計算時間間隔。但沈清珩的黑色程式碼在讀到這個異常的時候,自動“標記”了它,就像一個編譯器在遇到不規範的語法時會給出警告——程式碼能執行,但不推薦。

沈清珩看著那條警告,笑了。不是覺得好笑,是覺得黑色程式碼真的把自己當成他的編譯器了。不是在修系統的Bug,而是在修公司監控系統的Bug。

凌晨一點,壓測結束。運維組的老王拍著他的肩膀說“辛苦了”,沈清珩說“不辛苦”,關上電腦,走出公司大門。靜安寺的午夜,街上的車很少,路燈把人的影子拉得很長。他在路邊站了一會兒,等一輛計程車。等了很久,車沒來。

他決定走回去。從公司到出租屋,大約需要四十刻鐘。他走得不快,黑色程式碼在他走路的時候自動讀取了路面的摩擦係數、行道樹的年輪密度、對面樓房的建造年份。他沒有刻意刪,也沒有刻意留。資訊來了,就讓它來。資訊走了,就讓它走。方硯說得對,順其自然。

走到常德路路口的時候,沈清珩停下了。不是因為累了,是因為他的黑色程式碼感知到了方硯的亮金色程式碼。不是連線自動啟用的那種感知——連線需要雙方物理距離在十米以內才會自動啟用。他現在離常德路那棟老小區還有將近兩百米,但他就是“感覺”到了方硯。方硯在亮著燈的窗臺前,窗臺上有兩盆花,一盆枯死的綠蘿,一盆鮮活的薄荷。方硯站在窗前,手裡拿著一個量杯,在給綠蘿澆水。五十毫升。沈清珩能感知到這些,但他的黑色程式碼和方硯的亮金色程式碼之間的連線沒有啟用,這些畫面不是連線傳過來的,是他的黑色程式碼根據方硯的習慣和行為模式“推演”出來的。和人工智慧差不多,沈清珩想。他的黑色程式碼在第七層裡經過一年多的演化,已經學會了根據有限的資訊推演未知的部分。不是預測,是“補全”——和他作為程序員的工作本質一樣。

他繼續走。

凌晨一點五十二分,沈清珩到家了。客廳的燈關了,小夜燈亮著。蘇曉棠已經睡了。她睡在沙發上,沈清珩的舊衛衣蓋在身上,被子踢到了地上。沈清珩把被子撿起來,蓋在她身上。他在沙發旁邊站了一會兒,看著她睡著的臉。《長恨歌》扣在地板上,翻到了一百多頁的地方。他彎腰撿起書,夾好書籤,放在茶几上。然後他關掉小夜燈,走進了自己的房間。

躺在床上,閉上眼睛。黑色程式碼在安靜地執行,不是在讀甚麼,而是在“整理”。把今天讀取到的所有資訊分類——有用的、沒用的、需要保留的、可以刪除的。L1快取命中率百分之八十七,沒用的,刪除。監控系統時間戳不統一,沒用的(他不負責監控系統),但標記過了,刪除。老王拍他肩膀時手掌的溫度,有用的,保留。蘇曉棠睡著時睫毛在臉頰上投下的陰影,有用的,保留。方硯在窗前給綠蘿澆水的畫面,他推演出來的,不是真實讀取的,但也保留。

沈清珩被鬧鐘叫醒。早上八點半。週六。蘇曉棠已經起了,廚房裡有粥的香味。她今天沒去便利店——她換了新工作,資料分析助理,做五休二,週六休息。沈清珩走出臥室,看到蘇曉棠在廚房裡攪粥。她穿著自己的衣服,不是他的舊衛衣。衛衣疊好了放在沙發上。被子也疊好了。

“早。”蘇曉棠頭也沒回。

“早。”

“粥好了。自己盛。”

沈清珩盛了一碗粥,坐在餐桌前。蘇曉棠也盛了一碗,坐在他對面。兩個人喝粥,沒有說話。落地窗外,常德路的週六早晨很安靜,偶爾有鳥叫聲,偶爾有汽車引擎聲。

蘇曉棠放下碗。“沈老師,你今天有甚麼安排?”

“沒有。你呢?”

“我想去一個地方。在松江。很遠。”

“去松江幹甚麼?”

蘇曉棠從口袋裡掏出一張照片,放在桌上。照片裡是一棟舊廠房,紅磚牆,鐵皮屋頂,牆上用白色油漆寫著一個編號——好像是倉庫編號。照片的背面用圓珠筆寫著地址:松江區車墩鎮北松公路某某號。字跡有些褪色了,但還能看清。是蘇晚亭的字。蘇曉棠的金鑰在讀取這張照片的時候,識別出了筆跡的力學特徵——書寫者手腕的力度、筆尖與紙面的夾角、墨水的滲透速度。和蘇晚亭留在B3層的記憶碎片裡的筆跡特徵完全一致。這張照片是蘇晚亭在去世前不久寄給蘇曉棠的。不是寄到便利店的,是寄到蘇曉棠以前住的出租屋的。蘇曉棠那時候已經在便利店工作了,但她的戶籍地址還是那個出租屋,所以照片被房東轉寄到了便利店。蘇曉棠收到的時候,蘇晚亭已經去世了。

沈清珩拿起照片,看著那棟舊廠房。“這是甚麼地方?”

“我媽媽在天命人之前的辦公室。她大學畢業後第一份工作在這裡。不是程序員,是倉庫管理員。她說她在這裡學會了怎麼和系統相處。不是蓋亞指令,是倉庫管理系統。”

沈清珩看著照片背面褪色的字跡。松江區車墩鎮北松公路某某號。從靜安區開車過去大約需要一小時。沒有地鐵,公交要換乘幾次。蘇曉棠不會開車,沈清珩也不會。他們可以打車去,來回差不多兩百多塊。

“打車去?”沈清珩問。

蘇曉棠點了點頭。

他們吃完早飯,換了衣服。蘇曉棠穿著那件深藍色繡玉蘭花的布袋子,今天沒背帆布包。沈清珩穿著黑色衛衣,深灰色牛仔褲,白色運動鞋——和他一年前在第一章裡穿的差不多。

他們下樓,打了一輛網約車。車在常德路上堵了半個小時才上高架。上了高架之後速度快了,司機是個年輕小夥子,不喜歡說話,開著收音機放音樂。音樂是周杰倫的《晴天》,前奏很長。

蘇曉棠坐在後座,靠著車窗。沈清珩坐在她旁邊,看著窗外飛馳而過的城市——靜安寺、中山公園、虹橋、七寶、九亭、新橋。城市的邊界在模糊,高樓變矮了,天空變大了,行道樹變成了水杉。

“沈老師,你以前來過鬆江嗎?”

“沒有。”

“我也沒有。”

松江車墩鎮到了。北松公路是一條兩車道的馬路,兩旁是廠房、倉庫、農田、幾棟居民樓。網約車停在某某號門前。是一棟舊廠房,紅磚牆,鐵皮屋頂。和照片裡一模一樣。牆上用白色油漆寫著的編號還在,但褪色了很多,有幾個數字已經看不清了。廠房的門鎖著,一把生鏽的鐵鏈鎖。門縫裡能看到裡面的情況——空蕩蕩的,甚麼都沒有。地面是水泥的,牆上有以前貼過通知的痕跡,膠帶留下的印子還在。

蘇曉棠站在門前,金鑰在工作。不是讀取資訊,是“感受”——她在感受蘇晚亭二十多年前在這裡留下的痕跡。不是記憶碎片,不是系統日誌,不是任何可以被亮金色程式碼或黑色程式碼讀取的資料。是氣味。二十多年前,蘇晚亭在這裡做倉庫管理員。每天的工作是清點庫存、錄入資料、列印報表。她在這裡學會了怎麼和“系統”相處——不是蓋亞指令,是倉庫管理系統。但管理的本質是相通的:記錄、分類、儲存、檢索。倉庫管理系統是她在成為天命人之前的“實習”。

蘇曉棠在門前站了很久,然後轉身。

“走吧。”

沈清珩看著她。“就這樣?”

“就這樣。我不是來找東西的。我是來‘到過’的。我媽媽到過這裡。我現在也到過了。”

他們沿著北松公路走了一段路,找到一個公交站。站牌上寫著松□□路,終點站是松江新城地鐵站。坐上顛簸的郊縣公交車,蘇曉棠的頭靠在沈清珩的肩膀上。不是因為困,是因為想靠。

“沈老師。”

“嗯。”

“你說系統現在在觀察我們嗎?”

沈清珩想了想。“在。但它觀察它的,我們坐我們的公交車。”

蘇曉棠靠在他肩上,笑了一下。公交車的窗戶開著,風灌進來,把蘇曉棠的馬尾辮吹到了沈清珩的脖子上。他沒有躲。

A−
A+
護眼
目錄