---
title: 'Konteyner Çalışma Zamanı'
source: 'https://academia.sh/tr/kurslar/cekirdek-arayuzleri/konteyner-calisma-zamani'
course: 'Çekirdek Arayüzleri ve İzolasyon'
language: tr
updated: '2026-08-17T18:09:58+00:00'
license: 'CC BY-SA 4.0'
---

# Konteyner Çalışma Zamanı

Yaygın altı düzenekli demet 12, sıkı sekiz düzenekli demet 10 olgu bırakıyor: iki düzenek eklemek yüzeyi yalnız 2 olgu daraltıyor ve açık eksen dördüncü düzenekten sonra 7'de duruyor.

Dört ders dört düzenek ailesini tek tek ölçtü: ad alanı görünürlüğü, denetim grubu tüketimi,
yetenek kırpma ayrıcalığı, zorunlu etiket erişimi daralttı. Her biri kendi ekseninde bir şey açık
bıraktı ve her birinin yanına bir daraltma yolu yazıldı. Gerçek bir sistemde ise bu düzenekler
tek tek açılmaz. Bir program bir tanım dosyası okur, dosyada yazan bütün düzenekleri doğru
sırayla uygular ve süreci başlatır. O programın adı **konteyner çalışma zamanıdır**.

Bu ders çalışma zamanını bir düzenek **demeti** olarak ele alır ve tek soruyu sorar: düzenek
eklemek yüzeyi ne kadar daraltıyor. Konteyner imajı, katman modeli, yerleşim, ölçekleme ve
orkestrasyon DevOps müfredatının Konteynerler ve Konteyner Orkestrasyonu kurslarında ölçüldü;
tekrarlanmaz. Buradaki konu yalnız **çekirdeğin sunduğu parçalar** ve bir çalışma zamanının
onları nasıl bir araya getirdiğidir.

## Çalışma Zamanı Ne Yapar

Çalışma zamanı bir dizin ile bir tanım dosyasından oluşan **demeti** girdi alır. Dizin sürecin
kök dosya ağacıdır; tanım dosyası hangi düzeneklerin hangi ayarlarla açılacağını yazar. Çalışma
zamanı bu dosyayı yorumlar, çekirdek çağrılarına çevirir ve süreci başlatır. Yaptığı iş bundan
ibarettir: yeni bir izolasyon türü icat etmez, var olanları sırayla uygular.

```text
# ornek calisma zamani tanimi (kisaltilmis , alan adlari ornektir)
# — calistirilmamistir
surec:
  komut: /usr/local/bin/olcum-toplayici
  kimlik: 10001
  yetenek-tavani: [CAP_NET_BIND_SERVICE]
  yeni-ayricalik-yok: evet
  erisim-etiketi: sistem_u:sistem_r:olcum_t:s0
kok:
  yol: kok-agaci
  salt-okunur: evet
takmalar:
  - hedef: /veri/olcum
    secenekler: [rw, nosuid, nodev, noexec]
ad-alanlari: [surec, takma, ag, makine, kullanici, iletisim, denetim-grubu]
kimlik-eslemesi:
  - icerideki: 0
    disaridaki: 100000
    boy: 65536
denetim-grubu:
  yol: /olcum.slice/olcum-toplayici
  islemci-kotasi: 20000/100000
  bellek-tavani: 536870912
```

Tanımdaki her satır önceki dört dersten birine karşılık geliyor. Alan adları belirtime göre
değişir ve döküm çalıştırılmamıştır; buradan hiçbir sayı iddiası çıkmaz.

