mirror of
https://github.com/AmbiML/sparrow-kata-full.git
synced 2025-09-25 14:49:13 +00:00
b9e209b0080ebeaf5a7fe7234929fcaa2adff5e5
- Split support into three levels: o kata_proc_manager::process_manager is a single-threaded implementation of ProcessManagerInterface and PackageManagerInterface that uses an abstract manager interface to carry out low-level work (used mainly to inject fakes for unit testing). o kata_proc_manager is a thread-safe wrapper around process_manager that has the manager interfaces bound to KataOS; this is the level at which we integrate with external components. o kata_proc_component is the top-level glue code for the ProcessManager camkes component; it has a pre_init function to setup rust support (logger, allocator, etc), a run function for the component's control block, and wrapper functions for the camkes ProcessControl and PackageManagement interfaces. - Add install, uninstall, start, stop, and bundles shell commands for exercising ProcessControlInterface & PackageManagementInterface. Specifics: - Bundle id's are now treated internally as SmallString's with &str used for passing bundle id's through api's. The BundleId type is temporarily used for get_running_bundles() to return information (but see below about RawBundleIdData). - ArrayVec's are replaced with a hashbrown::HashMap - Bundle objects are Box'd instead of holding refs (now that we have an allocator); this eliminates lifetime constraints. - The manager interface is Box'd to eliminate lifetime constraints. - Purge ProcessManager::empty(), it's infeasible with the hashmap and is not needed with kata_proc_manager support for static decls. - Add RawBundleIdData support for serialize+deserialize of BundleIdArray; no more leaking internal data types to client code. - Remove bounds check on #bundles recorded; set a nominal capacity and fallback to dynamic allocation of the hashmap. - Manually update ProcessManagerBindings.h (using cbindgen). Change-Id: I08deaecc997ea96cb794808036540bedd58b3fa4 GitOrigin-RevId: 6e0826940b43b1295d39769b57812a9494b5a4cb
Kata OS
This is a CAmkES project that assembles the entire Kata OS. It exists outside the seL4 source trees, since it contains code not intended to go to upstream seL4.
This uses the standard CAmkES build system by symlinking CMakeLists.txt. It also symlinks settings.cmake, and so retains the notion of "apps," which enables the build system to switch which assembly it builds using the CAMKES_APP CMake cache value. Kata OS just has one app, system.
Description
Languages
Rust
67.6%
Python
27.9%
C
2.1%
Makefile
1.6%
CMake
0.6%
Other
0.2%