как драйверы становятся частью операционных систем?

Я знаю, что ядра ОС состоят из драйверов, но как драйвер становится частью os ?, само декомпилирует ли я сам, а затем добавляет драйвер и перекомпилирует себя ?, или являются плагинами драйверов для ядра ?, кто-то сказал мне, что для большинства операционных систем драйверы фактически становятся частью ядра, но всякий раз, когда я скомпилирую программу ac, она превращается в обычный исполняемый файл

Архитектура драйвера полностью зависит от вашей операционной системы. Для большинства операционных систем, работающих на компьютерах (в отличие от встроенных устройств), мышление о драйверах как «плагинов» для ядра довольно точно. Тем не менее, существует множество более старых, более мелких и менее сложных операционных систем, которые требуют, чтобы вы построили драйвер как часть ядра – невозможна динамическая загрузка. В наши дни несколько операционных систем поддерживают драйверы «пользовательского режима», которые являются драйверами устройств, которые никогда не запускаются в пространстве ядра.

Это зависит от o / s.

Классически kernel ​​представляло собой monoлитный исполняемый файл, который содержал все драйверы, и был перестроен, когда нужно было добавить новый драйвер, включая код для нового драйвера вместе со всеми старыми.

В современных Linux и, возможно, других o / s драйверы динамически загружаются kernelм при необходимости. Драйвер создан в форме, которая позволяет ядру выполнять эту загрузку; как правило, это означает, что в общем объекте или в библиотеке динамической компоновки.

В операционных системах, таких как Linux-драйверы, можно фактически скомпилировать образ ядра. Хотя даже если они статически связаны, они могут демонстрировать архитектуру подключаемого типа, которая позволяет легко включать только нужные драйверы.

В качестве альтернативы, они динамически связаны и загружаются либо во время загрузки, либо по требованию, когда это требуется некоторым программным обеспечением уровня системы.