# Safety Considerations

`os_observatory` is designed for `no_std` kernels and interrupt contexts.

## Concurrency
- Ring buffers use atomics for heads; writers do not block.
- Readers should snapshot into a separate buffer; avoid mutating shared state.

## Allocation
- No heap usage by default. Opt into `alloc` only for custom extensions.

## Panics
- Panic reporting avoids allocations and keeps output single-line.
- Do not perform complex operations inside panic handlers.

## Formatting
- `core::fmt::Write` is used to avoid heap and reduce code size.
- Prefer short messages on hot paths; use tracer for performance-critical sections.

