Skip to content

rayensamali/advanced-kernel-Using-C-and-assembly

Repository files navigation

C-KERNEL-logo

C-KERNEL

❯ REPLACE-ME

license last-commit repo-top-language repo-language-count

Built with the tools and technologies:

C


🔗 Table of Contents

📍 Overview

❯ This repository contains the source code for a basic custom operating system kernel named TUN-OS. This version of the kernel handles basic keyboard input, output to the screen, and manages interrupts, utilizing both C and assembly code.


👾 Features

❯ - Basic Keyboard Input Handling: Processes user input via the keyboard, including special keys like Enter and Backspace.

  • Screen Output: Direct text output to the console using video memory.
  • Interrupt Descriptor Table (IDT) Setup: Proper initialization of interrupt handling.
  • Programmable Interrupt Controllers (PIC) Initialization: Setting up the PIC to manage hardware interrupts.

📂 Repository Structure

└── C-kernel/
    ├── Makefile
    ├── README.md
    ├── command_line.c
    ├── command_line.h
    ├── disk.img
    ├── disk_io.c
    ├── disk_io.h
    ├── file_system.c
    ├── file_system.h
    ├── io.c
    ├── io.h
    ├── kernel-1
    ├── kernel.asm
    ├── kernel.c
    ├── kernel.h
    ├── kernel.o
    ├── keyboard_map.h
    ├── link.ld
    ├── stringlib.c
    └── stringlib.h

🚀 Getting Started

🔖 Prerequisites

C: version x.y.z

📦 Installation

Build the project from source:

  1. Clone the C-kernel repository:
❯ git clone https://github.com/rayensamali/C-kernel
  1. Navigate to the project directory:
cd C-kernel

🤖 Usage

To run the project, execute the following command:

❯ make;make run

📌 Project Roadmap

  • Task 1: Create the keyboard driver
  • Task 2: Create a home page and command line
  • Task 3: Create a file system
  • Task 4: Memory management (coming soon)

🤝 Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/rayensamali/C-kernel
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


🙌 Acknowledgments

  • List any resources, contributors, inspiration, etc. here.

About

Kernel using C language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors