Системные и пользовательские вызовы в ОС
Системные вызовы отличаются от пользовательских тем, что они выполняются в пространстве ОС, поэтому исполнимый код являются частью ОС. От пользователя поступаю на вход лишь данные и пользователю возвращаются в результате обработанные, измененные данные. При этом ОС должна производить так называемое шлюзование данного пользователя.
Шлюзование необходимо для обеспечения безопасности работы ОС.
В классических ОС (UNIX подобных ОС ) все вызовы четко разделены на пользовательские и системные. Это позволяет построить безопасные ОС.
Windows один и тот же вызов может выполнить как в пользовательском пространстве так и в системном пространстве. Система плохо следит за тем чтобы коды пользователя не выполнялись в режиме ОС (нулевой уровень защиты в режиме PSW).
Различные программы Windows часто утроены таким образом, что данные одновременно содержат программные коды. Например макрорасширения в doc (док) документах, Power Point файлах и т.д. Это приводит к тому, что коды применяемые вместе с программными могут выполнятся на нулевом уровне защиты. В этом случи, этот код если он представляет собой вирус имеет полные права на управление машины без возникновений прерываний защиты.
предыдущая следующая тема