❯ REPLACE-ME
Built with the tools and technologies:
- 📍 Overview
- 👾 Features
- 📂 Repository Structure
- 🧩 Modules
- 🚀 Getting Started
- 📌 Project Roadmap
- 🤝 Contributing
- 🙌 Acknowledgments
❯ 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.
❯ - 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.
└── 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.hC: version x.y.z
Build the project from source:
- Clone the C-kernel repository:
❯ git clone https://github.com/rayensamali/C-kernel- Navigate to the project directory:
❯ cd C-kernelTo run the project, execute the following command:
❯ make;make run-
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)
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
C-kernelproject. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/rayensamali/C-kernel
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
- List any resources, contributors, inspiration, etc. here.