Community Engagement
Engagement with the wider community is core to TS. We are focussed on solving serious real-world problems, and such solutions are of limited use if they are not easily accessible.
Therefore, TS community engagement has two objectives:
- encouraging others to use our solutions, and
- obtaining feedback on their usability and utility, to help us improve them and generally guide our research.
A direct consequence is that almost all we do is open source, and available on the TS GitHub, or contributed to other open-source repositories, such as the seL4 and Pancake GitHub.
Our discussion forum is
the Trustworthy
Systems Mattermost server on the seL4-external
team.
We welcome pull requests to our repos, and participation in technical discussions, subject to the Code of Conduct, which applies to all interactions on GitHub, in email, in person, and on Mattermost.
Getting started
The best starting points for getting familiar with TS technology are
- the Microkit tutorial
- The Pancake Playground for playing with the new Pancake language
We have created a project specifically to help community members to get to the point where they can contribute to something meaningful: The LionsOS firewall. This is an (as yet) very rudimentary firewall that serves as a framework for building a deployable product. The firewall has a long list of issues, representing suggested functionality that would make it more complete/usable.
Our aim is to get the community (including TS Interns) to develop the firewall to the point where we can use it to protect our own web site (and others can do the same). The firewall is also an excellent starting point for other products, such as wifi routers.
Pancake is a new verification friendly language whose abstraction level is between Assembly and C, and is suitable for systems programming, e.g., writing device drivers. It features minimalistic machine-word based data and statically allocated memory, along with several verification benefits including verified compiler. Any C programmers with some experience would find it reasonably easy to adopt Pancake. The code editor and the program output panes of the above Pancake Playground will let you try out running Pancake codes (a draft syntax reference can be found here).