A Lua interpreter in the NetBSD kernel
netbsd-soc.sourceforge.net
netbsd-soc.sourceforge.net
[1] http://blog.netbsd.org/tnf/entry/the_lua_scripting_language_in
[2] http://cvsweb.netbsd.org/bsdweb.cgi/src/share/examples/lua/?only_with_tag=MAINHonestly, I think I would rather see the userspace work out of core (ie: not shipping w/ NetBSD) and just put into pkgsrc (NetBSD version of Ports, or dpkg, etc) as a NetBSD-only package.
The kernel work -- I'm just not familiar with deep kernel hacking, so perhaps it's my ignorance, but an interp in-kernel doesn't sound attractive to me. I think I'd rather see kernel access pushed to userspace, like FUSE/PUFFS[1] does for filesystems, or even how procfs allows reading/writing kernel from userspace. Jamming more into the kernel, especially an interpretter makes me shake my head. It could be fun as a personal project, or a Clever Hack, but for a shipping production-ready system... reminds me of when RedHat introduced it's in-kernel http server[2].
All that said -- NetBSD is _still_ the most attractive Unix I'm aware of. I occasionally consider a Linux or FreeBSD, but haven't left yet, since NetBSD 1.6 (c. 2002)
Having a dynamic interpreted language runtime available as just another item in the syscall table [2] would allow arbitrary, unrestricted execution of code that would not even respect resource limitations set in the root user's shell.
[0] http://en.wikipedia.org/wiki/Mandatory_access_control
http://lua-users.org/wiki/SandBoxes
There's a slide titled security in Marc Balmer's talk, but I didn't get where he was headed.
Having the interpreter always available in user space seems more logical.
You could do some fast and very sophisticated manipulation of network traffic streams without requiring that each packet be copied to and from user-space. You wouldn't even have to develop much packet-twiddling code. There is a surprisingly large amount of network-specific open source Lua.
Wireshark, the most popular network protocol analyzer, has dissectors written in Lua. [0]
Nmap, the network mapper and port scanner, has a Lua-based scripting engine to allow session and endpoint property discovery in great detail. [1]
The popular intrusion detection tool Snort Security Platform (SnortSP) has included a Lua interpreter since version 3.0. [2]
Yes, keeping the interpreter in user-space is safer. I have a hard time imagining sandboxing within the language runtime being able to deal with some of the nastier traffic. Perhaps one prudent thing to do with an in-kernel interpreter would be to use a project-specific sanitizer that could reliably escape tokens and keywords found in live traffic.
[0] "Lua Support in Wireshark" http://www.wireshark.org/docs/wsug_html_chunked/wsluarm.html
[1] "Nmap Scripting Engine" http://nmap.org/book/nse.html
[2] “A Pig(Snort), A Moon (Lua) and one very happy developer (Bill)” http://www.linuxsecurity.com/content/view/128135
The short answer will be, it depends on how it's done, and what the scope is. You wouldn't want arbitrary code loaded in.
I LOVE the BSD's especially NetBSD - what else can make some of my old sentimentally attached hardware work so well.
I think I might be the only one running NetBSD as a DOM-0.
I know what you mean. I was running NetBSD on an iMac G4 (the sunflower one) for years and it was great (then the macppc NVidia broke for several months so I switched to OpenBSD).
I use it as a photo server sitting on my bookcase.
Without wishing to get into a flame war, once you try a BSD, the Linux stuff feels a little...raw.