Porting Node.js

Norman Feske norman.feske at genode-labs.com
Tue Mar 12 09:06:10 CET 2019

Hi Max,

On 09.03.19 16:24, Max wrote:
> I want to port Node.js  for Genode OS, but I understand that it is not a
> simple matter.

welcome to the mailing list!

Given the popularity of Javascript, a port of Node.js to Genode would be
very much appreciated. Thanks for reaching out about how to start.

> Maybe someone has already started to do this work and I would connect to
> this process. If answer is NO, then maybe someone will tell something
> sensible (for a starting point, I familiarized myself with information
> described at
> https://genode.org/documentation/developer-resources/porting_noux_packages).
> I would be very grateful for any useful information.

I would not target the Noux runtime for any ported software, except when
the software required fork and execve. I don't think that Node.js
strictly depends on these mechanisms.

So it is probably the best to target a native POSIX component (which
does not require the Noux runtime), similar to our port of the lighttpd
web server [1].


My assumption is that our libc is mostly complete enough to run the
ported program with almost no modification. However, advanced programs
like JIT compilers often stretch the limits of our. Typical troubles are
the overzealous use of 'mmap' for accessing files instead of using
read/write operations, and exploiting POSIX signals to an extreme
(installing custom segfault handlers, manipulating register states).

So while the porting (in the sense of recompiling the code for Genode)
goes often quite smoothly, the debugging of unexpected runtime behavior
must be anticipated. To avoid frustration on your side during this
process, you may consider publicly sharing your topic branch once you
hit the first road block. So seasoned developers can lend a helping hand.


Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list