Программирование в пользовательском режиме относится к программированию в рамках механизмов защиты, контроля и абстракции ядра операционной системы.Например: в пользовательском режиме вы не можете записывать секторы диска, так как они «скрыты» под API файловой системы.Вы не можете записывать адреса физической памяти, поскольку ядро контролирует перевод между виртуальной и физической памятью, хотя вы можете зарезервировать память для своих собственных нужд.Кроме того, несмотря на то, что вы можете перейти на низкоуровневый (сборка), вы не можете выполнять привилегированные инструкции, например, пытаться связываться с кэшами процессора, TBL и MMU.для пошлин низкого уровня без каких-либо ограничений.Драйверы оборудования, например, не могут быть запрограммированы в пользовательском режиме, так как им необходим прямой доступ к оборудованию для выполнения операций ввода-вывода, отображения областей памяти и т. Д.
Конечно, вы не можете думать о режиме ядра как о «менее ограниченном» и заниматься разработкой приложений в KM.Многие системные средства для прикладного программирования недоступны в KM, поскольку библиотеки, необходимые для взаимодействия с пользователем, запускаются в режиме пользователя.Кроме того, эти пользовательские библиотеки не будут ссылаться на модуль ядра.
Это различие может быть более или менее определено в зависимости от операционной системы.KM / UM - это нонсенс в DOS, где программам был разрешен свободный доступ к системным ресурсам (по крайней мере в реальном режиме 8086/88 - это не относится к расширителям DOS).