- WebVM, WebAssembly tabanlı olarak tarayıcı içinde bir Linux ortamı çalıştırır ve sunucu olmadan x86 ikililerinin istemci tarafında kullanılmasını sağlar
- Temel altyapı olan CheerpX, x86-to-WebAssembly JIT derleyicisi, sanal blok tabanlı dosya sistemi ve Linux sistem çağrısı emülatörüyle tarayıcı sanallaştırmasını oluşturur
- Çalıştırma işlemi tarayıcının sandbox ortamında gerçekleşir ve x86 ikilileri sunucuda değil, kullanıcının cihazında yürütülür
- Örnek komutlar arasında
python3,gcc,objdump,vim,curlbulunur;curl --max-time 15 parrot.livekomutu ağ bağlantısı gerektirir - Ayrı bir deneme ortamı olarak Alpine / Xorg / i3 WebVM sunulur; BrowserCode ise tarayıcıda Claude Code çalıştıran ilgili bir öğedir
WebVM nasıl çalışır
- WebVM, WebAssembly aracılığıyla tarayıcıda çalışan sanal bir Linux ortamıdır
- Temel motor olan CheerpX, x86 ikililerini güvenli bir sandbox içinde çalıştırır
- Çalıştırma işlemi tamamen istemci tarafında gerçekleşir
CheerpX'in tarayıcı sanallaştırma yapısı
- CheerpX, tarayıcı tabanlı sanallaştırma için şu bileşenleri içerir
-
x86-to-WebAssembly JIT derleyicisi
- Sanal blok tabanlı dosya sistemi
- Linux sistem çağrısı emülatörü
-
Deneme ortamı ve örnek komutlar
- Alpine / Xorg / i3 WebVM, yeni bir WebVM deneme ortamı olarak sunulur
- Varsayılan WebVM örneği şu komutları önerir
python3 examples/python3/fibonacci.pygcc -o helloworld examples/c/helloworld.c && ./helloworldobjdump -d ./helloworld | less -Mvim examples/c/helloworld.ccurl --max-time 15 parrot.live- Bu komut ağ bağlantısı gerektirir
İlgili öğe
- BrowserCode, WebAssembly üzerinden tarayıcıda Claude Code çalıştıran ilgili bir öğedir
1 yorum
Hacker News yorumları
Benzer birkaç proje daha var. VM tarafında https://copy.sh/v86/, https://bellard.org/jslinux/, https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce), https://www.pcjs.org/ var; sonuncusunda çok sayıda donanım ve işletim sistemi bulunuyor (https://github.com/jeffpar/pcjs)
Mac OS tarafında da https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo..., https://jamesfriend.com.au/pce-js/pce-js-apps/ var
https://duckduckgo.com/?q=comptuers+built+in+minecraft
Temel alınan proje açık kaynak değil gibi görünüyor. Şöyle deniyor: “WebVM, bizim barındırdığımız bir CheerpX derlemesini temel alır. Kullanıcıların WebVM’in kendi sürümlerini dağıtmasını teşvik ediyoruz, ancak şu anda CheerpX motorunun kendisinin self-host edilmesine izin vermiyoruz. Bu herkese açık CheerpX derlemesi olduğu gibi sunulur ve teknik keşif, test ile ticari olmayan kullanım için ücretsizdir. CheerpX/WebVM üzerine bir ürün inşa etmek istiyorsanız lütfen bizimle iletişime geçin”
https://labs.leaningtech.com/blog/mini-webvm-your-linux-box-...
WebVM’in baş geliştiricisi ve Leaning Technologies CTO’suyum. Sorularınız olursa yanıtlarım, ancak burada saat epey geç; birkaç saat sonra olabilir. Discord’a da katılabilirsiniz: https://discord.gg/yTNZgySKGa
Yapılan iş harika. Bunun hafif alaycı bir yorum gibi duyulmasını istemem. Ek olarak, vi’yi açtım ama Esc tarayıcı sorunu mu nedir pek çalışmadı; “vi’den çıkamıyorum” sözünü yeniden söylemek zorunda kalacağımı hiç düşünmezdim
Daha önce bağlantısı verilen ağ yazısını okudum, ama özellikle nasıl bir yaklaşım izlediğinizi görmek isterim
Ayrıca bazen ekran donuyor ve tuş girişleri görünmüyor. Genelde Backspace’e basınca ekran çözülüyor. Firefox’un about:performance sayfasında ilgili sekmenin CPU kullanımı görünmüyor; makinemdeki Linux htop’ta da Firefox tuhaf görünmüyor
Bir sorum da var. Sekmeyi kapatıp yeniden açınca yeni dosyanın korunduğunu gördüm; geliştirici araçlarıyla localStorage vb. kontrol etmedim. Onu mu kullandınız, yoksa başka bir tarayıcı özelliği mi? Bu dosyalar gerçekte ne kadar kalıcı?
Başka bir yanıtı gördüm: https://labs.leaningtech.com/blog/webvm-virtual-machine-with...
Başlık “WebVM, tarayıcıda çalışan bir WebAssembly VM’dir” gibi düzeltilse iyi olur
Moda sözcükler havalı. Sonuçta tarayıcıda çalışan bir Linux komut satırı ortamı ve yavaş
“CheerpX enables you to run existing 32-bit x86 native binaries” deniyor. Garip şekilde tarayıcılarda wasm64 desteği yıllardır yerinde sayıyor; üzücü bir durum
Ağ iletişimini Tailscale ile sağlaması akıllıca. Birkaç olası sorunun etrafından dolaşmayı sağlıyor
https://bellard.org/jslinux/’ten çok daha yavaş hissettiriyor
Havalı ama tuş girişleri sık sık görünmediği için pratikte kullanmak zor. Web IDE’nin yerel geliştirme ortamı kullanım senaryosu açısından bakınca da yeterince hızlı görünmüyor
node --versionilk çalıştırmadan sonra hızlı, ancak JavaScript çalıştırma çok yavaş:user@:~$ time node -e "console.log('Hello')"Helloreal 0m7.693suser 0m0.012ssys 0m0.000sBöyle bir şeyin pratik kullanım senaryosunun ne olduğunu merak ediyorum
Bunlar sadece birkaç örnek; liste çok daha uzayabilir
Tarayıcının içinde Node.js sunucusu ve frontend çalıştırdığı için, bilgisayara tarayıcı dışında hiçbir şey kurmadan veya çalıştırmadan Graphweaver’ın neler yapabildiğini görebilirsiniz. Örnek, SQLite veritabanını bir REST API ile birleştiriyor ve Graphweaver bunun sonucunda bir GraphQL API sunuyor