Platform nasıl çalışıyor
Kod yazarken, TCC (Tiny C Compiler) WASM aracılığıyla doğrudan tarayıcınızda çalışarak sunucuya gitmeden anlık tip kontrolü sağlar.
Run butonuna tıkladığınızda kodunuz local storage’a kaydedilir ve backend’e gönderilir.
Backend, kodunuzu clang ile bir BPF objesine derler ve çalıştırmak için yeni bir VM başlatır.
VM
Her gönderim için geçici bir VM oluşturulur:
- 0.5vCPU, 64MB RAM
- Kernel 6.18.2 (güncel LTS)
- Ağ bağlantısı yok
- 500ms otomatik kapanma zamanlayıcısı
Firecracker (bazı özel yamalarla) ve çok minimal bir kernel sayesinde açılış süresi 40~50ms’dir.
VM, minimum kurulumu yapan (mount /sys, loopback arayüzü ayarlama, …) özel bir /init sürecine başlar, BPF objenizi yükler ve event’leri stream etmeye başlar.
Event’lerin VM’den çıkarılması
Kodunuz ep_platform.h dosyasını #include etmelidir; bu dosya tüm çıktılar için bir BPF ringbuf map’i oluşturur.
DEBUG_ ve SUBMIT_ makroları bu map’e event yazar.
VM içinde init süreci bu ringbuf’u dinler ve event’leri vsock aracılığıyla host’a iletir. Backend bu event’leri SSE ile tarayıcınıza stream eder.