{"id":48027504,"url":"https://github.com/iamvirul/ferrous-kernel","last_synced_at":"2026-04-04T13:52:32.251Z","repository":{"id":334679023,"uuid":"1127388404","full_name":"iamvirul/ferrous-kernel","owner":"iamvirul","description":"Ferrous is a research-grade operating system kernel that addresses fundamental limitations of existing kernels through modern language features, capability-based security, and first-class support for cloud-era workloads.","archived":false,"fork":false,"pushed_at":"2026-03-15T11:34:59.000Z","size":1831,"stargazers_count":4,"open_issues_count":9,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-16T00:15:42.546Z","etag":null,"topics":["kernel","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamvirul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T19:28:32.000Z","updated_at":"2026-03-15T11:35:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/iamvirul/ferrous-kernel","commit_stats":null,"previous_names":["iamvirul/ferrous-kernel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamvirul/ferrous-kernel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamvirul%2Fferrous-kernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamvirul%2Fferrous-kernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamvirul%2Fferrous-kernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamvirul%2Fferrous-kernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamvirul","download_url":"https://codeload.github.com/iamvirul/ferrous-kernel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamvirul%2Fferrous-kernel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kernel","rust"],"created_at":"2026-04-04T13:52:32.162Z","updated_at":"2026-04-04T13:52:32.243Z","avatar_url":"https://github.com/iamvirul.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ferrous Kernel\n\n**A next-generation operating system kernel written in Rust**\n\n\u003e Rethinking kernel design for security, isolation, and modern workloads\n\n---\n\n## What is Ferrous?\n\nFerrous is a research-grade operating system kernel that addresses fundamental limitations of existing kernels through modern language features, capability-based security, and first-class support for cloud-era workloads.\n\nThis is **not** a Linux replacement. It's a long-term research project exploring what becomes possible when you design a kernel from scratch without decades of backward compatibility constraints.\n\n---\n\n## Core Principles\n\n**Memory Safety**\n- Eliminate entire classes of bugs through Rust's type system\n- Minimal, auditable unsafe code with clear safety boundaries\n\n**Isolation by Default**\n- Driver crashes don't bring down the system\n- Fault containment is a first-class design constraint\n- Sandboxed components where possible\n\n**Modern Workloads First**\n- Containers and microservices as kernel primitives, not abstractions\n- Resource groups, namespaces, and observability built-in\n\n**Built-In Observability**\n- Every kernel decision is explainable\n- Tracing, metrics, and causality tracking from day one\n\n**Small Trusted Core**\n- Minimize privileged code\n- Capability-based security model\n- Message passing over shared state\n\n---\n\n## Current Status\n\n**Phase:** Phase 1 — Proof of Life (In Progress)\n**Target Architecture:** x86_64 (ARM64 planned)\n**Target Environment:** Server / Cloud / Research\n\nSee [ROADMAP.md](docs/ROADMAP.md) for detailed development plan.\n\n---\n\n## Project Structure\n\n```\nferrous-kernel/\n├── docs/               # Documentation and design documents\n├── kernel/             # Core kernel code\n│   └── src/\n│       ├── arch/      # Architecture-specific implementations\n│       │   └── x86_64/\n│       └── drivers/   # Hardware device drivers\n│           └── serial # 16550 UART driver (COM1)\n├── drivers/           # Driver subsystems\n│   ├── block/        # Block device drivers\n│   ├── net/          # Network drivers\n│   └── char/         # Character device drivers\n├── userspace/         # User-space components\n│   ├── init/         # Init system\n│   └── services/     # System services\n├── boot/              # Bootloader and early boot\n├── lib/               # Shared libraries\n│   ├── core/         # Core utilities\n│   └── alloc/        # Allocation primitives\n├── tools/             # Development tools\n├── tests/             # Testing infrastructure\n└── scripts/           # Build and utility scripts\n```\n\n---\n\n## Key Design Decisions\n\n### Why Rust?\n\n- **Memory safety without garbage collection** - Critical for kernel performance\n- **Zero-cost abstractions** - Safety doesn't mean slow\n- **Fearless concurrency** - Compiler-verified thread safety\n- **Explicit unsafe boundaries** - Audit surface is minimized\n\n### Why Capabilities?\n\n- **No ambient authority** - Explicit permission model\n- **Composable security** - Build complex policies from simple rules\n- **Audit-friendly** - Clear authorization chain\n\n### Why Microkernel-Inspired?\n\n- **Fault isolation** - Component failures don't cascade\n- **Easier verification** - Smaller trusted computing base\n- **Flexibility** - Swap components without kernel changes\n\n*Note: \"Microkernel-inspired\" means we adopt good ideas (isolation, small TCB) while pragmatically keeping performance-critical paths in kernel space.*\n\n---\n\n## What Makes Ferrous Different?\n\n| Aspect | Traditional Kernels | Ferrous |\n|--------|-------------------|---------|\n| **Memory Safety** | C/C++, manual memory management | Rust, compiler-verified safety |\n| **Driver Crashes** | Often panic entire system | Isolated, restartable services |\n| **Containers** | Bolt-on via namespaces/cgroups | First-class kernel primitives |\n| **Observability** | Added via external tools | Built-in tracing and metrics |\n| **Security Model** | DAC/MAC, ambient authority | Capability-based, explicit grants |\n| **Unsafe Code** | Entire kernel | Minimal, isolated, audited |\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Rust toolchain (nightly)\n- QEMU (for testing)\n- Cross-compilation tools for x86_64\n\nSee [SETUP.md](docs/SETUP.md) for detailed setup instructions.\n\n### Building\n\n```bash\n# Clone the repository\ngit clone https://github.com/iamvirul/ferrous-kernel.git\ncd ferrous-kernel\n\n# Activate the pre-commit hook (one-time, required)\ngit config core.hooksPath .githooks\n\n# Build the bootloader\ncd boot \u0026\u0026 cargo build \u0026\u0026 cd ..\n\n# Run in QEMU\n./scripts/run-qemu.sh\n```\n\nSee [SETUP.md](docs/SETUP.md) for complete setup and build instructions.\n\n---\n\n## Documentation\n\n- [ROADMAP.md](docs/ROADMAP.md) - Development roadmap and milestones\n- [ARCHITECTURE.md](docs/ARCHITECTURE.md) - System architecture\n- [SETUP.md](docs/SETUP.md) - Development environment setup guide\n- [CONTRIBUTING.md](docs/CONTRIBUTING.md) - Contribution guidelines\n- [CODING_STANDARDS.md](docs/CODING_STANDARDS.md) - Coding standards and style guide\n- [CHARTER.md](docs/CHARTER.md) - Project charter and design principles\n- [UNSAFE_GUIDELINES.md](docs/UNSAFE_GUIDELINES.md) - Unsafe Rust policy\n\n---\n\n## Development Phases\n\n### Phase 0: Foundation \u0026 Design — Complete\nEstablished structure, documentation, and development environment.\n\n### Phase 1: Proof of Life (Q2-Q3 2026) — Current\nBoot via UEFI, basic memory management, serial output.\n- Task 1.1.1 (UEFI Bootloader): complete\n- Task 1.1.2 (Kernel Entry Point Handoff): complete — verified on QEMU\n- Task 1.1.3 (Basic Serial Output): complete — \"Hello from Ferrous!\" on serial console\n\n### Phase 2: Core Kernel (Q4 2026 - Q2 2027)\nScheduler, IPC, capability system, first user-space program.\n\n### Phase 3: Isolation (Q3-Q4 2027)\nUser-space drivers, fault containment, service restart.\n\n### Phase 4: Modern Workloads (2028)\nContainer primitives, resource groups, observability pipeline.\n\n### Phase 5: Validation (2029+)\nPerformance benchmarks, security audit, formal verification.\n\nSee [ROADMAP.md](docs/ROADMAP.md) for complete details.\n\n---\n\n## Contributing\n\nContributions are welcome! Ferrous Kernel is an open-source research project. We value contributions of all kinds:\n\n- Code contributions\n- Documentation improvements\n- Bug reports and fixes\n- Architecture discussions and ADRs\n- Testing and feedback\n\n**Getting Started:**\n- Read [CONTRIBUTING.md](docs/CONTRIBUTING.md) for detailed guidelines\n- Run `git config core.hooksPath .githooks` after cloning to enable the pre-commit formatter check\n- Check [open issues](https://github.com/iamvirul/ferrous-kernel/issues) for tasks\n- Review the [ROADMAP.md](docs/ROADMAP.md) for current phase work\n- Join discussions and share ideas\n\n**What to Expect:**\n- Rigorous code review (especially for unsafe code)\n- Design justification for major changes (ADRs)\n- High standards for correctness and safety\n- Collaborative and respectful environment\n\nSee [CONTRIBUTING.md](docs/CONTRIBUTING.md) for the complete contribution guide.\n\n---\n\n## Non-Goals\n\nTo keep the project focused, these are **explicitly out of scope**:\n\n- Desktop/GUI support (research phase)\n- Full POSIX compatibility\n- Running existing Linux binaries\n- Supporting legacy hardware\n- Backward compatibility with anything\n\nThese might be explored later, but not during core development.\n\n---\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\nApache 2.0 is a permissive open-source license that provides explicit patent protection and allows for flexible use, including in commercial and proprietary contexts. This license is popular in the Rust ecosystem and modern software development.\n\n---\n\n## Inspiration \u0026 Related Work\n\nThis project stands on the shoulders of giants:\n\n- **seL4** - Formal verification, capability model\n- **Redox OS** - Rust microkernel\n- **Fuchsia** - Capability-based, modern design\n- **Linux** - Decades of kernel wisdom (and lessons in what to avoid)\n- **MINIX 3** - Fault tolerance and isolation\n\n---\n\n## FAQ\n\n**Q: When will this be usable?**\nA: This is a multi-year research project. Don't expect to run production workloads for several years.\n\n**Q: Why not contribute to Redox OS?**\nA: Redox is excellent. Ferrous explores different design points (capability model, observability-first, etc.). Multiple experiments are healthy.\n\n**Q: Will this support my hardware?**\nA: Initially only QEMU x86_64. Real hardware support comes later. ARM64 is planned.\n\n**Q: Can I use this for my startup/product?**\nA: Not yet. This is research-grade software. Stability and completeness are years away.\n\n**Q: How can I help?**\nA: Check out [CONTRIBUTING.md](docs/CONTRIBUTING.md) for ways to contribute. We welcome code contributions, documentation improvements, bug reports, and architectural discussions.\n\n---\n\n## Project Status\n\nThis project is in its infancy. The roadmap is ambitious. Progress will be incremental.\n\nIf you're interested in the long-term future of operating systems, kernel security, or Rust systems programming - welcome. Let's build something remarkable.\n\n---\n\n**\"Correctness first. Performance follows. Features last.\"**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamvirul%2Fferrous-kernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamvirul%2Fferrous-kernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamvirul%2Fferrous-kernel/lists"}