Platform nasıl çalışıyor

Tarayıcın düşündüğünden fazlasını yapıyor. TCC (Tiny C Compiler) WASM üzerinden client-side çalışarak, sen yazarken anında syntax kontrolü sağlıyor. Sunucuya tek bir istek bile gitmiyor.

Run’a bastığında kodun local storage’a kaydedilir ve backend’e gönderilir.

Backend kodu clang ile BPF objesine derler, ardından sadece senin submission’ın için sıfırdan bir VM ayağa kaldırır.

VM

Her submission kendi izole sandbox’ında çalışır:

  • 1 vCPU (ARM64), 64MB RAM
  • Linux 6.1 kernel, tam BPF/tracepoint desteği
  • Ağ erişimi yok, tamamen izole
  • 2 saniyelik ömür, sonra yok edilir

VM’ler bare-metal ARM (Graviton) üzerinde 50ms altında boot oluyor. Firecracker microVM teknolojisi sayesinde her VM milisaniyeler içinde ayağa kalkar. Guest kernel sadece BPF programları çalıştırmaya yetecek kadar minimal tutuluyor.

VM, statik linklenmiş bir init process’e boot eder. Bu process minimum filesystem mount’larını yapar, BPF objeni yükler, exercise senaryosunu çalıştırır ve sonuçları geri stream eder.

Event’ler nasıl çıkıyor

Kodun ep_platform.h’ı include eder. Bu header arka planda bir BPF ring buffer map’i oluşturur.

DEBUG_STR, DEBUG_NUM ve SUBMIT_STR makroları yapılandırılmış event’leri bu ring buffer’a yazar.

VM içindeki init process ring buffer’ı poll eder ve event’leri vsock üzerinden host’a iletir. Host bunları SSE (Server-Sent Events) olarak gerçek zamanlı tarayıcına stream eder.