Skip to main content
Ctrl+K
CellulOS 0.1 documentation - Home CellulOS 0.1 documentation - Home
  • Welcome to CellulOS’s Wiki!

User Guide

  • Getting Started
    • Booting the System
  • Executing User Code
    • Spawning Common PDs
    • Flexible PD Configuration
  • Configuration Options
  • System Tests
  • Model State
  • Benchmarking

Development

  • Resource Servers
    • Requirements
    • Creation
    • Communications
    • Registry Library
    • Creating a Resource Server: Step by Step
  • Resources in CellulOS
  • Implementation Glossary
  • Virtual Machine Monitor
  • Troubleshooting Development Errors
  • Endpoint Component

Design

  • Design Overview
  • Apps
    • The Ramdisk Server
    • The File Server
    • The KVStore Server
  • Design Decisions
    • Preventing Deadlocks with Async Messages
    • Cleanup Policy Design
    • PD Configuration Design
      • PD Runtime Setup
      • Unified PD Entry and Exit Point
  • Design Quirks
  • Known Limitations
  • .md

Design Decisions

Design Decisions#

These pages explain the reasoning behind some key design decisions for CellulOS.

  • Preventing Deadlocks with Async Messages
    • Investigation
      • Potential Solutions
      • Existing Systems
        • FUSE (File System in Userspace)
        • QNX
        • Hubris
    • CellulOS Async Message Design
      • Async Design Options
        • Async Message Queue
        • Uphill-only
      • Chosen Design
        • Implementation
        • Example 1
        • Example 2
  • Cleanup Policy Design
    • Metric-Based Cleanup
    • Resource Deletion Policy
    • Depth-based Resource Space Cleanup Policy
  • PD Configuration Design
    • PD Runtime Setup
      • Conditions for setup method
      • Passing Arguments to the PD
        • Stack Layout for C runtime setup
        • Stack Layout with TLS setup
      • The Root Task’s Role in PD configuration
        • pd_client_runtime_setup()
        • ELF metadata
        • Elevated CPUs
      • TLS setup
    • Unified PD Entry and Exit Point
      • Three main setup pathways:
      • main or entry function visible to the started PD
      • C runtime library
      • CellulOS PD Exit Point
      • libc _start
        • sel4utils processes
        • CellulOS process-like PDs
        • CellulOS thread-like PDs
      • Guest-OS PD Entry
        • Linux Guests
      • Custom startup and shutdown policies

previous

The KVStore Server

next

Preventing Deadlocks with Async Messages

By Sid Agrawal, Linh Pham, Arya Stevinson

© Copyright 2024, Sid Agrawal.