在嵌入式圈子里,这几乎是一个“围城”式的终极命题:是守着裸机/RTOS 搞 Firmware(固件),还是投身 Linux Kernel(内核)撸驱动?

作为一名在大厂和初创公司都待过的“老兵”,我可以直接给你一个扎心的结论:Firmware 是你的底色,而 Linux Kernel 驱动是你拉开身价的阶梯。

如果你现在正厌烦于“模型化设计(Model-based)”那种被 Simulink 或自动代码生成支配的恐惧,那么这次转向 Linux 内核的机会,可能正是你从“画图工”回归“硬核程序员”的最佳契机。


一、 这两者到底在玩什么?

很多人觉得写驱动不就是配置寄存器吗?固件不也是配置寄存器吗?错,错得离谱。

  • Firmware(固件): 你是上帝。整个 CPU、中断向量表、内存分配全是你的。你追求的是确定性(Determinism)。挑战在于如何在极其有限的资源里玩出花来,解决掉电、实时性和低功耗。

  • Linux Kernel Driver(内核驱动): 你是社会的一员,必须遵守法律。你不仅要懂硬件,更要懂 OS 的规则。你需要处理多任务竞争、内存屏障(Memory Barriers)、复杂的驱动框架(如 V4L2, DRM, IIO)。你的挑战在于并发性(Concurrency)

结论: 内核驱动经验能让你理解“系统级”架构。一旦你懂了内核如何管理资源,你就不再只是个“点灯工”,而是一个系统级工程师


二、 谁的溢价更高?

  1. 适用范围:固件胜

固件开发在消费电子、工业控制、甚至你的电动牙刷里无处不在。它是“泛嵌入式”的基石。如果你想做个通才(Generalist),固件是你的基本盘。

  1. 稀缺性与天花板:内核驱动胜

能写好 Bare-metal 的人很多,但能看懂 Linux 内核调度、能解决驱动导致系统死锁、能给 SoC(片上系统)写高性能架构驱动的人,极其稀缺

  • 大厂门票: 像 ARM、Nvidia、高通、华为,他们最急需的就是能把新芯片(Silicon)带进 Linux 世界的人。

  • 身价拉开: 内核开发者的职业生命周期往往更长,因为你掌握的是一套极其复杂的、在各种领域(服务器、车载、Android、工业网关)通用的规则。


三、 驱动开发真的只是“复制粘贴”?

有人说:“我写过两个驱动,就是找个模板改 75% 的代码。” 如果你这么想,那你的价值永远上不去。

真正的驱动大牛玩的是:

  • 性能调优: 为什么你的 GPU 驱动吞吐量上不去?是 DMA 拷贝多了?还是中断处理太久?

  • 稳定性: 在高负载下,为什么系统偶尔崩溃?是不是原子上下文里用了会导致睡眠的函数?

  • 框架深度: 能够给 Linux 社区提交补丁(Upstream),重构现有的驱动框架。


四、 固件转向内核驱动的优势

  1. 回归硬核: 你会重新面对纯粹的指针、内存管理和架构设计。

  2. 向上生长: 你学会了内核驱动,再去做 Linux 应用开发或系统调优(eBPF, 性能监控)是顺理成章的。

  3. 横向通吃: 虽然职位数量可能少于通用固件,但每一个职位都是“刚需”。尤其在英国(题主所在地),ARM 的总部就在那,内核经验是进入顶级芯片公司的“金卡”。

总结建议

如果你觉得自己还年轻,渴望理解计算机系统的全貌,选 Linux Kernel Driver。 它会让你在未来面试任何嵌入式职位时,都有种“降维打击”的底气——“连 Linux 这么复杂的内核我都撸得通,你这 RTOS 的逻辑能有多难?”

不用担心固件技能丢了,因为写内核驱动的人,下沉去写固件只需几天;但写惯了模型化固件的人,想爬进内核的门槛,可能需要几年。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