“Yönetilen kod” nedir?

.NET ile çalışırken genellikle "yönetilen kod" terimiyle karşılaşırsınız. Bu makalede yönetilen kodun ne anlama geldiğini açıklar ve bu kodla ilgili ek bilgiler sağlanır.

Basitçe ifade etmek gerekirse, yönetilen kod yalnızca şöyledir: yürütmesi çalışma zamanı tarafından yönetilen kod. Bu durumda söz konusu çalışma zamanı, uygulamadan bağımsız olarak Ortak Dil Çalışma Zamanı veya CLR olarak adlandırılır (örneğin, Mono, .NET Framework veya .NET Core/.NET 5+). CLR, yönetilen kodu almaktan, makine koduna derlemekten ve sonra yürütmekle görevlidir. Buna ek olarak, çalışma zamanı otomatik bellek yönetimi, güvenlik sınırları ve tür güvenliği gibi çeşitli önemli hizmetler sağlar.

Bu, "yönetilmeyen kod" olarak da adlandırılan bir C/C++ programını çalıştırma yönteminize karşılık gelir. Yönetilmeyen dünyada, programcı hemen hemen her şeyden sorumlu. Asıl program, temelde işletim sisteminin (OS) belleğe yükleyip başlattığı bir ikili dosyadır. Bellek yönetiminden güvenlikle ilgili dikkat edilmesi gerekenlere kadar diğer her şey programcının yükünü oluşturur.

Yönetilen kod C#, Visual Basic, F# ve diğerleri gibi .NET'in üzerinde çalıştırılabilen üst düzey dillerden birinde yazılır. İlgili derleyicileriyle bu dillerde yazılmış kodu derlediğinizde, makine kodunu alamazsınız. Çalışma zamanının derlediği ve yürüttüğü Ara Dil kodunu alırsınız. C++, Windows üzerinde çalışan yerel, yönetilmeyen ikili dosyalar da üretebildiği için bu kuralın tek özel durumudur.

Ara Dil ve yürütme

"Ara Dil" (veya kısaca IL) nedir? Üst düzey .NET dillerinde yazılmış kod derlemesinin bir ürünüdür. Kodunuzu bu dillerden birinde derledikten sonra IL'de oluşturulan bir ikili dosya alırsınız. IL'nin çalışma zamanı üzerinde çalışan belirli bir dilden bağımsız olduğunu unutmayın; Bu kadar meyilliyseniz okuyabileceğiniz ayrı bir belirtim bile vardır.

Üst düzey kodunuzdan IL'yi ürettikten sonra büyük olasılıkla çalıştırmak istersiniz. Burada CLR, tam zamanında derleme veya IL'den bir CPU üzerinde çalıştırılabilir makine koduna kodunuzu JIT ile derleme işlemini başlatır. Bu şekilde, CLR kodunuzun tam olarak ne yaptığını bilir ve etkili bir şekilde yönetebilir .

Ara Dil bazen Ortak Ara Dil (CIL) veya ortak ara dil (CIL) olarak da adlandırılır.

Yönetilmeyen kod birlikte çalışabilirliği

Elbette CLR yönetilen ve yönetilmeyen dünya arasındaki sınırların geçirilmesine izin verir ve .NET sınıf kitaplıklarında bile bunu sağlayan birçok kod vardır. Buna birlikte çalışabilirlik veya kısaca birlikte çalışma denir. Bu hükümler, örneğin yönetilmeyen bir kitaplığı sarmalamanıza ve buna çağrı yapmanızı sağlar. Ancak, bunu yaptıktan sonra kod çalışma zamanının sınırlarını geçtiğinde yürütmenin gerçek yönetiminin yeniden yönetilmeyen kodun elinde olduğunu ve bu nedenle aynı kısıtlamaların altında olduğunu unutmayın.

Buna benzer şekilde C#, clr tarafından yürütülmeyen bir kod parçası belirten güvenli olmayan bağlam olarak bilinen öğeyi kullanarak doğrudan kodda işaretçiler gibi yönetilmeyen yapıları kullanmanıza olanak tanıyan bir dildir.

Diğer kaynaklar