Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3 logo

Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3

Free

Bare metal ultralight kernel for Raspberry Pi 3

FreeFree tier
Type
Open Source

About Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3

NarcOS is a bare-metal ultralight kernel for the Raspberry Pi 3 (BCM2837 SoC, Cortex-A53). It runs completely without an operating system, giving full hardware control to the programmer. Compiled with the GNU ARM Embedded Toolchain (arm-none-eabi-gcc), it replaces the standard kernel7.img on the SD card. Currently, NarcOS can generate a video pattern via HDMI and blink an LED through GPIO18. The project includes a Makefile and a script (oscopy.sh) to compile and deploy the kernel. Licensed under Apache-2.0, it is intended for educational purposes and low-level experimentation.

Key Features

Bare-metal kernel for Raspberry Pi 3 (BCM2837, Cortex-A53)
No operating system; complete hardware control
Compiled with GNU ARM Embedded Toolchain (arm-none-eabi-gcc)
Generates a video pattern through HDMI
Blinks an LED using GPIO18
Includes a Makefile and deployment script (oscopy.sh)
Replaces kernel7.img on the SD card
Apache-2.0 license

Pros & Cons

Pros
  • Full control over CPU and peripherals
  • Very lightweight and minimal codebase
  • Open source with permissive Apache-2.0 license
  • Simple build and deploy process using provided scripts
  • Good starting point for learning bare-metal embedded development
Cons
  • Limited functionality: currently only HDMI pattern and LED blink
  • Under active development and not feature-complete
  • Requires understanding of bare-metal programming concepts
  • No OS features like memory management, file systems, or multitasking
  • Only supports Raspberry Pi 3 (BCM2837)

Best For

Educational bare-metal programming on Raspberry Pi 3Learning low-level ARM assembly and C without an OSExperimenting with direct hardware control on the BCM2837 SoCFoundational project for building a custom RTOS or kernel

FAQ

What is bare-metal?
Bare-metal means running code directly on the hardware without an operating system. All code is Linux-independent, no standard C libraries are taken for granted, and every processor movement is fully under the programmer's control.
How do I install NarcOS?
Install the GNU ARM Embedded Toolchain, clone the repository, compile with 'make', copy the generated kernel7.img to the SD card (replacing the existing one), ensure boot files (config.txt, bootcode.bin, start.elf) are present, and boot the Raspberry Pi.
What hardware is required?
NarcOS is designed for the Raspberry Pi 3 (BCM2837 SoC). You need an SD card with a FAT partition containing the required boot files, and optionally an HDMI display and GPIO18 LED to observe the output.