Menu
Coddy logo textTech

Çalışma zamanı ortamı nedir?

Çalışma zamanı ortamı (runtime environment), bir programın çalışırken çevresinde ihtiyaç duyduğu yazılımdır: kodunu yürüten motor, çağırdığı standart kütüphaneler ve belleği, hataları ve işletim sistemine erişimi yöneten servisler. JVM, Node.js ve CPython buna örnektir.

Yazan Kevin Spektor, Kurucu ortak ve CTO

Güncellendi: 24 Eylül 2026

Node.js'te console.log(typeof process) çalıştır, object yazdırır. Aynı satırı Chrome konsoluna yapıştır, undefined yazdırır. İki yerde de dil aynı JavaScript'tir, ama program iki farklı çalışma zamanı ortamında çalışır ve her biri ona farklı araçlar verir.

console.log(typeof process);  // "object" in Node.js, "undefined" in a browser
console.log(typeof document); // "undefined" in Node.js, "object" in a browser

Çalışma zamanı ortamı ne sağlar

Kodun yalnızca ne yapılacağını anlatır. Çalıştığında, sen tek bir satır yazmadan önce kurulmuş bir yazılım katmanına dayanır. Bu katmanın genellikle beş parçası vardır:

  1. Bir yürütme motoru. Kodu bir şeyin çalıştırması gerekir: bir yorumlayıcı, bir sanal makine ya da bir just-in-time derleyici. CPython, Java Sanal Makinesi (JVM) ve V8 birer yürütme motorudur.
  2. Bir standart kütüphane. Metin, matematik, tarih, dosya ve ağ işlemleri için hazır fonksiyonlar; örneğin Python'un json modülü ya da Java'nın java.util paketi.
  3. Bellek yönetimi. Çalışma zamanı nesnelerin için bellek ayırır ve Python, Java ve JavaScript'te artık hiçbir şey kullanmadığında bu belleği bir çöp toplayıcıyla (garbage collector) geri verir.
  4. Hata yönetimi. Bir şeyler ters gittiğinde çalışma zamanı programı kontrollü bir şekilde durdurur ve hatanın nerede olduğunu bir traceback ya da stack trace olarak bildirir.
  5. İşletim sistemine erişim. Dosya okumak, ağ bağlantısı açmak, ortam değişkenlerini ve komut satırı argümanlarını okumak hep çalışma zamanı üzerinden geçer; çalışma zamanı da bunları programın adına işletim sisteminden ister.

Python çalışma zamanına kendisi hakkında soru sorabilirsin:

Cevaplar kodun nerede çalıştığına bağlıdır. Bir Linux sunucusunda platform.system() 'Linux', bir Mac'te 'Darwin', Windows'ta 'Windows' döndürür. Özyineleme sınırı (CPython'da varsayılan olarak 1000) Python dilinin değil, çalışma zamanının koyduğu bir kuraldır; ilk satırından önce yüklenmiş düzinelerce modül de çalışma zamanının kendini hazırladığını gösterir.

Java: JDK, JRE ve JVM farkı

Java katmanları görünür kılar, çünkü her birinin kendi adı vardır:

AdAçılımıİçeriğiKimin işine yarar
JVMJava Virtual Machine (Java Sanal Makinesi)Bytecode'u (.class dosyaları) çalıştıran ve belleği yöneten motorAşağıdaki ikisinin parçasıdır
JREJava Runtime Environment (Java Çalışma Zamanı Ortamı)JVM ve standart sınıf kütüphaneleriYalnızca Java programı çalıştıranlar
JDKJava Development Kit (Java Geliştirme Kiti)JRE ve geliştirici araçları: javac, jar, javadoc, jdbJava programı yazanlar

Akış şöyledir: javac Main.java (bir JDK aracı, yani derleyici) kaynak kodu Main.class dosyasına çevirir, java Main de JVM'i başlatır; JVM sınıfı yükler ve çalışma zamanı ortamının kütüphaneleriyle çalıştırır. Tek bir .class dosyasının Windows, macOS ve Linux'ta çalışmasının nedeni JVM'dir: her işletim sisteminin kendi JVM'i vardır ve hepsi aynı bytecode'u anlar.

Java 11'den beri Oracle yalnızca JDK dağıtıyor, ayrı bir JRE indirmesi yok. Eclipse Temurin gibi bazı dağıtımlar hâlâ bir JRE paketi yayımlıyor. Java öğreniyorsan bir JDK kur: JRE'nin içerdiği her şey onda da var. Java kurulumu rehberi bunu adım adım anlatır.

JavaScript: tarayıcı ve Node.js

JavaScript web sayfalarının içinde çalışmak için tasarlandı, bu yüzden ilk çalışma zamanı ortamı tarayıcıydı. Tarayıcı çalışma zamanı, koduna sayfanın document nesnesini, window nesnesini, zamanlayıcıları ve ağ istekleri için fetch fonksiyonunu verir; dosyalarına doğrudan erişimi ise bilerek engeller.

Node.js, Google'ın V8 motorunu tarayıcıdan çıkarıp farklı bir çalışma zamanıyla sarar: document yoktur, ama dosyalar için fs, sunucular için http gibi modüller ve ortam değişkenleri ile argümanlar için process nesnesi vardır. Deno ve Bun, aynı dil için kendi araçlarını getiren daha yeni çalışma zamanlarıdır. Hepsi aynı çekirdek JavaScript'i çalıştırır; fark onu neyin çevrelediğindedir. Node.js çalışma zamanı ve event loop sayfaları konuyu daha ileri götürür.

Python: CPython ve diğerleri

İnsanlar "Python kur" dediğinde bir çalışma zamanı ortamı kurmayı kastederler: CPython yorumlayıcısı, standart kütüphane ve paket eklemek için pip. Aynı dil için başka çalışma zamanları da vardır. PyPy hız için bir JIT derleyici ekler, MicroPython ise mikrodenetleyicilerde çalışacak kadar küçüktür.

Bir sanal ortam (python3 -m venv .venv) yeni bir çalışma zamanı değildir. Var olan bir yorumlayıcıyı gösterir ve bir projeye kendi kurulu paketlerini verir; böylece iki proje aynı kütüphanenin farklı sürümlerini kullanabilir. Sanal ortamlar sayfasına bak.

Derleme zamanı ve çalışma zamanı

"Çalışma zamanı" bir anın da adıdır: kaynağın çevrildiği derleme zamanının karşıtı olarak, programın çalıştığı süre. Derleyicinin reddettiği bir hata derleme zamanı hatasıdır; sıfıra bölmek gibi yalnızca program çalışırken ortaya çıkan bir hata ise bir çalışma zamanı hatasıdır. Çalışma zamanı ortamı, bu ikinci süre boyunca var olan yazılımdır.

Doğrudan makine koduna derlenen C'nin bile küçük bir çalışma zamanı vardır. Bir C programı, derleyici araç zincirinin sağladığı başlangıç kodunda başlar; printf ve malloc gibi fonksiyonlar da C standart kütüphanesinden gelir (çoğu Linux sisteminde glibc, Windows'ta Universal C Runtime). Yalnızca sanal makine ve çöp toplayıcı yoktur.

