How mirkobrombin/raven works
Raven runs Windows applications on Linux, using their own installers and a per-application Windows-style prefix. The principal workflow is to launch a PE program, execute its x86/x64 code in Raven’s sandbox, answer Windows system and DLL calls, and present desktop or graphics output through Linux backends. The graph preserves documented installer, compatibility-library, scripting, web, and Direct3D capabilities. Several subsystem links are documented only at product level; edges cite the README, and sampled source references provide additional implementation evidence.
Main entry points: kernel_context.h Kernel context · main.cpp Runtime launcher · window_manager.cpp Window manager · native_cpu.cpp Native CPU
Components 22
Launch and execution
- Runtime launcher
native/main.cpp - PE loading
native/pe/pe.cpp - Module management
native/pe/module_set.cpp - Native CPU
native/cpu/native_cpu.cpp
Windows system
- Kernel context
native/nt/kernel_context.h - Windows services
native/nt/api.cpp - Process services
native/nt/child_process.cpp - Prefix and paths
native/nt/paths.cpp - Registry
native/nt/registry.cpp
Compatibility libraries
- Guest system libraries
native/guest/raven-user32/user32_private.h - Installer services
native/guest/raven-msi/query.c - Common controls
native/guest/raven-comctl32/core.c
Desktop and graphics
- Window manager
native/desktop/window_manager.cpp - Window objects
native/desktop/objects.h - Desktop presentation
native/desktop/presentation.h - Graphics bridges
native/graphics/vulkan_bridge.cpp - 32-bit Vulkan
native/graphics/vulkan_thunk32_engine.h - Shader translation
native/shader/hlsl_parser.cpp
Specialized capabilities
- Script engines
native/guest/raven-jscript/engine.c - Web controls
native/guest/raven-webengine/engine.c
Other components
- Linux user
- Windows program
Connections 22
- Linux user → Runtime launcher: launches
README.md - Runtime launcher → PE loading: loads executable
native/main.cpp - Runtime launcher → Module management: loads modules
native/main.cpp - Runtime launcher → Native CPU: starts execution
native/main.cpp - Windows program → Native CPU: runs on
README.md - Native CPU → Kernel context: requests services
README.md - Kernel context → Windows services: provides context
- Kernel context → Process services: provides context
native/nt/kernel_context.h - Kernel context → Prefix and paths: provides paths
native/nt/kernel_context.h - Kernel context → Registry: provides objects
native/nt/kernel_context.h - Windows program → Guest system libraries: imports libraries
README.md - Windows program → Installer services: runs installers
README.md - Windows program → Common controls: uses controls
README.md - Windows program → Script engines: uses scripts
- Windows program → Web controls: hosts web controls
- Windows program → Window manager: creates windows
README.md - Window manager → Window objects: manages windows
native/desktop/window_manager.cpp - Window manager → Desktop presentation: presents desktop
- Windows program → Graphics bridges: uses Vulkan
README.md - 32-bit Vulkan → Graphics bridges: dispatches calls
native/graphics/vulkan_thunk32_engine.h - Windows program → Shader translation: compiles shaders
README.md - Graphics bridges → Desktop presentation: draws output