What are the plans for graphics, later on? (would love to help)

125 views
Skip to first unread message

David Davidović

unread,
Jun 28, 2014, 1:29:28 PM6/28/14
to runt...@googlegroups.com
Hello all,

Runtime.JS looks to me, for now at least, like a promising project. Executing
everything in Ring 0 and allowing V8 to compile into trusted native code seems
to me as a very effective way to mitigate large performance problems that JS in
the browser was known for. With support for asm.js and with some emscripten
magic, I reckon that a lot of software that is currently written in lower-level
languages can be effectively transpiled and run on Runtime.JS with what I
believe are not very dramatic performance losses. I commend the developers for
starting this endeavor, and I would be glad to help in some way.

I know this is currently not your focus, but what are the plans for
implementing graphics APIs, device drivers, and a GUI? Will you use currently
available open-source implementations of drivers or roll your own (that would
seem like a lot of work!). I can't find this long-term goal information on the
website, which is completely understandable given how young of a project this
is.

I suppose that, after implementing the vital low-level architecture
(networking, VFS, preemption, etc.) graphics will be one of the focus points.
I would like to help build a graphical environment for JavaScript apps that
will run on Runtime.JS. Maybe a skeleton desktop environment and a window
manager where all windows are essentially classical HTML DOM trees? Or perhaps
allowing some form of standard widget toolkit?

Whatever the answer to all these question, you can count me on contributing to
these efforts, if there is a need (I don't think I'm competent enough to fiddle
with low-level OS code). I'm a C/C++, PHP and Lisp (Racket & CL) programmer
and web developer. I've been developing games and playing around with graphics
for a long time and I'm very proficient with OpenGL, Cg/HLSL/GLSL, how the
graphics pipeline works, efficient batching and all sorts of stuff that may
prove to be useful in helping build a GUI architecture for a new OS. I'm also
very passionate about beautiful UIs, flowing animations/transitions and
typography :)

If you reckon my help with a GUI won't be needed, I'd love to know if there is
any other way I can contribute.

Best regards,
David Davidović

Alan Mimms

unread,
Jun 28, 2014, 1:33:29 PM6/28/14
to runt...@googlegroups.com
This is an interesting question. I was thinking of RuntimeJS as a server OS. But, of course, it could be used for a client OS as well. It would rock as an OS for phones, for example, but not just there.

David Davidović

unread,
Jun 28, 2014, 1:50:59 PM6/28/14
to runt...@googlegroups.com
Really? As a server OS? That's interesting, when I read the website, it seemed
like a very cool platform for thin clients, for example (but I don't see what
stops it from being a nice OS for ordinary desktop/notebook users).

In that case, my apologies for not understanding the gist of the
project---please do carry on, and best of luck!

David Davidović

unread,
Jun 28, 2014, 2:00:58 PM6/28/14
to runt...@googlegroups.com
Oh, I didn't realize you weren't one of the developers. In that case, I'd like
to ask the developers if creating a client-friendly OS one of their aims right
now or Runtime.JS is primarily intended for servers.

Wilberto Morales

unread,
Jun 28, 2014, 11:10:46 PM6/28/14
to runt...@googlegroups.com
Hey David,

I'm interested in this too. A couple of weeks ago I was trying to imagine an OS where the graphical applications where done in html and css, including the Operating System. So changing the look of the operating system would be as easy as editing a styles.css file. And it would work on all screens if it were made responsive. I ran into node webkit and thought that it would be possible to do with it. This is probably a bad idea from my part but I wanted to try it.

Serge

unread,
Jun 29, 2014, 5:52:15 AM6/29/14
to runt...@googlegroups.com
GUI is not a priority for the project at the moment. But basic VESA graphics implementation would allow output more text in debugging console then current 80x25 mode. So, this could be useful.

I'm not sure about HTML/CSS for GUI. I feel like its too heavy. And yes, it's a lot of work.

David Davidović

unread,
Jun 29, 2014, 8:50:19 AM6/29/14
to runt...@googlegroups.com
I understand completely! All is subject to discussion. The HTML/CSS idea
was just my brainstorm, didn't really think about the implications.
Anyhow, once you manage to get some basic VESA support stable, hit me up
with an email and I will see what I can come up with.

And in the meantime, I'll see if there's anything I can help with, and
issue some pull requests :)

--
You received this message because you are subscribed to the Google Groups "runtimejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to runtimejs+...@googlegroups.com.
To post to this group, send email to runt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/runtimejs/368095db-2291-47fa-9d93-cea83de7168a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

David Davidović

unread,
Jun 29, 2014, 8:57:37 AM6/29/14
to runt...@googlegroups.com
Wilberto, have you seen Firefox OS? Admittedly, it's a mobile phone OS,
but it does exactly what you're describing. Developing is also a breeze,
if you have a Firefox browser, you can check my FF OS app I made [1] and
it's really nice to see how the app performs the same on the desktop
browser and on the mobile OS. I didn't even need a phone to develop it,
and it was way nicer to work with than Android.

Jingfu Ye

unread,
Jan 13, 2015, 10:08:18 PM1/13/15
to runt...@googlegroups.com
Probably node-webkit(https://github.com/rogerwang/node-webkit) is suitable to develop HTML5/CSS based GUI framework.

Joel Laird

unread,
Jan 14, 2015, 10:49:51 AM1/14/15
to runt...@googlegroups.com
Hello,

I was having a think about how useful a JavaScript OS could be, Googled it and here I am!
I'd very much like to help, but first would like to share a bit of my vision. If it is not where this project is going then I can always fork it, but it would be great to work together.

I believe that the important part to get running is the ability to serve web pages and accept websocket and WebRTC connections. If this was available, then there would be no need to worry about adding support for displays, etc., or continuing development of the shell; all interaction could be done from any other device that can run a web browser. A GUI (or multiple GUIs) to the OS could then be written by anyone with HTML/CSS/JS skills and an understanding of the isolate and kernel APIs (these would be invoked over websockets).

Furthermore, I'd like to propose the following for peripheral drivers and configuration (including disk access):
- use an on-line repository to allow discovery and installation of peripheral drivers; e.g. using HYPER/CAT
- allow the peripheral driver to provide HTML/CSS/JS for its own configuration, which can then be easily embedded at runtime into the OS GUI mentioned previously
- allow the peripheral driver to expose a JS API, to provide access from applications (and other dependent peripherals?)

I think that this would provide an initially simple, yet very extensible, OS.

Regards,
Joel
Reply all
Reply to author
Forward
0 new messages