Вы вообще понимаете что вы пишете?Адресное пространство может быть единым, но прав доступа может не быть. По факту у каждой задачи есть своя таблица страниц (регистр CR3, PML4T) и ОС решает кому куда какой (R/W, data, stack, 64-bit executable, 32-bit executable, 16-bit executable, ..) будет доступ. Управление памятью не имеет к архитектуре ОС решительно никакого отношения.
syscall не самый быстрый способ, самый быстрый - far call, и в Windows используется именно он.
Микроядро позволяет с одной стороны сократить размер ядра и получить короткий (5-15 тыс.строк) удобочитаемый код, который один человек может "объять" взглядом. Ещё более жёсткое пико-ядро (1-3 тыс.строк) - это по сути микроядро без HAL (HAL в отдельном модуле). Ещё более жёсткое экзо-ядро (несколько сотен строк) - это когда от ядра осталось лишь IPC (interprocess communication), а бывшее пико-ядро является лишь одной/несколькими из его задач.
И напоследок монолитное ядро (от нескольких тысяч до миллионов строк) - это когда всё (ядро, HAL, драйверы, иногда приложения) в одном файле. Это самый простой способ и в теории самый быстрый, т.к. драйвера, интегрированные в ядро не тратят времени на межуровневую передачу управления. К сожалению, поддержка ядер таких размеров затруднена, а ошибки в драйверах вынуждают обновлять всё ядро. Поэтому даже Линукс идёт от монолита к микроядру. Идёт медленно.