Полностью убрать границу между пользовательским кодом и ядром нельзя без изменения модели защиты. Системные вызовы дают контролируемый доступ к привилегированным операциям и оборудованию.
Если отменить системные вызовы, почему это следует сделать и как будет организовано взаимодействие с оборудованием и ядром?
Полностью убрать границу между пользовательским кодом и ядром нельзя без изменения модели защиты. Системные вызовы дают контролируемый доступ к привилегированным операциям и оборудованию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Полностью убрать границу между пользовательским кодом и ядром нельзя без изменения модели защиты. Системные вызовы дают контролируемый доступ к привилегированным операциям и оборудованию.
Можно уменьшить число переходов: пакетировать операции, использовать асинхронный I/O или разделяемые очереди. Некоторые данные доступны без обычного syscall через специальные механизмы ОС, но это не отменяет права доступа и участие ядра в настройке.
Если речь о конкретной оптимизации, сначала выясняют стоимость переходов и требуемые операции. Устранение всех системных вызовов не является самостоятельной целью и не означает безопасный прямой доступ приложения к любому устройству.