java是汇编写的吗_java – 内核可以用汇编语言编写吗?

A kernel resides between hardware and OS

通常,内核被认为是操作系统的一部分.

It communicates with hardware using system calls

系统调用是操作系统向用户应用程序提供的接口.操作系统通过其他机制(例如中断或存储器映射寄存器)与硬件通信.

Every programming language require a compiler to compile the code written in high level language and then it generate low level code, which is generally assembly language code.

编译器输出通常是本机机器代码或特定于语言的字节码(如Java的情况).有时,编译器还会针对另一种编程语言,如C或Javascript(转换).

Here comes my doubt, if we have kernel written in C, then should we have a C compiler installed on the machine?

这不是必要的. C编译器生成的输出可以直接在硬件上执行而无需解释.

At the end, when kernel interacts with hardware it uses assembly language

CPU不了解汇编.它了解机器代码.

can i create kernel in Java language?

If yes, then what are the requirements for the same?

如果你想用Java编写内核,那么你要么必须这样做

>将整个Java代码库编译为机器代码

>给自己一个CPU that can execute Java bytecode

>查找或构建可以在裸机上运行并在其中运行Java代码的Java VM和运行时(如果巧妙地执行此操作,您可以编写大部分运行时,也可以编写Java本身的部分VM).

现在谈到一个未说出口的,几乎是流变的问题:

Is this a good idea?

可能不是.为什么?首先,因为设置需要很长时间.其次,因为您不能只编写开发平均业务应用程序的方式.您必须考虑非常时间关键代码的性能(例如,上下文切换,这通常需要手动调整组件足够快),手动内存管理(如:您的MRU可能希望您给它物理地址页表所在的位置,系统/硬件特定的机制(如何在这个特定的架构上访问XYZ控制器?),…

因此,您首先会失去Java对C语言等低级语言的许多优势.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值