У меня есть вопрос о том, как выполняется фактический системный вызов. Я знаю, что магия системного вызова (например, чтение и т. д.) реализована в библиотеке C, но не понимаю точного механизма. Мои основные проблемы
Процедура библиотеки c находится в адресном пространстве пользователя; тогда как он может получить адрес подпрограмм обслуживания прерывания. Предопределены ли процедуры обслуживания прерываний (при загрузке) в физической памяти?
Даже если как-то процедура ISR вызывается, как меняется адресное пространство? Я имею в виду, прежде чем мы начнем выполнение ISR, как изменится «базовый регистр таблицы страниц», чтобы указать на таблицу страниц ядра. Если это делает подпрограмма 'C', то как она узнает адрес таблицы страниц ядра?
Как параметры копируются из пространства пользователя в пространство ядра?
Пожалуйста, извините меня, если мои вопросы слишком простые, но я новичок в этом. :)
Спасибо, Рохит.