Skip to content

Latest commit

 

History

History
91 lines (58 loc) · 2.87 KB

File metadata and controls

91 lines (58 loc) · 2.87 KB

Contributing to PromptOS

Thanks for your interest in PromptOS! This project welcomes contributions from OSDev enthusiasts, AI researchers, C developers, and curious hackers.

About This Project

PromptOS is an experiment: a complete x86_64 operating system generated 100% by AI. The author has basic programming knowledge but no prior OS development experience. This means the code may contain architectural quirks, suboptimal patterns, or outright bugs — and that's part of the story.

If you're an experienced systems programmer, your insights are especially valuable.


Ways to Contribute

Report Bugs

Found a crash, a broken build, or unexpected behavior? Open an issue using the Bug Report template. The more detail, the better — include QEMU output, serial logs, and reproduction steps.

Review Code

Architectural feedback, security analysis, and code quality reviews are highly welcome. This codebase is the output of an LLM, and expert human review is exactly what it needs.

Improve Documentation

Spotted a doc that's wrong, outdated, or missing? PRs for documentation improvements are always welcome.

Add Tests

The test infrastructure (tests/) has stubs that need real implementations. Adding meaningful tests is a great entry point.


Getting Started

  1. Read the README — understand what the project is and what it isn't.
  2. Set up your build environment — follow INSTALL.md for cross-compiler setup.
  3. Run the OS — get it booting in QEMU before making changes.
  4. Pick an issue — look for good first issue or help wanted labels.

Development Workflow

# Build everything
make all

# Run in QEMU
./scripts/run-qemu.sh

# Run host unit tests (no QEMU needed)
make test-host

# Build with debug symbols
make DEBUG=1

For Windows users, see the .ps1 scripts in the root and docs/HYPERV_SETUP.md.


Code Style

Please follow docs/STYLE.md. Key points:

  • C17 standard
  • Snake_case for functions and variables
  • SCREAMING_SNAKE_CASE for macros and constants
  • 4-space indentation
  • Kernel code: no floating point, no SSE/MMX, no stack-allocated large buffers

Pull Request Guidelines

  • One logical change per PR
  • Reference the relevant issue (Closes #123)
  • Ensure the project still builds (make all)
  • Run host unit tests (make test-host) before submitting
  • Keep changes focused — large refactors should be discussed in an issue first

Important Caveats

  • This code was generated by an AI and may contain subtle bugs or security vulnerabilities
  • The author is not a systems programming expert — please be kind in reviews
  • The goal is learning and exploration, not a production-ready OS
  • Security vulnerabilities are expected — see SECURITY.md for the disclosure policy

Questions?

Open a discussion or an issue. We're happy to help newcomers get oriented.