有些話題在資訊界, 像是不能碰的話題, 很多人避之唯恐不及, 很多人因為太政治, 所以有一些話就放在肚子裡, 所以肚子越來越大. 也許我講一些可以讓肚子小一些.
BIOS 在歷經多年的陣痛後, 這一兩年終於要進入新的里程, 也就是新的架構EFI, 可是沒有人可以清楚解釋從legacy BIOS到EFI, EFI 的優點在那裡(不是Intel 投影片講的那一套), 97%的工程師努力的學習然後抱怨EFI, 剩下3%因為沒有經歷過legacy, 所以也講不出所以然 , 是的! 哪一個工程師不抱怨, 抱怨是一定有的, 一邊學習一邊抱怨, 等到上手就會閉嘴, 這是學習曲線的常態, 等到上手還在抱怨, 那肯定有問題?
綜觀x86, 進步總是有的, 例如USB 3.0 , 速度變快, 因為資料越來越大, 誰不希望copy 10G的資料在幾分鐘內完成? 這種技術不買單都不可能. 所以技術的進步總有他再往前一步的原因, 和使用者產生共鳴, 可目光短淺的我怎樣都看不出EFI 真的有比legacy BIOS好..
有人跟我說, 有啊! EFI 進步了, BIOS本來是寫的語言是assembly, 現在是C, 這是開啟愚民模式嗎? 今天我講一個故事, 用國語講和用台語講, 講的其實是同一個故事啊! 但是我想用台語講, 但用國語思考, 反而講的不倫不類. 重點是講那個故事(開機的方案), 無論是用哪種語言, 能夠講得清楚是最需要的(few bugs and easy to fix). 語言根本不是重點.
小丑真正的武器是EFI Development Kit(EDK), 他就像是M$ 的DDK or SDK, M$的API讓你根本不需要知道 WHY? 你只要管把API拼圖起來, 你就會得到你想要的程式, M$ DirectX就是一個很好玩的例子, 那些複雜的演算法你完全看不到, M$也不希望拼圖作業員看到, 所以很會DirectX, 充其量也只是'高級拼圖作業員', 但是 M$的優點是, 文件齊全, platform OS穩固, 所以bug不多, 身為作業員也樂得高興.
場景回到EDK, 一樣他也是打造Black Box環境, 不同的是, 文件沒有比 M$好(M$ 是連code for fun這種都在寫), platform 必需換來換去的考驗code base相容性, 這些library for call就流到第三勢力給他們使用, 第三勢力更是奇怪的跟隨, 在Black Box上面打造人工奇景, 最後系統商不得以買單, bugs如雪片般飛來, 最後EDK 改了, 所以fix了, 系統商和第三勢力沒有人知道root cause, 然後大家夜裡祈禱不要再遇到相同的問題.
PCH, ME, EFI對Intel 來說其實是最好的系統綁樁, 有沒有來一個會的人真正統計一下, 有多少MIS用 Intel ME去管理電腦, 順便再統計一下有多少系統不穩定是ME的關係, 不說你可能不知道ME也是一個Black Box, 而且和 EFI相依性日漸提高, 大家擔心狐狸帝國形成之前, 應該先擔心OX inside帝國的形成. 尤其是老是強迫大家一起買單的帝國式企業. 以後如果系統不穩定, 以往要歸咎於H/W? BIOS? Driver? 現在又多了一個避風港: Intel Black Box.
legacy BIOS最榮耀的地方在於他作很多事情, 卻無影無蹤, 單純and基本and直覺, 要寫register直接, 要debug容易, 無論換了哪一家BIOS vendor, 還是跑不了最基本的那一套, 以後工程師的你得要熟悉某一家的call routine, 這些call routine動不動structure裡面就是5個以上的members, 你不熟悉這些interface, 就進不了他的核心. 這些API和硬體register 通常沒有多大關係, 但是滿足了intel 的架構, 讓你攜帶資料從這個phase 到一下個phase, 從這一個protocol 到另一個protocol, 不 source level debug, 還真看不出所以然, 果然驗證C的優點, 每一個字都看得懂, 但就是搞不懂在作甚麼? 因為C可以抽象我們的想法, 是"人治"的想法, 你得去了解"作者"在想甚麼, 而legacy BIOS只要了解硬體在想甚麼就完工.
x86 跟著M$和藍色小精靈, 對使用者有很大的幫助, 至今他還是主流, 但是花了太多時間"試水"一些使用者並不需要的東西, 看到黑影就開槍, 鳥還沒打到, 就用光credit, 造成開發者的無奈(使用者應該也很無奈), 沒錯他們是帝國, 但是有哪些帝國是不倒的? 尤其是當追隨者有聲音, 但是帝國還是無動於衷, 這個市場總有其他人還是進得了....
read more