Мне интересно, зачем нам нужно переключаться в пространство ядра, когда мы хотим получить доступ к аппаратному устройству. Я понимаю, что иногда для определенных действий, таких как выделение памяти, нам необходимо выполнять системные вызовы, чтобы переключиться из пользовательского пространства в пространство ядра, потому что операционной системе необходимо все организовать и разделить процессы и то, как они используют память и другие. Но почему мы не можем напрямую получить доступ к аппаратному устройству?