为什么设备驱动程序不使用已编译的Python或类似语言编写?

问题描述 投票:0回答:2

如果可以将 Python 代码编译成类似 C 或机器代码的代码,为什么我们不用 Python 编写设备驱动程序?如果它是内存安全的,这难道不是比 C 更好的选择吗?

这难道不会加快开发时间并降低成本吗?

python c windows driver
2个回答
6
投票

设备驱动程序通常需要加载到内核中,因此它们可用的设施受到严格限制。您已经习惯了用户模式编程,您可以在其中获得各种便利,其中许多便利在内核中根本不存在。

您可以在 Python 中原型驱动程序,但不能发布这样的驱动程序。 Python 是一个用户空间程序,我从未听说过 Python 的内核版本。1

例如,如果您有一个需要通过串行通信的硬件,您可以在 Python 中计算出需要做什么,快速迭代到解决方案,然后在了解所需的确切设计后用 C 重写该解决方案实施。


1 值得注意的是,大多数操作系统的内核都需要 C,有时需要 C++,很少需要其他东西。 Linux 内核最近添加了 rust 支持,但这并不是一件容易的事情。


0
投票

Python 代码需要编译为本机机器代码,而不是在解释器或虚拟机中运行。有一些工具可以做到这一点1,但是使 Python 如此好用的许多功能都是相当重量级的,并且在该级别上不可用或不合适。


  1. 将Python编译为机器码是否可行?
© www.soinside.com 2019 - 2024. All rights reserved.