Caution
Zinix is in early development. Many components are incomplete, experimental, or not yet implemented.
Zinix is a minimal operating system written in C.
This section covers building Zinix.
You will need the following external dependencies to build Zinix:
| Dependency | Version | Purpose |
|---|---|---|
clang |
18+ | C23 compiler |
nasm |
2.16+ | Assembler |
make |
4.4+ | Build system |
xorriso |
1.5+ | ISO creation |
git |
2+ | Version control |
Keep in mind that you do not need to check every version unless you have issues building. Only Clang must meet the version requirement because of C23 support.
git clone https://github.com/projectzerodev/zinix.git
cd zinix
make deps # Fetches dependenciesmake defconfigFor more info see Configuring.
makeThis section covers running Zinix
Before running in QEMU make sure qemu-system-x86 is installed.
You can run Zinix in QEMU by running:
make runYou can run Zinix on real hardware by using Balena Etcher to flash the ISO to a thumb drive. Keep in mind that Rufus is not supported.
Testing on real hardware is made at least every merge into the stable branch.
The hardware which is being tested on is the following:
- Intel i7-2760QM
- ATI Radeon 6970M
- 16 GB DDR3
You can configure the build using Kconfig. Keep in mind you will need to
have kconfig-frontends installed.
You can launch the configuration menu by running:
make menuconfigThe compile_commands.json file provides clangd and code editors with
information about how each source file in a project is compiled. Before
generating it make sure bear are installed.
You can get compile_commands.json by running:
make bearAfter that you will need to restart you LSP. In Visual Studio Code press
Ctrl + Shift + P and run clangd: Restart language server.
Git hooks makes sure that commits follow a specific pattern. You install them by running:
make hooksZinix is licensed under the GNU GPL v3.0 License. See COPYING for more details.
Copyright © 2024-present Viktor Popp and contributors.