Boot Order Atlas — Review QNX 8 Startup Dependencies Before the First Boot

Problem and solution

QNX startup scripts can launch resource managers asynchronously while later programs assume their paths already exist. A text diff shows changed lines but leaves the reviewer to reconstruct the startup order and the assumptions behind each dependency.

Boot Order Atlas reads a supported subset of QNX SDP 8.0 mkifs inline startup scripts and an explicit service/resource contract. It reports consumers placed before declared producers, missing conditional path waits, foreground return risks, ambiguous resource ownership and contract dependency cycles. Every event and diagnostic links back to source lines. Version review distinguishes event changes, line movements and diagnostic changes, while preserving source and contract fingerprints.

The implementation is a dependency-free Python host CLI with JSON and self-contained HTML artifacts. It does not execute source or QNX tooling. Included original fixtures demonstrate the tool's behavior with fictional service declarations. A waitfor is always presented as a finite stat() check that can time out, never as proof of service health. Unsupported syntax stays visible as a coverage gap.

How it was built and how it supports QNX

Python 3.10+, argparse, strict JSON declarations, a bounded conservative script reader, dependency SCC analysis, source/contract SHA-256 and escaped static HTML. The QNX-specific implementation distinguishes +script, modifier scope, +external, background launch, internal waitfor/reopen and procmgr_symlink. No SDK or target toolchain is used. Intended runtime: a host with Python, locally verified on Linux; other supported Python host platforms have not been exercised here.

Difference from existing work

QNX buildfile editing/parsing/validation already exist, including qnx-buildfile-lang. Atlas's implemented focus is a reviewable startup-resource contract and before/after artifact. Its parser is narrower and it complements, rather than replaces, full validation or an actual licensed build. Two primary OSS comparisons with fixed commits/licenses are recorded in docs/landscape.md.

Development, AI assistance and open-source disclosure

Built on 2026-11-09 after reading official QNX 8 syntax and the host-tool competition rules. AI coding assistance (Codex) was used for implementation, documentation and tests. An independent agent reviewed semantics and reproduced Unicode line-separator and stale-guard defects; both received regression fixes. This is a deterministic program with no model/runtime API or fabricated target logs. No third-party implementation code was copied. Original implementation and fixtures are MIT; referenced OSS licenses remain with their owners.

Current scope

This is a working host-side static analysis tool, locally verified on Linux. It does not invoke mkifs, run QNX or QEMU, validate an IFS image, or prove a successful boot. It does not execute the supplied startup scripts. The original workshop service declarations are fictional review fixtures, not compiled QNX applications. A conditional path wait is not a service-health check or a real-time guarantee.

Source and reproducible instructions: https://github.com/misakamikotoghr-5205/boot-order-atlas

Built With

Share this project:

Updates

Submission history