Yürütülebilir - Executable

Bir altıgen dökümü yürütülebilir ait gerçek mod yükleyici

Olarak işlem , yürütülebilir bir kod , bir yürütülebilir dosya veya bir yürütülebilir program , bazen basitçe olarak adlandırılır yürütülebilir ya da ikili bir bilgisayar "kodlanmış göre belirtilen görevleri gerçekleştirmek için neden talimatlar bir karşıt olarak," veri dosyası yorumlanmalıdır ( parsed ) anlamlı olması için bir program tarafından.

Kesin yorum kullanıma bağlıdır. "Talimatlar" geleneksel olarak fiziksel bir CPU için makine kodu talimatları anlamına gelir . Bazı bağlamlarda, komut dosyası oluşturma talimatlarını ( bytecode gibi ) içeren bir dosya da yürütülebilir olarak kabul edilebilir.

Yürütülebilir dosyaların oluşturulması

O kadar yazılım geliştirmek için çok daha uygun olmasına rağmen yürütülebilir dosyalar, elle kodlanmış makine dilde olabilir kaynak kodu bir de yüksek seviyeli dil kolayca insanlar tarafından anlaşılabilir. Bazı durumlarda, kaynak kodu bunun yerine makine kodu talimatlarıyla yakından ilişkiliyken insan tarafından okunabilir durumda olan Assembly dilinde belirtilebilir .

Üst düzey dil, yürütülebilir bir makine kodu dosyasına veya yürütülemez bir makine koduna derlenir – bir tür nesne dosyası ; assembly dilindeki kaynak koduna denk süreç denir montaj . Yürütülebilir dosyayı oluşturmak için birkaç nesne dosyası bağlanır . Nesne dosyaları - yürütülebilir olsun veya olmasın - tipik olarak Yürütülebilir ve Bağlanabilir Biçim (ELF) veya İşletim Sistemine özgü Taşınabilir Yürütülebilir Dosya (PE) gibi bir kapsayıcı biçiminde depolanır . Bu, oluşturulan makine kodunun yapısını verir, örneğin onu .text (yürütülebilir kod), .data (başlatılan global ve statik değişkenler) ve .rodata (sabitler ve dizeler gibi salt okunur veriler) gibi bölümlere ayırır .

Yürütülebilir dosyalar tipik olarak , çalışma zamanı dil özelliklerini ( görev zamanlama , istisna işleme , statik oluşturucuları ve yıkıcıları çağırma, vb.) uygulayan bir çalışma zamanı sistemi ve işletim sistemi ile etkileşimler, özellikle argümanları, ortamı ve bir çıkış durumunu döndürmeyi de içerir. dosya tanıtıcıları gibi kaynakları serbest bırakmak gibi diğer başlatma ve kapatma özellikleriyle birlikte . C için bu, gerçek giriş noktasını içeren ve çalışma zamanı kitaplığını çağırarak kurulum ve kapatma yapan crt0 nesnesine bağlanarak yapılır .

Yürütülebilir dosyalar, bu nedenle, normal olarak, doğrudan belirli kaynak kodundan oluşturulanın ötesinde önemli miktarda ek makine kodu içerir. Bazı durumlarda, örneğin gömülü sistem geliştirme için veya basitçe derleme, bağlama ve yüklemenin nasıl çalıştığını anlamak için bunun atlanması istenir. C'de bu, olağan çalışma zamanını atlayarak ve bunun yerine giriş noktasını oluşturan ve başlatma ve kapatma işlemlerini, örneğin mainbaşlatmayı çağırma ve sonunda çekirdeğe çıkış durumunu döndürme gibi, bir bağlayıcı komut dosyası belirterek yapılabilir .

Uygulamak

Sistem tarafından yürütülebilmesi için (işletim sistemi, bellenim veya önyükleyici gibi ), yürütülebilir bir dosyanın sistemin uygulama ikili arabirimine (ABI) uyması gerekir . Basit arayüzlerde, bir dosya belleğe yüklenerek ve adres alanının başlangıcına atlanarak ve oradan yürütülerek yürütülür. Daha karmaşık arabirimlerde, yürütülebilir dosyalar, ayrı bir giriş noktası belirten ek meta verilere sahiptir . Örneğin, ELF'de giriş noktası, e_entryyürütmenin başlatılacağı (sanal) bellek adresini belirten başlık alanında belirtilir. GCC'de ( GNU Derleyici Koleksiyonu ) bu alan, _startsembole dayalı olarak bağlayıcı tarafından belirlenir .

Ayrıca bakınız

Referanslar

Dış bağlantılar