Date: Mon, 27 Feb 2017 19:01:43 +0530 From: Saurav Sachidanand <sauravsachidanand@gmail.com> To: freebsd-hackers@freebsd.org Subject: [GSoC 2017] Original proposal: Port kernel Lua to FreeBSD Message-ID: <CACKq%2BiXanfuu506LoBbKkh4p2w5cqzZ7cE0pMtmG7iygSurBmw@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hello FreeBSD community, I'm =E2=80=8B Saurav Sachidanand, and I'm=E2=80=8B a CS sophomore studying in India =E2=80=8B. I have an interest in operating systems development and wish to contribute to the FreeBSD community. I'm proficient with C and have some experience in kernel programming. Hence, I'd like to propose an original project for GSoC 2017 that I feel would benefit this community. In past years, the Lua interpreter was ported to run inside the Linux and NetBSD kernel [1]. Lua was chosen because it's interpreter is very small (~= 240 KB) compared to that of Python or Ruby, it's MIT licensed, and is almost freestanding. A working demonstration of it is a packet filtering algorithm written entirely in kernel Lua [2]. Specifically, my proposal would be to port the following that are currently written for NetBSD: - the modified Lua VM source code with _KERNEL preprocessor directives to exclude user-space functionality like floating point, the io and os module in the standard library, etc. [3] - the kernel module device driver for /dev/lua, to which Lua scripts are fed to be executed [4], [5] - the luactl user-space program to control the Lua device and a couple of sysctl variables which serve similar purpose [6], [7] And then: - run the Lua test suite targeting whatever we support in the kernel to make sure it works [8] - and write Lua bindings to the kernel interfaces that would interest the FreeBSD community Since NetBSD and FreeBSD have similar kernel interfaces (mutexes, linked lists, device switch interface), the porting shouldn't involve too much code refactoring. Also, this would all be an experiment in that we don't fully know what the real world use cases might be, but it would attract more people to writing kernel code who otherwise wouldn't because of having to do everything in C. And it would be interesting to carry out it out in FreeBSD as well since it has a larger community than NetBSD. I humbly request anyone who is interested in this project to be my potential mentor(s) for GSoC. More slides on kernel Lua in NetBSD - [9], [10]. Thanks, Saurav [1] - http://www.netbsd.org/~lneto/dls14.pdf [2] - https://www.netbsd.org/~lneto/eurobsdcon14.pdf [3] - https://github.com/jsonn/src/tree/trunk/external/mit/lua/dist/src [4] - https://github.com/IIJ-NetBSD/netbsd-src/tree/master/sys/modules/lua [5] - https://github.com/IIJ-NetBSD/netbsd-src/tree/master/ sys/modules/luasystm [6] - https://github.com/IIJ-NetBSD/netbsd-src/tree/master/sbin/luactl [7] - http://netbsd.gw.com/cgi-bin/man-cgi?lua+4+NetBSD-current [8] - http://www.lua.org/tests/ [9] - https://www.netbsd.org/gallery/presentations/mbalmer/ fosdem2012/kernel_mode_lua.pdf [10] - https://www.lua.org/wshop13/Cormack.pdf
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACKq%2BiXanfuu506LoBbKkh4p2w5cqzZ7cE0pMtmG7iygSurBmw>