Apple Internals
XNU kernel'dan Apple Silicon'a, XPC'den Secure Enclave'e — Apple platform mimarisini içten dışa inceleyen teknik notlar.
Mach microkernel + BSD katmanı. Task, thread, port, mesaj mekanizmaları ve Mach-O binary formatı.
Port rights, send/receive, mach_msg(). Apple'ın tüm IPC altyapısının temel taşı.
Kernel-space sürücü çerçevesi. DriverKit ile user-space sürücü geliştirme.
Binary format, load commands, segments, sections. dyld ve dynamic linking süreçleri.
Mach'in temel soyutlamaları: task (kaynak konteyneri), thread (yürütme birimi), act/uthread eşleşmesi ve proc ile ilişkisi.
Port hakları (send/receive/send-once), ipc_entry tablosu ve MIG ile üretilen RPC iskeletinin Mach IPC üzerinde işleyişi.
vm_map, vm_object, pmap katmanı, sayfa hatası yolu, copy-on-write ve Mach sanal belleğinin POSIX belleğine temel oluşu.
XNU run queue'ları, öncelik bantları, AMP çekirdeklerde QoS/clutch zamanlayıcı ve thread blokla/uyandır mekanizmaları.
Trap'tan sysent tablosuna sistem çağrılarının (Unix, Mach trap) girişi, copyin/copyout ve dispatch mantığı.
vnode/mount soyutlamaları, VFS operasyon vektörleri ve çekirdeğin dosya sistemlerini (APFS dahil) soyutlama biçimi.
kmutil, boot/AuxKC kernel collection ve KernelManagement ile modern, imzalı kext yükleme.
zalloc/kalloc çekirdek bellek tahsisi, zone'lar ve kalloc_type ile güvenlik amaçlı tip ayrımı (heap sertleştirme).
Sürücülerin çekirdek dışına (user-space) taşınması: DriverKit çalışma zamanı, dext yaşam döngüsü ve SystemExtensions ile yükleme.
Güvenli süreçler arası iletişim. XPC servisleri, privilege separation ve sandbox entegrasyonu.
PID 1'in mimarisi. Launch agents, daemons, plist formatı ve servis yönetimi.
Dynamic linker, shared cache, dylib yükleme sırası ve ASLR.
macOS otomasyon altyapısı, Apple Script köprüsü ve özel Action geliştirme.
PID 1 launchd'in açılışta Mach bootstrap port'unu alıp tüm sistemin servis isim alanını (bootstrap_look_up/register) yönetmesi.
Sistem kütüphanelerinin tek bir önceden bağlanmış imajda birleştirildiği paylaşımlı önbellek, ASLR slide'ı ve başlangıç maliyeti.
libdispatch kuyruk hiyerarşisi, pthread workqueue ile çekirdekle anlaşan thread havuzu ve dispatch source'ların kernel olaylarına bağlanışı.
os_log'un derlenmiş format string'leri ve halka tamponlu .tracev3 deposuyla syslog'un yerini alan merkezi logd mimarisi.
configd, notifyd, distnoted, cfprefsd, opendirectoryd, coreduetd gibi çekirdek daemonların görev dağılımı ve XPC/notify haberleşmesi.
mds/mdworker daemonlarının importer eklentileriyle meta veri toplayıp store.db'ye yazması ve mdfind sorgu yolu.
Xcode kaynak editörü uzantıları. SourceKit entegrasyonu, syntax highlighting, code actions.
Kullanıcı ipucu sistemi. Tip kuralları, eligibility, display frequency ve persistence.
SE-0382 attached macros, freestanding macros. SwiftSyntax ile macro implementasyonu.
Actor isolation, task hierarchy, Sendable protocol ve cooperative thread pool.
isa/sınıf-meta yapısı, method cache, selector/IMP çözümü; objc_msgSend'in elle yazılmış assembly mesaj yolu ve tagged pointer'lar.
retain/release çağrı yerleştirme, autorelease pool mekaniği, zayıf referans side-table'ları ve derleyici-runtime el sıkışmaları.
Sabit ABI, tip metadata kayıtları, value witness table'lar, isim parçalama (mangling) ve kalıcı çağrı kuralı.
Protocol witness table'lar, existential kutu yerleşimi, associated type'lar ve generic kodda runtime tip ikamesi.
NSObject kök sınıf semantiği, KVC anahtar çözümü, KVO'nun isa-swizzle ile gözlem sınıfı türetmesi ve toll-free bridging.
Block literal yerleşimi, stack/malloc/global blok tipleri, __block yakalama ve Block_copy/Block_release ABI'si (libclosure).
libSystem.dylib şemsiyesi altında libc, libpthread, libdispatch, libmalloc katmanları ve syscall ince sarmalayıcıları.
CFRunLoop'un Mach port, timer ve source0/source1 soyutlamalarıyla bir thread'i olay beklerken bloklayıp uyandırması.
App Container mimarisi, sandbox profiles, entitlements ve TCC (Transparency, Consent, Control).
System Integrity Protection, rootless mekanizması, notarizasyon ve code signing zinciri.
SEP mimarisi, şifreleme key yönetimi, biometrik veriler ve LocalAuthentication framework.
Security framework, keychain access groups, iCloud Keychain sync ve CryptoKit.
cs_blobs, CodeDirectory, cdhash, adhoc/fairplay imzalar ve çekirdekteki AMFI/vnode doğrulama akışı.
AppleMobileFileIntegrity kext'i, amfid yardımcısı, statik/dinamik trust cache ve platform binary'nin imza zorlamasındaki rolü.
Hak (entitlement) sözlüklerinin imzaya gömülmesi, restricted/private hak'lar, provisioning profile doğrulaması ve hassas anahtarlar.
tccd, TCC.db izin veritabanları, kullanıcı onayı akışı ve mahremiyet erişim kararlarının saklanması.
ES istemci modeli, auth/notify olayları, es_message akışı ve kext sonrası dönemde EDR/izleme araçlarının desteklenen yolu.
Dosya başına anahtarlar, NSFileProtection sınıfları, anahtar hiyerarşisi, Effaceable Storage ve FileVault'un SEP/AES motoruyla bağı.
Salt-okunur sistem birimi, APFS snapshot mühürleme, cryptex katmanları ve SSV seal hash zincirinin boot bütünlüğündeki rolü.
XProtect imza tabanlı tarama, Yara kuralları ve XProtect Remediator/MRT temizleme motoruyla arka planda kötücül yazılım kaldırma.
ARM64e mimarisi, unified memory, performance/efficiency core scheduling ve Metal GPU.
Boot chain, LLB, iBoot, kernelcache. Boot trust zinciri ve Recoverymode.
MSL belirtimi (Sürüm 4): C++17 tabanlı GPU gölgelendirici dili, veri türleri, adres alanları ve standart kütüphane.
Low-level GPU API. Command buffers, render pipelines, compute shaders ve Metal Performance Shaders.
PAC anahtarlarıyla (IA/IB/DA/DB) işaretçi imzalama/doğrulama, pacia/autia komutları ve ROP/JOP saldırılarına donanım koruması.
Boot ROM → LLB → iBoot → kernelcache güven zinciri, Image4 (img4/IM4M) imza manifestoları ve donanıma kazınmış kök güven.
iBoot'un kernele aktardığı DeviceTree donanım tanımı ve çalışma zamanında IOKit nesne grafiğine (IORegistry) dönüşümü.
x86-64'ten ARM64'e AOT + JIT ikili çeviri, TSO bellek modeli emülasyonu ve donanım destekli total store ordering.
16K sayfa boyutunun TLB etkisi, stage-1/stage-2 sayfa tabloları ve APRR/SPRR ile sayfa izinlerinin donanımda yeniden eşlenmesi (JIT, PPL).
Ayrı SEP işlemcisi, güvenli mailbox kanalı, kök kriptografik anahtarlar, SKS ve ana çekirdekten donanımsal izolasyon.
Apple Matrix Extension koprosesörü ve ANE'nin matris/konvolüsyon hızlandırma yolu — Accelerate/CoreML'in donanıma indiği nokta.
Donanım sanallaştırma (EL2, stage-2 çeviri), Hypervisor.framework primitifleri ve Virtualization.framework ile misafir VM'ler.
59 konu · 5 mimari katman · 5 bölüm