SQLiteOS is a database-backed operating system that runs SQLite3 in the Linux kernel and provides database-backed services to user space, such as interprocess communication (IPC) and transactional virtual file system (VFS). Please follow traditional Linux build instructions. Currently the extension is tested on x86 Microsoft-WSL2 (main branch) and x86 Amazon EC2 (linux-aws branch). Please direct any questions via git issues or email to vinayakjha@ku.edu. This is a hobby project which begun as a course-project for a graduate systems course at University of Kansas. Strongly inspired by DBOS.
Also see transactional extension of MyISAM, which leverages SQLiteOS (please don't use it for any production database, since the file system is in-memory, and consequently, the database data is also in-memory).
The code is made open-source partially in the spirit of learning, and if you find any improvements, please drop an email or an issue, or, even better, a PR!
IPC implementation details can be found here
The WSL2-Linux-Kernel repo contains the kernel source code and configuration files for the WSL2 kernel.
If you discover an issue relating to WSL or the WSL2 kernel, please report it on the WSL GitHub project. It is not possible to report issues on the WSL2-Linux-Kernel project.
If you're able to determine that the bug is present in the upstream Linux kernel, you may want to work directly with the upstream developers. Please note that there are separate processes for reporting a normal bug and a security bug.
Is there a missing feature that you'd like to see? Please request it on the WSL GitHub project.
If you're able and interested in contributing kernel code for your feature request, we encourage you to submit the change upstream.
Instructions for building an x86_64 WSL2 kernel with an Ubuntu distribution are as follows:
- Install the build dependencies:
$ sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev
- Build the kernel using the WSL2 kernel configuration:
$ make KCONFIG_CONFIG=Microsoft/config-wsl
Please see the documentation on the .wslconfig configuration file for information on using a custom built kernel.