8f0ac219dd
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.
20 lines
1.2 KiB
Text
20 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.
|