# virtme-ng-init **Repository Path**: xlldkj/virtme-ng-init ## Basic Information - **Project Name**: virtme-ng-init - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-01 - **Last Updated**: 2024-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # virtme-ng-init: fast init process for virtme-ng virtme-ng-init is an extremely lightweight init process for virtme-ng [1] implemented in Rust. Its primary goal is to speed up the boot time of virtme-ng instances. virtme-ng-init is able to perform any necessary initialization in the virtualized environment, such as mounting filesystems, starting essential services, and configuring the system before handing over control to the main user-space processes (typicall a shell session). [1] https://github.com/arighi/virtme-ng # Result - virtme-init (bash implementation): ``` $ time virtme-ng --exec 'uname -r' 6.4.0-rc3-virtme real 0m1.146s user 0m0.829s sys 0m1.048s $ time virtme-ng --net user --exec 'ip addr show dev eth0' 2: eth0: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 scope global eth0 valid_lft forever preferred_lft forever real 0m1.282s user 0m0.930s sys 0m1.219s ``` - virtme-ng-init (Rust implementation): ``` $ time virtme-ng --exec 'uname -r' 6.4.0-rc3-virtme real 0m0.906s user 0m0.654s sys 0m0.684s $ time virtme-ng --net user --exec 'ip addr show dev eth0' 2: eth0: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 scope global eth0 valid_lft forever preferred_lft forever real 0m0.972s user 0m0.736s sys 0m0.795s ``` # Building Static building is necessary as this binary is going to be executed before the file system is up and running. ``` RUSTFLAGS='-C target-feature=+crt-static' cargo build -r ``` # Local installation Put the binary into virtme/guest/bin/. e.g. when used as a submodule: ``` cp target/release/virtme-ng-init ../virtme/guest/bin ``` # Credits Author: Andrea Righi