Что означает "EE" в SOS?

Я нашел "EE" для меня волшебным словом.

Внутри CLR есть "EEClass", который создается загрузчиком класса CLR. И я не знаю, почему это называется EEClass.

Теперь, приходите в мир SOS, здесь больше EE, например EEHeap, EEStack [-EE], Name2EE.... Означают ли они то же значение здесь?

Ответ 1

CLR начал свою жизнь задолго до того, как был принят для запуска .NET-кода. Начался как универсальный Runtime в Project 42, проект highfaluting, который провалился, но чьи части сохранились в последующих проектах, например .NET. Продолжалось в NGWS (службы Windows следующего поколения), прежде чем он стал механизмом выполнения для .NET. 42 был номером здания, в котором группа работала в кампусе Microsoft.

Несколько аббревиатур сохранились, вполне видимы в исходном коде SSCLI20 и именах, которые вы видите в файлах отладчика и заголовка. Небольшое из них:

  • URT, универсальное время выполнения. Древний, он просто остается в собственных кодах ошибок, которые вы получаете из управляемого кода, у них есть код объекта 19, FACILITY_URT в заголовочном файле WinError.h. Который делает любое такое значение кода ошибки 0x8013xxxx.

  • COM + или COMPlus. Также древний COM + был эволюцией COM, отличающийся тем, что потерял среднюю войну с Java и название группы в Microsoft, у которой была основная ответственность Project 42. Все еще отображается в именах исключений, включая собственный код исключения для любого исключения .NET: 0xe0434f4d. 434f4d - коды ASCII для "COM". Сам CLR фактически использует очень мало COM-кода, просто для создания трассировки стека из pdb и пользовательских интерфейсов хостинга, отладчика и профайлера.

  • COR, Common Object Runtime. Акроним, который начинается после 42-битного проекта. Выживает во всех именах заголовочных файлов SDK, таких как Cor.h, CorError.h, CorDebug.h и несколько имен хостов api, например CorBindToRuntimeEx. Переименовано в "CLR" в версиях .NET 4.

  • EE, Механизм выполнения. Появляется в названиях частей CLR, которые были специально адаптированы для запуска .NET-кода. Как вы узнали.

  • SOS, сын страха. Расширение отладчика, использующее DAC (компонент доступа к данным) для подключения и отображения внутренних структур данных CLR. Strike - это имя расширения отладчика, используемого для получения версии .NET версии 1.0, когда у него было имя внутреннего проекта Lightning. Lighting Strike, вы его получите. Разработан как общий инструмент отладки, став таким образом сыном Strike. ЦАП отображается из библиотеки DLL поддержки mscordacwks.dll и сообщения об ошибке, которое вы получаете при попытке загрузить мини-пакет, который был создан с другой версией CLR.

Внутренние имена проектов также видны в исходном коде .NET Framework..NET 1.0 был Lightning,.NET 1.1 был Everett,.NET 2.0 был Whidbey, WPF был Avalon, WCF был Indigo.

Аналогичный проект высокого уровня, который включает CLR, имеет место прямо сейчас. Супер-секрет, его кодовое имя - Midori. Об этом мало известно, кроме того, что он предназначен для реализации всей операционной системы на основе управляемого кода. Последующее наблюдение за другим хорошо опубликованным прототипом Singularity.