**Sıra bağlayıcıdır** ve yanlış sıra sessiz bir açık bırakır. Kullanıcı ad alanı en başta
açılır, çünkü yetkisiz bir kullanıcının öteki türleri açabilmesini sağlayan tek tür odur ve
kimlik eşlemesi kapanmadan yazılmalıdır. Denetim grubu süreç başlatılmadan önce hazırlanır,
yoksa ilk saniyeler sınırsız geçer. Kök ağacı, süreç kendi takma ad alanına geçtikten **sonra**
değiştirilir; önce değiştirilirse makinenin takma listesi kirlenir. Yetenek kırpma ile yeni
ayrıcalık yok bayrağı ise en sona, program değiştirmeden hemen öncesine bırakılır; erken
yapılırsa hazırlık adımları başarısız olur, geç yapılırsa kırpma hiç uygulanmaz.

```text
# ornek dokum — calistirilmamistir
$ calisma-zamani create olcum-01 --bundle ./demet
$ calisma-zamani start  olcum-01
$ calisma-zamani state  olcum-01
$ calisma-zamani kill   olcum-01 TERM
$ calisma-zamani delete olcum-01
```

Yaşam döngüsü beş adımdır ve **oluşturma ile başlatma ayrıdır**. Oluşturma bütün düzenekleri
kurar ve süreci başlatmadan bekletir; başlatma yalnız beklemeyi sonlandırır. Ayrımın nedeni
işletmedir: bütün izolasyon kurulduktan sonra, süreç henüz tek bir komut çalıştırmadan
yapılandırmanın doğrulanmasına imkân verir.

Çalışma zamanının kendisi de bir süreçtir ve düzenekleri kurabilmek için yetkiye ihtiyaç duyar.
İki işletim biçimi vardır. Yetkili biçimde çalışma zamanı ayrıcalıklı bir hizmet olarak koşar,
bütün düzenekleri doğrudan açar ve kurduğu izolasyonun dışında kalır. Yetkisiz biçimde ise
zincir kullanıcı ad alanıyla başlar: çalışma zamanı önce bir kullanıcı ad alanı açar, kimlik
eşlemesini yazar ve öteki düzenekleri o ad alanının içinden kurar. İkinci biçim bu kursun
ölçüsünde ek bir olgu kapatmaz, ama bir kusur durumunda etkinin kapsamını daraltır — çünkü
çalışma zamanının kendi yetkileri de eşlemenin sınırındadır.

Demetin dışında kalan bir sınır da açıkça yazılmalıdır. Bütün bu düzenekler **tek bir
çekirdeği** paylaşır; çalışma zamanı süreçleri birbirinden ayırır, çekirdeği çoğaltmaz. Ayrı
bir çekirdek isteniyorsa gereken şey başka bir teknoloji sınıfıdır ve bu kursun konusu değildir.
Ölçünün son bölümünde çekirdek ekseninin neden kapanmadığı da tam bu paylaşımdan gelir.

## İki Demet

- **IZ31** — **Yaygın demet altı düzenektir**: süreç, takma, ağ ve makine ad alanları, denetim
  grubu, yetenek kırpma. Kullanıcı ad alanı ve zorunlu etiket bu demette yoktur.
- **IZ32** — **Sıkı demet sekiz düzenektir**: yaygın demete kullanıcı ad alanı ve zorunlu
  etiket eklenir.
- **IZ33** — Demetler yalnız düzenek listesi bakımından farklıdır; olgu kümesi, eksenler ve
  açık kalan olgular ortak tanımdakiyle aynıdır.
- **IZ34** — Model sekiz düzenek sayar. Gerçek bir çalışma zamanının uyguladığı sistem çağrısı
  süzgeci ve süreç dosya sisteminin bazı yollarını maskeleme adımı **modelde düzenek olarak
  sayılmaz**; ikisi de aşağıda daraltma yolu olarak yazılır.

