On Sun, May 5, 2013 at 9:09 AM, Javier Guerra Giraldez <javier@xxxxxxxxxxx> wrote: > On Sat, May 4, 2013 at 11:22 PM, Alexander Gladysh <agladysh@xxxxxxxxx> wrote: >> >> There are several projects that aim to launch an application framework >> as a Xen VM instance without OS. >> > ..... >> >> This kind of feat should be possible with LuaJIT too, and it looks >> like an interesting and potentially very useful project. > > > I see a few different ways to architect this: <...> > - LuaJIT "kernel" + some "ljxencall" (like ljsyscall but for Xen > syscalls instead of Unix ones). Now there's really no OS! not even > ljsyscall would work on such an image, but the FFI can do all the > Xen-provided syscalls. the downside is that these are _very_ low > level, more like some high-level hardware than some low-level system. > AFAIK, there's no filesystem, no TCP/IP, no processes, no threads... > What you _do_ get is a high-speed channel to communicate with other > VMs, and some calls to manage CPU states and interrupts. > so... which would you like? myself, i'd go the busybox way, if > feeling hardcore maybe the "LuaJIT as init" way. the last one (LuaJIT > as kernel) would be more realistic if you add a TCP/IP stack. maybe > the µIP library... or even better, rewrite it on LuaJIT+FFI! but I > think the Xen syscalls don't include even a packet-level device, just > an inter-VM channel that is used to talk to the Dom0 daemons. I'm interested in the last one — LuaJIT "kernel". As I understand (correct me if I'm wrong), both examples in my original post do that (and it should be possible to borrow something from them, perhaps). I need some way to communicate with nginx frontend (in a separate DomU, lives in a full-blown OS), with Redis DB (same), with neighbour workers / request handlers (OS-less), and somewhere to write logs (can be a networking-based logger or equivalent). Lack of processes/threads is not a problem — my code is not threaded, and I'll simply spawn several more VMs. Alexander.