---
title: "Application Compatibility WG, February 22, 2023"
tags: unikraft, musl, app-compat
datetime: 2023-02-22T12:00:00+02:00
location: Online, Discord (https://bit.ly/UnikraftDiscord), the `#monkey-business` voice channel
teams:
- musl-syscall
participants:
- Andra
- Andrei
- Cosmin
- Florin
- Maria
- Pierre
- Simon
- Stefan
- Teodor
---
## :dart: Agenda
- Status update
- Next steps
## :closed_book: Discussions
AM:
- Try to extract the args used by the unikernel.
- It was possible to get the args from ukboot.
- This was removed and I have issues to extract the args.
- I'm working on procfs.
SK:
- There will be an update for inittab, would help with parsing args.
- Every init could get args from the cmdline.
- We had discussions what to cache or not.
AM:
- Will wait after the inittab update is available.
- Working on improvements for procfs.
- Should cache the static ones, based on the previous discussions.
CV:
- I tried to compile using the posix-mmap, but there is a missing header.
- I built with musl.
- Tried to use a 4K page when the mmap error appears.
- https://gist.github.com/csvancea/ef35f935be76a6f99b43a6213fbe72ec
- Looking into the openjdk app.
SK:
- Should not pick headers / libs from your system.
- I tested the elfloader with nolibc.
- There are ukmmap and posix-mmap, in the future functionality from ukmmap will be merged into posix-mmap.
- posix-mmap is with full paging support.
FP:
- Managed to run the nginx test suite with Loupe.
- The output of the log files occupied too much space on my PC, reduced the output.
- There is no proper cleanup, there were so many processes.
PO:
- Should check this out - https://github.com/unikraft/loupe/compare/staging...pierre-smart-kill - for the cleanup issue.
- Should use signaling to kill the entire process group.
FP:
- I talked with Razvan to port the Node.js one.
SK:
- Should port using the "app-elfloader".
MS:
- Razvan told me I should be working on the app-compat, I'm new to this.
- I will look into the elfloader readme PR.
SK:
- There is a PR on how to execute and debug statically and dynamically linked ELF binaries
- https://github.com/unikraft/app-elfloader/pull/7
- Can compile using the Makefile from the repo.
- There is a pool of statically linked apps; then use dynamically linked ones.
- https://github.com/unikraft/static-pie-apps
PO:
- My student is still working on porting tests for Unikraft.
- Loupe graph - https://discord.com/channels/762976922531528725/992447887864762419/1077914394580762705
- Will report the results for the Linux testing suite.
SK:
- I'm working on a patch series to setup the initrd.
- Also setup the environment variables.
- Please find time to do testing for the apps catalogue.
SJ:
- No updates during this week.
- Test the elfloader with statically linked apps as next step.
- Looking into the sqlite app.
TT:
- There is an unhandled trap 8 showed when using posix-mmap.
- https://discord.com/channels/762976922531528725/992447887864762419/1077918072754688091
- Also looking through the statically linked apps.
- Looking into the python app.
## :wrench: TODOs and Decisions
AM:
- Continue with the procfs improvements development.
CV, SJ, TT:
- Continue the testing of the chosen apps.
- CV: openjdk app
- SJ: sqlite app
- TT: python app
FP:
- Check solution for proper cleanup, after running nginx with Loupe.
- Port Node.js using the elfloader.
MS:
- Look into the elfloader readme.
PO:
- Report the results for the Linux testing suite.
SK:
- Continue the development for the elfloader to setup the initrd and the environment variables.