[pok-devel] Start a guest binary in a partition

[ Thread Index | Date Index | More lists.tuxfamily.org/pok-devel Archives ]


Hi,

I am a student at Dresden University of Technology, currently applying to Google Summer of Code for the RTEMS project.

The purpose of my project is to design and implement a paravirtualization layer in RTEMS to ease virtualization. As proof-of-concept I like to use POK as host system.

In last year's GSoC a student used POK to run RTEMS with the goal to get RTEMS ARINC 653 compliant. He introduced new syscalls to POK and combined the RTEMS partly linked ..ralf file with the POK binary. He used cat to pipe both binaries into the same file and used some 'magic' to fuse the two systems. However, none of the usual tools (nm, readelf, objdump) read the resulting binary correctly, therefore I refrain from taking this way. Additionally, I don't want to use direct syscalls from the guest, as the virtualization layer in RTEMS should be portable.


Now I am searching for a way to start the RTEMS guest binary.
My first idea was to build an application in POK containing all 'guest communication functions' (e.g. disable/enable interrupts, console access) and to pass the fully linked file as a library to RTEMS. Then the RTEMS build process would run without errors, as the missing function implementations are provided. But I don't know, how I can call the RTEMS bsp_start() function for instance, as POK doesn't know about this at compile time.

The second idea was to build RTEMS first. This will fail due to undefined references cause by the 'communication functions'. The partly linked .ralf file could then be inserted while POK is linked, resolving the undefined references. This is pretty much the approach of last year's student. But that would intercept with the build process of POK and is therefore no satisfying approach. An custom linker script might resolve the issues with the tools, though.


So I am a little stuck here and seeking guidance.
Do you have another idea?
Is there some source code supporting foreign binaries to be executed in a partition?
Do you know of projects doing something similar?


Regards,
Philipp



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/