Yaygın yanlış inanışlar

  • "Çalışma zamanı ortamı işletim sistemidir." İşletim sistemi donanımı her program için yönetir. Çalışma zamanı ortamı ise tek bir programın onun üzerindeki katmanıdır. JVM'in kendisi Windows, macOS ya da Linux'un çalıştırdığı bir programdır; onların yerini almaz.
  • "Node.js bir dil ya da framework'tür." Node.js, JavaScript için bir çalışma zamanı ortamıdır. Express gibi framework'ler onun içinde çalışan kütüphanelerdir.
  • "IDE kurmak çalışma zamanını da kurar." VS Code, Python ya da Java içermez. Düzenleyici ve çalışma zamanı ortamı ayrı kurulumlardır, gerçi IntelliJ IDEA gibi bazı IDE'ler senin için bir JDK indirebilir.
  • "Aynı dil her yerde aynı davranır." Dosya erişimi, varsayılan sınırlar ve kullanılabilir modüller gibi çalışma zamanının sağladığı özellikler farklı olabilir. Node.js'te çalışan kod tam da bu yüzden tarayıcıda hata verebilir.

Sırada ne var

Çoğu çalışma zamanının içindeki yürütme motoru bir yorumlayıcıdır; o sayfa onu bir derleyiciyle de karşılaştırır. Her çalışma zamanının altında işletim sistemi bulunur. Henüz kullanmadığın bir çalışma zamanında pratik yapmak için Java kursuna ya da JavaScript kursuna başla.

Sıkça Sorulan Sorular

Çalışma zamanı ortamına bir örnek verebilir misin?
Klasik örnek Java Runtime Environment'tır (JRE): JVM ve Java'nın standart kütüphaneleri. Node.js, JavaScript'in tarayıcı dışında çalışması için bir çalışma zamanı ortamıdır, tarayıcının kendisi de bir başkasıdır. Python'da çalışma zamanı, standart kütüphanesiyle birlikte CPython yorumlayıcısıdır.
Node.js bir çalışma zamanı ortamı mı?
Evet. Node.js, Google'ın V8 motoru üzerine kurulmuş bir JavaScript çalışma zamanı ortamıdır. JavaScript'in tarayıcı dışında çalışmasını sağlar ve dosyalar, ağ ve süreçler için modüller ekler. Bir programlama dili ya da framework değildir; Express gibi framework'ler onun içinde çalışır.
Runtime tam olarak ne demek?
"Runtime" (çalışma zamanı) kelimesinin iki anlamı vardır. Birincisi, derleme zamanının karşıtı olarak programın çalıştığı süredir; yalnızca o sırada ortaya çıkan hatalara bu yüzden çalışma zamanı hatası denir. İkincisi, çalışma zamanı ortamının kısaltmasıdır: programı o süre boyunca destekleyen yazılım.
JRE mi kurmalıyım, JDK mı?
Java yazıyorsan JDK kur, çünkü javac derleyicisini ve JRE'deki her şeyi içerir. JRE tek başına yalnızca var olan Java programlarını çalıştırır. Java 11'den beri Oracle yalnızca JDK dağıtıyor, bu yüzden güncel Java sürümlerinde normal seçim JDK'dır.
JDK, JRE ve JVM kısaltmaları neyin açılımıdır?
JDK, Java Development Kit (Java Geliştirme Kiti); JRE, Java Runtime Environment (Java Çalışma Zamanı Ortamı); JVM ise Java Virtual Machine (Java Sanal Makinesi) demektir. JVM bytecode'u çalıştırır, JRE, JVM ile standart kütüphanelerden oluşur, JDK da JRE'ye javac gibi geliştirme araçlarının eklenmiş hâlidir.
Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA