parent 3b46ba25
# dukboots (working title)
A blend of [duktape]( and [it boots](
## Existing projects that are way better than this one
- [seaduk](
- [nojs](
- [NodeOS](
- [runtime.js](
## Then why does this exist...?
This way I can try really crazy stuff in a zero pressure environment.
Once I've made enough mistakes to scrap it and do a full rewrite, maybe
I'll team up with some peeps.
Also, I don't want to tell some really really smart people that they are
doing it all wrong, that they're simply repeating the mistakes of Node, that
the majority of software written today is completely, utterly insecure, and
the world is doomed unless we change our programming model completely. Bold
claims require bold whatever whatever and I need a space to fully work through
my ideas on how to fix the world, see what the impact is, and why they won't
so we're all still doomed.
## How?
Pragmatism. Sure, I'd love a JavaScript OS that runs directly on bare metal
or a hypervisor, but that's simply ONE idea. To start, I'm doing the simpler
object of targeting the Alpine Linux Docker image. That has most of the
size advantage of a unikernel anyway. And yes, that totally means I'm cheating
and not using [boots]( at all. For now.
## So what is this thing?
A C program. You can compile it with `` which just runs gcc with a bunch of arguments.
It sadly uses the C standard library for now, so you have to build it against something.
On Alpine Linux, that is `musl` and on Ubuntu Linux that's `glibc` I think.
Both Ubuntu and Alpine Linux are supported.
I've got a fancy Gitlab Pipeline that compiles and tests the program on both
Ubuntu and Alpine Linux. Mostly because it would slow things down if I had to
always compile against Alpine Linux when my dev environment is Bash for Windows.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment