Ang proyekto sa Lunatik nagpalambo sa mga himan nga nagtugot kanimo sa paggamit sa Lua nga pinulongan aron madugangan ang pagpaandar sa Linux kernel ug dali nga pagsulat sa handler scripts nga modagan sa lebel sa kernel. Aron ipatuman ang code, usa ka Lua interpreter ang gigamit, giusab aron magtrabaho sa lebel sa kernel. Ang code sa proyekto gisulat sa C ug giapod-apod ubos sa lisensya sa MIT.
Usa ka espesyal nga drayber ang gigamit sa pagkarga ug pag-execute sa mga script sa Lua sa lebel sa kernel, ug usa ka utility sa command line ang gitanyag aron makontrol ang palibot sa Lua sa kernel gikan sa wanang sa tiggamit. Naghatag usab ang proyekto ug C API aron makontrol ang pagkarga ug pagpatuman sa mga script sa Lua gikan sa kernel sa Linux, nga magamit, pananglitan, aron mapatuman ang indibidwal nga mga tigdumala sa Lua gikan sa tradisyonal nga mga module sa kernel nga gisulat sa C. Ang Lua API ug usa ka set sa mga binding gihatag aron ma-access ang kernel functions gikan sa Lua code.
Ang mga script sa Lua mahimong mogamit usa ka subset sa mga gimbuhaton ug kapabilidad sa librarya, limitado tungod sa mga detalye sa pagtrabaho sulod sa kernel. Pananglitan, ang code dili mosuporta sa floating point operations, ang io ug os library dili magamit, ug daghang mga function sa math library ang dili magamit. Ang C API wala mosuporta sa luaL_Stream, luaL_execresult, luaL_fileresult, luaopen_io, ug luaopen_os functions.
Lakip sa mga kapabilidad sa command line utility, mahimo nimong kanselahon ang mga sugo alang sa pagkarga, pagdiskarga ug pag-reload sa mga module sa Lunatik sa kernel, pagpakita sa status sa load modules, pagtan-aw sa usa ka lista sa mga script nga nagdagan sa kernel, pagpadagan sa mga script, paghimo ug pagpahunong sa Lua runtime palibot sa kernel, gamit ang interactive shell REPL (Read –Eval–Print Loop).
Ang proyekto naghatag usab og mga ehemplo aron matabangan ka sa pagtimbang-timbang sa mga kapabilidad sa Lunatik. Pananglitan, adunay mga script nga magamit nga nagpatuman sa usa ka character device driver, usa ka network sniffer nga adunay MAC address logging, ug usa ka database para sa pagtipig sa key/value data. server para sa ECHO protocol, usa ka keylogger para sa pag-log sa mga napindot nga key, usa ka keyboard locker (human sa pagpindot sa “↑ ↑ ↓ ↓ ← → ← → LCTRL LALT”, ang kernel mohunong sa pagproseso sa mga keystroke hangtod nga masulod pag-usab ang sequence), usa ka driver para sa pagmonitor sa mga system call, usa ka routing service, ug lain-laing mga add-on para sa Netfilter ug XDP subsystems.
Source: opennet.ru
