This example demonstrates how to let your solution include a simple program that was developed based on Rust and uses Corrosion, which is a set of libraries for integrating Rust into CMake projects.
Example directory in the SDK
The code of the example and build scripts are available at the following path:
/opt/KasperskyOS-Community-Edition-<platform>-<version>/examples/hello_corrosion
List of programs
Hello – application that writes a message to standard error output. This program was developed using the Rust language.DCM – system program that lets you dynamically create IPC channels.Initialization description
The solution initialization description file named init.yaml is generated during the solution build process based on the ./einit/src/init.yaml.in template. Macros in @INIT_*@ format contained in the template are automatically expanded in the resulting init.yaml file. For more details, refer to init.yaml.in template.
Security policy description
The security.psl file contains the solution security policy description and is generated based on the following template during the solution build process:
./einit/src/security.psl.in
During the solution build, the @INIT_EXTERNAL_ENTITIES@ macro in the security.psl.in template is replaced with a list of system programs that are included in the KasperskyOS SDK. For more details, refer to security.psl.in template.
The solution security policy description in this example allows any interaction between different processes and between processes and the kernel. This solution security policy is used to simplify the example. It would be unacceptable to apply such a policy in a real-world solution.
Resources
The directory ./resources contains an EDL description of the Hello program.
Operating scenario
The Hello program prints the message Hello, world! to standard error.
Building and running the example
The CMake build system from the KasperskyOS SDK is used during the solution build.
To synchronize the target platform for building Rust-based source code with the target platform of the C compiler, you must add the following command to the ./CMakeList.txt file:
set (Rust_CARGO_TARGET ${CMAKE_C_COMPILER_TARGET})
To use Corrosion in your solution, you must add the following command to this same file:
find_package (Corrosion REQUIRED)
To integrate Rust-based source code into your solution, you must call the following function in the ./hello/CMakeList.txt file:
corrosion_import_crate (MANIFEST_PATH ${CMAKE_SOURCE_DIR}/hello/Cargo.toml)
This function compiles the hello executable file that will be included in the solution.
See Building and running examples section.
Page top