Skip to content

arcadiogarcia/UNIJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 

Repository files navigation

UNIJS

(JS must be pronounced similarly to X for maximum pun effect)

UNIJS is a web-based windowed console environment.

What does that mean? UNIJS is what a non-technical user would probably call an operating system. Thankfully, it is not! It is a web app that recreates a windowed desktop environment inside a browser window (or even better, a HTML5 app), and allows console programs to be executed. It provides an API and a way to install new programs, and the programs can be combined using pipes as in UNIX.

What is this useful for?

This is useful for creating extensible but controlled sandboxed environments that can run on any computer, for example for programming contests.

Are we there yet?

Nope, sorry. The journey has just started and this is what is done:

  • Basic windows environment
    • Window creation, deletion, resizing, movement, snip, keyboard shortcuts
    • Customization using environment variables (terminal colors, window color, wallpaper)
  • Program loader (not from the "inner" filesystem yet)
  • Stream implementation: pipes and redirects
  • Some basic programs (cat, echo, ls, tree, mkdir, wget, caesar...)
  • File System API
    • Locks ( slock on read, xlock on write, unlock on close)
  • Basic manual (man command)

And this is still missing:

  • Interchangeable OS modules (file system, sensors data, notifications, whatever...)
  • Everything else

Of course, you are welcome to report issues and submit pull requests!

The terminal is implemented using the JQuery Terminal Emulator

About

A web-based windowed console environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published