да напоследок ясность теперь есть ioctl точно не работает с ядром или она может работать с ядром так и сдрайвером?
Вот тут батенька вам надо азы изучать.
Драйвер - компонент ядра (с момента загрузки драйвера в ядро).
Когда программа вызывает ioctl(FD,blablabla) ядро находит по FD соответствующий драйвер, по таблице находит функцию ioctl драйвера и всё blablabla передаёт этой функции. А дальше или читай книги или не парь мозг в первую очередь себе.