Lua Scripting Support Being Added To NetBSD Kernel
Phoronix: Lua Scripting Support Being Added To NetBSD Kernel
Support for the Lua scripting language is being added to the NetBSD kernel so that it's possible to interact with the BSD kernel's various subsystems using this popular scripting language. With a Lua interpreter being added to the kernel, it's even possible to extend the kernel's subsystems in this scripting language...
The NetBSD devs noted that they plan to write their nouveau graphics driver in Lua since you don't have to deal with memory leaks any longer, which makes it superior to the Linux implementation. Also parts of ZFS and the audio stack will be ported to Lua for its advanced flexibility and productivity compared to C.
This is actually pretty cool. I just hope they use a fast interpreter or JIT compiler. I have microbenchmarked LuaJIT and was utterly impressed by the speed of the code. It was more often than not faster than GCC or Clang compiled C++.
How can Lua (LuaJIT) be so fast?
Originally Posted by LinuxID10T
Anyone ever wrote a kernel in Lua?
There is an operating systems such as JNode and JX which are written in Java.
Singularity, Cosmos and SharpOS which are written in C#.
I personally had no clue why it was so fast, which made myself all the more interested in it. I am guessing that it is just very, very highly optimized for speed. You also have to remember just how small of a language Lua is. Since it is so small, my guess is that it is far easier to optimize each operation. Using the official interpreter often took five minutes to do what LuaJIT did for me in ~16 seconds. For that same benchmark, GCC took about 22 seconds and Clang 26 seconds. If you want the code for my microbenchmarks, ask and I can post it on Pastebin.
Originally Posted by uid313
I'm not sure if anyone has written a kernel in Lua, but for a while I was considering doing so myself. I don't think it would be very difficult at all. In fact, it would probably be significantly easier than Java or C#.
Last edited by LinuxID10T; 02-14-2013 at 12:10 PM.
maybe they can add a web browser and an email client while they are at it
In NetBSD the word "kernel" has lost its meaning.
"Kernel" means "hard durable core"
NetBSD has no "kernel" any more, it's soft mush all the way to the middle.
language interpreters are "infinite bug sponges". You squeeze them and bugs pour out. You can squeeze and squeeze for years and you will get an unending stream of bugs. Don't believe me? Look at any "mature" interpreted language, go visit its bug database. This is bad because kernels are supposed to be sanctuaries of quality code, not infestations of bugs.
Is this 1985 or something? What is the point of interpreting? Why not just recompile? We all have gigahertz processors and we use SS drives. It's not like it takes hours to recompile a kernel module like it did back in the 80's. We have awesome debugging tools now, so debugging kernel code is not the nightmare it was in 1985. vmware kernel modules compile themselves and install in a minute, and they are very extensive. I think these BSD people live in some distant past.
that's the stupiest idea i heard in a long long time.