其實是劉崗的操作給了他強烈的靈感。
劉崗一個人蹲在這裏做什麽他已經非常明確了。
劉崗在查找和刪除所有不必要的調試信息,並從配置文件裏設置關閉產生這些調試信息的功能。
有些調試信息無法用配置文件來配置關閉,是寫死在代碼裏的。他不得已隻能小心地重新編譯並更新部分程序。
這活可不簡單,又沒有測試團隊配合,一不小心就可能搞爆整個係統。
但這給了他靈感。
螳螂的各個係統都是有無數調試信息在裏麵的。甚至在交付之後,調試信息都有不少沒有刪除掉。
作為初創團隊,這其實是可以理解的。
但這在負熵案件中,可能會產生一點問題。
因為女神的沉眠之棺隻接受“僅供奉給我的”數據。如果原始數據沒有清除幹淨,就會被拒絕接受。
但如果不是原始數據沒有清除幹淨,而是整個係統運行的過程中,產生的調試信息沒有清除幹淨呢?
如果這些調試信息存在被轉換迴原始數據的可能,那麽就等同原始數據沒有被清除幹淨。
如果這是負熵丟失案的正確解釋,那就說明負熵其實並沒有丟失,隻是隱藏在了調試信息中?
這似乎和多年來係統都能成功把負熵輸入到沉眠之棺並獲得數據的返還相矛盾。
但程序的運行並不一定每次都一樣的。隨便哪次運氣不好某個環境有差異就可能導致不同的結果。
比如某次運行調試信息的輸出並沒有打開,而下一次運行偏偏就打開了?
甚至某一次幾億光年之外射來的一束古老的宇宙射線剛好擊中了內存單元裏的某個比特。
導致0變成了1,成就不可思議的超自然奇跡?
為什麽專案組查了這麽久,卻沒有發現這個問題呢?
也許答案很簡單,專案組派來的外部的專家,並不知道問題出在螳螂軟件,而且也不知道螳螂軟件內部的問題。
即便是螳螂軟件的人,也未必知道自家係統到底有啥,除了真正寫代碼的那個人。
劉崗如果是親手寫了代碼,他很可能是知道的。但他真的會認真調查和揭露自己搞出的問題嗎?
他在這裏清除調試信息並關閉接口,是為了什麽?
難道是他在調查中發現了端倪,他又意識到自己扛不住這口關係到國運的大鍋,所以幹脆消滅線索?
他的操作行為本身當然不可能隱瞞。但行為可以解釋為簡單的優化升級係統。
而這樣做了之後,將來可能任何人都不會再把負熵的丟失和多餘的調試信息給聯係到一起了。
為什麽要這樣做呢?
個人的得失榮辱和國家的百年基業相比,孰輕孰重都搞不清嗎?
換了他自己,即便是他寫的bug導致地球毀滅,他也會乖乖承認並扛起這口鍋的。
根據世界各國的判例,無論程序員的錯誤導致了多嚴重的損失,隻要無法證實是主管惡意,都不會讓程序員來賠償。
何況這並不算是bug。這最多算一個操作上的異常導致的誤會。
這對公司的聲譽確實有嚴重的打擊。但以羅安和高層們的密切關係來看,還不至於扛不下來的。
軟件安全企業其實和猞猁集團那種軍工企業別無二致,都是國家的盾牌。
國家不可能讓這些公司因為偶然的失敗就任其被毀滅,將自己的命運交給外國人的。
最關鍵的是,負熵並沒有丟失不是嗎?
孟飛覺得他根本沒有必要想這麽多,他也沒有興趣去想這些隻有高層才需要考慮的問題。
他現在隻有一個念頭。
他要在證實自己的猜測,在浩如煙海的調試信息中把丟失的負熵給找迴來!
隻要負熵其實並沒有丟失,螳螂軟件就不會有任何損失,青芒共和國也沒有任何損失。
這事並不容易。尤其難在這不是靠最強bug係統或者任何係統能解決的。因為這就不是一個bug。
一大堆服務程序還在不斷運作,你又不能將它們停下來慢慢拆解。隨便動一下整個國家都可能會出事。
他在服務器內利用空閑資源開辟了一個新的虛擬機。虛擬機可以很大程度地模仿真實的運行環境。
同時他在這裏邊做任何事,大多數情況下不會影響外界程序的運行。
然後他再把真實服務器上的軟件一個一個地複製到虛擬環境內,盡量模仿真實環境運行起來。
光是這一步從開始到完成,五個小時就悄無聲息地過去了。
大約從下午六點到晚上十一點,孟飛握拳高喊了一聲:“woc!跑起來了!”
朱雀如同雕塑一樣,在一旁凝視。
“……我是說我的虛擬環境跑起來了,已經可以成功完成負熵數據的提取和解密的過程。
“現在的問題是,我想要的調試信息還沒影呢。好多組件居然被劉崗這個家夥刪除了。
“好在他沒下徹底的手段,又被我恢複不少。”
孟飛嘟噥著看看了旁邊的朱雀。
“沒關係,你繼續。”
她說。
“好嘞!”
本來有些疲憊的孟飛猛然間感覺氣血滿值,再次劈劈啪啪地敲起了鍵盤。
他要做的是,嚐試解密一小段加密的負熵數據,並嚐試那些代碼中無數的調試開關的組合,看能否獲得完整的、可以還原出解密數據的調試日誌。
嚐試一次失敗了?
直接重啟虛擬機,再試。
又失敗了?
繼續。
反正是虛擬機,你縱然按下一萬次電源鍵它也不會損毀硬盤什麽的。因為它的硬盤是虛擬的。
軟件係統的可怕之處就在於,哪怕是簡單的幾個條件組合,組合起來的可能路徑的數量就很容易超過宇宙中所有原子的數量。
所以真正窮盡所有可能的測試根本就是不可能的。
但真正的老手,會在千絲萬縷的線索中排除所有無關的東西,找到真正有關聯的因素。
剩下的,就隻有暴力嚐試排除了。
朱雀就這樣看著他像一個瘋子一樣,修改代碼,編譯,重啟係統,查看日誌。
然後再次修改代碼,編譯,重新啟動……
無限循環。
中間也有一些喝水吃飯拉屎趴著睡覺的間隔。
安盛負責送水送飯。
她負責喂水喂飯。
大概幾千次重啟之後,她忽然感覺自己的手掌一緊,被孟飛給握住了。
“這家夥居然開始主動動手動腳了……”
她暗想。
這時候的孟飛目光深沉,情真意切。
“跑出來了。
“果然是解密係統的調試日誌出了問題。
“接下來,就看我來恢複所有負熵數據了。”
“你知道今天是幾號嗎?”
朱雀溫柔笑道。
“哦?沒注意……”
“現在是2月10日淩晨1點。
“我們已經在這裏呆了三天三夜了。”
“糟!”
孟飛忽然慘叫一聲。
“不會情人節已經過了吧?”
劉崗一個人蹲在這裏做什麽他已經非常明確了。
劉崗在查找和刪除所有不必要的調試信息,並從配置文件裏設置關閉產生這些調試信息的功能。
有些調試信息無法用配置文件來配置關閉,是寫死在代碼裏的。他不得已隻能小心地重新編譯並更新部分程序。
這活可不簡單,又沒有測試團隊配合,一不小心就可能搞爆整個係統。
但這給了他靈感。
螳螂的各個係統都是有無數調試信息在裏麵的。甚至在交付之後,調試信息都有不少沒有刪除掉。
作為初創團隊,這其實是可以理解的。
但這在負熵案件中,可能會產生一點問題。
因為女神的沉眠之棺隻接受“僅供奉給我的”數據。如果原始數據沒有清除幹淨,就會被拒絕接受。
但如果不是原始數據沒有清除幹淨,而是整個係統運行的過程中,產生的調試信息沒有清除幹淨呢?
如果這些調試信息存在被轉換迴原始數據的可能,那麽就等同原始數據沒有被清除幹淨。
如果這是負熵丟失案的正確解釋,那就說明負熵其實並沒有丟失,隻是隱藏在了調試信息中?
這似乎和多年來係統都能成功把負熵輸入到沉眠之棺並獲得數據的返還相矛盾。
但程序的運行並不一定每次都一樣的。隨便哪次運氣不好某個環境有差異就可能導致不同的結果。
比如某次運行調試信息的輸出並沒有打開,而下一次運行偏偏就打開了?
甚至某一次幾億光年之外射來的一束古老的宇宙射線剛好擊中了內存單元裏的某個比特。
導致0變成了1,成就不可思議的超自然奇跡?
為什麽專案組查了這麽久,卻沒有發現這個問題呢?
也許答案很簡單,專案組派來的外部的專家,並不知道問題出在螳螂軟件,而且也不知道螳螂軟件內部的問題。
即便是螳螂軟件的人,也未必知道自家係統到底有啥,除了真正寫代碼的那個人。
劉崗如果是親手寫了代碼,他很可能是知道的。但他真的會認真調查和揭露自己搞出的問題嗎?
他在這裏清除調試信息並關閉接口,是為了什麽?
難道是他在調查中發現了端倪,他又意識到自己扛不住這口關係到國運的大鍋,所以幹脆消滅線索?
他的操作行為本身當然不可能隱瞞。但行為可以解釋為簡單的優化升級係統。
而這樣做了之後,將來可能任何人都不會再把負熵的丟失和多餘的調試信息給聯係到一起了。
為什麽要這樣做呢?
個人的得失榮辱和國家的百年基業相比,孰輕孰重都搞不清嗎?
換了他自己,即便是他寫的bug導致地球毀滅,他也會乖乖承認並扛起這口鍋的。
根據世界各國的判例,無論程序員的錯誤導致了多嚴重的損失,隻要無法證實是主管惡意,都不會讓程序員來賠償。
何況這並不算是bug。這最多算一個操作上的異常導致的誤會。
這對公司的聲譽確實有嚴重的打擊。但以羅安和高層們的密切關係來看,還不至於扛不下來的。
軟件安全企業其實和猞猁集團那種軍工企業別無二致,都是國家的盾牌。
國家不可能讓這些公司因為偶然的失敗就任其被毀滅,將自己的命運交給外國人的。
最關鍵的是,負熵並沒有丟失不是嗎?
孟飛覺得他根本沒有必要想這麽多,他也沒有興趣去想這些隻有高層才需要考慮的問題。
他現在隻有一個念頭。
他要在證實自己的猜測,在浩如煙海的調試信息中把丟失的負熵給找迴來!
隻要負熵其實並沒有丟失,螳螂軟件就不會有任何損失,青芒共和國也沒有任何損失。
這事並不容易。尤其難在這不是靠最強bug係統或者任何係統能解決的。因為這就不是一個bug。
一大堆服務程序還在不斷運作,你又不能將它們停下來慢慢拆解。隨便動一下整個國家都可能會出事。
他在服務器內利用空閑資源開辟了一個新的虛擬機。虛擬機可以很大程度地模仿真實的運行環境。
同時他在這裏邊做任何事,大多數情況下不會影響外界程序的運行。
然後他再把真實服務器上的軟件一個一個地複製到虛擬環境內,盡量模仿真實環境運行起來。
光是這一步從開始到完成,五個小時就悄無聲息地過去了。
大約從下午六點到晚上十一點,孟飛握拳高喊了一聲:“woc!跑起來了!”
朱雀如同雕塑一樣,在一旁凝視。
“……我是說我的虛擬環境跑起來了,已經可以成功完成負熵數據的提取和解密的過程。
“現在的問題是,我想要的調試信息還沒影呢。好多組件居然被劉崗這個家夥刪除了。
“好在他沒下徹底的手段,又被我恢複不少。”
孟飛嘟噥著看看了旁邊的朱雀。
“沒關係,你繼續。”
她說。
“好嘞!”
本來有些疲憊的孟飛猛然間感覺氣血滿值,再次劈劈啪啪地敲起了鍵盤。
他要做的是,嚐試解密一小段加密的負熵數據,並嚐試那些代碼中無數的調試開關的組合,看能否獲得完整的、可以還原出解密數據的調試日誌。
嚐試一次失敗了?
直接重啟虛擬機,再試。
又失敗了?
繼續。
反正是虛擬機,你縱然按下一萬次電源鍵它也不會損毀硬盤什麽的。因為它的硬盤是虛擬的。
軟件係統的可怕之處就在於,哪怕是簡單的幾個條件組合,組合起來的可能路徑的數量就很容易超過宇宙中所有原子的數量。
所以真正窮盡所有可能的測試根本就是不可能的。
但真正的老手,會在千絲萬縷的線索中排除所有無關的東西,找到真正有關聯的因素。
剩下的,就隻有暴力嚐試排除了。
朱雀就這樣看著他像一個瘋子一樣,修改代碼,編譯,重啟係統,查看日誌。
然後再次修改代碼,編譯,重新啟動……
無限循環。
中間也有一些喝水吃飯拉屎趴著睡覺的間隔。
安盛負責送水送飯。
她負責喂水喂飯。
大概幾千次重啟之後,她忽然感覺自己的手掌一緊,被孟飛給握住了。
“這家夥居然開始主動動手動腳了……”
她暗想。
這時候的孟飛目光深沉,情真意切。
“跑出來了。
“果然是解密係統的調試日誌出了問題。
“接下來,就看我來恢複所有負熵數據了。”
“你知道今天是幾號嗎?”
朱雀溫柔笑道。
“哦?沒注意……”
“現在是2月10日淩晨1點。
“我們已經在這裏呆了三天三夜了。”
“糟!”
孟飛忽然慘叫一聲。
“不會情人節已經過了吧?”