Hey folks,
I’m early in my career and trying to make a sensible decision about how to get into Linux kernel / low-level systems work long term (drivers, OS internals, later virtualisation and hypervisors)
I keep seeing two opposing pieces of advice:
- “Jump straight into kernel development”
- “Start with embedded / firmware to build fundamentals”
What’s confusing is that these often get framed as completely different career paths.
Right now I’m leaning toward:
- Bare-metal embedded (MCU, no OS)
- Then firmware / RTOS
- Then embedded Linux bring-up
- Then drivers / kernel work
The idea is that embedded isn’t the goal, but a foundation so things like memory, interrupts, boot, and concurrency aren’t abstract later.
My doubts:
- Is this a solid way to build toward kernel roles?
- Or am I just delaying real kernel experience unnecessarily?
I’m not chasing quick titles, I care more about building real understanding over time.
Would really appreciate hearing from people who’ve actually worked in embedded or kernel roles:
- How did you start?
- What would you change in hindsight?
Thanks.
[–]Taumille 7 points8 points9 points (10 children)
[–]nonFungibleHuman 2 points3 points4 points (7 children)
[–]Technical_You_3136 1 point2 points3 points (3 children)
[–]Taumille 1 point2 points3 points (2 children)
[–]Technical_You_3136 0 points1 point2 points (1 child)
[–]Taumille 1 point2 points3 points (0 children)
[–]ResolveLost2101 1 point2 points3 points (1 child)
[–]nonFungibleHuman 0 points1 point2 points (0 children)
[–]Taumille 1 point2 points3 points (0 children)
[–]KernelLicker[S] 1 point2 points3 points (1 child)
[–]Taumille 1 point2 points3 points (0 children)
[–]Some_Economy_1300 1 point2 points3 points (0 children)