New files: - build-clangtron-windows.sh - a build script for llvm-mingw - build-clangtron-windows.bat - a helper for finding and opening a clang msys2 envitronment prompt on windows - /docs/BUILDING-CLANGTRON-WINDOWS.md - user guide for the new build script Changes: - vfs_real.cpp: extend _stat64 guard to __MINGW32__ so _wstat64 gets the right struct type under llvm-mingw and MSYS2 - src/citron/CMakeLists.txt: restrict -fuse-ld=bfd to GNU compiler only; Clang does not accept this flag - CMakeModules/PGO.cmake: add CITRON_PGO_FLAGS_MANAGED_BY_SCRIPT guard so external build scripts can supply PGO flags without conflicting with CMake's own injection - CMakeModules/CopyMinGWDeps.cmake: fall back to Qt6_DIR/../../../plugins for plugin deployment when the MSYS2 share path doesn't exist (fixes Qt plugin and TLS deployment on Linux cross-compile hosts) - src/common/logging.cpp, src/hid_core/resources/npad/npad.cpp: add [[clang::no_profile_instrument_function]] on FmtLogMessageImpl and NPad::OnUpdate to suppress ~87M discarded CS-PGO counter hits - vcpkg.json: add opus and openssl as top-level Windows dependencies
Citron Neo
Feel free to open issues and PRs to the repository.
- Development & maintanance: https://discord.gg/7bdSQgQZfu
Enjoy!
Abstract
Citron is a specialized research software designed to orchestrate high-fidelity virtual environments. Unlike general-purpose tools, it focuses on the intersection of containerization and deep-system virtualization to provide researchers with granular control over network behavior and resource management. Core Capabilities
High-Fidelity Networking: Citron creates Docker container environments where network accuracy is the priority. It ensures that latency, throughput, and topology mirror real-world conditions with high precision, making it ideal for testing distributed systems or network protocols.
Hybrid Orchestration: Beyond containers, it can spawn and manage multiple Virtual Machines (VMs) simultaneously. This allows for heterogeneous testing environments where containers and VMs interact seamlessly.
Kernel Addressing: The software utilizes advanced kernel addressing techniques for resource management. By interacting closely with the host and guest kernels, Citron achieves low-overhead monitoring and advanced control over virtualized assets that standard management layers often miss.
Summary Citron is a technical powerhouse for researchers who need more than just "standard" virtualization. It bridges the gap between the lightweight agility of Docker and the robust isolation of VMs, all while maintaining a rigorous, high-fidelity network layer managed through direct kernel-level operations. Would you like to draft a README file or a technical abstract for a research paper based on this?
Citron functions as a high-fidelity hardware-software co-design platform that bridges the gap between high-level container orchestration and low-level embedded hardware constraints. By integrating specialized architectures like Xtensa cores, Citron allows researchers to simulate and manage complex system-on-chip (SoC) behaviors within a virtualized framework.
-
Integration with Specialized Hardware (Xtensa Cores) Citron addresses the unique constraints of Xtensa processors, which are modular, extensible 32-bit RISC architectures often used in networking and audio processing.
Custom Instruction Support: Citron can leverage the Tensilica Instruction Extension (TIE) language to simulate custom datapath elements and instructions within the virtualized environment. Protocol-Specific Optimization: Because Xtensa cores excel at processing packet headers and rule-based checks, Citron uses them to maintain network fidelity—ensuring that simulated network stacks perform with the same cycle-accurate behavior as physical networking chips.
-
High-Fidelity Computing Devices To achieve "high fidelity," Citron must manage the deterministic performance of computing devices, ensuring that virtualized sensors and actuators respond within real-world timing constraints.
Cycle-Accurate Modeling: It utilizes an Instruction Set Simulator (ISS) to provide instant feedback on how software interacts with the underlying hardware pipeline, preventing the "timing drift" common in standard VMs. Resource Determinism: Citron mitigates hardware constraints—such as limited memory and power—by tailoring the virtual environment to match the specific cache sizes and memory hierarchies of the target device.
-
Advanced Kernel Addressing and Management Citron’s specialization in kernel addressing allows it to bypass traditional virtualization overhead:
Direct Register Access: By interacting with the Application Binary Interface (ABI), Citron manages how programs interact with the kernel, allowing for precise debugging and resource allocation across multiple spawned VMs. Kernel-Level Hypervisors: It functions similarly to a KVM (Kernel-based Virtual Machine), turning the host Linux system into a high-performance hypervisor that provides near-native execution of privileged instructions. Memory Lookup Interfaces: Citron can connect directly to arbitrary-width memories or RTL (Register Transfer Level) blocks for low-latency data transfers, effectively treating virtualized memory as if it were a direct point-to-point hardware connection.
-
Technical Constraints & Architecture Feature Implementation in Citron Processor Type Supports 32-bit configurable RISC/Xtensa architectures. Virtualization Method Hardware-assisted virtualization using extensions like Intel VT-x or AMD-V for direct execution. Networking Layer High-fidelity emulation that avoids standard I/O bottlenecks by using custom processor interfaces. Management Centralized synchronization controller for container scheduling and I/O compensation. Would you like to explore how Citron handles specific network protocols like CoAP or MQTT on these virtualized Xtensa cores?