-
Colin Finck authored
Centrally handle environment properties and prepare support for multi-kernel mode side-by-side to Linux. * Introduce an "environment" module to centrally determine and provide information about the environment. This currently includes unikernel vs. multi-kernel, whether uhyve is used, and whether proxy is used. It also centrally parses the command-line. * Move all SyscallInterface implementations along with their proxy/uhyve-specific functions to a subfolder "librs/syscalls/interfaces". Rename SingleKernel to Generic to disambiguate it from other single-kernel modes. * Fix running HermitCore Rust in unikernel mode when network initialization failed or "proxy" is not used. * Handle multi-kernel mode wherever required. We currently lack init_mmnif_netif() on the lwIP side to initialize the mmnif network interface for multi-kernel mode. * Add a kernel_message_buffer module compatible to the C implementation. Don't initialize a serial port and output all kernel messages to this buffer when multi-kernel mode is detected. * Add information about the "vga" feature to Cargo.toml to make it actually possible to build with VGA support. This is still disabled by default.
66393423