Homa200
@Homa200
школьник, пытаюсь писать ОС на С и ассемблере

Как работать с жестким диском через порты В/В в защищенном режиме?

Пытаюсь писать ОС на си и ассемблере, с совместимостью процессоров intel x86. ОС работает в защищенном режиме, и появился вопрос.
Возможно ли работать с жестким диском программно, через порты ввода/вывода, при этом не используя прерываний?
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 3
@res2001
Developer, ex-admin
Желаю удачи в вашем начинании!
По вопросу - совсем без прерываний с оборудованием работать не выйдет.
Для разгрузки ЦПУ посмотрите в сторону DMA.
Ответ написан
Комментировать
martin74ua
@martin74ua
Linux administrator
Ответ написан
Комментировать
@stul5tul
Возможно ли работать с жестким диском программно, через порты ввода/вывода, при этом не используя прерываний?

Если речь про обычную ОС, то она не пустит простую программу к портам напрямую:

По уровню привилегий (в защищённом режиме):

  • Режим пользователя (прикладной): минимальный уровень привилегий, разрешены только операции с данными и переходы в пределах адресного пространства пользователя. Все остальные операции либо игнорируются, либо с помощью механизма обработки исключений вызывают переключение в привилегированный режим и передачу управления ядру операционной системы для выполнения специальных функций (например, отображения данных на дисплее) или аварийного завершения потока управления.
  • Привилегированный режим (режим ядра): наравне с операциями режима пользователя, разрешены дополнительные операции — запрет или разрешение прерываний, доступ к портам ввода-вывода, специальным регистрам процессора (например, для настройки блока управления памятью)
.

https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B6%D...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы