Язык C используют для написания драйверов устройств по нескольким причинам:
- Компилируемость вплоть до машинного кода. 1 Язык не требует поддержки во время выполнения, что позволяет писать код, который может выполняться до появления файловых систем, виртуальной памяти, процессов и других элементов, кроме регистров и оперативной памяти. 1
- Простота языка. 1 С ним легко начать работу и понять, что именно происходит на машинном уровне. 1
- Близость к системной архитектуре. 1 Язык C изначально разрабатывался для написания операционных систем и подобных низкоуровневых программ, он очень близок к системной архитектуре и не содержит дополнительных функций, которые мешают контролировать, как именно работают драйверы. 1
Кроме того, для нормальной и удобной работы с памятью желательно, чтобы язык обладал такой вещью, как указатель. 3 Также язык должен иметь компилятор, потому что драйвер всегда должен работать как нативный код, а не интерпретироваться. 3