Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emomaxd/kernel
A learning-oriented project focused on developing a basic OS with a simple bootloader and kernel. The goal is to understand low-level programming and OS development concepts.
https://github.com/emomaxd/kernel
assembly bootloader c-language kernel low-level operating-system system-programming x86 x86-64
Last synced: about 2 months ago
JSON representation
A learning-oriented project focused on developing a basic OS with a simple bootloader and kernel. The goal is to understand low-level programming and OS development concepts.
- Host: GitHub
- URL: https://github.com/emomaxd/kernel
- Owner: emomaxd
- Created: 2024-08-22T11:27:42.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-08-29T18:59:59.000Z (4 months ago)
- Last Synced: 2024-10-12T07:41:19.339Z (3 months ago)
- Topics: assembly, bootloader, c-language, kernel, low-level, operating-system, system-programming, x86, x86-64
- Language: C
- Homepage:
- Size: 64.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kernel
## Overview
This project involves developing a custom operating system (OS) that includes a bootloader and a kernel. The OS is written in Assembly and C and is intended to run on both real hardware and virtual machines. The project features a basic bootloader using Limine.
## Features to come
- Dynamic Memory Allocation
- File System
- Process Scheduling
- User Space
- System Calls## Building & Running
To run the OS in a virtual environment, simply execute:
```bash
make all & make run
```## Burning into Flash
1. Identify the address of your flash drive (e.g., `/dev/sdX`).
2. Run the following command, this will create image.hdd file```bash
./flash.sh
```
3. Use the `prepare_flash.sh` script with two command-line parameters:```bash
sudo ./prepare_flash.sh image.hdd /dev/sdX
```4. Once the OS is burned onto the flash drive, you can boot it on real hardware.
---
![OS Output](git/OS_output_qemu.png)