| name | Feature Request |
|---|---|
| about | Suggest a new feature or enhancement for Serix kernel |
| title | [FEATURE] |
| labels | enhancement |
| assignees |
A clear and concise description of the feature you'd like to see.
What problem does this feature solve? Why is it needed?
- Use case: [Describe the use case or scenario]
- Current limitation: [What can't you do without this feature?]
- Benefit: [How would this improve Serix?]
Describe your proposed implementation or approach.
[Outline the main components and how they would work]
Which subsystems would be affected?
- Kernel core (
kernel/) - Memory management (
memory/) - APIC/Interrupts (
apic/,idt/) - Graphics (
graphics/) - HAL (
hal/) - Task/Scheduling (
task/) - Capabilities (
capability/) - Drivers (
drivers/) - VFS (
vfs/) - IPC (
ipc/) - Loader/Userspace (
loader/,ulib/) - Build system
- Documentation
API Changes:
// Example of proposed API or function signatures
pub fn new_feature_function() -> Result<(), Error> {
// ...
}Configuration: [Any new configuration options or build flags needed]
What other approaches did you consider?
-
Alternative 1:
- Description:
- Pros:
- Cons:
-
Alternative 2:
- Description:
- Pros:
- Cons:
Why is the proposed solution better?
If you plan to implement this yourself, outline the steps:
- Task 1
- Task 2
- Task 3
- Task 4
- Testing
- Documentation
Estimated effort: [e.g., Small (1-3 days), Medium (1-2 weeks), Large (1+ months)]
Does this align with the project roadmap?
- Yes, this is part of the current phase
- Yes, this is part of a future phase
- No, but it's a valuable addition
- Unsure
Roadmap phase: [e.g., Phase 3: Hardware Integration]
Roadmap item: [e.g., VirtIO Block Driver]
Breaking Changes:
- This feature requires breaking changes
- This feature is backward compatible
- Not applicable
If breaking changes are required, explain: [How would existing code need to be updated?]
Dependencies:
- New Rust crates needed: [e.g.,
virtio-drivers = "0.1", or "none"] - Hardware requirements: [e.g., "Requires IOMMU support", or "none"]
- Bootloader changes: [e.g., "Requires Limine v11.x", or "none"]
How would this feature be tested?
- Manual testing in QEMU
- Real hardware testing required
- Automated tests (describe)
- Integration tests with existing subsystems
Test scenarios:
- [Scenario 1]
- [Scenario 2]
What documentation would need to be created/updated?
- API documentation (rustdoc comments)
- Architecture documentation in
docs/ - User guide / tutorial
- README.md updates
- CONTRIBUTING.md updates
- Code examples
Expected performance characteristics:
- Memory overhead: [e.g., "< 1KB per instance", "negligible", "unknown"]
- CPU overhead: [e.g., "Constant time O(1)", "depends on input size", "minimal"]
- Boot time impact: [e.g., "+ 10ms", "none", "to be measured"]
Performance benchmarks needed:
- Yes, benchmarking is critical
- No, performance impact is negligible
- Unsure
Does this feature have security implications?
- Yes, involves capability system
- Yes, involves memory isolation
- Yes, involves user/kernel boundary
- No security implications
- Needs security review
Security concerns: [Describe any potential security issues and how they'd be addressed]
Similar features in other operating systems:
- [OS Name]: [Brief description and reference link]
- [OS Name]: [Brief description and reference link]
Relevant research papers or specifications:
Code examples from other projects:
// Example implementation from similar projectAdd any other context, mockups, diagrams, or screenshots:
[Any visual aids, diagrams, or additional information that helps explain the feature]
Before submitting, please ensure:
- I've searched existing issues to avoid duplicates
- I've provided a clear description of the feature
- I've explained the motivation and use case
- I've considered alternatives
- I've checked alignment with the roadmap
- I've read the Contributing Guidelines
Are you willing to implement this feature?
- Yes, I'd like to implement this myself
- Yes, with guidance from maintainers
- No, but I can help with testing/review
- No, just suggesting the idea
If yes, estimated availability: [e.g., "Can start next week, 10-15 hours per week available"]