```python
"""Ortak tanim: izolasyon bir suzgectir. Bir konteyner calisma zamani
duzeneklerin bir DEMETIDIR. Olculen sey ACIK KALAN YUZEY."""

OLGULAR = [
    ("oteki-sureclerin-listesi", "surec"), ("kendi-surec-numarasi", "surec"),
    ("ata-surec-zinciri", "surec"),
    ("kok-dosya-agaci", "takma"), ("oteki-takmalar", "takma"),
    ("paylasilan-gecici-dizin", "takma"),
    ("makine-arayuzleri", "ag"), ("makine-yonlendirme-tablosu", "ag"),
    ("dinleyen-baglanti-noktalari", "ag"),
    ("kullanici-kimlik-esleme", "kullanici"), ("dosya-sahipligi", "kullanici"),
    ("makine-adi", "makine"),
    ("islemci-payi", "kaynak"), ("bellek-siniri", "kaynak"),
    ("kullanilan-bellek", "kaynak"), ("islemci-sayisi", "kaynak"),
    ("cekirdek-surumu", "cekirdek"), ("cekirdek-ayarlari", "cekirdek"),
    ("sistem-yuku", "cekirdek"), ("saat", "cekirdek"),
    ("yetenek-kumesi", "yetki"), ("dosya-yetkileri", "yetki"),
    ("erisim-etiketi", "etiket"), ("politika-kurallari", "etiket"),
]
DUZENEK = {
    "surec-ad-alani":     {"eksen": "surec", "acik_kalan": ["kendi-surec-numarasi"]},
    "takma-ad-alani":     {"eksen": "takma", "acik_kalan": ["kok-dosya-agaci"]},
    "ag-ad-alani":        {"eksen": "ag", "acik_kalan": []},
    "kullanici-ad-alani": {"eksen": "kullanici", "acik_kalan": ["dosya-sahipligi"]},
    "makine-ad-alani":    {"eksen": "makine", "acik_kalan": []},
    "denetim-grubu":      {"eksen": "kaynak", "acik_kalan": ["islemci-sayisi"]},
    "yetenek-kirpma":       {"eksen": "yetki", "acik_kalan": ["dosya-yetkileri"]},
    "zorunlu-etiket":     {"eksen": "etiket", "acik_kalan": ["erisim-etiketi"]},
}
YAYGIN = ["surec-ad-alani", "takma-ad-alani", "ag-ad-alani",
          "makine-ad-alani", "denetim-grubu", "yetenek-kirpma"]
SIKI = YAYGIN + ["kullanici-ad-alani", "zorunlu-etiket"]


def gorunen(duzenekler, olgular=None):
    olgular = OLGULAR if olgular is None else olgular
    kapali = set()
    for d in duzenekler:
        v = DUZENEK[d]
        kapali |= {o for o, e in olgular if e == v["eksen"]}
        kapali -= set(v["acik_kalan"])
    return [o for o, _ in olgular if o not in kapali]


def acik_eksen(duzenekler, olgular=None):
    olgular = OLGULAR if olgular is None else olgular
    g = set(gorunen(duzenekler, olgular))
    return sorted({e for o, e in olgular if o in g})


print("KAHIN  olgu:", len(OLGULAR), "| eksen:", len({e for _, e in OLGULAR}))
print()
print("demet     duzenek  kapatti  gorunen  acik eksen")
for ad, d in (("yalin", []), ("yaygin", YAYGIN), ("siki", SIKI)):
    g = gorunen(d)
    print(f"  {ad:8s} {len(d):7d}  {len(OLGULAR) - len(g):7d}"
          f"  {len(g):7d}  {len(acik_eksen(d)):10d}")
print()
print("iki demetin farki:", [d for d in SIKI if d not in YAYGIN])
print("fark ettigi olgu :", sorted(set(gorunen(YAYGIN)) - set(gorunen(SIKI))))
print("iki duzenek yuzeyi", len(gorunen(YAYGIN)) - len(gorunen(SIKI)),
      "olgu daraltiyor")
```

```
KAHIN  olgu: 24 | eksen: 9

demet     duzenek  kapatti  gorunen  acik eksen
  yalin          0        0       24           9
  yaygin         6       12       12           7
  siki           8       14       10           7

iki demetin farki: ['kullanici-ad-alani', 'zorunlu-etiket']
fark ettigi olgu : ['kullanici-kimlik-esleme', 'politika-kurallari']
iki duzenek yuzeyi 2 olgu daraltiyor
```

