What Programming Languages Is Ventoy Written In?
Ventoy is a multi-boot USB creator whose codebase relies primarily on low-level systems programming to interface directly with computer firmware. While its core boot mechanics and image hooking systems are written almost entirely in C and Assembly, the broader project incorporates Shell scripts for installation and automation, as well as web technologies for graphical configuration tools.
C: The Core Engine
The vast majority of Ventoy’s core functionality is written in C. Because Ventoy operates before an operating system loads, it requires a language that allows precise memory control, minimal runtime overhead, and direct hardware interaction.
Ventoy heavily customizes the GNU GRUB2 bootloader. Key source
modules—such as ventoy.c, ventoy_cmd.c, and
ventoy_plugin.c—are implemented in C to achieve its
signature feature: booting ISO, WIM, IMG, and VHD files directly from
storage without extracting their contents. C is also used for runtime
hooks that patch OS kernels in memory, manage virtual disk mapping, and
intercept BIOS and UEFI file requests.
Assembly: Low-Level Firmware Handshakes
For the earliest phases of the boot sequence, Ventoy uses Assembly (x86, x86_64, and ARM architectures). Assembly handles critical low-level tasks, including:
- Master Boot Record (MBR) and GUID Partition Table (GPT) stage execution.
- CPU register initialization and switching between processor modes (such as Real Mode to Protected Mode or Long Mode).
- Low-level interrupt handling (e.g.,
INT 13hdisk emulation in legacy BIOS environments).
Shell Scripting: Installation and Environment Setup
Ventoy utilizes POSIX Shell and Bash scripts extensively across its Linux toolchain. These scripts handle:
- Target disk formatting, partition alignment, and deployment via
Ventoy2Disk.sh. - The compilation pipeline that builds cross-architecture binaries.
- Initial RAM disk (initrd) runtime hooks and chainloading scripts that remount the source drive once an operating system kernel starts loading.
C++ and Windows Native Tooling
While the core boot modules remain in pure C, Ventoy utilizes
C++ and native Windows APIs for its desktop
installation utilities, such as Ventoy2Disk.exe. These
handle device enumeration, volume locking, and low-level drive writing
within the Windows operating system.
HTML, JavaScript, and JSON: Configuration Layers
To make multi-boot configuration accessible, Ventoy includes VentoyPlugson, a local web-based configuration utility. This component is built using HTML, CSS, and JavaScript, served locally by an embedded C web server (Civetweb). Settings, themes, persistence parameters, and automatic installation scripts are then serialized and read by the bootloader via JSON.