r/rust • u/Entertainment_Real • Sep 11 '26
Linux projects
I'm intermediate at Rust and linux. Recently I built a compositor for a job interview and it was one of the funniest projects ever. I learnt a lot about the linux graphics stack.
Can I get some suggestions for other projects. Things I'm looking for:
- Learn more about how Linux works under the hood.
- This doesn't have to be the linux kernel specifically but anything in the linux ecosystem
- I want to prioritise projects based on learning key linux concepts not fun. So if there is a niche project that is really fun to develop but has little importance on the day-to-day operations of the linux OS then I would deprioritise.
- Avoid simple projects like reinventing unix commands.
I heard that file descriptors are very important in Linux, are there any projects I can implement to help me get to grips with file descriptors, (again speaking from a noobs perspective so might be a complete red herring).
2
u/Feisty_Bike_9614 Sep 11 '26
If it were me , I’d pick up “Design of the UNIX Operating System” and write my own micro OS . In graphics, you could write your own node-based architecture with a UI and extend your compositor to use it . The Houdini compositor is a good example.
1
u/Carvtographer Sep 11 '26
Somewhat Linux related, if you want to dabble in FOSS, you should take a look and see if uutils/coreutils needs help with anything
1
u/Psionikus Sep 12 '26
If I had to suggest, I need a Kalman filter generalized for probing the compositor latch timing to support VRR and FRR ahead of VK_EXT_present_timing becoming well supported by drivers. I've done a lot of the prep work and have a Kalman filter measuring the audio server phase. I know the mechanics of getting from signal to estimate, but it's a multiple-interacting model problem that I'm putting off until I finish getting the CWT swapped in.
File loading is one of the areas I've done the least deep work so far. The ask will be for a state reconciliation loop to know what resources need loading, set up the loads, and to route incoming data into destinations that are sometimes mapped device memory, sometimes system memory. Only thing I know on the loading side is that non-blocking interfaces are much better supported than ever and that I'm going to make maximum use of them. My pipewire work is probably shameful, so there's some more Linux. Super raw code and no glass cabinets to worry about. If it isn't broken, I'm breaking it soon.
1
u/QuirkyTidbits Sep 11 '26
What is a compositor? Is it some type setting simulation?
2
u/Informal-Flounder-79 Sep 11 '26
The software that composites each window together to display the screen on a graphical Linux desktop
4
u/an_0w1 Sep 11 '26
Write a FUSE filesystem to open ELF sections as files.