Skip to content

A WIP minimalistic OS kernel. Built with NASM, operates in 32-bit protected mode. ISO images built on Docker and tested with QEMU, .

Notifications You must be signed in to change notification settings

UgurkanTech/Kernarch

Repository files navigation

Kernarch - created by Uğurkan Hoşgör

This is a work-in-progress operating system kernel being developed with a specific purpose in mind. As part of an ongoing journey in OS development, it's a creative playground where new concepts and skills are discovered.

Screenshot at Jun 16 19-41-07

Current Features

  • GRUB bootloader
  • 32-bit protected mode
  • Global Descriptor Table (GDT)
  • C runtime Integration

Upcoming Features - WIP

  • Basic Memory Management
  • Interrupt Handling
  • VGA Display Features
  • File System Support
  • Device Drivers
  • Graphical User Interface (GUI)
  • Networking Capabilities
  • Multitasking Support

Building ISO with Docker and testing with QEMU

The ISO is built using Docker and upon successful completion, the ISO file will be created in the output directory. To initiate the process, the start.sh script is run.

./build.sh

Once the ISO is built, it will be tested using QEMU. Please ensure QEMU is installed on your host machine.

Testing with Qemu

To test purposes, use QEMU. Run the assembled kernel binary with the following command:

qemu-system-x86_64 -cdrom output/KernarchOS.iso

Manuel building and linking

Manual building and linking is not recommended. However, if needed, the assembly can be done with NASM and the compilation with GCC as shown below:

# Assemble with NASM
nasm -f elf32 boot.asm -o boot.o

# Compile with GCC
gcc -m32 -c kernel.cpp -o kernel.o

# Link with ld
ld -m elf_i386 -T link.ld -o kernel.bin boot.o kernel.o

About

A WIP minimalistic OS kernel. Built with NASM, operates in 32-bit protected mode. ISO images built on Docker and tested with QEMU, .

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published