Все зависит от ОС.
Большинство операционных систем делят пространство в 4 ГБ, например, 2/2 или 3/1, потому что это облегчает переход из режима пользователя в режим ядра, таблицы страниц ненужно было переназначить во время переключения.
Однако в Linux даже предусмотрено 4 ГБ пользовательского пространства и 4 ГБ пространства ядра.Но, как вы можете себе представить, это требует переназначения полной памяти каждый раз, когда вам нужно переключиться в режим ядра, что влечет за собой некоторые накладные расходы.
Хотя она находится в вашем пространстве памяти, ОС не позволяет получить доступ к пространству ядра из кода режима пользователя.Этот тип управления доступом возможен из-за битов привилегий в таблице страниц.
Все вызовы ядра из пространства пользователя на самом деле являются вызовами int 80h
.Этот вызов переводит вызов в обработчик прерываний ядра и делает доступным как ядро, так и пространство пользователя.