|
|
1
16
|
|
|
2
9
|
|
|
3
9
因为RTOS开发人员很可能不太熟悉C++。 C++ in Embedded Systems: Myth and Reality
Guidelines for using C++ as an alternative to C in embedded designs
|
|
|
4
8
起初,RTO不仅仅是用C编写的。它们也可以用其他语言编码。然而,用于RTOS的语言需要提供确定性行为。这意味着特定操作的延迟必须始终低于特定的时间量。例如,这排除了垃圾收集,在大多数实现中,垃圾收集会在一段不确定的时间内停止所有线程的执行。 |
|
|
5
6
不是“必要的”,但要实际得多
但一些附带案件和示威活动确实更为重要 . 一般来说,Java是一个大型复杂系统,用于业务逻辑,而不是操作系统内核。 如果我们还没有C ,Java可能朝着不同的方向发展,或者朝着多个方向发展。 但是我们有C语言,这对于操作系统内核来说几乎是完美的,对于业务逻辑来说也是一个挑战。 对于内核来说,Java和C一样好的论点与对于应用程序来说,C和Java一样好的论点一样现实。经验,减去一些附带的例子,压倒性地证明了每种语言的优点。 |
|
|
6
6
|
|
7
5
根据定义,RTO必须支持确定性调度和执行。通常,低中断延迟和直接硬件访问也是一个可取的因素。Java中使用的垃圾收集、JIT编译和字节码执行等技术使这些目标难以实现。 在…上 RTOS,而不是在其实现中使用。
通常使用C的另一个原因是,C(通常是C/C++)编译器通常是第一种,也是唯一一种可用于新体系结构的语言(汇编程序除外)(目前通常以GNU编译器实现的形式)。因此,如果您希望能够将RTO移植到最广泛的平台,那么使用最普遍的语言是有意义的。 |
|
|
8
3
我认为java在这方面的最大问题是自动垃圾收集。这里有一个 link 在java中创建实时系统。 |
|
|
9
3
因为基于C的RTO是众所周知的,并且已经使用了几十年。在许多特定情况下,它们的行为是可预测的,您可以找到许多使用这些系统进行开发的专家。 我知道没有一个基于Java的RTO达到了这样的水平,即一个生产安全关键实时应用程序的公司会采用它。 从技术上讲,没有人反对基于Java的RTOS,但这方面的研究、工程和产品还不成熟。 |
|
|
10
2
Java有实时性,但它需要操作系统的支持。 http://java.sun.com/javase/technologies/realtime/index.jsp |
|
|
11
2
否。代码执行的时间不可预测。 |
|
12
1
如果你想拥有实时Java,Sun有一个商业产品。 |
|
|
13
1
如果有的话,那是因为指针。在Java中,除了基本数据类型之外的所有内容都在堆上分配,任何变量都与
因此,C是构建RTOS内核的非常好的工具,而Java则不是。这并不意味着你不能用Java来做,但这会更难,而且可能不会那么成功。
|
|
|
14
1
|
|
|
15
-2
像Java这样的垃圾收集语言非常有用 用于实时编程。原因应该是显而易见的。 |
|
|
16
-3
没有。例如,有些RTO是用Lisp或Smalltalk编写的。
你凭什么认为它不能?
不,这是因为有一个神话,操作系统只能用C语言编写。一个可以被琐碎地证明是错误的神话,但仍然拒绝死亡。 这个神话是如此的普遍,以至于想要编写一个新的操作系统的人,简直不敢尝试C以外的任何东西。 |