为嵌入式设备选择内核版本时需要考虑哪些因素?

mat*_*975 5 drivers kernel embedded linux-kernel

我已经使用 buildroot 成功创建了内核、根文件系统和交叉编译器,使我能够编写应用程序代码以在嵌入式设备上运行。目前我不需要编写设备驱动程序,目前也不知道如何去做,但很可能将来我可能需要这样做。从我的研究中,我了解到内核 API 可以在版本之间变化,并且编写设备驱动程序是特定于内核版本的,这与编写用户级应用程序不同。基本上我想知道:

  1. 以上正确吗?
  2. 在决定使用哪个内核版本时需要考虑哪些因素?

我问的原因是,从我读过的有关该主题的所有文献(以及参加嵌入式 linux 课程的情况)来看,都涉及 2.6.x 版内核。我正在使用 3.6.11 内核通过嵌入式系统进行构建,但我想知道为什么课程和文献似乎处理这些较旧的内核。使用旧内核有什么好处,或者使用新版本有什么缺点?

pet*_*rph 3

3.x 只是 2.x 的延续 - Linus 有一次认为该版本的“x”部分太大了。一般来说,您可能需要相当新的内核,可能是标记为“longterm”的内核。很大程度上还取决于您的应用程序 - 虽然内核中的远程安全漏洞相当罕见,但本地问题更为普遍。