Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 2.72 KB

README.md

File metadata and controls

42 lines (31 loc) · 2.72 KB

Azure Learning Rust

This repository helps new Rust developers understand core Rust concepts through labs. Each lab has comments that explain different Rust concepts through examples.

Dev environment setup

git clone https://github.com/Azure/azure-osconfig.git
pushd azure-osconfig
git submodule update --init --recursive
mkdir build && pushd build
cmake ../src -DCMAKE_BUILD_TYPE=Release -Duse_prov_client=ON -Dhsm_type_symm_key=ON -DBUILD_TESTS=OFF
  • Install the azure-osconfig

sudo cmake --build . --config Release --target install

Lab 1 topics

Lab 1 instructions

  • Uncomment the code block in \src\module\mod.rs to load modules from /usr/lib/osconfig and insert them into the modules HashMap.
    • Note the move of path variable contents to the Module::init() function.
    • Note the pass by reference of name variable to the self.modules.get() function.
    • Note the user of clone() in the name variable to the self.modules.insert() function.

Dev note

Labs 1-4 are independent learning labs that do not provide fully end-to-end functionality. Each lab build on top of the previous lab, but they can be run in any order. The labs culminate in a functional Unix Domain Socket based service that dynamically loads and invokes OS modules from the OSConfig repository, used for locally managing Linux Edge devices.

For dev environment setup, the README in platform_lab1 branch has detailed instructions. The other labs assume the same dev environment setup.

The final solution can be run in the platform_labcomplete branch.