【问题标题】:Which OS is the best for learning to write device drivers?哪个操作系统最适合学习编写设备驱动程序?
【发布时间】:2012-03-22 23:39:00
【问题描述】:

请理解,我并不是要发动一场火焰战争。

我有兴趣为自己的教育编写设备驱动程序。因此,我很想知道专家对编写各种操作系统的驱动程序相对容易的看法。

(a) 哪个操作系统有最好的设备驱动程序编程教程和 API 文档?

我拥有所有四种主要操作系统——Windows 7、Linux(Fedora 和 Gentoo)、Solaris 11、OS X 10.7.3——所以理论上,我可以接受有关该平台的任何建议。 (我什至有MINIX 3.2.0,但我尝试安装它还没有成功。它不识别我的网卡。)由于这个练习纯粹是为了我的启蒙,请随时提出不同的建议。

(b) 哪个操作系统是我最好的时间投资,如果我开始变得更好,我实际上可以发布我的驱动程序以供下载? (我认为 Windows 7 非常适合设备驱动程序编程,但市场可能已经饱和。)

(c) 如何获得开始为其编写驱动程序的设备?几乎所有东西都没有驱动程序吗?

提前感谢您的帮助。

【问题讨论】:

  • MS-DOS?说真的,如果我从零开始,我会看看那里并尝试编写一个简单的打印机驱动程序或其他东西。第二选择:Linux,因为它是开源的,所以我可以查看其他驱动程序的代码。
  • 这是一个“非建设性的辩论问题”,被标记为这样。
  • 这真的是一个“辩论”问题吗?我想做的只是在踏上我从未经历过的旅程之前利用他人的经验。我只是想“站在巨人的肩膀上”。

标签: device-driver


【解决方案1】:

(a) Linux。不仅有关于如何编写内核模块等的教程,而且您还可以查看内核的实际源代码。 Windows 可能也不错。

(b) Linux。我不确定 OSX 的文档,但如果 Apple 与 iOS 类似,那么发布任何内容可能会很痛苦。 Windows,这些天,IIRC,你需要一个代码签名证书(让其他人轻松安装它;不需要为了单纯的开发而获得证书)。

(c) 大多数东西都有适用于 Windows 和 OSX 的驱动程序。 Linux 得到了越来越多的支持,但是对于任何操作系统,没有什么说你不能为已经有的东西编写驱动程序。如果您的驱动程序更好,人们会推荐它——见鬼,甚至设备制造商也可能希望将它包含在他们的 CD 中。 (不过,那里的法律比比皆是。注意自己。)

【讨论】: