1) Разумеется, тогда в качестве платформы для C++-программ будут использоваться nix-системы
2) VMWare, кстати, использует режим виртуализации процессора, а не интерпретирует его команды, поэтому падение скорости в нем несущественное.
1) Разумеется, тогда в качестве платформы для C++-программ будут использоваться nix-системы
Не факт. Но даже если будут, пусть используются, мне пофиг.
2) VMWare, кстати, использует режим виртуализации процессора, а не интерпретирует его команды, поэтому падение скорости в нем несущественное.
Гм. Не совсем хорошо понимаю чем виртуализация отличается от интерпретации, но факт в том, что под Singularity можно запустить только управляемый код, неуправляемый никаким способом выполнить нельзя.
По той информации, что у меня есть, перед запуском IL-код, как и сейчас под .NET, компилируется в машинный код, кешируется и запускается.
Вполне логичный вопрос - кто мешает загрузить в память неуправляемый код и передать в него выполнение? Нет, сделать это будет невозможно, я не знаю как именно технически намерены это запретить, но запустить можно будет только управляемый код.
В кеше скомпилированую программу тоже заменить не удастся, так как они будут подпиываться, и при подмене их запуск будет заблокирован.
Однако это даже не ближайшее будущее.
По той информации что есть у меня следующая ОС (Windows Vienna) будет выпущена в пределах 2010 года, и это не будет Singularity, под этой ОС можно будет запускать все старые приложения как обычно, т.е. Singularity мы получим не ранее 2010, возможно, в пределах 2015, так как переписывание огромного зоопарка приложений под .NET (иначе кому нужна ОС под которую нет софта) займет ой как много времени
Не совсем хорошо понимаю чем виртуализация отличается от интерпретации
Вкратце, виртуализация заключается в настройке процессора через регистры таким образом, что он исполняет некоторые процессы, позволяя при этом управлять ими не ядру операционной системы-хоста, а другому процессу. Соответственно, все операции, которые этот процесс пытается выполнять (обращение к памяти, портам, оборудованию, исключения) перенаправляются процессу (vmware-vmx.exe, ага), который уже решает, что сделать (отрисовать в своем окошке скриншот, прочитать виртуальную ФС из файла, пользуясь услугами ОС-хоста, выдать мсгбокс, что сейчас виртуальная машина въедет в столб). А интерпретация - это процесс исполнения конечным автоматом последовательности команд, т.е. он состоит из двух стадий - расшифровка некоторым образом заданной программы действий + выполнение на основании расшифровки некоторых заранее предопределенных действий. Т.е. именно этим и занимается .NET: расшифровка - преобразование IL в управляемый и очень машинный код; выполнение заранее написанного кода - работа классов FW.
но факт в том, что под Singularity можно запустить только управляемый код, неуправляемый никаким способом выполнить нельзя.
Надо сделать оговорку - в случае, если код исполняется только под ring3 и если ОС не содержит не единой ошибки.
Вопрос: сколько M$ написала со времени своего создания ОС, в которых было хотя бы меньше 10 критических уязвимостей?
Надо сделать оговорку - в случае, если код исполняется только под ring3 и если ОС не содержит не единой ошибки.
Прикол в том, что весь код, и ОС, и приложения будут выполняться в ... нулевом кольце защиты ))
На самом деле код не сможет сделать ничего плохого просто потому что у него в наборе команд нет тех которыми можно похулиганить
Вопрос: сколько M$ написала со времени своего создания ОС, в которых было хотя бы меньше 10 критических уязвимостей?
Трудно сказать...
Здесь вся непосредственная ответственонсть ложится на некоторую часть ядра, которая будет написана на неуправляемом коде (предполагается что это будет порядка мегабайта) - вот его нужно будет вылизать до идеального состояния, все остальное - написано на неком диалекте C#, в котором ничего криминального сделать нельзя.