Giter Club home page Giter Club logo

yukios's Introduction

YukiOS

YukiOS is an attempt at writing a complete multithreading operating system that runs in your browser. It consists of a JavaScript kernel loading and running WebAssembly binaries, a standard library that exposes kernel functions (imports) in C and a few interesting programs so it's usable.

But why?

Why not? Gary Bernhardt once said in 2014 it's the future, so yeah.

What about the name?

It's snow in Japanese. I think it's cute.

Is it supported on my browser?

Chrome should work starting from version 67. It uses a bunch of experimental features like SharedArrayBuffer, so here be dragons...

How does it work?

Kernel initializes a terminal (mostly VT100-compatible, might later be a GUI) and a bunch of functions that interfaces with the GUI, DOM, filesystem and threads, then starts a new thread. Threads defines a bunch of functions programs can import and interfaces with said functions on the main thread. So it's pretty much:

Browser/DOM <=> Kernel <=> WebWorkers <=> WebAssembly program

where arrows are someinterface where they talk to each other.

How are programs compiled?

You only need a working LLVM/clang compiler with WebAssembly enabled. It was experimental in v7 but it's moved to stable after release and should be there in version 8. Check the Makefile for examples.

It should be pretty lightweight, so no Emscripten or anything for now. Binaries should import functions it needs (in C, via a standard library) and export its main function.

yukios's People

Contributors

juju2143 avatar

Stargazers

Workata avatar Brian Zalewski avatar Rahul Kanyal avatar Ren Strydom avatar  avatar Oluwamayowa Esan avatar Nicholas Pease avatar

Watchers

James Cloos avatar  avatar Nicholas Pease avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.