A Linux kernel régóta képes igény szerint modulokat betölteni akkor, ha egy külső esemény erre felhívja a figyelmét. A legtöbb esetben a kernel tudja, hogy pontosan melyik modult is kell neki betöltenie, és egyszerűen név szerint megszólítja. Például az IDE alrendszer képes az alábbi hívásra:
request_module("ide-cd");
ami azt jelenti, hogy egy CD meghajtónak szüksége van a driverre. Viszont vannak olyan esetek, amikor a kernel nem tudja pontosan, hogy melyik drivert is kell betöltenie. Ebben az esetben kérdést intéz a felhasználói térbe (user space). Például, ha egy felhasználói program megpróbálja megnyitni a major number 100-as blokk eszközt, és közben ehhez az számhoz nincs driver regisztrálva, akkor a kernel megpróbálja betölteni a block-major-100 névre hallgató modult. A keresett modul megtalálása a 'modprobe' programra hárul, amely várhatóan megpróbálja megtalálni az ide vágó alias sort a /etc/modules.conf-ban, amely megmondja, hogy melyik modult is kell pontosan betölteni.Az egyetlen probléma ezzel a sémával az, hogy a driverek általában tudják, hogy melyik számú eszköz támogatására készítették fel őket. A konfigurációs információ szerepeltetése a /etc/modules.conf-ban a legjobb esetben redundáns. Viszont rossz esetben félrevezető is lehet, mert ha a hanyag adminisztrátor rosszul tölti ki a modules.conf-ot és megpróbál az eszközhöz rossz drivert illeszteni, az nemvárt működéshez vezethet.
Amikor az új modul loadert elkészítették - majd egy évvel ezelőtt - beleépítettek egy új MODULE_ALIAS macro-t. A macro feladata, hogy lehetővé tegye a driver készítőjének, hogy direkt módon meghatározhassa, hogy melyik modul aliasok kellenek a moduljának. Azaz a modul saját alias-okat kínálhat fel ahelyett, hogy a modprobe-ba lennének hardcode-olva a nevek, mint korábban. A modul szerzője által bekódolt alias képes felülbírálni a felhasználó által beadott adatokat, amelyek a /etc/modules.conf-ban találhatóak. Így (többnyire) kiszűrhető az emberi tévedés. Sajnos egyelőre lassan szivárognak be ezek a változások a kernelbe. Egy grep-et futtatva a kernelforráson láthatjuk, hogy egyelőre nem sok van belőle a kernelben (pl. usb-storage, bttv, emu10k1, i810_audio, stb.).
Ezt a helyzetet megváltoztatandó készítette el Rusty Russell azt a patch set-et, amelyik beilleszti a MODULE_ALIAS hívásokat a kernel forrásába. A jelenlegi variánsok használata függ az alrendszertől: a blokk eszközök a MODULE_ALIAS_BLOCKDEV-et, a karakteres eszközök a MODULE_ALIAS_CHARDEV vagy a MODULE_ALIAS_MISCDEV-et, míg a hálózati protokolok a MODULE_ALIAS_NETPROTO-t használják.
Ettől függetlenül még vannak esetek, amikor szükség van a modules.conf-ban szereplő alias-okra. Gondoljuk arra, hogy például nem lehet tudni előre, hogy az eth0 eszközhöz melyik drivert kell betölteni (ahány gép, annyi féle ethernet kártya lehet benne). Viszont köszönhetően MODULE_ALIAS-nak mostantól számos szabványos alias-t el lehet távolítani.
Rusty Russel levele itt. Kapcsolódó levelek itt.