Skip to main content

Что такое управляемый код?

«Управляемый код» - это термин, созданный Microsoft® Coproration. Этот термин относится к программному коду, который требует использования виртуальной машины Common Language Runtime (CLR) для использования. Термин «неуправляемый код» используется для обозначения программного кода, который не требует этой виртуальной машины.

Common Language Runtime был разработан с целью разрешить запуск программ на различных компьютерах и операционных системах без каких-либо изменений в программном коде. Для этого код компьютерной программы преобразуется в байт-код виртуальной машины. Этот байт-код затем интерпретируется виртуальной машиной CLR и преобразуется в байт-код для конкретного компьютера, на котором он работает.

Управляемый код может выполняться на любом компьютере, оборудованном виртуальной машиной CLR. Эта высокая степень переносимости дает ему явное преимущество перед неуправляемым кодом. Неуправляемый код требует, чтобы программисты изменяли программный код для использования на разных машинах. Этот процесс не только может быть медленным, он также может привести ко многим ошибкам приложения.

Еще одним преимуществом управляемого кода является его повышенная безопасность. Безопасность программы, созданной с помощью неуправляемого кода, в значительной степени зависит от реализации, которую сделали программисты. Использование виртуальной машины CLR помогает снять большую часть проблем безопасности с плеч программистов. Большинство проблем безопасности, которые могут возникнуть, сосредоточены непосредственно в самой виртуальной машине. Это само по себе помогает централизовать проблемы, значительно ускоряя внедрение исправлений безопасности.

Вопрос о том, является ли конкретный набор кода управляемым кодом или неуправляемым кодом, чрезвычайно важен для программистов. Управляемый код имеет более высокую степень переносимости, но эта переносимость требует, чтобы на целевом компьютере была установлена ​​среда Common Language Runtime. С другой стороны, неуправляемый код можно запускать без добавления CLR.

Использование управляемого кода имеет много преимуществ, но есть и несколько недостатков. Основным недостатком являются накладные расходы, необходимые для использования виртуальной машины CLR. Разница между скоростью, с которой работает управляемый код, и скоростью неуправляемого кода часто незначительна, но в некоторых случаях это создает очень заметную разницу во времени отклика приложения. В результате неуправляемый код играет решающую роль в большинстве приложений, которые требуют высокой степени скорости по сравнению с переносимостью.