Kernel
為什麼 Linux 有最大數量的音效卡?
我是
CONFIG_SND_MAX_CARDS
在核心中專門詢問的。從使用此配置的程式碼中,例如在
sound/usb/card.c
USB 卡中,音效卡儲存在循環的普通數組中。為什麼核心不使用列表並且擁有無限數量的音效卡?
我知道由於硬體原因(匯流排中的插槽數等),無限是不可能的,但是動態分配的實現至少可以為使用者節省在編譯時指定最大數量的麻煩。
有任何想法嗎?
在 ISA 音效卡的好時代,動態創建設備節點是不可能的
/dev/
,所以必須預先分配所有設備。這導致了 8 個音效卡的限制,並且在編寫驅動程序時考慮了這個限制。後來,當引入 devfs 和 USB 時,這個限制被取消了。但是,最簡單的方法是進行最少的更改,即只更改上限。
重寫程式碼以允許無限數量的卡片將是一個很大的努力,沒有任何具體的好處。(可以使用核心配置選項增加目前預設值 32,但嘗試這樣做的人通常會發現他們沒有足夠的 USB 頻寬用於這麼多設備。)