Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 1.93 KB

File metadata and controls

34 lines (24 loc) · 1.93 KB

Contributing to KernelLab

Welcome, and thank you for considering contributing to KernelLab! Our goal is to make this the ultimate Open Source repository for learning Operating System concepts.

How You Can Contribute

There are several ways you can contribute to KernelLab:

1. 🌍 Bring Your Own Language (BYOL)

We want this repository to be a polyglot playground! The current implementation is in C++, but we would love to have implementations of these algorithms in Python, Rust, Go, Java, JavaScript, and more.

How to add your favorite language:

  1. Create a top-level directory for your language (e.g., python/, rust/, java/).
  2. Inside that directory, try to mirror the existing structure (e.g., cpu_scheduler, memory_manager, disk_scheduling, etc.).
  3. Add a README inside your language's directory explaining how to run your code.
  4. Open a Pull Request!

This is a fantastic way to practice a language you are learning while cementing your OS knowledge.

2. 📝 Improve Documentation & Explanations

Clear, neat, and easy-to-understand code is our priority. If you find a piece of code that lacks comments or explanations, please open a PR to add educational comments! Help make the code as readable as a textbook.

3. 🐛 Bug Fixes and New Algorithms

If you notice an issue, or want to add a missing algorithm (like LOOK/C-LOOK for disk scheduling, or Banker's Algorithm for deadlocks):

  • Open an Issue first to discuss it.
  • Once discussed, write clean, documented code and submit a Pull Request.

Pull Request Guidelines

  • Be neat and clean: Code should be easy to read for a student looking at it for the first time.
  • Add Comments: Explain why the algorithm works, not just what the syntax does.
  • Test your code: Ensure your code compiles and runs properly before submitting.
  • Be kind: Follow our Code of Conduct.

Thank you for helping make KernelLab a great resource for everyone!