AstraKernel is a minimal experimental kernel written in modern C and ARM assembly, designed to run on QEMU's VersatileAB (Cortex-A8) platform. The purpose is educational, showing the fundamental steps of bringing up a bare-metal system, from low-level bootstrapping to higher-level interactive features to explore kernel development concepts.
========================================
AstraKernel v0.1.0
Built Aug 27 2025 at 12:56:35
========================================
CPU: Cortex-A8 @ 200MHz (simulated)
RAM: 128MB SDRAM at 0x00000000
Welcome to your own little Astra world!
Type away, explore, have fun.
AstraKernel is running...
Press Ctrl-A and then X to exit QEMU.
AstraKernel >
- Bootstrapping: stack setup, BSS clearing, entry into the kernel main.
- UART I/O: putc/puts, getc/getline, basic shell loop.
- Vector Table: Define vector table for exceptions/interrupts.
- Basic Timer Interrupt: Configure one hardware timer, hook its interrupt to increment a "tick" counter.
Make sure you have an ARM cross-compiler installed (e.g., arm-none-eabi-gcc
) and qemu-system-arm
.
make
Developers also have the option to run the kernel with custom flags, such as:
make KFLAGS="-USE_KTESTS -MY_DEFFLAG"
Important
make
will clean, build, and run the kernel in QEMU. You can also run
make qemu
to run the kernel without cleaning or building it again.
If you have Docker installed, you can also run AstraKernel through a Docker container:
make docker
Important
make docker
will pull from the most recent main
commit from the upstream repository
https://github.com/sanbox-science/AstraKernel.git
.
If you wish to use a local copy, you can run make docker-dev
, which will copy all
local build files into the repository.
For more details about this kernel, refer to the AstraKernel Documentation.
Note
The manual is a work in progress and may not cover all features yet.
AstraKernel is an educational project created to demonstrate operating system concepts.
It is currently in version and should be considered experimental software.
- Not Production-Ready: AstraKernel is not stable, secure, or suitable for production environments.
- Educational Use Only: The project is provided for learning, research, and experimentation purposes.
- No Warranty: AstraKernel is distributed on an “as is” basis, without warranties or conditions of any kind, express or implied.
- Limitation of Liability: The authors and contributors assume no responsibility or liability for any damages, data loss, or issues arising from the use of AstraKernel.
By using AstraKernel, you acknowledge that you understand these limitations.
This project is licensed under the GNU GENERAL PUBLIC License. See the LICENSE file for details.