gpt4 book ai didi

linux - 对 linux 内核开发的一些事情没有概念

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:03 24 4
gpt4 key购买 nike

您好,我对 Linux 内核开发非常感兴趣,但我在理解一些重要概念时遇到了困难。

首先,设备驱动程序员和嵌入式程序员是两个完全不同的工作吗??

我的意思是我知道嵌入式程序员会研究固件和电路之类的东西

但是设备驱动程序员也做同样的事情吗?

其次,我听说通过编写设备驱动程序开始linux内核开发是件好事。

这是否意味着您必须掌握设备驱动程序?

坦率地说,我想确切地知道这些程序员每个人都做什么

我真正想要的是了解基于 ARM 和 x86 的 linux 内核并开始开发

我很好奇我真的必须知道所有电路和类似的东西吗。

P.S,系统程序员也是一份不同的工作吗??

最佳答案

当今 Linux 内核中的一些概念非常复杂:调度、内存管理 (MM)、锁定、特定于每种体系结构的内容、安全性等。

然而,设备驱动程序通常确实有些简单(也就是说,与其他驱动程序相比),因为它们的工作通常是充当用户空间界面和实际驱动设备之间的桥梁。因此,他们很少使用内核的内部机制,当然除了驱动程序 API 之外。此外,内核社区更倾向于接受设备驱动程序的贡献,因为它们只影响特定的用例(而对内核的贡献,如 MM 或安全性,会影响每个人)。

现在,在内核端尝试任何事情之前,请确保正确理解用户空间。因为,如上所述,设备驱动程序注册了当用户在代表设备的特殊文件上调用特定系统调用(系统调用)时调用的函数。然后,您必须非常了解这些系统调用。

在实际编写代码之前,请阅读提到的几本书 here .它们是技术书籍,但您需要正确理解主题。

此外,请阅读 actual code .这可能是最好的学习方式:看别人做了什么(毕竟,这是自由软件的本质)。您可以从查看简单的驱动程序开始,例如 drivers/leds 中的驱动程序.

关于职位名称:“嵌入式程序员”(或嵌入式计算机工程师)当然是编写设备驱动程序的不错人选。嵌入式计算机工程师还可以编写固件、微 Controller 程序和实际的用户空间应用程序,这些应用程序与硬件组件(设备控制、串行协议(protocol)等)密切相关。

您无需掌握电路即可编写设备驱动程序代码,但您肯定需要了解核心硬件概念,例如中断、内存映射 I/O、时序、总线、锁定、电源管理和可能的一些汇编语言。

关于linux - 对 linux 内核开发的一些事情没有概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com