Насколько я понимаю, ядро обеспечивает связь между программным и аппаратным обеспечением, и поэтому ядро должно направлять системные вызовы, выполняемые приложениями ОС, правильно? Значит, разные карты адресов ввода / вывода означают, что ядро должно программироваться по-разному? Читайте ниже, поскольку я не верю, что сформулировал этот вопрос очень точно.
Позвольте мне уточнить, и, пожалуйста, поправьте меня, если я ошибаюсь, потому что именно так я понял то, что написано в нескольких статьях Я буду использовать семейство x86 в качестве основы для моих примеров. Процессоры x86 используют команду INT, а также индекс, называемый таблицей векторов прерываний, для сопоставления идентификатора INT с правильным расположением требуемой подпрограммы (подпрограмма и IVT, расположенные в BIOS, верно?). Сами подпрограммы написаны так, что они могут дать команду оборудованию, специфичному для компьютерной системы, выполнить задачу, основанную на протоколе используемого оборудования. Это позволяет ОС совершать системные вызовы и обмениваться данными с оборудованием, не имея никакого знания об оборудовании или отображении ввода / вывода, характерном для системы. Все, что необходимо для связи ОС с аппаратным обеспечением, - это идентификатор конкретного требуемого ISR. Поскольку ядро является связующим звеном между аппаратным и программным обеспечением, я предполагаю, что приложения, запускаемые ОС, не обязаны даже знать идентификатор ISR #, они просто сообщают ядру, что они хотят, например, записать данные X на жесткий диск, ядро передает данные X на правильный ISR, который затем записывает данные на жесткий диск. Таким образом, две системы, полностью идентичные за исключением того, что они используют разные идентификаторы ISR для разных задач, потребуют немного разных ядер?
И будет ли это также означать, что загрузочный сектор, который загружает ядро, также будет зависеть от сопоставления идентификатора ISR, поскольку для загрузки ядра потребуется выполнить системные вызовы для чтения с жесткого диска?
Я прошу прощения, если это не в том месте, но я прочитал, что это правильное место для вопросов, связанных с оборудованием. Спасибо!