The bridge is completely stable. Your 64-bit Node.js microkernel is now
flawlessly manipulating the bare-metal C process via the POSIX memory
boundary.
Now we move to the Data Plane. We will write the first genesis.so module to
calculate a Cellular Automata grid, and upgrade the C daemon to dynamically
load it using dlopen().
To keep the .so stateless, we will store the cellular grid exactly at memory
offset 0x1000. We will also have the .so natively render the grid to your
terminal using ANSI escape sequences so you can see the simulation instantly
in your gd-2 window.
user@raspberrypi:~/GD $ x-console gd-2 restart && sleep 1 && x-console gd-2
tail [+] Console gd-2 terminated.
[+] Console gd-2 created and executed via
Event-Driven wrapper in /home/user/GD . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. user@raspberrypi:~/GD $ echo 'call matrix_controller wake_matrix'
| x-console gd-1 send-stdin
user@raspberrypi:~/GD $ x-console gd-1 tail
user@raspberrypi:~/GD $ node
src/repl/repl.js HAUKI> [HAUKI]
POSIX Shared Memory attached to /genesis_mem
HAUKI REPL ready. Serving 0 network port(s).
HAUKI> load tests/fixtures/matrix_controller.c
[HAUKI] Loaded tests/fixtures/matrix_controller.c ->
Cloned to OID 0
HAUKI> call matrix_controller wake_matrix
[HAUKI] Call to 'wake_matrix' completed.
HAUKI> call matrix_controller wake_matrix
[HAUKI] Call to 'wake_matrix' completed.
HAUKI>
user@raspberrypi:~/GD $ x-console gd-2 tail 50
user@raspberrypi:~/GD $ /tmp/x_console_start_gd-2.sh
--- GENESIS DATA PLANE (Offset 0x1000) ---)...
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O
. O . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
user@raspberrypi:~/GD $