as part of the project tilck VMware employee develops a monolithic core, fundamentally different from Linux, but designed for compatibility with Linux at the binary level and The possibility of launching applications collected for Linux. The code is written in the language of si and spreads under the BSD license. At the current stage of development, the nucleus is supported only by the Architecture of the X86, but the code has been developed with the league universality and to the implementation of other architectures in the future.
The core supports the replacement multitasking and implements about 100 main Linux system calls, for example, FORK (),
Waitpid (), Read (), Write (), Select () and Poll (), which are enough to perform console applications, such as Busybox, VIM, TinyCC, Micropython and Lua, as well as graphic applications using the framework such as the game, such as the game fbdoom. To assemble programs for Tilck, tools based on the Musl library are offered.
Development is aimed at implementing the minimum necessary opportunities, avoiding overloading functionality, simple and understandable architecture, maximum simplification of code, small size of binary files, predictable (deterministic) behavior, ensuring minimal delays, achieving high reliability and simplifying development processes and testing.
The project does not set itself the purpose of use in multi-user server environment or desktop systems. Only a monolithic assembly with the modules built -in at the stage of compilation is supported. Fat16 and FAT32 in reading mode, as well as RAMFS, DEVFS and SYSFS are supported from file systems. Block devices have not yet been implemented, i.e. Everything is placed in memory. To abstract operations with FS, VFS is provided. Multiplying at the current stage of development is available only at the nucleus level (not yet provided in the user space).
The proposed set of drivers allows you to launch Tilck both surrounded by Qemu and on ordinary systems, loading from a USB drive. There is support for advanced sets of SSE, AVX and AVX2 instructions. For launch, your own interactive bootloader supporting systems with BIOS and UEFI is offered, but it is also possible to use third -party boots, such as GRUB2. When loading in Qemu, the core can operate surrounded with 3 MB of RAM.
At present, the project is positioned as a training, but in the long run it is possible that Tilck will grow to a level suitable for use as a kernel for built -in systems, which require predictable behavior and low delays. It is expected that Tilck can take an intermediate niche between solutions based on the Linux nucleus and specialized OS, operating in real time, such as Freertos and Zephyr. Among the plans, Tilck porting for ARM processors and processors without a memory control unit (MMU), adding a network subsystem, support of block devices and additional FS, such as Ext2.