I’ve been using Qubes for the past few months on my desktop, and I absolutely love it. There was a small learning curve in the beginning but beyond that I’ve been able to do everything I want in Qubes. I have different computing needs based on projects and I love having a dedicated Qube for each project.
I really want to become a Qubes OS developer. What do you think the best approach would be? I have a background in software but haven’t worked on kernel/OS development.
This is what I’m think:
Subscribe to Qubes development email groups
Read “How Linux Works” by Brian Ward
Go through Linux from Scratch
What do you think about this approach? Any existing contributors have suggestions?
hang out in the forum / IRC / matrix channels and network around
find issues and be helpful in fixing them
find new features and implement them
Qubes devs here are pretty hardcore coding and security ppl, so if you’re aiming for the forum badge “qubes dev”, given the skill level you display in your thread, that might take a while.
But don’t let that discourage you. You don’t have to be a 50yo genius hacker to contribute to pretty much any software project.
Not everthing in qubes is 100% security related either, some things are just gui’s that could use a brush up or fresh approach.
Long story short find work that needs to be done and be helpful
Adding to @renehoj good recommendations, if you want to make/design/contribute GUI tools for Qubes OS, learning PyGTK3 v3 will help a lot as most of current GUI tools are written with it.
Actually making gui tools / enhancing gui tools would be a pretty massive help, as qubes sometimes can be technical and any help to bring it closer to non technical ppl (like journalists, human rights activists and so on) would be very welcome!
If you REALLY want to help out PLEASE write documentation xD
I assume this also means proficiency in technical writing. If so, I’d highly recommend @tannerlambert’s suggestion on helping out with improving or writing the documentation from scratch.
Here are some issues already raised. Some of the “smaller” ones may be a good starting point, but still may require checking things out thoroughly, as per the project standards.
Note: this answer may be a bit biased, as I myself am not a software developer, but someone who cares about writing documents and guides for practical usage, rather than simply listing information.
Thank you everyone for your suggestions. There are areas that I could help contribute even now. This is really helpful to know.
I’ll look into adding documentation as needed. As @aronowski and @tannerlambert rightly pointed out, Qubes requires some upfront investment to setup and that requires good docs, especially for non-technical folks.
@renehoj , @alimirjamali , I’ll look into the GUI tools. I’m proficient in Python so it could be an area that I can help too!
It can be hard, as least according to my experience, to set up Qubes builderv2, to build and test Qubes OS components. Frankly speaking, anything but the in-repo readme GitHub - QubesOS/qubes-builderv2: Next generation of Qubes OS builder can be outdated and inaccurate. I’d recommend using local executor to get a general idea of how builderv2 works, then switch to Qubes executor for better security.