Üç sayı yan yana duruyor. **Kâhin:** 24 olgu, 9 eksen. **İzolasyon:** yaygın demet **12 olgu**,
sıkı demet **14 olgu** kapatıyor. **Açık kalan yüzey:** yaygın demette **12 olgu**, sıkı demette
**10 olgu**; ikisinde de **7 eksen**.

Bu, kursun ikinci iddiasının en güçlü ödemesidir. Yaygın demetten sıkı demete geçmek düzenek
sayısını üçte bir büyütüyor, iki ayrı mekanizma ekliyor, yapılandırmayı ve işletim yükünü
belirgin biçimde artırıyor — ve yüzeyi yalnız **2 olgu** daraltıyor. Daralan olgular
`kullanici-kimlik-esleme` ile `politika-kurallari`dır. Açık eksen ise hiç değişmiyor.

Sonuç, iki düzeneğin değersiz olduğu anlamına gelmez ve öyle okunmamalıdır. Kullanıcı ad alanı
kimlik eşlemesini kapatarak yetkilerin kapsamını daraltır; zorunlu etiket, önceki derste
sayıldığı gibi 36 erişim çiftinden 28'ini politikaya bağlar. Ölçü bunları saymıyor; ölçü yalnız
**görünürlüğü** sayıyor. Söylediği şey dar ve nettir: **görünürlük tarafında ikisinin kazancı
iki olgudur.**

Ölçünün pratikteki kullanımı da buradan çıkar. Bir demeti sıkılaştırmaya karar verirken sorulacak
soru "kaç düzenek açtım" değil, "hangi olgu hâlâ görünüyor" olmalıdır. Birinci soru
yapılandırmanın uzunluğunu ödüllendirir; ikincisi, kazancın nerede bittiğini gösterir. İki
demetin arasındaki fark yazıya döküldüğünde yalnız iki satırdır ve bu iki satır, sıkılaştırmanın
maliyetiyle birlikte tartılabilir hâle gelir.

## Düzenek Eklendikçe

Demetleri uçtan uca karşılaştırmak, kazancın nerede biriktiğini göstermez. Aynı sıkı demet
düzenek düzenek kurulduğunda eğri okunabilir hâle gelir.

- **IZ35** — Ekleme sırası sıkı demetin listesindeki sıradır.
- **IZ36** — Süpürmede eklenen olgu `cekirdek-derleme-secenekleri`, çekirdek eksenine aittir;
  çıkarılan `saat` de aynı eksendedir.

```python
# --- Onceki blogun uzerine kurulur: OLGULAR, DUZENEK, YAYGIN, SIKI,
# gorunen ve acik_eksen oradan gelir.
print("duzenek eklendikce (siki demet sirasiyla)")
for i in range(len(SIKI) + 1):
    ekle = SIKI[i - 1] if i else "-"
    print(f"  {i} duzenek ({ekle:18s}) gorunen {len(gorunen(SIKI[:i])):2d}"
          f"  acik eksen {len(acik_eksen(SIKI[:i]))}")
print()
g = set(gorunen(SIKI))
print("siki demetten sonra acik kalan", len(g), "olgu (eksene gore)")
for e in acik_eksen(SIKI):
    o = [x for x, ek in OLGULAR if ek == e and x in g]
    print(f"  {e:10s} {len(o)}  {', '.join(o)}")
print()
EK = OLGULAR + [("cekirdek-derleme-secenekleri", "cekirdek")]
EKSIK = [(o, e) for o, e in OLGULAR if o != "saat"]
print("olgu kumesi supurmesi (siki demet uygulanmis halde)")
print("kume                            olgu  eksen  gorunen  acik eksen")
for ad, kume in (("temel", OLGULAR), ("+cekirdek-derleme-secenekleri", EK),
                 ("-saat", EKSIK)):
    print(f"  {ad:29s} {len(kume):4d}  {len({x for _, x in kume}):5d}"
          f"  {len(gorunen(SIKI, kume)):7d}  {len(acik_eksen(SIKI, kume)):10d}")
```

```
duzenek eklendikce (siki demet sirasiyla)
  0 duzenek (-                 ) gorunen 24  acik eksen 9
  1 duzenek (surec-ad-alani    ) gorunen 22  acik eksen 9
  2 duzenek (takma-ad-alani    ) gorunen 20  acik eksen 9
  3 duzenek (ag-ad-alani       ) gorunen 17  acik eksen 8
  4 duzenek (makine-ad-alani   ) gorunen 16  acik eksen 7
  5 duzenek (denetim-grubu     ) gorunen 13  acik eksen 7
  6 duzenek (yetenek-kirpma    ) gorunen 12  acik eksen 7
  7 duzenek (kullanici-ad-alani) gorunen 11  acik eksen 7
  8 duzenek (zorunlu-etiket    ) gorunen 10  acik eksen 7

siki demetten sonra acik kalan 10 olgu (eksene gore)
  cekirdek   4  cekirdek-surumu, cekirdek-ayarlari, sistem-yuku, saat
  etiket     1  erisim-etiketi
  kaynak     1  islemci-sayisi
  kullanici  1  dosya-sahipligi
  surec      1  kendi-surec-numarasi
  takma      1  kok-dosya-agaci
  yetki      1  dosya-yetkileri

olgu kumesi supurmesi (siki demet uygulanmis halde)
kume                            olgu  eksen  gorunen  acik eksen
  temel                           24      9       10           7
  +cekirdek-derleme-secenekleri   25      9       11           7
  -saat                           23      9        9           7
```

Eğrinin biçimi tek başına bir sonuçtur. İlk dört düzenek görünen olguyu 24'ten **16'ya**
indiriyor: sekiz olgu. Son dört düzenek 16'dan **10'a** indiriyor: altı olgu. Açık eksen ise
**dördüncü düzenekten sonra bir daha hiç değişmiyor** — beşinciden sekizinciye kadar dört
düzenek eklendi ve eksen sayısı 7'de kaldı.

Nedeni son tabloda yazıyor. Sıkı demetten sonra açık kalan **10 olgunun yedisi**, yedi ayrı
eksende **birer tanedir**. Her düzenek kendi ekseninde bir olguyu açık bıraktığı için, o eksen
listeden hiçbir zaman düşmez. Yedi eksende **her zaman bir şey açık kalıyor** ve bu, düzenek
eklemekle kapanmıyor. Kursun ikinci iddiası tam olarak budur: **düzenek eklemek olguyu azaltır
ama ekseni azaltmaz.**

Süpürme aynı yapıyı doğruluyor ve önceki derslerden farklı bir sonuç veriyor. Çekirdek eksenine
yirmi beşinci olgu eklendiğinde yüzey 10'dan **11'e** çıkıyor: ekleme birebir yüzeye yansıyor.
Bir olgu çıkarıldığında yüzey **9'a** iniyor, ama açık eksen **7'de** kalıyor. Fark nereden
geliyor — önceki derslerde eklenen olgu kapatılmış bir eksene düşüyordu ve düzenek onu da
kapatıyordu; burada eksen kapatılmamıştır.

## Kapanmayan Eksen: Çekirdek

Açık kalan 10 olgunun **dördü tek bir eksende** toplanıyor ve o eksenin adı çekirdektir:
çekirdek sürümü, çekirdek ayarları, sistem yükü ve saat. Bunlar sıkı demetteki açık yüzeyin
en büyük tek bloğudur ve nedeni modelin bir eksikliği değildir — **çekirdek eksenini kapatan
hiçbir düzenek yoktur.** Ad alanı ikinci bir çekirdek üretmez; makinede tek bir çekirdek vardır
ve her süreç onunla konuşur. Bu, izolasyonun en temel sınırıdır ve yapılandırmayla aşılmaz.

