- Introduction
- Asterinas NixOS
- 1. Getting Started
- 2. Popular Applications
- 2.1. System Core
- 2.2. Nix and NixOS Tools
- 2.3. Containerization and Virtualization
- 2.4. Networking
- 2.5. Web Servers & Proxies
- 2.6. Databases & Middleware
- 2.7. Development Tools
- 2.8. CI/CD & DevOps
- 2.9. Monitoring & Observability
- 2.10. Desktop Environments & Display
- 2.11. Web Browsers
- 2.12. Office & Productivity
- 2.13. Multimedia
- 2.14. Communication
- 2.15. File Management & Terminal
- 2.16. AI & Machine Learning
- Asterinas Kernel
- 3. Getting Started
- 4. Advanced Build and Test Instructions
- 4.1. Intel TDX
- 5. The Framekernel Architecture
- 6. Linux Compatibility
- 6.1. Syscall Flag Coverage
- 6.1.1. System Call Matching Language (SCML)
- 6.1.2. Process and thread management
- 6.1.3. Memory management
- 6.1.4. File & directory operations
- 6.1.5. File systems & mount control
- 6.1.6. File descriptor & I/O control
- 6.1.7. Inter-process communication
- 6.1.8. Networking & sockets
- 6.1.9. Signals & timers
- 6.1.10. Namespaces, cgroups & security
- 6.1.11. System information & misc
- 6.2. File System Coverage
- 6.3. Kernel Parameters
- 7. VM-based Containers
- 7.1. Kata Containers
- 7.2. Confidential Containers (CoCo)
- 8. Roadmap
- Asterinas OSTD
- 9. An Overview of OSTD
- 10. Example: Writing a Kernel in 100 Lines of Safe Rust
- 11. Example: Writing a Driver in 100 Lines of Safe Rust
- 12. Soundness Analysis
- 12.1. What Soundness Means
- 12.2. The Sensitivity Classification
- 12.3. Safe Physical Memory Management
- 12.4. Safe User-Kernel Interactions
- 12.5. Safe Kernel-Peripheral Interactions
- 12.6. Safe Kernel Logic
- 12.7. Safe Policy Injection
- Asterinas OSDK
- 13. OSDK User Guide
- 13.1. Why OSDK
- 13.2. Creating an OS Project
- 13.3. Testing or Running an OS Project
- 13.4. Working in a Workspace
- 13.5. Advanced Topics
- 13.5.1. Intel TDX
- 14. OSDK User Reference
- 14.1. Commands
- 14.1.1. cargo osdk new
- 14.1.2. cargo osdk build
- 14.1.3. cargo osdk run
- 14.1.4. cargo osdk test
- 14.1.5. cargo osdk debug
- 14.1.6. cargo osdk profile
- 14.2. Manifest
- 14.3. Environment Variables
- How to Contribute
- 15. Before You Contribute
- 16. Code Organization
- 17. Coding Guidelines
- 17.1. How Guidelines Are Written
- 17.2. For Maintainability
- 17.2.1. Design
- 17.2.2. Process
- 17.2.3. Naming
- 17.2.4. Layout
- 17.2.5. Comments
- 17.2.6. Rust-Specific
- 17.2.6.1. Naming
- 17.2.6.2. Crates & Modules
- 17.2.6.3. Types & Traits
- 17.2.6.4. Functions & Methods
- 17.2.6.5. Attributes & Macros
- 17.2.6.6. Comments
- 17.3. For Development
- 17.3.1. Correctness
- 17.3.2. Concurrency
- 17.3.3. Resource Management
- 17.3.4. Efficiency
- 17.3.5. Observability
- 17.3.6. Testing
- 17.4. For Security
- 17.4.1. Memory Safety
- 17.4.2. Security Properties
- 17.5. For Hardware
- 17.5.1. Assembly Conventions
- 17.5.2. CPU Architecture-Specific
- 17.5.2.1. x86-64
- 17.6. For Documentation
- 17.6.1. General Style
- 17.6.2. Path-Specific
- 17.6.2.1. kernel/
- 18. Boterinas
- 19. Version Bump
- 20. Community
- 21. Code of Conduct
- Request for Comments (RFCs)
- 22. RFC Overview
- 22.1. RFC-0001: RFC Process
- 22.2. RFC-0002: Asterinas NixOS
- 23. RFC Template