Процессоры Intel обеспечивают безопасность с помощью так называемых «защитных колец».
Их 4, пронумерованных от 0 до 3. Код, выполняющийся в кольце 0, имеет самые высокие привилегии; он может (практически) делать все, что угодно с вашим компьютером. Код в кольце 3, с другой стороны, всегда на коротком поводке; у него только ограниченные полномочия влиять на вещи. А кольца 1 и 2 в настоящее время вообще не используются ни для каких целей.
Поток, работающий в более высоком привилегированном кольце (таком как кольцо 0), может переходить в более низкое привилегированное кольцо (такое как кольцо 1, 2 или 3) по желанию. Однако переход наоборот строго регламентирован. Так обеспечивается безопасность высокопривилегированных ресурсов (таких как память) и т. Д.
Естественно, ваш код пользовательского режима (приложения и все) выполняется в кольце 3, а код ОС - в кольце 0. Это гарантирует, что потоки режима пользователя не смогут связываться со структурами данных ОС и другими критическими ресурсами. *
Подробнее о том, как все это реализовано, вы можете прочитать в этой статье. Кроме того, вы также можете просмотреть руководства Intel, особенно том 1 и том 3А, которые можно загрузить здесь .
Это история для процессоров Intel. Я уверен, что в других архитектурах происходит нечто подобное.