程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否可以用Java编写设备驱动程序?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决是否可以用Java编写设备驱动程序??

开发过程中遇到是否可以用Java编写设备驱动程序?的问题如何解决?下面主要结合日常开发的经验,给出你关于是否可以用Java编写设备驱动程序?的解决方法建议,希望对你解决是否可以用Java编写设备驱动程序?有所启发或帮助;

有两种方法可以完成此操作。

首先,在“ OS级别”运行的代码不需要使用与OS相同的语言编写。它仅必须能够与OS代码链接在一起。几乎所有语言都可以与C互操作,这实际上是需要的。

因此,从语言角度来讲,从技术上讲没有问题。Java函数可以调用C函数,而C函数可以调用Java函数。而且,如果OS不是用C编写的(例如,出于争论,它是用C 代码可以调用一些中间的C代码,然后转发给Java,反之亦然。C几乎是一种 通用 的编程 语言

程序编译成本地代码后,其源语言将不再相关。无论源代码在编译之前以哪种语言编写,汇编程序的外观都几乎相同。只要您使用与操作系统相同的调用约定,就没有问题。

一个更大的问题是运行时支持。OS中没有很多软件服务可用。例如,通常没有Java虚拟机。(没有理由从技术上讲不可能,但是通常,但是通常可以安全地假设它不存在)。

不幸的是,Java程序以其“默认”表示形式(如Java字节码) 需要 大量基础结构。它需要Java VM来解释和JIT字节码,还需要类库等等。

但是有两种解决方法:

  • 在内核中支持Java。这将是不寻常的一步,但可以做到。
  • 或将Java源代码编译为本地格式。Java程序不必编译为Java字节码。您可以将其编译为x86汇编器。对于您使用的任何类库,也是如此。那些也可以一直编译到汇编器。当然,java类库的某些部分需要某些操作系统功能,这些功能将不可用,但是可以避免使用这些类。

是的,可以做到。但这并不简单,也不清楚您将获得什么。

当然,另一个问题可能是Java不允许您访问任意内存位置,这会使很多硬件通信变得非常棘手。但这也可以解决,可能是通过调用非常简单的C函数来完成的,这些函数简单地将相关的内存区域作为数组返回以供Java处理。

解决方法

介绍

我听说过一些有关用Java编写设备驱动程序的信息(听说是“用我的耳朵”,而不是通过互联网),我想知道&Hellip;我一直认为设备驱动程序在操作系统级别上运行,因此必须以相同的语言编写作为操作系统(因此大多是CI假设)

问题

  1. 我通常会对此假设有误吗?(看起来是这样)

  2. OS中如何使用“外来”语言的驱动程序?

  3. 无论如何(从编程语言的角度)对设备驱动程序有什么要求?

谢谢阅读

大佬总结

以上是大佬教程为你收集整理的是否可以用Java编写设备驱动程序?全部内容,希望文章能够帮你解决是否可以用Java编写设备驱动程序?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。