mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-11 23:14:13 +00:00
Unify handling of UTCBs. The utcb of the main thread is with commit ea38aad30e6166a0da1ac8bd84b53d6e1962cfaf at a fixed location - per convention. So we can remove all the ugly code to transfer the utcb address during process creation. To do so also the UTCB of the main thread of Core must be inside Genode's thread context area to handle it the same way. Unfortunately the UTCB of the main thread of Core can't be chosen, it is defined by the kernel. Possible solutions: - make virtual address of first thread UTCB configurable in hypervisor - map the utcb of the first thread inside Core to the desired location This commit implements the second option. Kernel patch: make utcb map-able With the patch the Utcb of the main thread of Core is map-able. Fixes #374 Noux actually uses the sp variable during thread creation and expects to be set accordingly. This wasn't the case for the main thread, it was ever set to the address of the main thread UTCB.
This is the example operating system based on the Genode OS framework: :_Init_: is the first real process in the system. The provided implementation uses a very simple XML parser to read its configuration files. :_Drivers_: The example OS has basic drivers for frame buffer, mouse and keyboard input, the PCI bus, the real-time clock, and system-specific timers. :_Server_: The only server in the example OS is Nitpicker, a minimal-complexity GUI server. :_Test_: are also part of the example OS. You may have a look at the fork bomb as a simple system stress test. :_Ldso_: is the dynamic linker used for loading executables that are linked against shared libraries. :_Lib_: contains libraries used by the components of the OS repository, in particular the device-driver kit, the alarm framework, and support for dynamic linking.