This directory contains the complete documentation for the OpenOS project, organized into logical sections for different purposes and audiences.
Core architectural documentation describing the system design, module organization, and technical implementation details.
Contents:
ARCHITECTURE.md - Modular monolithic architecture overviewsystem_overview.md - System architecture and boot process detailsPurpose: Reference documentation for understanding the kernel’s internal structure and design principles.
Audience: Developers working on kernel internals, contributors, and those studying the codebase.
Documentation related to the boot process, bootloaders, and multiboot compliance.
Contents:
MULTIBOOT_FIX.md - Technical deep-dive into GRUB multiboot header fixMULTIBOOT_FIX_SUMMARY.md - Summary of multiboot fixesMULTIBOOT_BEFORE_AFTER.md - Comparison of multiboot implementationsPurpose: Detailed documentation of boot process implementation and troubleshooting.
Audience: Those debugging boot issues or implementing bootloader support.
Strategic planning documents, evolution strategies, and phase completion records.
Contents:
roadmap.md - Future development plans and feature roadmapOS_EVOLUTION_STRATEGY.md - 36-week development roadmapUPGRADE_PHASE0.md - Complete Phase 0 implementation guidePurpose: Track project direction, milestones, and long-term vision.
Audience: Project maintainers, contributors planning features, stakeholders.
Documentation of major refactoring efforts, code reorganizations, and migration guides.
Contents:
REFACTORING.md - Refactoring guide and migration informationKERNEL_REFACTORING_SUMMARY.md - Summary of kernel refactoring effortsPurpose: Historical record of structural changes and rationale behind them.
Audience: Contributors understanding codebase evolution, migration guides for developers.
Guides for running OpenOS in virtualized environments.
Contents:
VIRTUALBOX_QUICKSTART.md - Quick start guide for VirtualBoxVIRTUALBOX_TROUBLESHOOTING.md - VirtualBox troubleshooting guidePurpose: Practical guides for setting up and debugging virtualized environments.
Audience: Users and developers testing OpenOS in VMs.
Structured learning materials organized by topic, tracking knowledge progression through OS concepts.
Contents:
CH00_FOUNDATIONS.md - Boot process and kernel fundamentalsCH01_MEMORY.md - Memory management (PMM, VMM, heap)CH02_INTERRUPTS.md - Interrupts and exception handlingCH03_SCHEDULER.md - Process scheduling (planned)CH04_PROCESS_MODEL.md - Process management (planned)CH05_SECURITY.md - Security and protection (future)CH06_RUST.md - Rust integration research (future)Purpose: Educational documentation tracking concept learning and implementation progress.
Audience: Learners studying OS development, contributors onboarding to the project.
Learning control files and knowledge progression tracking.
Contents:
LEARNING_INDEX.md - Current phase, focus areas, completed chapters, and learning resourcesPurpose: Central hub for tracking learning progress and identifying knowledge gaps.
Audience: Self-learners, students, and educators using OpenOS for teaching.
Development journal documenting day-to-day progress, learnings, and implementation notes.
Contents:
DEVELOPMENT_LOG.md - Chronological log of development activitiesPurpose: Historical record of development process, decisions, and lessons learned.
Audience: Project maintainers, future developers understanding development history.
Research notes, experimental designs, and investigation documentation.
Contents:
Purpose: Document research activities, prototypes, and experimental features.
Audience: Researchers, advanced contributors exploring new approaches.
Architecture documentation is stable and changes only when implementation changes. Chapter documentation evolves with understanding and may include speculation, open questions, and research topics.
Roadmap is aspirational and subject to change. Journal is factual and immutable.
Refactoring docs are historical and explain transitions. Architecture docs describe present state.
# not underlines)c not---) to separate major sections// Good: Include context and comments
void example_function(void) {
// Clear explanation of what this does
some_operation();
}
Use ASCII art for simple diagrams:
Kernel Space ┌─────────────┐
│ Kernel │
├─────────────┤
User Space │ Process │
└─────────────┘
For complex diagrams, consider external tools and link images.
ARCHITECTURE.md, REFACTORING.mdsystem_overview.mdREADME.md, TODO.mdCH00_TOPIC.mdkmalloc(), struct pcbarch/x86/idt.ckernel/kernel.c:42/journal/DEVELOPMENT_LOG.md during development/architecture when feature is complete/chapters if it represents new learning/learning/LEARNING_INDEX.md if completing a chapter milestoneCHxx_TOPIC.md in /chapters following existing template/learning/LEARNING_INDEX.md/research with descriptive name/refactoring with before/after descriptionsCurrent documentation status:
See CONTRIBUTING.md in the repository root for general contribution guidelines.
/learning/LEARNING_INDEX.md for topic overviewDocumentation structure established: [Date] Last reviewed: [Date] Next review: After Phase 1 completion