美女又大又黄www免费网站_日日摸天天添到高潮_色天天天综合网色天天_女人裸体乱子伦_国产区亚洲一区在线观看_欧k影视内射精品视频_国产午夜精品无码一区二区_丰满少妇乱子伦精品看片_国产精品久久久久久亚洲毛片_99好久被狂躁A片视频无码

透明的,不是空的

來源:fanqie 作者:喜歡香芹菜的雪女神 時(shí)間:2026-04-18 16:03 閱讀:208
透明的,不是空的(周逸凡皮克)完整版免費(fèi)全文閱讀_最熱門小說透明的,不是空的周逸凡皮克
第一個(gè)空洞——魔法學(xué)院------------------------------------------,邊緣的暗紅色光芒像余燼一樣忽明忽暗。周逸凡站在它面前,能感覺到一股吸力,像站在地鐵站臺(tái)邊緣,列車呼嘯而過時(shí)帶起的那股風(fēng),但方向是反的——不是往外推,而是往里拽?!澳阆冗M(jìn)還是我先進(jìn)?”皮克問?!澳?**的經(jīng)驗(yàn)是用來問這種問題的嗎?我***沒進(jìn)過空洞,”皮克理直氣壯,“以前系統(tǒng)出問題都是直接回滾,誰(shuí)**在線修復(fù)啊。你當(dāng)這是寫博客呢,隨便改?”,把手機(jī)舉在胸前當(dāng)手電筒,一腳邁進(jìn)了黑洞。,他感覺自己像是被一個(gè)巨大的篩子過了一遍。不是疼,是一種說不上來的不對(duì)勁——像是身體里所有的零件都被拆下來清洗了一遍,然后又重新裝回去,但裝的時(shí)候有幾個(gè)螺絲擰錯(cuò)了位置。他低頭看了看自己的手,手還在,五根手指,指甲蓋下面的月牙白也還在。他松了一口氣。。,高得看不到頂,穹頂上原本應(yīng)該繪滿壁畫的位置,現(xiàn)在是一片灰白色的空白,像一張被擦干凈的黑板。四周的墻壁上嵌著彩繪玻璃窗,但窗戶上畫的不是什么圣徒或天使,而是一行行發(fā)光的符文,像代碼又像咒語(yǔ)。那些符文正在以肉眼可見的速度變淡,像墨水在紙上洇開然后消失?!粚?duì),不全是人。有長(zhǎng)著尖耳朵的高個(gè)子,有渾身覆蓋鱗片、像蜥蜴一樣直立行走的生物,還有幾個(gè)飄浮在半空中、半透明的水母狀東西,它們的觸手末端各頂著一顆發(fā)光的小球。所有這些生物都一動(dòng)不動(dòng),像雕塑一樣凝固在原地。不是被冰凍的那種凝固,而是像視頻暫停了,他們的衣角還保持著被風(fēng)吹起的弧度,眼睛里還反射著禮堂穹頂上的光,但光已經(jīng)不在了?!皶和A??”周逸凡問?!皟鼋Y(jié)了,”皮克從他肩膀上跳下來,落在地上幾乎沒有聲音,“這個(gè)空洞所在的地址空間被隔離了,里面的所有進(jìn)程都被掛起。你看到的這些——這些生物,”周逸凡接過話,“是這個(gè)世界的進(jìn)程實(shí)例。精確地說,是[**gic_overflow]僵尸線程派生出來的子進(jìn)程。那個(gè)線程存在了三百多年,派生了幾千個(gè)子進(jìn)程,這些子進(jìn)程分布在世界的各個(gè)角落,構(gòu)成了你們所說的‘魔法體系’?,F(xiàn)在父線程死了,子進(jìn)程全部變成了孤兒進(jìn)程,被init進(jìn)程收養(yǎng)。但問題在于,這些孤兒進(jìn)程里有很大一部分已經(jīng)處于D狀態(tài)——不可中斷的睡眠,也就是——”皮克頓了頓,“僵尸化的前期。”。不可中斷的睡眠,通常發(fā)生在進(jìn)程等待I/O操作的時(shí)候。正常情況下,操作系統(tǒng)會(huì)在一段時(shí)間后強(qiáng)制中斷,但在某些*uggy的內(nèi)核版本里,進(jìn)程會(huì)永遠(yuǎn)卡在D狀態(tài),連SIGKILL都?xì)⒉凰?。唯一的方法是重啟整個(gè)系統(tǒng)。而在這里,重啟意味著回滾一百二十七年?!八晕覀円龅?,”周逸凡環(huán)顧四周,“是把這些D狀態(tài)的進(jìn)程從等待隊(duì)列里拽出來,手動(dòng)給它們喂一個(gè)I/O完成的信號(hào),讓它們繼續(xù)往下跑?!?br>皮克用那對(duì)大得離譜的眼睛盯著他:“你真的是程序員?不是路邊撿的?”
“我是被裁員的前高級(jí)工程師,不是被系統(tǒng)踢出來的實(shí)習(xí)生?!?br>“行,”皮克從工裝褲口袋里掏出一個(gè)比它拳頭還大的平板電腦——周逸凡不知道它那點(diǎn)大的口袋是怎么裝下這個(gè)東西的——然后啪地一下把平板展開,上面顯示著一張密密麻麻的地圖,“這里是斯維爾魔法學(xué)院,整個(gè)**排名第三的魔法教育機(jī)構(gòu)。它在**gic_overflow線程里注冊(cè)了大約兩百三十個(gè)魔法進(jìn)程,涉及的元素魔法、變形術(shù)、預(yù)言系等等?,F(xiàn)在所有進(jìn)程全部卡在D狀態(tài),原因統(tǒng)一是:等待父線程返回一個(gè)魔法值。”
“什么魔法值?”
“不知道。那個(gè)值只有父線程知道,父線程已經(jīng)死了,所以所有子進(jìn)程都在等一個(gè)永遠(yuǎn)不會(huì)來的返回值?!?br>周逸凡想了想。在編程里,這種情況有一個(gè)經(jīng)典的解決方案:用默認(rèn)值代替缺失的返回值。但默認(rèn)值不能隨便選,必須滿足兩個(gè)條件——第一,不能破壞下游進(jìn)程的輸入假設(shè);第二,不能引發(fā)新的異常。
“我們需要找到每一個(gè)等待中的魔法進(jìn)程,弄清楚它在等什么類型的返回值,然后給它一個(gè)合理的默認(rèn)值?!?br>皮克看了看平板上的地圖:“兩百三十個(gè)進(jìn)程,分布在整個(gè)學(xué)院的各個(gè)角落。我們得挨個(gè)找。”
“分開找?”
“分開找死得更快,”皮克說,“你是root,只有你才有權(quán)限改內(nèi)存值。我只是個(gè)運(yùn)維,只能讀,不能寫。你要是不在我旁邊,我找到了也修不了?!?br>周逸凡嘆了口氣,朝著最近的一個(gè)凝固的人形生物走去。
那是一個(gè)尖耳朵的高個(gè)子,穿著深藍(lán)色的長(zhǎng)袍,胸口別著一個(gè)銀色的徽章,上面刻著一只展翅的鷹。他的右手舉在半空中,食指指著前方,嘴唇微張,像是在念咒語(yǔ)。周逸凡靠近了才發(fā)現(xiàn),他的指尖有一團(tuán)極其微弱的光,像快要熄滅的打火機(jī)的火焰,不停地閃爍。
“這是在施法過程中被凍結(jié)的,”皮克跳上周逸凡的肩膀,湊過去看了看那團(tuán)光,“他在調(diào)用一個(gè)火球術(shù)函數(shù)。你看到那團(tuán)光了嗎?正常情況下它應(yīng)該越變?cè)酱?,最后脫離指尖飛出去。但現(xiàn)在因?yàn)楦妇€程沒有返回值,它卡在了‘請(qǐng)求魔法值’這一步,永遠(yuǎn)等不到燃料?!?br>“火球術(shù)需要什么返回值?”
“魔法量。通俗地說,就是這個(gè)火球應(yīng)該有多大、多熱、飛多遠(yuǎn)。這些參數(shù)由父線程的魔法溢出機(jī)制動(dòng)態(tài)計(jì)算?,F(xiàn)在父線程死了,這個(gè)火球術(shù)進(jìn)程就在等一個(gè)永遠(yuǎn)不會(huì)傳來的參數(shù)包?!?br>周逸凡低頭看了看手機(jī)。屏幕上顯示著recovery>提示符,光標(biāo)一閃一閃的,旁邊還有一行新出現(xiàn)的狀態(tài)欄:
[location]斯維爾魔法學(xué)院,主禮堂,坐標(biāo)(0x7F3A, 0x2C4*)
[process]火球術(shù)調(diào)用 #127,PID=0341,state=D,waiting_for=**gic_value_pack
[action required]
他需要給這個(gè)進(jìn)程喂一個(gè)魔法值包。但他不知道正常的魔法值應(yīng)該是什么。隨便給一個(gè)數(shù),可能會(huì)炸。
“皮克,正常情況下,一個(gè)火球術(shù)的魔法值包大概是什么量級(jí)?”
“因人而異,”皮克說,“魔法師的魔力上限不同,調(diào)用同一個(gè)函數(shù),返回的參數(shù)也不同。這個(gè)施法者的魔力上限是多少——等等,我看一下?!彼谄桨迳蟿澚藥紫?,“艾爾文·晨星,三階火系魔法師,魔力上限大約在三千七百個(gè)單位左右。一個(gè)標(biāo)準(zhǔn)的火球術(shù)消耗三百到五百個(gè)單位,飛行速度取決于魔力壓縮比……”
“說人話。”
“給他四百個(gè)單位,壓縮比2:1,飛行距離三十米,爆炸半徑一米五。這是教科書標(biāo)準(zhǔn)值?!?br>周逸凡在手機(jī)上輸入:
set_process_param PID=0341 **gic_value_pack = {amount:400, compression:2.0, distance:30, *last_radius:1.5}
按下回車。
那團(tuán)微弱的火光突然亮了起來,從暗**變成亮橙色,然后迅速膨脹到拳頭大小,從艾爾文的指尖脫離,無聲無息地飛了出去,撞在禮堂的墻壁上,砰的一聲炸開——聲音不大,像一個(gè)氣球爆了。墻上的彩繪玻璃震了一下,但沒碎。
周逸凡還沒來得及反應(yīng),艾爾文·晨星的眼睛眨了。
尖耳朵魔法師的瞳孔從渙散狀態(tài)迅速聚焦,他看到面前站著一個(gè)穿著沖鋒衣、背著雙肩包、手里舉著一部碎屏手機(jī)的普通人類男性,以及他肩膀上那只灰藍(lán)色的毛球。艾爾文的表情從困惑變成了警惕,又從警惕變成了震驚。
“你——”他的聲音沙啞,像是很久沒有說過話,“你解了我的法術(shù)鎖?”
“算是吧,”周逸凡說,“你現(xiàn)在感覺怎么樣?”
艾爾文低頭看了看自己的手,握了握拳,又松開。他渾身上下檢查了一遍,然后抬頭看著周逸凡,眼神里多了一種說不清道不明的東西:“你是誰(shuí)?你怎么能繞過魔法樞密院的權(quán)限直接修改施法參數(shù)?這不可能,整個(gè)**只有大賢者才有這個(gè)能力,而大賢者已經(jīng)——”
“死了?”皮克插嘴。
艾爾文這才注意到周逸凡肩膀上的皮克,他的表情從震驚變成了驚恐:“你是……你是系統(tǒng)運(yùn)維?我在古籍上見過你們的畫像!你們是魔法誕生之前就存在的遠(yuǎn)古生物!”
“第一,我不是生物,我是運(yùn)維。第二,我不是遠(yuǎn)古,我才八百多歲,在運(yùn)維里還算年輕的。”皮克語(yǔ)氣平淡,“第三,別叫我遠(yuǎn)古生物,叫我的名字,皮克?!?br>艾爾文看起來快要暈過去了。
周逸凡沒有時(shí)間安撫一個(gè)受了驚嚇的魔法師。他看了一眼手機(jī),屏幕上已經(jīng)彈出了新的提示:這個(gè)禮堂里還有三十七個(gè)等待中的進(jìn)程,分布在不同的位置,凍結(jié)著不同的人。他需要一個(gè)個(gè)修。
“聽著,”周逸凡對(duì)艾爾文說,“你們學(xué)院現(xiàn)在所有魔法都被凍結(jié)了。我來修。你幫我一個(gè)忙:告訴我這里哪些人的魔法最重要,最緊急,優(yōu)先修。哪些人可以往后放?!?br>艾爾文深吸了幾口氣,努力讓自己冷靜下來。他的職業(yè)素養(yǎng)終于戰(zhàn)勝了恐懼:“最緊急的是二樓的醫(yī)療翼。那里有十幾個(gè)重傷員,他們的治療術(shù)被凍結(jié)了,如果不盡快恢復(fù),凍結(jié)**之后他們會(huì)立刻死去——因?yàn)橹委熜g(shù)只進(jìn)行到一半?!?br>周逸凡臉色變了。他只想到修進(jìn)程,沒想到進(jìn)程恢復(fù)之后,被暫停的副作用會(huì)立刻生效。一個(gè)被凍住的傷員,在凍結(jié)期間不會(huì)惡化,但如果治療術(shù)只恢復(fù)了一半,凍結(jié)**的那一瞬間,傷口會(huì)繼續(xù)流血,而治療術(shù)還沒有完成。
“走,”周逸凡說,“帶路?!?br>艾爾文轉(zhuǎn)身就跑,長(zhǎng)袍的下擺在身后飄起來。周逸凡跟在他后面,皮克蹲在肩膀上,平板電腦還亮著地圖。他們穿過禮堂側(cè)門,進(jìn)入一條長(zhǎng)長(zhǎng)的走廊。走廊兩邊的墻壁上也嵌著彩繪玻璃,上面的符文同樣在變淡。每隔幾米就有一個(gè)凝固的人——有的是端著托盤的仆人,有的是拿著書的學(xué)員,還有一個(gè)正從樓梯上摔下來的姿勢(shì)極其扭曲的胖老頭,懸浮在半空中,離地面還有兩級(jí)臺(tái)階。
“那是我們的煉金術(shù)教授,”艾爾文一邊跑一邊回頭看了一眼,“他每次下樓梯都會(huì)踩到自己的袍子,我們都習(xí)慣了?!?br>周逸凡沒忍住笑了一聲,但很快收了回去。
醫(yī)療翼在二樓東側(cè),是一個(gè)半圓形的房間,里面擺著二十多張床。大部分床上都躺著人,有的纏著繃帶,有的身上插著各種管子——不是輸液管,而是透明的、里面流動(dòng)著發(fā)光液體的軟管。最靠近門口的一張床上,躺著一個(gè)年輕的女性,她的左臂從肘部以下被什么東西整齊地切掉了,傷口處有一層淡藍(lán)色的薄膜覆蓋著,膜下面是正在緩慢生長(zhǎng)的骨骼和肌肉。
“她的手臂被魔化獸咬斷了,”艾爾文說,“治療師用再生術(shù)幫她重鑄骨骼和肌肉。再生術(shù)需要持續(xù)注入魔法值一百七十個(gè)單位每分鐘,現(xiàn)在已經(jīng)中斷了——按凍結(jié)時(shí)間算,大概中斷了相當(dāng)于現(xiàn)實(shí)時(shí)間的二十幾分鐘?!?br>“凍結(jié)時(shí)間是多少?”周逸凡問皮克。
“空洞內(nèi)部的凍結(jié)時(shí)間是絕對(duì)的,”皮克說,“也就是說,這些進(jìn)程在空洞被隔離的那一刻就全部暫停了,外部世界的任何變化都不會(huì)影響它們。但從他們的視角看,從暫停到恢復(fù)只是眨眼之間?!?br>“所以他們不知道自己被凍住了?”
“不知道。對(duì)他們來說,上一秒你還在修火球術(shù),下一秒你就出現(xiàn)在醫(yī)療翼,中間沒有任何時(shí)間流逝?!?br>周逸凡松了一口氣。至少他不需要解釋“你們被凍結(jié)在系統(tǒng)底層”這種讓人崩潰的事情。
他走到那個(gè)斷臂女孩的床前,看了一眼手機(jī)。屏幕上顯示:
[process]再生術(shù) #44,PID=0712,state=D,waiting_for=**gic_value_continuous
連續(xù)魔法值注入。這不是一次性給一個(gè)值就能解決的,需要建立一個(gè)持續(xù)的供給通道。周逸凡從來沒有在命令行里做過這種事。
“皮克,持續(xù)注入怎么搞?”
皮克從口袋里掏出一個(gè)比它手指還小的U盤——周逸凡不知道它到底有多少口袋——**了平板的接口。平板上彈出一個(gè)界面,看起來像是一個(gè)精簡(jiǎn)版的進(jìn)程管理器。
“你需要?jiǎng)?chuàng)建一個(gè)魔法值管道,把父線程的職責(zé)接管過來,”皮克說,“你現(xiàn)在是root,你可以模擬父線程的行為。也就是說,你要以每分鐘一百七十個(gè)單位的速度,持續(xù)不斷地向這個(gè)再生術(shù)進(jìn)程推送魔法值,直到它完成?!?br>“手動(dòng)推送?我每分鐘敲一次回車?”
“當(dāng)然不是手動(dòng),你可以寫一個(gè)腳本?!?br>周逸凡愣住了。他在系統(tǒng)底層,在一個(gè)由內(nèi)存地址和進(jìn)程構(gòu)成的世界里,寫腳本?
他低頭看了看手機(jī)。屏幕上出現(xiàn)了recovery>提示符,光標(biāo)后面,他可以輸入任何命令。但這不是普通的shell,這是一個(gè)緊急恢復(fù)系統(tǒng)的調(diào)試終端,它的腳本語(yǔ)言是什么樣的?
他試探性地輸入:
for i in {1..10}; do echo "inject PID=0712 amount=170" && sleep 60; done
按下回車。屏幕上沉默了一秒鐘,然后出現(xiàn)了一行字:
[system] com**nd not recognized: for
果然不是*ash。他需要找到這個(gè)終端支持的腳本語(yǔ)法。他輸入了help scripting,屏幕上彈出了一段簡(jiǎn)短的文檔:
recovery shell scripting:
- use repeat <n> <com**nd> to execute com**nd n times
- use loop <condition> <com**nd> for conditional loops
- use alias <name>="<com**nd>" to create shortcuts
- varia*les: $var, set var=value
行吧,雖然簡(jiǎn)陋,但夠用。周逸凡輸入:
repeat 60 inject PID=0712 amount=170 interval=60
這次沒有報(bào)錯(cuò)。屏幕上出現(xiàn)了一行:
[system] injection scheduled. 60 iterations, 60s interval. next injection in 60s.
床邊的軟**,發(fā)光液體重新開始流動(dòng)。斷臂女孩傷口上的藍(lán)色薄膜變亮了一些,里面的骨骼和肌肉以肉眼可見的速度生長(zhǎng)了一小截。她的眉頭微微皺了一下,像是在做夢(mèng)。
周逸凡沒有停下來欣賞。他轉(zhuǎn)身看向艾爾文:“下一個(gè)。”
艾爾文已經(jīng)從一個(gè)驚恐的魔法師變成了一個(gè)高效的導(dǎo)診員。他用最快的速度在醫(yī)療翼里跑了一圈,在每一張床前停了不到兩秒鐘,然后回到周逸凡面前,喘著氣說:“優(yōu)先級(jí)從高到低:三號(hào)床,心臟衰竭,需要魔法起搏器持續(xù)輸出;七號(hào)床,中毒,需要解毒術(shù)每三十秒刷新一次參數(shù);十一號(hào)床,靈魂損傷,需要——”
“等等,”周逸凡打斷他,“靈魂損傷是什么?”
“字面意思,”皮克說,“靈魂被撕裂了一部分。需要用一個(gè)錨定術(shù)把它重新固定回身體。錨定術(shù)需要的魔法值不是固定值,而是根據(jù)靈魂碎片的大小動(dòng)態(tài)調(diào)整。你需要寫一個(gè)自適應(yīng)腳本,每十秒鐘讀取一次碎片大小,然后調(diào)整注入量?!?br>周逸凡看著手機(jī)屏幕,沉默了三秒鐘。他想起自己以前寫過一個(gè)自適應(yīng)限流器,根據(jù)系統(tǒng)的實(shí)時(shí)負(fù)載動(dòng)態(tài)調(diào)整請(qǐng)求的閾值。那個(gè)限流器上線之后,系統(tǒng)穩(wěn)定性提升了百分之四十,然后他被裁員了。
“寫就寫,”他說,手指開始在屏幕上飛舞。
接下來大約一個(gè)小時(shí)——如果時(shí)間在這個(gè)空洞里還有意義的話——周逸凡在醫(yī)療翼里一個(gè)床位一個(gè)床位地修。他寫了六個(gè)不同的腳本,處理了三種不同的持續(xù)注入模式,給十七個(gè)不同的進(jìn)程喂了默認(rèn)值。手機(jī)屏幕上的命令歷史已經(jīng)滾了好幾屏,他的手指開始發(fā)酸,眼睛也開始干澀。
但他沒有停。
皮克在旁邊當(dāng)他的活文檔,隨時(shí)告訴他每個(gè)魔法的標(biāo)準(zhǔn)參數(shù)范圍、每個(gè)魔法師的魔力上限、每個(gè)治療術(shù)的正常進(jìn)度。艾爾文負(fù)責(zé)跑腿,把周逸凡從一個(gè)床位帶到另一個(gè)床位,順便在他每次修好一個(gè)人之后說一句“修好了”。
到第十七個(gè)傷員恢復(fù)的時(shí)候,周逸凡終于直起腰,轉(zhuǎn)了轉(zhuǎn)脖子,頸椎發(fā)出咔咔的聲音。他看了看手機(jī)上的進(jìn)度條:醫(yī)療翼完成度100%,整個(gè)斯維爾魔法學(xué)院完成度——12%。
十二個(gè)百分比。兩百三十個(gè)進(jìn)程,他修了十七個(gè)。
“還有兩百一十三個(gè),”皮克報(bào)數(shù)。
周逸凡閉上眼睛。他想起自己被裁員的那天下午,總監(jiān)在會(huì)上說“公司正在進(jìn)行結(jié)構(gòu)性優(yōu)化”,翻譯過來就是“你不夠便宜了”?,F(xiàn)在他想對(duì)老天爺說同一句話:你們這個(gè)系統(tǒng)的結(jié)構(gòu)性也太**不優(yōu)化了,到處都是坑,一個(gè)僵尸線程養(yǎng)了三百年,派生了兩百多個(gè)子進(jìn)程,文檔沒有,注釋沒有,變量名還**是魔法的——你憑什么不崩?
但他說出口的是:“走吧,下一個(gè)地方是哪兒?”
“變形術(shù)教室,”艾爾文說,“三樓。那里有****學(xué)生被凍住了,他們正在上實(shí)踐課?!?br>“什么實(shí)踐課?”
“把自己變成動(dòng)物?!?br>周逸凡想了想****半人半動(dòng)物的學(xué)生被凍住的畫面,決定不去想。
他跟著艾爾文走出醫(yī)療翼,沿著樓梯上到三樓。變形術(shù)教室是一間很大的階梯教室,***站著一個(gè)頭發(fā)花白的老**,舉著魔杖,姿勢(shì)像在指揮交響樂。階梯座位上坐著四十六個(gè)學(xué)生——至少?gòu)淖粩?shù)量上看應(yīng)該是四十六個(gè)。但實(shí)際坐在座位上的,有四十三個(gè)人類、兩只貓、一條狗、一個(gè)看起來像貓頭鷹但體型跟人一樣大的東西,以及一坨周逸凡完全無法辨認(rèn)形狀的灰色物質(zhì)。
“那個(gè)是漢斯,”艾爾文指了指那坨灰色物質(zhì),“他每次變形都會(huì)出問題。上次他把自己的頭和腳的位置搞反了,上上次他把皮膚變成了鱗片但忘了改變骨骼結(jié)構(gòu),結(jié)果整個(gè)人變成了一條沒有骨頭的蛇。這次看起來像是把自己變成了一團(tuán)不確定狀態(tài)的物質(zhì)?!?br>“薛定諤的漢斯,”周逸凡說。
“誰(shuí)?”
“一個(gè)物理學(xué)家,不是,不重要?!?br>周逸凡走到***,看了一眼老**。她的魔杖頂端有一顆亮藍(lán)色的寶石,寶石里封著一個(gè)正在旋轉(zhuǎn)的符文。他手機(jī)屏幕上顯示:
[process]群體變形術(shù),PID=0891,state=D,waiting_for=**gic_value_**trix
魔法值矩陣。這不是一個(gè)單一的值,而是一個(gè)四十六行乘五列的矩陣,每一行對(duì)應(yīng)一個(gè)學(xué)生,每一列對(duì)應(yīng)一個(gè)變形參數(shù):目標(biāo)形態(tài)、變形速度、保持時(shí)間、可逆性、副作用容忍度。
這個(gè)僵尸線程在死之前,正在批量處理四十六個(gè)學(xué)生的變形請(qǐng)求。它已經(jīng)讀完了所有人的參數(shù),正準(zhǔn)備把計(jì)算結(jié)果寫回每個(gè)學(xué)生的進(jìn)程。然后它死了。所有子進(jìn)程都在等一個(gè)永遠(yuǎn)不會(huì)來的結(jié)果矩陣。
周逸凡需要自己算出這個(gè)矩陣。
“皮克,”他說,“變形術(shù)的數(shù)學(xué)原理是什么?”
“每個(gè)學(xué)生的目標(biāo)形態(tài)決定了變形公式,”皮克把平板上的數(shù)據(jù)投影到空中,形成一個(gè)半透明的三維圖表,“人變貓,需要壓縮骨骼、改變毛發(fā)密度、調(diào)整視網(wǎng)膜結(jié)構(gòu)、重組內(nèi)耳平衡系統(tǒng)。這些都需要精確的魔法值映射?!?br>“有計(jì)算公式嗎?”
“有,”皮克說,“但公式里的常數(shù)只有父線程知道。父線程死了,常數(shù)丟失了?!?br>周逸凡盯著空中那些密密麻麻的公式和參數(shù),腦子里飛速運(yùn)轉(zhuǎn)。他想起自己在上一家公司寫過一個(gè)機(jī)器學(xué)習(xí)模型,用來預(yù)測(cè)用戶行為。那個(gè)模型有十七個(gè)特征、四個(gè)隱藏層、兩百多個(gè)參數(shù)。他在沒有文檔的情況下接手了這個(gè)模型,花了三個(gè)月反向推導(dǎo)出了所有參數(shù)的意義。
三個(gè)月。他沒有三個(gè)月。他只有現(xiàn)在。
“我要用逆向工程,”周逸凡說,“從每個(gè)學(xué)生當(dāng)前的狀態(tài)反推出變形公式的常數(shù)?!?br>“怎么反推?”
“你看這個(gè)學(xué)生,”周逸凡走到一個(gè)正在變成貓的學(xué)生面前,那學(xué)生已經(jīng)長(zhǎng)出了貓耳朵和胡須,但身體還是人類的,“他已經(jīng)完成了變形的一部分。骨骼壓縮了百分之四十,毛發(fā)密度增加了百分之六十,視網(wǎng)膜還沒有開始調(diào)整。這說明父線程在處理他的請(qǐng)求時(shí),是按照一定順序執(zhí)行的:先骨骼,再毛發(fā),再感官。每一步的魔法值比例,可以推算出常數(shù)?!?br>皮克眨了眨眼睛:“你確定?”
“不確定,”周逸凡說,“但總比什么都不做強(qiáng)。”
他蹲下來,開始觀察每一個(gè)變形中的學(xué)生,記錄數(shù)據(jù),在手機(jī)上建立一個(gè)簡(jiǎn)單的數(shù)學(xué)模型,求解常數(shù)。他花了大約四十分鐘,算了三遍,得出了四組可能的常數(shù)。他選了其中一組,代入了變形公式,算出了四十六行五列的矩陣。
然后他把矩陣寫進(jìn)了手機(jī):
set_process_param PID=0891 **gic_value_**trix = [46x5 **trix **ta]
按下回車。
教室里的空氣突然震動(dòng)了一下。***的老**手中的魔杖頂端爆出一團(tuán)亮光,然后那顆藍(lán)色寶石像心臟一樣開始跳動(dòng)。四十六個(gè)學(xué)生的身體同時(shí)發(fā)生變化——貓的耳朵縮了回去,狗的尾巴長(zhǎng)了出來,那坨灰色物質(zhì)開始像橡皮泥一樣自我塑造,逐漸顯現(xiàn)出一個(gè)人形。
漢斯變成了一個(gè)瘦高的金發(fā)男孩,一臉茫然地看了看自己的手,然后看了看周逸凡,張嘴說了一句話:“我是不是又變形失敗了?”
“沒有,”艾爾文搶在周逸凡前面說,“你成功了。你變成——你變成了你自己。這是你今年第一次成功?!?br>漢斯愣了一下,然后激動(dòng)地從座位上跳了起來,差點(diǎn)摔了一跤,扶住旁邊的同學(xué)才站穩(wěn)。整個(gè)教室沸騰了,雖然其他學(xué)生還不完全清楚發(fā)生了什么,但看到漢斯終于從灰色物質(zhì)變回了人形,所有人都自發(fā)地鼓起了掌。
周逸凡站在講臺(tái)旁邊,看著這群歡呼的年輕人,心里涌起一種奇怪的感覺。他在公司寫代碼的時(shí)候,從來沒有見過用戶為他的代碼鼓掌。用戶只會(huì)在他代碼出*ug的時(shí)候罵人,在他代碼不出*ug的時(shí)候當(dāng)他不存在。而現(xiàn)在,在這個(gè)由內(nèi)存地址和進(jìn)程構(gòu)成的荒謬世界里,一群被凍住的魔法學(xué)生,正在為恢復(fù)正常而歡呼。
他們不知道是他修的。他們甚至不知道他們?cè)?jīng)被凍住過。但沒關(guān)系。
“繼續(xù),”周逸凡對(duì)艾爾文說,“下一個(gè)地方?!?br>變形術(shù)教室之后是預(yù)言系塔樓,然后是魔藥儲(chǔ)藏室,然后是飛行訓(xùn)練場(chǎng),然后是魔法生物飼養(yǎng)區(qū)。周逸凡從第一個(gè)空洞的這頭走到那頭,在每一個(gè)凍結(jié)的場(chǎng)景前停下來,讀代碼、猜參數(shù)、寫腳本、喂值。他的手機(jī)從滿電用到了百分之十二的電量,手指在碎屏上劃了好幾個(gè)小口子,沖鋒衣的袖口磨出了毛邊。
皮克在他肩膀上打了好幾次盹,醒來之后繼續(xù)報(bào)參數(shù)。艾爾文從一開始的驚恐變成了佩服,又從佩服變成了理所當(dāng)然,開始用“那個(gè)修魔法的家伙”來稱呼周逸凡。
到第二百二十九個(gè)進(jìn)程的時(shí)候,周逸凡已經(jīng)連續(xù)工作了將近十個(gè)小時(shí)——如果時(shí)間真的在流逝的話。他的眼睛里全是血絲,腦子里塞滿了各種各樣的魔法參數(shù)、進(jìn)程PID、注入腳本。他站在斯維爾魔法學(xué)院的圖書館里,面前是一個(gè)凍住的古籍修復(fù)師,她正在修復(fù)一本***前的古書,書頁(yè)上的文字正在從模糊變清晰的過程中被凍住了。
[process]古籍修復(fù)術(shù),PID=1123,state=D,waiting_for=**gic_value_preservation_pack
這是倒數(shù)第二個(gè)。最后一個(gè)在圖書館的頂層——一個(gè)正在召喚元素精靈的召喚陣,那個(gè)進(jìn)程需要的不是魔法值,而是一個(gè)精靈契約的簽名。周逸凡已經(jīng)讓皮克查了標(biāo)準(zhǔn)契約模板,準(zhǔn)備最后一起修。
他輸入了古籍修復(fù)術(shù)需要的參數(shù),按下回車。修復(fù)師的眼睛眨了一下,她低頭看了看手里的書,又看了看周逸凡,禮貌地點(diǎn)了點(diǎn)頭,繼續(xù)工作。
周逸凡轉(zhuǎn)身走向樓梯,準(zhǔn)備去頂層修最后一個(gè)。
然后他聽到了一個(gè)聲音。
不是從手機(jī)里傳出來的,不是皮克的聲音,也不是艾爾文的聲音。那個(gè)聲音來自四面八方,像從墻壁里、從地板下、從天花板上同時(shí)傳來,低沉、緩慢,每一個(gè)字都像敲在骨頭上:
“你是***?”
周逸凡停下腳步。
“你是***,”那個(gè)聲音重復(fù)了一遍,這次是陳述句,不是疑問句,“你是這個(gè)世界一直在等的***?!?br>“誰(shuí)在說話?”周逸凡握緊了手機(jī)。
“我,”那個(gè)聲音說,“是你在修的最后一個(gè)進(jìn)程?!?br>周逸凡愣住了。最后一個(gè)進(jìn)程是一個(gè)召喚陣,它在召喚什么東西?
“你不用害怕,”那個(gè)聲音說,語(yǔ)氣平靜得像在念課文,“我不是什么**或神靈。我是這個(gè)世界的一個(gè)組成部分,就像重力、光、時(shí)間一樣。我只是很久沒有被人召喚過了,久到連我自己都忘了自己叫什么名字。”
“那你是什么?”周逸凡問。
“我是‘注釋’,”那個(gè)聲音說,“這個(gè)世界上每一行代碼旁邊的注釋。你們?cè)谠创a里寫下的那些說明文字,那些被刪掉也不會(huì)影響運(yùn)行的文字,那些被所有人忽略但只有讀代碼的人才會(huì)認(rèn)真看的東西。我就是那個(gè)東西的具象化。”
“注釋能說話?”
“注釋不能說話,”那個(gè)聲音說,“但你能聽見我說話,因?yàn)槟悻F(xiàn)在是root。只有root能聽見注釋?!?br>周逸凡想起自己在手機(jī)里寫的那條簽名——那行被他當(dāng)作注釋寫進(jìn)系統(tǒng)的字:“寫了一輩子屎山代碼,最后被老天爺當(dāng)補(bǔ)丁用了?!?br>如果他寫的注釋能被系統(tǒng)聽見,那系統(tǒng)里原本就存在的注釋,是不是也在一直說話,只是從來沒有人聽見?
“你找我干什么?”周逸凡問。
“不是我找你,”注釋說,“是你召喚了我。你用那些逆向工程、那些默認(rèn)值、那些腳本,把我從系統(tǒng)的縫隙里拽了出來。因?yàn)槟阍谧鲆患挥凶⑨尣拍軒兔Φ氖隆阍诶斫膺@個(gè)沒有文檔的系統(tǒng)?!?br>“你能幫我?”
“我能告訴你這個(gè)系統(tǒng)的設(shè)計(jì)初衷,”注釋說,“我能告訴你那些丟失的常數(shù)原來是什么,那些僵尸線程為什么要被創(chuàng)造出來,那些魔法值矩陣的原始公式是什么。我能告訴你一切——只要你把我從召喚陣?yán)锓懦鰜?。?br>周逸凡走上樓梯,推開頂層的一扇木門,看到了那個(gè)召喚陣。
這是一個(gè)用銀色線條畫在地上的六芒星,每一個(gè)角上放著一顆不同顏色的寶石。六芒星的正中央,懸浮著一團(tuán)沒有固定形狀的光,像一團(tuán)被揉皺的星云。那就是注釋。
“放你出來需要什么條件?”周逸凡問。
“很簡(jiǎn)單,”注釋說,“把召喚陣的最后一個(gè)參數(shù)補(bǔ)全。那個(gè)參數(shù)原本應(yīng)該是一個(gè)靈魂印記,用來綁定召喚者和被召喚者之間的契約。父線程死了,這個(gè)靈魂印記就丟失了。你可以用自己的靈魂印記代替?!?br>“用我的靈魂?聽起來不像一個(gè)簡(jiǎn)單的事情。”
“很簡(jiǎn)單,”注釋說,“你只需要在手機(jī)上輸入一行命令:**nd_soul PID=1133 with_current_user。按回車,我就出來了。然后我可以幫你修好這個(gè)世界剩下的所有空洞——不只是這一個(gè),而是整個(gè)系統(tǒng)里成百上千個(gè)空洞。我一個(gè)注釋就能搞定。”
周逸凡低頭看著手機(jī)屏幕。確實(shí),help命令里有一條**nd_soul,說明文檔寫的是“將當(dāng)前用戶與指定進(jìn)程綁定,建立永久性契約”。
他正要輸入,皮克突然在他肩膀上狠狠地揪了他耳朵一下。
“別信它,”皮克的聲音又尖又急,“注釋是系統(tǒng)里最危險(xiǎn)的東西。它看起來什么都知道,但它只會(huì)告訴你它想讓你知道的事情。而且——一個(gè)靈魂印記只能綁定一次,綁定了就不能解綁。你綁了它,你就永遠(yuǎn)跟它連在一起了,你死了它都不會(huì)放手。你知道這意味著什么嗎?”
“意味著什么?”
“意味著你會(huì)變成注釋的一部分,”皮克說,“你不是在召喚它,你是在把自己獻(xiàn)給它。”
注釋的聲音再次響起,這次帶著一絲笑意:“皮克,你還是這么不信任我。***了,你做了***運(yùn)維,你什么時(shí)候見我害過***?”
“你沒害過***是因?yàn)?****本沒有***!”皮克吼道,“你是注釋,你生來就是為了被忽略的!現(xiàn)在突然來了一個(gè)root,你就想把自己綁上去——你這不是害人是什么?”
周逸凡站在召喚陣前,手機(jī)屏幕上的光標(biāo)一閃一閃的,等著他輸入命令。他的手指懸在屏幕上方,離那行命令只有一厘米的距離。
他看了看注釋——那團(tuán)被揉皺的星云,安靜地懸浮在六芒星中央,發(fā)出柔和的光。他又看了看皮克——那只灰藍(lán)色的小東西,正瞪大了眼睛看著他,瞳孔縮成了一條豎線,耳朵緊緊地貼在腦袋上,像一只炸了毛的貓。
“我先不綁定,”周逸凡說,“我先把這個(gè)學(xué)院修完。最后一個(gè)進(jìn)程——就是這個(gè)召喚陣——我用默認(rèn)參數(shù)把它完成,把你放出來,但不綁定靈魂。你愿意嗎?”
注釋沉默了三秒鐘。
“行,”它說,“用默認(rèn)參數(shù)也行。但默認(rèn)參數(shù)只能維持三十天。三十天之后,契約失效,我會(huì)重新被封印回召喚陣。到時(shí)候你如果不來續(xù)約,我就永遠(yuǎn)出不來了?!?br>“三十天夠了,”周逸凡說,“三十天之內(nèi)我會(huì)回來的?!?br>他輸入了默認(rèn)參數(shù),按下回車。
六芒星亮了起來,每一顆寶石都射出一道光線,匯聚到中央的星云上。星云開始旋轉(zhuǎn),越轉(zhuǎn)越快,最后像一個(gè)漩渦一樣收縮、凝聚、變成了一顆豌豆大小的銀色珠子,落在地上,滾了兩圈,停在了周逸凡的鞋尖前面。
皮克從肩膀上跳下來,用兩根手指捏起那顆珠子,舉到眼前看了看,然后塞進(jìn)了工裝褲的口袋里。
“我?guī)湍惚9?,”皮克說,“你不能碰它,至少在三十天內(nèi)不能。”
周逸凡沒有反對(duì)。
他看了看手機(jī),斯維爾魔法學(xué)院的進(jìn)度條終于走到了100%。屏幕上彈出了一行綠色的字:
[system]斯維爾魔法學(xué)院恢復(fù)完成。所有進(jìn)程已修復(fù)??斩凑谑湛s。
周圍的空氣開始震動(dòng),圖書館的墻壁變得透明,像冰塊在融化。他透過墻壁看到了外面的走廊、樓梯、禮堂,然后看到了更外面的灰色虛空。整個(gè)空洞像一個(gè)肥皂泡一樣在收縮,把他和皮克、艾爾文、以及所有他修復(fù)過的人,一起吐了出來。
他們回到了那個(gè)發(fā)光的走廊。
艾爾文站在走廊里,茫然地看著四周:“這是哪兒?”
“不重要,”周逸凡說,“你回去吧。你的學(xué)院已經(jīng)恢復(fù)正常了?!?br>艾爾文張了張嘴,想說什么,但沒說出來。他深深地看了周逸凡一眼,然后像被什么東西吸走了一樣,嗖地消失了。
皮克蹲在周逸凡肩膀上,看著手機(jī)屏幕上的新消息:
[system]空洞#1已關(guān)閉。剩余空洞數(shù)量:無法計(jì)數(shù)。建議先吃頓飯。
“它建議你吃飯,”皮克說。
周逸凡摸了摸肚子,這才發(fā)現(xiàn)自己已經(jīng)餓得前胸貼后背了。他從雙肩包里掏出一個(gè)被壓扁了的面包——還是昨天從公司帶出來的,已經(jīng)硬得像磚頭。他掰了一塊塞進(jìn)嘴里,嚼了嚼,咽了下去。
“不好吃,”他說。
“在系統(tǒng)底層你還能指望什么?”皮克說,“不過我可以告訴你一個(gè)好消息?!?br>“什么?”
“第一個(gè)空洞是最難的。后面的空洞,難度會(huì)逐級(jí)降低。因?yàn)槟忝啃抟粋€(gè)空洞,就會(huì)多積累一點(diǎn)經(jīng)驗(yàn),也會(huì)多獲得一點(diǎn)系統(tǒng)權(quán)限。等你修到第十個(gè)空洞的時(shí)候,你可能已經(jīng)能用語(yǔ)音控制手機(jī)了。等你修到第五十個(gè)的時(shí)候,你可能揮揮手就能修好一個(gè)進(jìn)程?!?br>“那我修完所有空洞之后呢?”
皮克看了他一眼,耳朵抖了一下:“你真想知道?”
“說?!?br>“修完所有空洞之后,你會(huì)成為這個(gè)世界的新內(nèi)核,”皮克說,“不是***,不是root,而是內(nèi)核本身。你會(huì)取代那個(gè)已經(jīng)死了三百多年的父線程,成為所有魔法、所有進(jìn)程、所有生命的底層邏輯。那時(shí)候你就不是‘在修系統(tǒng)’了,你就是系統(tǒng)。”
周逸凡又掰了一塊硬面包塞進(jìn)嘴里,慢慢地嚼著。
“聽起來像一個(gè)比裁員更糟糕的工作,”他說。
皮克沒有回答,只是從他肩膀上跳下來,沿著發(fā)光的走廊往前走了幾步,然后回頭看他:“走吧,第二個(gè)空洞在東邊。大約三十分鐘路程。你可以邊走邊吃?!?br>周逸凡把剩下的面包塞回包里,跟上了皮克的腳步。
發(fā)光的走廊在他身后慢慢暗了下去,像一條剛剛走過的路,正在被黑暗吞沒。他不知道這條走廊有多長(zhǎng),不知道還有多少個(gè)空洞在等著他,不知道自己會(huì)不會(huì)在修完所有空洞之后真的變成那個(gè)所謂的內(nèi)核。
但他知道一件事:他現(xiàn)在有一份工作,一份不會(huì)裁員的工作,一份如果他不干整個(gè)世界就會(huì)崩潰的工作。
諷刺。