想問一下,有聽說過這麼一句話
「把 driver 編到核心」
想問一下,driver 不就是一堆 source code
然後 compile 完變執行檔,
什麼叫 "編入核心" 呢?!?
mason 寫:就我的理解層面
「把 driver 編到核心」 就是「把 driver 跟 kernel 綁在一起」
不把某 driver 編入核心,不見得就不會編譯
因為可以編成 module(compile as kernel module)
要變成 module 還是要經過編譯的過程。
而所謂不 compile 某 driver,是 kernel 壓根不去支援。
可以想像成:
1.在 kernel 對於該 driver 相對應的地方開一個接口,需要某個 driver 的時候才把這個 driver 被編譯過的 module 掛上接口 ==> 編譯成 module
2. 在 kernel 對於該 driver 的地方,根本封死 ==> 不編譯成 module 也不編入核心。
3. 在 kernel 對於該 driver 的地方,直接用膠水把 driver 黏起來然後編譯,讓 kernel 被載入記憶體的時候也連帶把該 driver 帶進來 ==>編入核心
mason 寫:各個硬體廠商在製作硬體的時候,該硬體裡面會提供一些資訊
像是vendor 如果為1043,就是 ASUSTeK Computer Inc.
而 vendor 如果為 1002,就是 ATI Technologies Inc
10de 則是 nVidia Corporation
還有像是device若為3085,就是 Realtek RTL8139/8139C/8139C+
也就是說,每個硬體都有編號的,所以 kernel 載入 driver 之後(不管是掛 module 或直接編在核心裡面),就會知道這個編號對應到的硬體是什麼。
還有, kernel 不會知道「好強牌 」 的存在,因為「好強牌 」 只是個牌子,如同 matthewlam64 同學所言,是認晶片的。
像是一張GeForce MX 440顯示卡,有技嘉出的、有華碩出的、有微星出的,但是 kernel 只認卡上的晶片,也就是 nVidia Geforce MX 440
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客