Как можно запрограммировать запуск на ЦП (в основном на ОС) на другом ПК? Такие как видеокарта, HDD и тд?
Полный ответ на этот вопрос сложен и трудно ответить в целом. Поэтому я постараюсь ответить на него в целом и, надеюсь, дать вам несколько советов для поиска дополнительной информации для дальнейшего изучения. Я надеюсь, что это полезно.
Для 32/64-битных защищенных режимов, используемых в MS Windows 95 и новее, или Linux на процессоре x86 (IA-32), программные прерывания (такие как код операции INT для x86) переходят в соответствующую таблицу векторов прерываний (или отправляют). таблица), которая может указывать центральному процессору, где в ОС процесс должен перейти к обработчику прерываний (или подпрограмме обработки прерываний, ISR) для обработки запроса.
В реальном режиме x86, как и в MS-DOS, они могут обрабатываться BIOS, который предоставляет подробные сведения о низкоуровневой реализации для этой конкретной системы / чипсета / материнской платы.
[H] Может ли какая-то программа, хранящаяся в ОЗУ, получить доступ к другому компьютеру HW, когда ЦП может обращаться только к ОЗУ и получать прерывания?
Так ты не хочешь обычный волнообразный ответ? Я постараюсь ответить на это, но я не инженер по вычислительной технике и не специалист по компьютерной архитектуре.
Существуют различные механизмы, в том числе
- Отображение памяти или порт ввода / вывода
- Прямой доступ к памяти (DMA)
- Процессоры ввода / вывода (I / O "каналы")
- Периферийные устройства обработки
(Src: CS 473 - IO, Университет штата Нью-Мексико, Пфайффер, 2006)
Самым простым является ввод-вывод с отображением в память, где адрес памяти может быть сопоставлен с регистрами аппаратного устройства (например, последовательного UART ) и ЦП, а также записывать и / или считывать определенные адреса памяти для прямого доступа к аппаратному обеспечению. Это быстро и просто, но уменьшает диапазон адресов памяти, который можно использовать в качестве ОЗУ.
Другие представляют собой более продвинутые методы, разработанные для того, чтобы современные процессоры и более продвинутые операционные системы имели доступ к оборудованию контролируемым образом.
В самой ОС их обычно называют драйверами устройств, так как они содержат конкретные сведения об аппаратных устройствах, которые они поддерживают.
И использует ли Windows инструкции int, или есть какой-то новый способ связи с HW?
Да и да, но я думаю, что объяснил это.