Hi Xilong Pei,
I'm not sure if Siwei is subscribed to this mailing list, but I can answer your
question.
The library libsel4muslcsys is the glue between your operating system and libc.
The 'master' branch
of libsel4muslcsys is intended for seL4 root tasks (processes that are intended
to run as the
initial userspace program in an seL4 system), while the 'camkes' branch is for
CAmkES components.
The two environments are sufficiently different that this glue needs to vary.
For example, the libc call `abort` eventually calls `sel4_abort`, which differs
on these branches.
For root tasks it halts the system if possible or otherwise enters an infinite
loop [0]. However,
when CAmkES components call `abort` they should not halt the system because
they do not know what
other components may still be running. The CAmkES implementation [1] uses the
caller's thread
capability to suspend itself. This implementation is not appropriate for root
tasks because their
thread capability is not available via the same mechanism as CAmkES components.
Similarly, a process that needs to operate in an environment that differs from
that of the root task
or CAmkES components would likely require a third, different libsel4muslcsys
implementation. Part of
the reason for these unexpected variations in libc support is that many
mechanisms that are often
included in monolithic kernels are provided by userspace in a microkernel-based
system.
Matt
[0]: https://github.com/seL4/libsel4muslcsys/blob/master/src/sys_exit.c#L17-L25
[1]: https://github.com/seL4/libsel4muslcsys/blob/camkes/src/sys_exit.c#L20-30
On 29/05/15 15:48, Pei.XiLong(裴喜龙) wrote:
Hi, Siwei Zhuang,
Why do there are some differences between camkes branch and master
branch in lib seL4/libsel4muslcsys? The lib seL4/libsel4muslcsys is the
foundation of libmuslc, it shoud be a libc for any seL4 program, and there
should be no diference among any branches.
https://github.com/seL4/libsel4muslcsys/commits/camkes
Xilong Pei
Tongji University
2015/5/29
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel
________________________________
The information in this e-mail may be confidential and subject to legal
professional privilege and/or copyright. National ICT Australia Limited accepts
no liability for any damage caused by this email or its attachments.
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel