au-ts / lionsos

A secure, fast, and adaptable OS based on the seL4 microkernel
https://lionsos.org
BSD 2-Clause "Simplified" License
79 stars 7 forks source link

Integrate standard libc #48

Open Ivan-Velickovic opened 3 months ago

Ivan-Velickovic commented 3 months ago

Right now the Kitty example uses both musllibc for POSIX operations libnfs needs as well as newlib for MicroPython's required libc functionality. This is messy and less than ideal.

The current plan is to remove musllibc and instead create a configurable libc that has default functionality and can be extended with certain POSIX functionality such as write, read, etc.

This work is currently on-going and is based on the picolibc project.

ingenieroariel commented 3 months ago

Have you considered Cosmopolitan Libc? If you do, you may get a very portable Lua/Perl/Python ecosystem on top and very fast builds.

v3.3 is performance oriented and very well tested with native support for aarch64 and x86_64. https://justine.lol/cosmo3/

If this is interesting to you, several contributors are in the Redbean Discord and a fewhave been keeping tabs on sel4 development over the years. We would be to help and many of us use Kitty as the daily driver.

https://discord.gg/cu8RYvP7bm

Ivan-Velickovic commented 3 months ago

I haven't heard of Cosmopolitan libc. Based on a quick glance at the page you link, I don't think it's quite trying to do what we want.

I didn't explain clearly in the issue but what we want is a libc that is easily configurable depending on the design of a system. For example, some client programs may be allowed access to the network, and hence may require the POSIX/libc socket API. The same goes for things like file systems/block devices, or something as simple as a serial connection. In LionsOS, there won't be a single libc that works for everyone, which means I don't think Cosmopolitan libc would fit our needs since it seems to be trying to make one libc for everyone across OS/architecture. Will have to look into the project more though.

Universal binaries are not something I think we want right now but it could be something we look into later.

keeping tabs on sel4 development over the years. We would be to help and many of us use Kitty as the daily driver.

Sorry, could you explain what you mean by "use Kitty as the daily driver"?