Skip to content
This repository was archived by the owner on Dec 22, 2025. It is now read-only.

alx0rr/Basic-Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basic Core

Basic Core is an educational project designed to explore the fundamental principles of creating a bootloader and an operating system kernel. The project is divided into two stages: a simple assembler bootloader and a bootloader that transitions into 32-bit mode and calls a C++ function.

Project Structure

The repository contains two main folders:

1. basic-bootloader

This stage features a simple assembly bootloader that displays "Hello, World!" on the screen. It serves as an introduction to bootloader development and understanding low-level system interactions.

2. basic-kernel

In this stage, the bootloader transitions the system to 32-bit protected mode and calls a C++ function within the kernel. The kernel then outputs text to the console. This stage introduces concepts of kernel development and the interaction between assembly and C++.

Features

  • Stage 1: Basic bootloader with a simple message.
  • Stage 2: A more advanced bootloader that initializes 32-bit mode and integrates with a C++ kernel.

How to Build and Run

  1. Clone the repository:
    https://github.com/alx0rr/Simple-kernel.git
        
  2. Navigate to the desired stage folder.
  3. Run the build script provided in the folder.

Requirements

  • Assembly and C++ compilers (e.g., nasm, gcc, or clang).
  • An x86 emulator (e.g., QEMU or VirtualBox) for testing.

Contributing

Contributions are welcome! If you have improvements or find issues, feel free to open a pull request or issue.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A simple example of loading a kernel in C using a GRUB bootloader and own bootloader

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published