Skip to content

Latest commit

 

History

History
45 lines (38 loc) · 1.78 KB

README.md

File metadata and controls

45 lines (38 loc) · 1.78 KB

Linux WebAssembly port

Try it in your browser.

  • All the build infrastructure
  • Reimplementation of the ELF/linker features the kernel relies on
  • Kernel threads
    • Mapped to JavaScript workers
    • Complete multicore support
  • Implement virtio in the host library
    • Implement a block device
  • binfmt_wasm
  • Jumping into userspace
  • Expose syscall dispatch

Eventually:

  • virtio-rng backed by crypto.getRandomValues()
  • virtio-net to connect multiple machines
    • and service worker loopback
  • virtio-console to support multiple terminals
  • virtio-fs backed by the File System API
  • vsock to implement custom javascript integrations
    • unrestricted vscode in the browser?
  • port lots of software
    • wrap/patch compilers to support wasm32-linux
      • both for cross-compilation and self-hosting
    • tailscale for full networking?
    • an x86_64 emulator like qemu/blink/box64?
  • /dev/fetch as a character device exposing a HTTP proxy interface
    • parses requests and invokes fetch()
  • canvas2d framebuffer driver?
  • virtio-gl backed by WebGL?
  • wayland?
  • MMU support?
  • support dynamic linking
    • might need to wait for the ABI to stabilize

If we add another architecture in the future, it may instead be something like the LLVM bitcode or WebAssembly, who knows?