j6 - Yet Another Browser Operating System

j6 (think “jsix”, a hybrid of javascript and un*x) is like an operating system, but written entirely in javascript and usable as a bookmarklet/favelet/Minitool. it includes a handy javascript shell, too. it is still in the very early stages, so feel free to report any bugs or shortcomings to bsittler@gmail.com.

sections: try j6 | downloads | status | license and copyright | links | security

try j6

program to run (may be left blank)
j6term options
uses a textarea for the screen; missing color and attribute support but works in more browsers
uses a pop-up alert box/prompt box rather than displaying in the web page
enable debugging output (very verbose)
character encoding support
omits support for most character encodings (fast)
omits support for Chinese, Japanese and Korean double-byte character encodings
includes all supported character encodings (slow)
developer options
allows scripts to be cached by your browser for faster subsequent loading

notes

downloads

status

compatibility
the goal is to be compatible with most modern browsers. at least some versions have been compatible with Firefox, SeaMonkey, Konqueror, Epiphany, Galeon, Flock, Songbird, Warrior, Opera (also try the j6 mini widget), Camino, Shiira, SunriseBrowser, K-Meleon, Safari, Dashboard (the j6 mini widget), Internet Explorer (both Mac and non-Mac versions), iCab, and Blazer.
non-browser compatibility
j6.js can be run inside the spidermonkey, rhino, or kjscmd javascript shells, using osascript with the JavaScript OSA, and using WSH (csript or wscript); with the extension of j6.html changed to .hta, it works as a Windows application
loader
the loader is usable from bookmarklets/favelets/minitools and by script inclusion on a regular web page.
terminal
think teletype + color + iso 2022 + unicode. no cursor positioning yet, likewise no sixel, regis or other graphics support. have not implemented iso 2022 for input, only for output, so basically only latin-1 characters will work in an iso 2022-compliant way. you can switch the terminal to utf-8 mode with echo '\x1b%G' or equivalent, but be aware that the shell and other apps will not adapt correctly (no locale stuff is implemented yet.)
shell
there is a minimal shell with a hybrid javascript/sh syntax. shell scripts and #! do work, and in fact that is how most of the stuff in /bin is written. there are no pipes, redirection, conditional or looping constructs yet. only a single command can be written per line, although a single javascript command can do a lot (and include multiple expressions.) it has very crude command-line editing (backspace key) and history (use up and down arrow keys.)
file system
the file system is really only a placeholder at present. the whole thing is temporary (memory-backed) and not block-based. individual files can be cookie/globalStorage-backed, but by default only .sh_history in your home directory is.
scheduler
the minimal and primitive scheduler works. the "timer interrupt" fires every 200ms, and zero or more tasks are run until at least 100ms has elapsed or there are no more runnable tasks. each time a task runs it can request a preference to be run again during the same quantum, but the default is to run each task at most once per quantum.

license and copyright

    j6 - Yet Another Browser Operating System
    Copyright © 2006, 2007, 2009  Benjamin C. Wiley Sittler
    Portions Copyright © 2001, 2002, 2003, 2004, 2005, 2006
         Free software Foundation, Inc.

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

    Contact Information:

    Benjamin C. Wiley Sittler <>
    6214 Plumas Ave
    Richmond, CA 94804
    U.S.A.
    

links

security