9 puan yazan GN⁺ 2025-04-09 | 2 yorum | WhatsApp'ta paylaş
  • Hyperlight Wasm, Microsoft’un CNCF’ye bağışladığı ultra hafif sanal makine (VM) teknolojisi Hyperlight’ın en yeni genişletilmiş sürümü olup WebAssembly (Component Model tabanlı) iş yüklerini hızlı ve güvenli şekilde çalıştırır
  • Geleneksel VM’lerden farklı olarak OS veya sanal cihazlar olmadan yalnızca bellek dilimleri ve CPU’yu açığa çıkarır ve 1~2 ms gibi hızlı açılış süresi sunar
  • C, Rust, Go, Python, JS gibi çeşitli dillerle yazılmış wasm bileşenleri hypervisor koruması altında çalıştırılabilir

Hyperlight Wasm’ın başlıca özellikleri

  • Geleneksel VM’lere kıyasla hızlı performans

    • Geleneksel VM: cihaz başlatma → çekirdek yükleme → OS açılışı → uygulama çalıştırma (yaklaşık 125 ms)
    • Hyperlight Wasm: bellek dilimi oluşturma + Wasm yükleme ile çalıştırma mümkün (1~2 ms, gelecekte hedef <1 ms)
    • Hızlı çalışma süresi, istek üzerine serverless çalıştırma veya asgari warm pool yapılandırması için avantaj sağlar
  • İşletim sistemi olmadan da farklı dilleri çalıştırma

    • Standart WASI ve WebAssembly Component Model tabanında, çoğu dille yazılmış bileşenler çalıştırılabilir
    • wasmtime runtime’ı gömülü olduğundan Python, JavaScript, C# gibi yorumlanan diller de runtime ile birlikte çalıştırılabilir
    • Geliştirici açısından bakıldığında yalnızca wasm32-wasip2 hedefi için derlemek Hyperlight’ta çalıştırmak için yeterlidir
  • Gelişmiş güvenlik (çift sandbox)

    • Wasm sandbox’ı + hypervisor tabanlı VM sandbox’ı ile iki katmanlı koruma yapısı
    • Bir saldırgan wasm dışına çıksa bile ayrıca VM sandbox’ını da aşması gerekir

Geliştirme örneği: Rust tabanlı UDP Echo sunucusunu çalıştırma

  • wkg CLI ile wasm binary’si indirme ve derleme
  • WASI arayüz tanım dosyasını (.wit) binary’ye dönüştürerek binding oluşturma
  • hyperlight_component_macro ve host_bindgen! ile Wasm import/export arayüzü binding’lerini otomatik oluşturma
  • UdpSocket arayüzü implementasyonu ile echo sunucusu mantığını tanımlama
  • hyperlight-wasm sandbox’ı oluşturup wasm bileşenini yükleme ve çalıştırma
  • Ahead-of-Time derleme

    • hyperlight-wasm-aot aracıyla wasm’ı AOT derleyerek çalışma süresini kısaltma
    • cargo run ile sunucuyu çalıştırıp nc -u komutuyla UDP testi yapma mümkün

Ölçeklenebilirlik ve gelecek planları

  • Hyperlight Wasm’ın yalnızca x86 değil, Arm64 mimarisini de desteklemesi planlanıyor
  • Şu anda WASI arayüzlerinin doğrudan implement edilmesi gerekiyor, ancak gelecekte varsayılan binding’ler sunulması planlanıyor
  • HTTP sunucuları gibi basit servislerin hızlı biçimde sandbox içine alınabilmesi hedefleniyor

Açık kaynak topluluğuna katılım bilgisi

  • Hyperlight, Microsoft’un Apache 2.0 lisansı ile yayımlanan açık kaynak projesidir ve CNCF Sandbox’a kayıtlıdır
  • Hyperlight Wasm, bulut yerel bilişim için uygun hızlı ve güvenli bir çalışma ortamı sunmayı hedefler
  • Kodları incelemek ve katkı vermek GitHub deposu üzerinden mümkündür

👉 GitHub deposu: hyperlight-wasm

2 yorum

 
GN⁺ 2025-04-09
Hacker News görüşü
  • Birkaç aydır WebAssembly’yi ciddi biçimde kullanarak, birden çok dilde çalışan backend kimlik doğrulama kütüphanesi oluşturmaya başladım

    • Bunu Extism üzerine kurarak arayüz karmaşıklığını azalttım
    • Adeta büyülü bir deneyimdi
    • WASM ilginç bir konumda
    • Minimal bir çekirdek spesifikasyonla değerini kanıtladı
    • Şimdi WASI ve Component Model için daha geniş bir API yüzeyi uygulamaya yönelik büyük bir itiş var
    • Topluluktaki birçok kişi bu yönden endişe duyuyor
    • Kişisel olarak, WASM’ın fazla karmaşıklaşıp yalnızca büyük teknoloji şirketlerinin uygulayabildiği ve deney yapabildiği web tarayıcılarının yoluna girmemesini umuyorum
  • Birkaç ay önce Hyperlight adlı hafif bir VMM duyurmuştuk

    • Yaklaşık 1 milisaniyede yeni bir VM oluşturabiliyor
    • Bugün, Wasmtime runtime tabanlı Hyperlight Wasm guest’i duyurmaktan mutluluk duyuyorum
    • Bu sayede, VM içinde bir guest OS olmadan WASI arayüzü üzerinde Wasm Component binary’lerini çalıştırabiliyoruz
    • Bu gönderide nasıl çalıştığını açıklıyor ve örneklerle gösteriyor
  • Oldukça heyecan verici

    • WASM/WASI’nin 90’lardaki JVM hayaline dönüşmesini umuyorum
    • Birden çok platforma kolayca taşınabilen ve test edilebilen, bellek güvenli bir geliştirme hedefi olabilir
    • WASM’ın tarayıcının ötesinde pek çok şey için kullanılabilmesini umuyorum
  • İlginç görünüyor

    • Bu, Cloudflare Workers veya Lambda benzeri bir şeyi doğrudan WASM ile kendin uygulamak istediğinde kullanılabilecek bir örnek mi?
  • Harika

    • Buradaki katma değerin ne olduğunu anlamaya çalışıyorum
    • Wasmtime üzerinden çalıştırmaktan farkı nedir?
  • Tüm bu havalı ve ilginç projeler, bana WASM’ın tarayıcı dışında her yerde başarılı olduğu hissini veriyor

    • Belki de Web Assembly’den “Web” kısmını çıkarıp başka bir ad vermek gerekir
  • Bunu Promox kurulumuna nasıl dahil edebileceğimize dair bir fikri olan var mı?

    • Bunun bare metal üzerinde çalışacak şekilde tasarlandığını anlıyorum
    • Elimde boşta bare metal x86 olmadığı için biraz tuhaf geliyor
    • Sanırım bunu bir VM içine koyup iç içe sanallaştırmayı kabullenmek gerekecek
  • Instance’lar nasıl başlatılıyor ve yönetiliyor?

    • Hangi API üzerinden?
    • Wasm Component binary’sine bağlanan Wasm Components ağacını çalıştırma, yetki devretme ve yaşam döngüsünü yönetme yetenekleri verebilir mi?
  • Temelde, donanım VM’inde programları sandbox etmek için bir VM’niz (wasm) var; bu da kullanıcı alanı süreçlerinde (Linux process) programları izole etmek için bir soyutlama

    • Programları izole etmek için Unix process kullanmayı hiç düşündünüz mü?
  • Bu bir unikernel/library OS mi?