Changes between Version 1 and Version 2 of Developer/Projects/Open/Paravirtualization

Feb 11, 2012, 1:59:51 AM (8 years ago)
Julien Delange


  • Developer/Projects/Open/Paravirtualization

    v1 v2  
    88Credit: Boost C++'s Google SoC page for the inspiration for the template entry.
    10 '''Status:''' Previous project done in GSOC
     10'''Status:''' Previous GSOC project started to investigate the topic. See [wiki:GSoC/2011 RTEMSSummerOfCode2011]
    12 '''Introduction:''' Introduce the main concepts around the project: Theoretical preliminaries, preexisting RTEMS capabilities used or augmented (if any), important concepts, problems/needs the project will try to solve/satisfy.
     12'''Introduction:''' The overall project consist in adapting RTEMS to be executed on top of an hypervisor so that we can run RTEMS instance on a partitioned kernel (such as ARINC653-related isolation layers like PikeOS, VxWorks, etc...). To do so, it is necessary to define an API to run RTEMS as a guest operating system and also tailor an existing hypervisor to execute RTEMS instances in several partitions.
    14 '''Goal:''' Concise statement of the overall goal of the project. Refine this initial statement to include: project deliverables (code, docs, testing), required/suggested methodology, standards of quality, possible goal extensions beyond the main objective.
    16 '''Requirements:''' List the requirements and level of expertise you estimate are required by the developer tackling this project will have to have: Required level of programming language(s), specific areas of RTEMS or tools, level of familiarity with RTEMS, cross-development, GNU/Linux, etx., development/documentation/testing tools, mathematical/algorithmic background, other desirable skills.
     16'''Requirements:''' low-level development, intel/sparc instructions, kernel design
    18 '''Resources:''' Current RTEMS developers, papers, etc that may help you in this project.
     18'''Resources:''' Existing partitioning/isolation layer, such as POK (see or AIR (
    20 '''Acknowledgements'''
    21  *  who helped add did work
    22 = Miscellaneous Sections =
    24 As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO.
     21= Proposed Approach =
     24The project could be separated in two different efforts : define an API in RTEMS to execute privileged instructions and adapt an existing partitioning kernel to execute RTEMS instance.
     25= Adapt RTEMS for privileged instructions =
     27This consists in reviewing RTEMS code and indentify which part of the code requires privileged instructions. After these code review efforts, the goal of this first activity would be used to design an architecture-agnostic API to perform privileged instructions. Basically, these instructions would be adapted when RTEMS is running as a guest OS, making hypercalls to the hypervisor layer.
     29Finally, last part of this efforts would consist in implementing the API for one or two architectures (ideally x86 and SPARC).
     31For that, the project could reuse the results of the previous Google Summer of Code project (in 2011) (see [wiki:GSoC/2011 RTEMSSummerOfCode2011])
     33= Adapt existing isolation layer =
     35Second step of this project is to adapt an existing partitioning kernel/isolation layer to execute RTEMS instances. Ideally, this would be implemented in an existing FOSS isolation layer. Actually, two FOSS projects provide such functionalities : Air and POK. Ideally, developers may evaluate the feasibility on each isolation kernel and choose the most appropriate solution.
    2536= References =
     38 *  ARINC653:
    2839 *  Air:
    2940 *  POK:
    3041 *  Old references on RTEMS wiki: [wiki:Projects/Hypervisor RTEMSHyperVisor]
    32 '''Other sections:''' If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will.