Group: Guix/GSoC-2021
Contents
GNU Guix Google Summer of Code ideas page for 2021
GNU Guix and GNU Mes are part of the GNU Summer of Code. Below projects are suitable for a student with an interest in more advanced coding techniques. We have taken care to size the projects to ~180 hours of effort. It is hard to predict how long things really take, but we surely expect you can make some decent progress in that time frame. For application start contacting the mentors as soon as possible. We like to ask for early (small) contributions and interaction in the application period. Mentors are reachable through the mailing list of the GNU Guix project. Also, feel free to contact us individually. We encourage diversity and the GNU Guix project consists of friendly people from many backgrounds and nationalities. GNU Guix also participates in the Outreachy program with great success!
Project: Trusted computing: Goblins for GNU Guix
Building and deploying trusted services is critical for preserving security. Goblins is a secure actor-based model developed by Christopher Webber that enables complex distributed environments abiding by the principle of least authority (POLA) and privilege (POLP). Applications are in social media applications, such as Mastodon, and remote invocation of services and compute farms, and orchestration of virtual machines and containers. GNU Guix with GNU Shepherd brings POLA to software deployment, but is currently limited to single machines running containers. With GSoC we want to bring Goblins to GNU Guix as a first class citizen. This requires porting Goblins from Racket to GNU Guile Lisp and writing an small orchestration application as an example/prototype.
We value contributions in advance of GSoC, even if they are just little ones. During the application period we expect interaction with the mentors, so do not leave communication to the last minute.
For more information see
- https://docs.racket-lang.org/goblins/index.html
- http://www.gnu.org/software/guile/
- https://guix.gnu.org/
- https://www.gnu.org/software/shepherd/
Skills: Interest in security and Lisp programming
Mentors: Christopher Webber, Ludovic Courtès and Pjotr Prins (pjotr.public 31 at thebird.nl)
Project: Trusted computing: porting the GNU Mes bootstrap to RISC-V assembler
Trusted computing is extremely important for creating dependable systems. For trusted computing GNU Mes is minimizing the binary bootstrap by building the bootstrap fully from source. This allows full auditing of how systems boot. GNU Mes is currently booting GNU Guix for Intel and ARM based processors. With GSoC we want to invite a student with affinity in assembly programming to create a RISC-V port. RISC-V is of particular interest because millions, perhaps billions, of devices may soon be using this architecture.
Because we have a working ARM port (by Danny), we know what needs to be done. Mostly it is mapping an intermediate representation to RISC-V assembler and making the tests pass. As the tooling is largely untested on RISC-V there will be feature hacking and bug fixing in the Mes tool chain. This work can be executed on a qemu RISC-V VM. Once the VM bootstrap works we will take it to hardware and make it part of GNU Guix.
We value contributions in advance of GSoC, even if they're just little ones. During the application period we expect interaction with us, so do not leave it to the last minute.
For more information see
- https://www.gnu.org/software/mes/manual/mes.html
- https://www.gnu.org/software/mes/
- and the FOSDEM presentations.
Skills: Interest in assembler and C programming
Mentors: Jan (Janneke) Nieuwenhuizen, Danny Milosavljevic and Pjotr Prins (pjotr.public 31 at thebird.nl)
Project: Guix Data Service revision processing instrumentation and performance
The Guix Data Service processes and stores information from Guix. Currently the process can be slow though, and it's not that easy to work out where the areas for improvement might be.
Therefore, it would be good to add additional instrumentation to the process, making it easy to find out which bits are especially slow. Once that's known, hopefully those slow bits can be sped up.
We value contributions in advance of GSoC, even if they're just little ones. During the application period we expect interaction with us, so do not leave it to the last minute.
For more information see
Skills: Interest in programming in Guile and awareness of SQL
Mentors: Christopher Baines & Gábor Boskovits