Skip to content

projectzerodev/zinix

Zinix

DiscordBadge LicenseBadge

Caution

Zinix is in early development. Many components are incomplete, experimental, or not yet implemented.

Zinix is a minimal operating system written in C.

Building

This section covers building Zinix.

Prerequisites

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.

Getting the Source

git clone https://github.com/projectzerodev/zinix.git
cd zinix
make deps # Fetches dependencies

Generaing a Configuration

make defconfig

For more info see Configuring.

Building the ISO

make

Running

This section covers running Zinix

QEMU

Before running in QEMU make sure qemu-system-x86 is installed.

You can run Zinix in QEMU by running:

make run

Real Hardware

You 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

Configuring

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 menuconfig

Getting compile_commands.json

The 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 bear

After that you will need to restart you LSP. In Visual Studio Code press Ctrl + Shift + P and run clangd: Restart language server.

Installing Git Hooks

Git hooks makes sure that commits follow a specific pattern. You install them by running:

make hooks

License

Zinix is licensed under the GNU GPL v3.0 License. See COPYING for more details.

Copyright © 2024-present Viktor Popp and contributors.

About

Minimal Operating System

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published