Menu

Relationships between Genode, foc and L4

2016-06-16
2016-06-22
  • Gurusiddesha Chandrasekhara

    I have been doing some of the readings about Genode(Using Genode book) and I want to use particularly Genode with Fiasco.OC kernel and do some modifications for my academic purpose. I'm interested in scheduler based code and I want to know what's the end to end approach from the moment an application is started from the Genode till how it is inserted to ready queue.
    Till now I'm able to get this much information, A thread is created in platform_thread.cc (inside the base-foc/src/core) and l4_scheduler_run_thread() is called which will land in l4, here an ipc call (l4_ipc_call ) is made with schedular as the destination(Since its a capability based system it just invokes the scheduler object with the give thread which is in UTCB parameter).

    Now my question is what is l4 and foc repos when I get the foc code?
    All the ready queues and scheduler information are inside the foc source folder, How is this l4_ipc_call related to fiasco scheduler? how can I access this ready queue information inside Genode source code?

     
  • Christian Helmuth

    Hello,
    please let me first inform you that very few people frequent this forum and most Genode discussion happens on the mailing list

    http://genode.org/community/mailing-lists

    If you subscribe to the list and post there, I expect that you get profound tips from the community.

    Regarding your question (in the last paragraph), please have a look into repos/base-foc/README. The base-foc repository contains the pieces required to run Genode on Fiasco.OC, which are the platform-dependent libraries, the adaption of the core component, and the used port in repos/base-foc/ports/foc.port. The port mechanism fetches our fork of Fiasco.OC into the contrib directory. When building a scenario, the build system compiles the kernel and makes the l4 headers available to our platform-dependent code. You'll find the contrib sources in contrib/foc-521140ea75494478740770721061509c6e7c6812/src/kernel/foc - the kernel part in kernel and the user-level part in l4.

    If you have fundamental question about the internals of Fiasco.OC, you may also consider to ask the authors of the kernel on the l4-hackers mailing list

    https://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

    Regards
    Christian

     

Log in to post a comment.