1. Anasayfa
  2. Server 2012

Managed Code ve Unmanaged Code Nedir? – Yönetilen ve Yönetilemeyen Yazılım Dilleri


0

Yazılım dillerini ve geçmişten günümüze geliştirilme süreçlerini incelediğinizde iki farklı terim karşınıza çıkabilir. Managed vs Unmanaged Language. Yani yönetilen ve yönetilemeyen yazılım dilleri.

Aslında Microsoft tarafından kazandırılan Managed Code terimi sebebi ile Unmanaged Code/Language terimi de kullanılır oldu.

Bilindiği gibi yazılım dilleri sayesinde makine kodlarına ulaşılabilir, istenilen aksiyonlar gerçekleştirilebilir. Örneğin hafızadaki verilere ulaşıp bunlar bir işlemler zincirinden geçirebilirsiniz.

İşte bu noktada hazırlanan kod parçacıklarının sisteme ne kadar yalın ulaşabildiği ve ulaşamadığı önem kazanıyor.

Microsoft .NET Framework ile birlikte aynı zamanda Common Language Runtime ismi verilen bir sanal makine bileşeni de duyurdu.

Bu bileşenin temel görevi .NET programlarının çalıştırılmasından sorumlu olmak böylece compile edilen kodun makine diline çevrilmesini sağlamaktı. Çünkü yüksek runtime performansının sağlanabilmesi için ilgili programın çalıştırılmadan önce makine koduna çevrilmesi gerekmektedir. Bu metota aynı zamanda Dynamic Translation ya da Just-In-Time Compilation da denmektedir.

Yukarıdaki Comman Lnaguage Runtime (CLR) bileşen diyagramında görüldüğü gibi hazırlanan Source Code öncelikle ByteCode çevrilmelidir. ByteCode bilgisayar tarafından kullanılan bir makine kodu olmadığından bir sonraki adımda sanal makine içerisinde bu kod makine koduna çevrilir. Bu da ilgili programın çok daha performanslı çalışmasını sağlar.

.NET Framework için yazılmış tüm programlar yazılım dilinden bağımsız olarak CLR tarafından çalıştırılır. Bu da aslında ilgili yazılım diline otomatik Memory Management, Exception Handling, Standard Types, ek güvenlik gibi ekstralar sağlar.

Asıl konumuza dönecek olursak Microsoft tarafından ortaya çıkarılan Managed Code ilgili programın yalnızca Common Language Runtime sanal makinesi üzerinde çalıştırılması sayesinde elde edilebilir. Bu da aslında hazırlanan uygulamanın compile edilmesi ile .exe dönüştürülmesi işleminin CIL üzerinde yapılmasıdır. Bu da makine üzerindeki erişimlerin arasında artık ek bir sanal makine katmanı olması anlamına geliyor. Unmanaged code ile makine diline direk erişim sağlanabilmesi mümkün iken Managed Code ile bu erişim aradaki katmanın size sağladığı sınırlar dahilinde gerçekleşebiliyor.

Evet sınırlarımız biraz daralmış olabilir ancak Managed Code kullanımı ile birlikte bu katman kodun gerçekten ne yapacağını garantiye alır ve gerekli güvenlik önemlerini kod çalıştırılmadan önce sunar.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 3
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 2
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

İstanbul doğumlu ve Marmara Üniversitesi mezunudur. Mezuniyet sonrası kariyerine Bilge Adam Bilişim Teknolojileri Akademisi'nde Microsoft Certificated Trainer, Consultant ve Senior Consultant pozisyonlarında ve Data Market bünyesinde Danışmanlık Birim Müdürü olarak görev yapmaya başlamıştır. Microsoft bünyesinde tüm MEA bölgesindeki ülkelerde System Center ve Infrastructure projelerinden sorumlu Consultant olarak görev yaptıktan sonra, Aralık 2012 itibari ile KoçSistem bünyesinde danışman olarak çalışmaya başlamıştır. System Center Configuration Manager ürünü için 2010 ve 2011 yıllarında MVP (Microsoft Most Valuable Professional) ünvanı alan Anıl Erduran, 2013 yılında System Center Cloud & Datacenter Management alanında MVP seçilmiş ve uzun yıllar bu ünvanı korumayı başarmıştır. Şu anda Londra'da yaşayan Anıl Erduran AWS üzerinde çalışan Microsoft iş yüklerinden sorumlu EMEA Senior Partner Solutions Architect olarak çalışmaktadır.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir