Kısa cevap: Android Linux mudur, değil mi?

Kerem Aydın·7 Temmuz 2026·⏱3 dk

Evet — Android, temel olarak Linux çekirdeğini kullanır ancak bu "sıradan" bir Linux dağıtımı değildir: Google, mobil görevler için kernel'i forklayıp modifiye etmiş, kendi bileşenlerini (binder, LMK, wakelocks) eklemiş, GNU yığınını değiştirmiş ve pil ile donanım platformları için davranışı optimize etmiştir.

Android ve klasik Linux'un ortak noktaları nelerdir

Android çekirdeği monolitik bir Linux kernel'idir: CPU yönetimi, bellek, çevre birimleri ve ağlar aynı kod tabanında uygulanır (birçok ortak alt sistem ve arayüz). Kodun büyük kısmı (çekirdek) Linux upstream ile örtüşür ve bu sayede Android kararlılık, sürücü tabanı ve geliştirici araçlarını elde eder. Mimari düzeyinde benzer kavramlar kullanılır: işlemler, VFS, ağ yığını, modüller (kaynak kodda) vb.

Pratikte Android çekirdeğinin Linux'tan farkları nelerdir

Linux çekirdeğini Android çekirdeğine dönüştüren temel değişiklikler ve eklemeler:

  • Bellek yönetimi mekanizmaları

    • Linux (masaüstü): OOM-killer önceliklere ve sistem bütünlüğüne odaklanır.
    • Android: Düşük Memory Killer (LMK) ve oom_score_adj agresif şekilde yapılandırılmıştır; arka plan uygulamalarını boşaltarak pil tasarrufu sağlar.
  • IPC ve bileşen etkileşimi

    • Android'de, uygulamalar ve sistem servisleri arasındaki etkileşim için ana yüksek performanslı IPC olan binder bulunur.
  • Başlatma ve HAL

    • Android, geleneksel Linux daemon'ları ve glibc bağlamaları yerine kendi init'ini, HIDL/AAH ve vendor HAL katmanını kullanır.
  • Modüller ve sürücüler

    • Android için birçok sürücü çekirdek imajına statik olarak derlenir (önyükleme süresini iyileştirir ancak esnekliği azaltır). Üreticiler GPU, modemler vb. için tescilli ikili blob'ları gömer.
  • Güvenlik ve bütünlük

    • SELinux varsayılan olarak enforcing modunda çalışır; Verified Boot ve firmware düzeyindeki güvenlik mekanizmaları çoğu masaüstü dağıtımdan daha katıdır.
  • Enerji tüketimi ve uyanma yönetimi

    • Wakelocks, cgroups ve özel yamalar enerji tüketimi optimizasyonu sağlar ve mobil senaryolara uygun bir zamanlayıcı sunar.

Görsel özet:

Çekirdek düzeyindeki temel farklar

AspectLinux (masaüstü/sunucu)Android (mobil)
Bellek yönetimiOOM-killerLow Memory Killer (LMK)
IPCPOSIX soketleri, dbusbinder
ModüllerDinamikGenellikle statik
Dosya sistemleriext4, btrfs, xfs/data için ext4, F2FS
SELinuxİsteğe bağlıVarsayılan olarak Enforcing
BütünlükDağıtıma bağlıVerified Boot, dm‑verity

Android'de çekirdek sürümünü kontrol edin: Ayarlar → Telefon hakkında → Çekirdek sürümü. Derinlemesine analiz için adb shell uname -a ve dmesg komutlarını kullanın.

Geliştiriciler ve meraklılar için pratik ipuçları

  • Özel ROM: AOSP/LineageOS'tan defconfig ve device tree alın; üreticiden vendor blob'larına ihtiyacınız var. Kernel derlemek için: CROSS_COMPILE dışa aktarın, make && make -jN kullanın.
  • Uygulamalar: Android NDK ve resmi ABI'leri kullanın; glibc veya masaüstü Linux sistem yardımcı programlarına güvenmeyin.
  • Testler ve hata ayıklama: adb logcat + dmesg, çekirdek/sürücü sorunlarını lokalize etmeye yardımcı olur; modifikasyonları garanti dışı bir cihazda veya emülatörde test edin.

Yedek almadan çalışan veya garantili bir cihaza özel çekirdek yüklemeyin: hatalı derleme cihazınızı "tuğla" haline getirebilir.

Sık yapılan hatalar

  • Android'de GNU yardımcı programlarını beklemek: Bunlar varsayılan olarak yoktur — toybox/adb shell kullanın.
  • .deb/apt kurmaya çalışmak: Masaüstü paket yöneticileri eksiksiz bir userland olmadan çalışmaz.
  • Tüm sürücülerin açık kaynak olduğunu sanmak: Birçok donanım blob'u kapalıdır ve cihazda tamamen taşınabilir bir Linux kurulmasını engeller.

SSS

  • Akıllı telefonda "tam teşekküllü" Linux elde edilebilir mi? Evet, postmarketOS veya Ubuntu Touch gibi projeler bunu yapmaya çalışıyor ancak genellikle sürücü portlama gerektirir ve pil/performans daha düşük olacaktır.
  • Android Linux'tan daha mı güvenli? Mobil bağlamda Android daha sıkı yapılandırılmıştır (SELinux, Verified Boot) ancak kapalı sürücüler kendi risklerini yaratır.
  • Google'ın çekirdeğe hangi yamaları eklediğini nasıl öğrenebilirim? AOSP kaynak kodlarına ve üretici depolarındaki android‑kernel‑trees'e bakın.

Sonuç olarak: Linux çekirdeği Android'in temelidir ancak çok sayıda mobil yama, HAL katmanı ve kullanıcı yığını, Android'i tipik bir Linux dağıtımından ziyade akıllı telefonlar için optimize edilmiş ayrı bir dünya haline getirir.