Skip to content

tombl/linux

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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?

About

Linux kernel for WebAssembly

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • C 98.5%
  • Assembly 0.8%
  • Shell 0.3%
  • Makefile 0.2%
  • Python 0.1%
  • Perl 0.1%