Пришедшая "из лабораторий", многих захватила идея ОС с единым адресным пространством и языковой защитой.

На что ряд специалистов в ОС утверждает, что без аппаратной защиты, понятия процесса и раздельных адресных пространств нельзя обеспечить многие требования по защищённости и надёжности.

В пользу поддержки изолированных процессов на уровне ОС лично у меня накопился уже ряд практических аргументов.

В частности:

- обеспечить разделение прав и защиту от злого умысла без изоляции памяти просто невозможно. Да, можно сделать загрузку специфических модулей "в песочницу", проверяя явно их список импорта. Но это для ограниченных случаев. В общем случае, многие естественные средства, нужные для динамики (метапрограммирование и т.п.) и удобных библиотек, входят в противоречие с разделением прав. Поэтому имеет место факт: языковыми средствами можно обеспечить надёжность, но нельзя обеспечить защиту от злого умысла, исходящего от модуля в том же адресном пространстве.

- освобождение ресурсов в нестандартных ситуациях их утечки. Бывает, что приложение вызывает утечку ресурсов. Той же памяти. Даже в условиях GC - ибо при паре сотен модулей в памяти, которые имеют своё состояние и т.п. бывают случаи, когда трудно понять, какой из них удерживает ресурс (закэшировалось для особо больших входных данных и т.п.). В условиях системы, состоящей из ряда отдельных процессов, единицей перезапуска становится процесс, если система построена отказоустойчиво, то она готова к сбою и перезапуску каждого из своих процессов по отдельности. В случае ОС с единым адресным пространством единицей перезапуска окажется вычислительный узел - по-другому проблему не решить.