Skip to content
Xiangyan Sun edited this page Dec 2, 2015 · 6 revisions

This is a TODO list identifying areas people can contribute to the project. This list is sorted by difficulty.

Before you start implementing something in this list make sure to discuss with us (via gitter or #flinux at freenode). This way you can know if someone else is already doing the job or at least we can talk about implementation strategies or potential issues.

This list is always incomplete, missing functionalities and new ideas are always welcomed.

Small tasks

  • Test Linux programs and report bugs. Make sure you have read Report a bug.
  • Add assertion routines. #54
  • Test and support flinux on case-sensitive NTFS file systems. #55
  • Add support for chroot.
  • Implement more nodes in /proc and /sys.
  • Clean up code and error messages.
  • Implement or emulate missing sockopts.

Intermediate tasks

  • Implement AF_LOCAL/AF_UNIX sockets. #56
  • Implement a debugger in flog. #61
  • Implement inotify.
  • Implement process groups and controlling terminals.
  • Implement ptys.
  • Fix signal deliver bugs and crashes (most likely reside in dbt fix up code).
  • Find and squash data races. There might be many when forking in a multi-threaded program.
  • Implement better system call logging. Maybe something like a native strace will pretty prints arguments and results. But we need to make sure we don't introduce code bloat.
  • Implement AVX/AVX2 decoding and translation in dbt.

Hard tasks

  • Implement advisory file locking system calls
  • Find a way to properly support SA_RESTART in signal handling
  • Implement efficient and correct epoll (at least support level triggered epoll).
  • Support arbitrary self-modifying code in dbt. (plus: make it efficient)
  • Make dbt dual x86/x64 compatible and then work towards full x64 support.