Buna karşılık eksen daraltılabilir ve üç yol vardır. Birincisi, çekirdek bilgisini yayınlayan
yolların **maskelenmesi ya da salt okunur** yapılmasıdır: sürecin kök ağacında bu yollar ya hiç
görünmez ya da yazılamaz. Bir çalışma zamanının öntanımlı olarak yaptığı iş budur ve modelde
düzenek olarak sayılmayan adımlardan biridir. İkincisi, ad alanına göre ayrılabilen çekirdek
ayarlarının ayrı ayrı verilmesidir; ayarların hepsi ayrılamaz, ama ayrılabilenler makinenin
değerini göstermeyi bırakır. Üçüncüsü, sürecin çekirdeğe yapabileceği çağrı kümesini bir
**sistem çağrısı süzgeciyle** daraltmaktır: süzgeç bir olguyu görünmez kılmaz, ama görünen
olgunun karşılığı olan işlemleri azaltır. Üçü de yüzeyi sıfırlamaz; ölçünün dürüst okuması
şudur: **bu eksende bir şey her zaman görülecektir ve tasarım buna göre yapılır.**

Kalan altı olgu için daraltma yolları önceki derslerde yazıldı: kök ağacını küçültmek ve salt
okunur takmak, kotayı okuyup havuz boyutlandırmasını ona bağlamak, sahiplik bayraklarını
temizlemek ve dosya sistemini `nosuid` ile takmak, sahipliği eşlenen aralığa normalleştirmek,
erişim etiketini gizli bilgi taşımayacak biçimde adlandırmak. Beşi de aynı kalıptadır: açık
kalan olgu süreçte değil, **sürecin dünyasında** daraltılır.

## Özet

- Konteyner çalışma zamanı yeni bir izolasyon türü icat etmez; bir tanım dosyasındaki düzenekleri
  **doğru sırayla** uygulayan bir programdır. Sıra bağlayıcıdır ve yanlış sıra sessiz bir açık
  bırakır.
- Yaygın altı düzenekli demet **12 olgu**, sıkı sekiz düzenekli demet **10 olgu** açık bırakır:
  iki düzenek eklemek yüzeyi yalnız **2 olgu** daraltır ve daralan olgular
  `kullanici-kimlik-esleme` ile `politika-kurallari`dır.
- Açık eksen **dördüncü düzenekten sonra 7'de durur** ve dört düzenek daha eklendiğinde hiç
  değişmez; düzenek eklemek olguyu azaltır, ekseni azaltmaz.
- Sıkı demetten sonra açık kalan 10 olgunun **yedisi yedi ayrı eksende birer tanedir**; kalan
  **dördü çekirdek eksenindedir** ve bu ekseni kapatan hiçbir düzenek yoktur.
- Çekirdek ekseni kapatılamaz ama daraltılır: bilgi yayan yolların maskelenmesi, ad alanına
  ayrılabilen ayarların ayrı verilmesi ve sistem çağrısı süzgeci. Modeldeki bütün sayılar kurgu
  üzerinden tam sayımdır, ölçüm değildir.

## Sonraki Adım

Bu konu izolasyonun kapatabildiğini ve kapatamadığını saydı; sıkı demet 24 olgunun 14'ünü
kapattı, 10'unu açık bıraktı. Kapanan 14 olgunun gerçekten kapandığı ise henüz sınanmadı.
Kursun ikinci konusu tam bu soruyu sorar ve yanıtı birinci konunun tersi yöndedir: bir sürecin
çekirdekle konuşmasını okuyan, işlemci kullanımını örnekleyen, çekirdek içinde olay yakalayan
ve çöken sürecin ardından dökümüne bakan araçlar, izolasyonun kapattığı olguların bir kısmını
**geri getirir**. Sonraki ders bunların ilkini, sistem çağrısı izlemeyi ölçer: kaç olgunun geri
geldiğini ve koşuma eklediği bedeli sayar. Kursun iki konusu birbirinin karşıtıdır ve bu açıkça
yazılır — **gözlem izolasyonu deler.**
