Я довольно новичок в Linux.
Я всегда вижу два термина аппаратный драйвер и драйвер ядра.
Так в чем же различия между драйвером аппаратного обеспечения и драйвером ядра?
Скорее всего, вы придумали аппаратный диск, который является модулем ядра, а не модулем пользовательского пространства. Это не альтернатива, а скорее ортогональная классификация.
Таким образом, вы можете иметь (это примеры):
Kernel | User space
Hardware | Most harddrive drivers | 3G Internet modem driver
Non-hardware | EXT3/4 driver | Some non-standard filesystem
Если бы вы собирали свое собственное ядро, вам фактически пришлось бы решить, включать ли какой-либо драйвер в пространство ядра. Это заставляет драйвер работать быстрее и уменьшает задержку, но если драйвер глючит, он может уничтожить всю систему вместе с ним, а также вы не сможете выгрузить этот драйвер без перекомпиляции ядра позже.
Или, конечно, вы можете говорить о чем-то совершенно ином. д; -) =
Так в чем же различия между драйвером аппаратного обеспечения и драйвером ядра?
Нет ни одного. При наличии контекста «драйвер» наиболее часто используется в среде Windows, в мире Linux / Ubuntu их обычно называют «модулями».
Но существует различие между драйверами, работающими в режиме ядра, и драйверами, работающими в режиме пользователя.