Компьютерра PDA N116 (18.06.2011-24.06.2011)
Шрифт:
В системах, подобных Singularity, предполагается тщательная верификация кода программы, которая будет в данный момент выполняться. Результат такой верификации - строгое математическое доказательство того, что этот код, именуемый проверенно безопасным (verifiably safe code), в ходе своего выполнения будет работать только с положенными ему объектами и не станет вносить никаких изменений в код и данные других процессов.
То есть, запуская любую программу, система предварительно удостоверяется в полной легитимности работы и, следовательно, полностью контролирует процесс её выполнения. Это и есть идея управляемого выполнения кода.
В такой модели работы процессов для
Но разве предварительная верификация кода не снижает производительность системы? Ведь такая проверка не менее затратна по времени и ресурсам, чем переключение процессов.
Ответ на этот вопрос кроется в прогрессе программных платформ управляемого выполнения кода. Основанные на типобезопасных языках, таких, например, как Java или C#, и высокопроизводительных runtime компиляторах, способных "на лету" генерировать оптимальный и дотошно проверенный код, на системах сборки мусора, корректно очищающих память после завершения работы программы, подобные платформы в последнее время сделали гигантский скачок в плане производительности. Теперь она соизмерима с выполнением обычного неуправляемого кода.
Процесс управляемого выполнения кода - основа архитектуры системы Singularity. Базируется он на спецификации Microsoft CLS (Common Language Specification), поддержка которой открыта для многих из имеющихся и вновь разрабатываемых языков программирования и компиляторов для них. Согласно CLS, эти компиляторы не генерируют неуправляемый код, а создают некий промежуточный код на языке MSIL (Microsoft Intermediate Language). Дополнительно с генерацией кода MISL они создают манифест - метаданные программы, в которых чётко описаны её типы, сведения о необходимых программе внешних объектах и правила взаимодействия с ними. Код MISL и манифест упаковываются в исполняемый PE (portable executable) файл.
Спецификация Microsoft CLS лежит в основе не только системы Singularity, но и среды разработки для традиционных систем .NET Framework
Дальше происходит компиляция MISL-кода в машинный код, специфичный для системы команд процессора, на котором запущена Singularity. Занимаются этим процессом или JIT-компилятор (just-in-time), генерирующий машинные команды для процессора "на лету", или же программа-генератор NGen (Native Image Generator), создающая традиционный исполняемый образ. Важным является то, что в ходе работы и JIT-компилятора, и программы NGen создаваемый машинный код проверяется на типобезопасность. В случае доказательства того, что полученный код типобезопасен, он исполняется, в противном случае генерируется исключение. Программа не прошла проверку и требует внесения изменений в свой исходный текст.
Проверка на типобезопасность кода каждой программы возможна только тогда, когда чётко доказана корректность работы всех компонентов системы управляемого выполнения кода. В настоящее время в Singularity для процессоров Intel x86 код MSIL компилируется
В будущем должен быть создан специальный типизированный ассемблер TAL (Typed Assembly Language), который потребует от каждой программы доказательств её типобезопасности.
Читайте далее:Система строгого режима: Microsoft Singularity (часть 2)
Василий Щепетнёв: Мерзость запустения
Автор: Василий Щепетнев
Опубликовано 22 июня 2011 года
Воронежский парк отдыха и культуры в иные времена славился и сельскохозяйственной выставкой с показом быков, соболей и яйценоских кур, и шахматным павильоном, и прудом с цветущими лилиями (впрочем, лилии существовали преимущественно в воображении), и лягушками, которых малолетние обыватели ловили и за медные деньги сдавали в медицинский институт для опытов, и пивными ларьками, где продавали жигулёвское пиво гранёными полулитровыми кружками. Где оно теперь, то пиво, двадцать четыре копейки с пеной, теоретически по ГОСТу содержавшее два и семь десятых градуса спирта, а на деле нещадно разбавленное водой (и какой водой!), дарившее не столько хмель, сколько форсированный диурез?..
И была в парке лыжная база. Зимой физически активные личности брали лыжи и сдавали нормы ГТО на страх агрессору, летом же работники базы готовили спортинвентарь к зиме. А ещё базу украшала памятная доска, извещавшая всякого грамотного человека: на этом месте в июне одна тысяча восемьсот семьдесят девятого года состоялся съезд противоправительственной организации "Земля и воля". Регулярного парка тогда не существовало, съезжались прямо в лесочке, среди деревьев, с выпивкой и закускою - для конспирации. Плеханов, Михайлов, Желябов, Фигнер, Перовская, Морозов изображали беспечных гуляк, а на деле решали вопрос, каким путём пойдёт демократическое движение.
Тогда не было камер скрытого и явного наблюдения, даже моментальной фотографии не существовало, а фотографии обыкновенные, студийные считались делом сложным, канительным и затратным. Потому соответствующие службы обходились словесными портретами и полагались не на технику, а на собственные глаза, уши и ноги. На каждом этапе сыскного процесса рассчитывать приходилось только на людей. Но штат жандармского управления губернии при Александре Николаевиче не шёл ни в какое сравнение с современным. А в уездных городах профессионалов политического сыска не было вовсе, именно поэтому, а не из любви к минеральным водам народовольцы собирались в местах красивых, но безнадёжно провинциальных - Воронеж, Липецк...
Однако провинция провинцией, а и здесь зевать не приходилось. Жандарм был редок, но самый обыкновенный дворник обладал глазом, зорким на всякую подозрительную затею. Институт дворников, исправно служивший престолу в дореволюционной России и печально деградировавший сегодня, стоил дорогого. Дворники знали всё! Род занятий жильцов, размер дохода, что едят на завтрак в пятой квартире, кого бранят в седьмой... Замечали прибытие и убытие гостей и родственников, покупку колб и реторт, шумы, стуки и химические запахи из форточки. И при этом дворники убирали дом, затворяли ворота и совершали массу других малозаметных, но необходимых действий.