21 lines
1.2 KiB
Text
21 lines
1.2 KiB
Text
|
What? An FFI implementation of the Linux, NetBSD, FreeBSD and OSX
|
||
|
kernel ABIs for LuaJIT. This means you will be able to program all
|
||
|
the functionality the Unix kernel provides to userspace directly
|
||
|
in Lua. You can view it as a high level language equivalent of the
|
||
|
Busybox project in a way, although the functionality it provides
|
||
|
is somewhat different, and the interface very different.
|
||
|
|
||
|
Why? First it provides a comprehensive set of system call APIs for
|
||
|
programming sockets, files and so on, including the more obscure
|
||
|
things (eg file change notifications). Second it provides higher
|
||
|
level interfaces such as network interface configuration, so your
|
||
|
application can control its entire runtime interface including IP
|
||
|
addresses routing and so on. Third it provides tools for added
|
||
|
security, such as support for Linux namespaces (containers), system
|
||
|
call filtering (seccomp type 2), capabilities and so on, all with
|
||
|
a script language interface that is much simpler to use than the
|
||
|
C interface. As it is Lua based it can easily be embedded in another
|
||
|
language; in the future ports to other scripting languages are
|
||
|
planned. It also serves as a way of learning how the operating
|
||
|
system interfaces work in a more forgiving environment than C.
|