Kiwi is an open source operating system. It uses a custom kernel design/API, taking inspiration from both POSIX/UNIX and Windows NT. Some POSIX compatibility is implemented by userspace libraries on top of the native kernel API, which is currently capable of running some UNIX command line software such as Bash.
More screenshots in the Screenshot Archive.
Supported platforms:
- 64-bit x86 PCs
- ARM64 (work-in-progress)
- QEMU 'virt' machine
- Raspberry Pi 3/4
Features:
- Custom object-oriented kernel API
- Processes/threads
- Virtual memory
- IPC
- Event polling/waiting
- Filesystem
- Device access
- Partial POSIX compatibility implemented over the native API
- Multi-core CPU support
- Shared library support
- Networking (IPv4, TCP, UDP, DHCP, DNS)
Planned features (in rough priority order):
- Common hardware support (disk devices, USB input)
- Finish ARM64 port
- Port additional software
- GUI
To build Kiwi you need the following prerequisites:
- SCons 4.x
- ncurses
- xorriso
- mtools
- dosfstools
- e2fsprogs
Kiwi makes use of git submodules to include various pieces of 3rd party software it uses. These must be cloned after this repository has been cloned by running:
$ git submodule update --init
You must then create a build configuration file by running:
$ scons config
In that menu you will at least need to change the "Toolchain directory" option under "Build options", to point to a location in which to install the Kiwi cross-compiler. This location must be writable by your user. You may also wish to change the toolchain build jobs option to e.g. the number of CPU cores in your system to speed up the toolchain build.
After saving the configuration file, build the toolchain (only needs to be done once) by running:
$ scons toolchain
Finally, build the system with:
$ scons
Once the system is built, you can run in QEMU with:
$ scons qemu
The qemu
target runs with a persistent disk image that is incrementally
updated with changes to the built system, and preserves other user data in the
image.
You can also build disk images with:
# Bootable ISO image (BIOS + EFI).
$ scons images/amd64/cdrom.iso
# Bootable disk image (BIOS + EFI).
$ scons images/amd64/disk.img
Kiwi is licensed under the terms of the ISC license.