Например, механизм управления виртуальной памятью способен надежно разделять адресные пространства программ, но при условии, что программа-загрузчик операционной системы будет загружать соответствующие сегменты в оперативную память без их перекрытий. Операционная система должна выполнять противоречивые требования. С одной стороны она должна предоставлять пользователям максимум сервисных услуг, включая услуги по использованию системных ресурсов. С другой стороны для обеспечения целостности системы она должна максимально ограничивать свободу управления ресурсами со стороны пользователей и отделять системные программы от пользовательских. Как выход из положения, операционные системы используют принцип предоставления услуг пользователям через программы-посредники, контролирующие корректность управления ресурсами. При этом предполагается, что обычные сбои пользовательских программ известны и либо будут отловлены, либо не будут приводить к тяжелым последствиям. Что касается преднамеренного нарушения целостности системы, то здесь остается только надеяться на мастерство программистов - разработчиков операционных систем. |