你是否相信若是你的程序裏沒有檢查一個變量會致使怎麼系統癱瘓?不管你相不相信,這是我一個親身經歷過的案例,你能夠在本站的程序員那些悲催的事兒中找到不少這樣的事。這樣的事昨天在發生,今天一樣在發生。Unix40多年了,在這40年裏,程序員發生過各類各樣的的慘劇,可是大多數的事情一而再再而三的重演。 html
今天的你,可能在開發者各類各樣NB的系統,你會相信你的一個空格也能致使系統癱瘓嗎?也許你可能很難相信這個事。不過,再下面這個事將告訴你這個血淋淋的事實 —— 一個空格產生的bug能夠讓你的系統癱瘓。 git
bumblebee是一個開源項目,這個名字也就是變形金剛裏的大黃蜂,這個項目是這樣介紹本身的—— 程序員
bumblebee is Optimus support for Linux, with real offloading, and not switchable graphics.. More important.. it works on Optimus Laptops without a graphical multiplexer.. github
Optimus 是NVIDIA的「優馳」技術,其能夠將您的筆記本電腦PC提高到絕佳狀態,提供出色的圖形性能,並在須要時延長電池續航時間。這個項目是把這個技術移到Linux上來。 shell
這個項目原本不出名,不過,程序在其安裝腳本install.sh裏的一個bug讓這個項目一會兒成了全世界最矚目的項目,這個bug的fix以下: 性能
1
2
3
|
@@ -348,7 +348,7 @@ case "$DISTRO" in
- rm -rf /usr /lib/nvidia-current/xorg/xorg
+ rm -rf /usr/lib/nvidia-current/xorg/xorg
|
看明白了嗎?空格。這個空格會致使什麼樣的問題呢?呵呵。你有沒有感到菊花一緊?這個bug絕對的霸氣外露!真是驗證了「如何寫出沒法維護代碼」的那句話——「測試你的程序是一種懦夫的行爲」。 測試
不過,最精彩還不是這個bug,而是全世界程序員的對這個bug 的 code review comments,真的至關的歡樂。請強勢圍望! spa
https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1 code
重點是其中的不少圖片——下面的圖片衆多。 htm