The LuaOS provides an operating system layer mainly addressing embedded systems. The LuaOS is executed by a LuaJit VM lvm with an extended synchronous and asynchronous IO layer similar to nodejs. The LuaOS is programmed entirely in the Lua programming language. The LuaOS and the lvm provide multi-level parallel and concurrent execution of scripts using fibers (co-routines) and threads.
The LuaOS and LuaOS WEB GUI are used for educations purposes and for production systems, too. Due to the easy learning programming language Lua students learn programming of distributed sensor networks using embedded computers like the Raspberry PI zero and a common WEB browser.
LuaOs WEB GUI
The LuaOS WEB interface provides a programming and execution interface for LuaOS nodes. The LusOS WEB GUI can be used in any WEB browser and communicates with LuaOS via HTTP communication.
The WEB interface consists of the following components:
- A LusOS shell interpreter featuring remote execution of LuaOS commands.
- A Lua script editor featuring syntax highlighting and remote execution of scripts.
- Message logging windows for remote script execution
- Integrated help system
- A WEB clipboard using an external WEB clipboard server providing sharing of program code directly from the editor window
The extended LuaJit Virtual Machine (lvm) consists of the following components:
- Improved and extended LuaJIT engine (Lua bytecode engine with native code just-in-time compiler)
- Asynchronous multi-threaded IO via the uv library (used in nodejs, too) and an extensinve API to uv
- Libraries (Threads, HTTP, HTML, RPC, Sensors, HAL, ...)
- A REPL command line interface
- Parallel and concurrent programming with processes, threads, fibers (co-routines)
- LVM is available for multiple operating systems and computer architectures, e.g., ARM Raspberry, x86, Linux, Solaris, Windows.