Как получить доступ к оборудованию x64 напрямую, без использования уровней аппаратной абстракции?

У меня странный вопрос, но я заинтересован в этой теме.

Есть ли возможность получить доступ к аппаратному обеспечению текущего компьютера на базе x64 напрямую, без использования HAL (Hardware Abstraction Layer) или других операционных систем (udev, upower, …)? И я не говорю о разработке определенного драйвера устройства, вместо этого я говорю о простом программировании «Hello World» с использованием C, ассемблера или чего-то в этом роде.

Я осознаю тот факт, что такие вещи, как многоядерные процессоры, многопоточность и т. Д., Делают этот тип программирования бессмысленным для большинства распространенных случаев. Однако мне интересно узнать, возможно ли это вообще, и если да, то как вы можете это сделать?

Я сосредоточен на операционных системах на основе Linux. И насколько я знаю, это невозможно в операционных системах на базе Microsoft с 98 / ME

Большое спасибо за ваши усилия заранее & с уважением,
B.

2

Решение

Нет, вы не сможете сделать это на любом языке. Причина довольно проста — в любой современной архитектуре пользовательские программы работают в так называемом защищенном режиме. Это означает (среди прочего), что у вас нет доступа к реальной памяти — вместо этого ЦП вместе с ОС переводят адреса памяти, которые ваша программа использует для чего-то другого.

Для связи с оборудованием вам действительно необходимо получить доступ к области памяти, которая используется этим оборудованием — и это абсолютно невозможно в защищенном режиме.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]