{'fraction_non_alphanumeric': 0.020871143375680582, 'fraction_numerical': 0.0, 'mean_word_length': 5.684848484848485, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Dynamic service reconfiguration and migration in the Kea kernel

Kea is a new operating system developed for experimentation with kernel structuring, configuration and specialization. There are several features of Kea's design that make the investigation of these issues practical. Firstly it supports fine-grain decomposition of kernel services, the components of which communicate using inter-domain calls. This communication mechanism forms the backbone of Kea's reconfigurability, as services can be located in separate domains, for development or debugging purposes, and then dynamically migrated into a common domain, or into the kernel itself, transparently to the users of the service. The inter-domain calls are automatically optimized to procedure calls as appropriate. The service hierarchy can also be dynamically reconfigured through replacement, or the layering of new services, either on a system wide or application specific basis. We describe these features, and discuss the results from several experiments that demonstrate the practicality and performance advantages of Kea's design.