( Csab | 2016. 03. 22., k – 13:26 )

Az i386-os architektúrát nem ismerem.

Mikrovezérlő alatt az IRQ-t ha a hardver 0-ban hagyja, akkor más IRQ nem lehetséges. Minden megáll, tehát a drivernek ezt törölnie kell az esemény lekezelése után.
Gondolom i386-on is hasonló az egész, csak több interrupt vonal van. Azok az eszközök döglenek meg, amik azonos interruptot használnak a beragadt eszközzel. Ehhez a drivert jól kell megírni, különben szétszáll.

A DMA valóban megoldható user space hívogatással, csak User1 ne tudjon bele-DMA-zni User2 adataiba.

Szóval nem triviális hogy mit, hová DMA-zol. Szoftverből kell ellenőriznie a kernelnek, hogy adott területre jogod van-e belenyomni adatokat.

Ha történetesen a DMA egy félrekonfigurálás miatt leáll (más architektúrán simán előfordulhat, PC-t nem ismerem), akkor az természetesen mindent visz (ha a file betöltés nem megy, akkor semmi más sem).