ΠΡΠΎΠ΅ΠΊΡ Lunatik ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ Lua Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΄ΡΠ° Linux ΠΈ Π±ΡΡΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Lua, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lua-ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Lua-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ΄ΡΠ΅ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ C API Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Lua-ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ· ΡΠ΄ΡΠ° Linux, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Lua ΠΈΠ· ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠ΄ΡΠ° ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Lua ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Lua API ΠΈ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ.
Π Lua-ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠΈΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΄ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ io ΠΈ os, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ math. Π C API Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ luaL_Stream, luaL_execresult, luaL_fileresult, luaopen_io ΠΈ luaopen_os.
Π‘ΡΠ΅Π΄ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Lunatik Π² ΡΠ΄ΡΠ΅, Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π² ΡΠ΄ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° runtime-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ Lua Π² ΡΠ΄ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ REPL (Read–Eval–Print Loop).
ΠΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Lunatik. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΊΡΠΈΠΏΡΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ½ΠΈΡΡΠ΅ΡΠ° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° Ρ MAC-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ, ΠΠ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ECHO, ΠΊΠ΅ΠΉΠ»ΠΎΠ³Π³Π΅ΡΠ° Π΄Π»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ Π»ΠΎΠ³Π° Π½Π°ΠΆΠ°ΡΡΡ
ΠΊΠ»Π°Π²ΠΈΡ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ «↑ ↑ ↓ ↓ ← → ← → LCTRL LALT» ΡΠ΄ΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ), Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ, ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π½Π°Π΄ΡΡΡΠΎΠ΅ΠΊ Π½Π°Π΄ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Netfilter ΠΈ XDP.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru