- WebVM menjalankan lingkungan Linux di dalam browser berbasis WebAssembly, sehingga biner x86 dapat ditangani di sisi klien tanpa server
- Fondasi utamanya, CheerpX, membangun virtualisasi browser dengan kompiler JIT x86-to-WebAssembly, sistem berkas virtual berbasis blok, dan emulator system call Linux
- Eksekusi diproses di dalam sandbox browser, dan menjalankan biner x86 dilakukan di perangkat pengguna, bukan di server
- Contoh perintah mencakup
python3,gcc,objdump,vim,curl, dancurl --max-time 15 parrot.livememerlukan jaringan - Lingkungan uji terpisah Alpine / Xorg / i3 WebVM juga disediakan, dan BrowserCode adalah item terkait yang menjalankan Claude Code di browser
Cara kerja WebVM
- WebVM adalah lingkungan Linux virtual yang berjalan di browser melalui WebAssembly
- Mesin dasarnya, CheerpX, menjalankan biner x86 di dalam sandbox yang aman
- Seluruh proses eksekusi dilakukan sepenuhnya di sisi klien
Komponen virtualisasi browser CheerpX
- Untuk virtualisasi berbasis browser, CheerpX mencakup elemen-elemen berikut
-
Kompiler JIT x86-to-WebAssembly
- Sistem berkas virtual berbasis blok
- Emulator system call Linux
-
Lingkungan uji dan contoh perintah
- Alpine / Xorg / i3 WebVM disediakan sebagai lingkungan uji WebVM yang baru
- Contoh default WebVM menyarankan perintah berikut
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- Perintah ini memerlukan jaringan
Item terkait
- BrowserCode adalah item terkait yang menjalankan Claude Code di browser melalui WebAssembly
1 komentar
Opini Hacker News
Ada beberapa proyek lain yang mirip. Untuk sisi VM, ada https://copy.sh/v86/, https://bellard.org/jslinux/, https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce), https://www.pcjs.org/, dan yang terakhir punya banyak perangkat keras serta sistem operasi (https://github.com/jeffpar/pcjs)
Untuk sisi Mac OS, ada juga 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/
https://duckduckgo.com/?q=comptuers+built+in+minecraft
Proyek dasarnya sepertinya bukan open source. Tertulis: “WebVM didasarkan pada build CheerpX yang kami hosting. Kami mendorong pengguna untuk menerapkan versi WebVM mereka sendiri, tetapi saat ini kami tidak mengizinkan self-hosting mesin CheerpX itu sendiri. Build CheerpX publik ini disediakan apa adanya dan gratis untuk eksplorasi teknis, pengujian, serta penggunaan nonkomersial. Jika Anda ingin membuat produk di atas CheerpX/WebVM, silakan hubungi kami”
https://labs.leaningtech.com/blog/mini-webvm-your-linux-box-...
Saya lead developer WebVM sekaligus CTO Leaning Technologies. Kalau ada pertanyaan akan saya jawab, tetapi di sini sudah cukup larut jadi mungkin baru beberapa jam lagi. Silakan juga bergabung ke Discord: https://discord.gg/yTNZgySKGa
Pekerjaannya keren. Semoga ini tidak terdengar seperti sindiran ringan. Tambahan lagi, saya membuka vi, tetapi Esc entah karena masalah browser tidak begitu berfungsi, jadi saya tidak menyangka harus mengucapkan lagi “tidak bisa keluar dari vi”
Saya sudah membaca tulisan tentang networking yang ditautkan sebelumnya, tetapi ingin melihat pendekatan spesifik yang digunakan
Selain itu, kadang layar membeku dan input tombol tidak muncul. Biasanya saat menekan backspace, layar kembali normal. Di about:performance Firefox tidak terlihat penggunaan CPU untuk tab tersebut, dan di htop Linux pada mesin saya Firefox juga tidak tampak aneh
Ada pertanyaan juga. Saya melihat file baru tetap ada meski tab ditutup lalu dibuka kembali, tetapi saya belum memeriksa localStorage dan semacamnya lewat developer tools. Saya penasaran apakah itu yang dipakai, atau ada fitur browser lain yang digunakan. Seberapa persisten sebenarnya file-file ini?
Saya melihat jawaban lain: https://labs.leaningtech.com/blog/webvm-virtual-machine-with...
Judulnya mungkin bisa diperbaiki menjadi kira-kira “WebVM adalah VM WebAssembly yang berjalan di browser”
Buzzword-nya keren. Pada akhirnya ini adalah lingkungan command line Linux yang berjalan di browser, dan lambat
Tertulis “CheerpX enables you to run existing 32-bit x86 native binaries”. Anehnya, dukungan wasm64 di browser sudah mandek selama bertahun-tahun, sungguh disayangkan
Cerdik sekali menyediakan jaringan melalui Tailscale. Ini menghindari beberapa potensi masalah
Terasa jauh lebih lambat daripada https://bellard.org/jslinux/
Keren, tetapi input tombol sering tidak muncul, jadi secara praktis sulit digunakan. Bahkan untuk use case sebagai lingkungan pengembangan lokal bagi Web IDE, rasanya belum cukup cepat
node --versioncepat setelah eksekusi pertama, tetapi eksekusi JavaScript sangat lambat:user@:~$ time node -e "console.log('Hello')"Helloreal 0m7.693suser 0m0.012ssys 0m0.000sSaya penasaran apa use case praktis untuk hal seperti ini
Itu hanya beberapa contoh, dan daftarnya bisa jauh lebih panjang
Karena server Node.js dan frontend berjalan di dalam browser, Anda bisa melihat apa yang dapat dilakukan Graphweaver tanpa menginstal atau menjalankan apa pun di komputer selain browser. Contohnya menggabungkan database SQLite dengan REST API, lalu Graphweaver menyediakan GraphQL API dari hasilnya