The DMOJ judge-server is the core judging component of the DMOJ (Modern Online Judge) platform, responsible for executing and evaluating programming contest submissions in sandboxed environments. It features a plugin-based architecture supporting over 50 programming languages through language-specific executors, graders, and checkers. The system handles secure sandboxing via ptrace and seccomp (Linux) or ptrace (FreeBSD), manages problem configurations with automatic reloading, and communicates with the judge server using a custom packet protocol. Key entry points include the main judge daemon (dmoj), a CLI tool for local testing (dmoj-cli), and an autoconfiguration utility for runtime detection. The codebase demonstrates strong separation of concerns, with isolated components for sandboxing, subprocess communication, and output normalization that exhibit reusable patterns.
Solo5 is a sandboxed execution environment for unikernels, providing a minimal, legacy-free interface between unikernel applications and host systems. It supports multiple backends: hvt (hardware virtualization via KVM, FreeBSD/OpenBSD/DragonFly vmm), spt (Linux seccomp sandbox), virtio (QEMU/bhyve), Xen, and Muen. The architecture consists of guest-side bindings (implementing the solo5_* API) and host-side tenders (loaders/runtime components). Key entry points include the guest's _start() in each binding's start.c and the tender's main (e.g., hvt_main.c, spt_main.c). Data flows are synchronous: unikernels communicate via hypercalls (hvt), seccomp-allowed syscalls (spt), or Xen hypercalls, with shared-memory ring buffers for I/O. External dependencies include libseccomp (spt), KVM/BSD hypervisor APIs, and vendored Xen public headers. The project originated from IBM Research and is used by MirageOS and other unikernel frameworks.
The opencontainers/runtime-tools repository is a command-line application for working with the OCI (Open Container Initiative) runtime specification. It provides two main functionalities: generating OCI runtime spec configuration files (config.json) via the `oci-runtime-tool generate` command, and validating OCI bundles against the runtime specification via the `oci-runtime-tool validate` command. Additionally, it includes a runtime validation suite (`runtimetest`) to test OCI-compliant runtimes (like runC) for specification compliance. The architecture is modular, with separate packages for generation, validation, cgroups handling, path operations, and spec-specific error handling. Built in Go using urfave/cli for command parsing, it supports multiple operating systems (Linux, Windows, Solaris) via build tags and external dependencies on the OCI runtime-spec and other Go libraries. The tool is actively maintained, with recent commits and ongoing alignment with spec updates.