java – 内核可以用汇编语言编写吗?
我从未做过内核编程.我是
Java语言的优秀程序员,经常使用它.现在我想用内核做一些有趣的事情.内核驻留在硬件和操作系统之间.它使用系统调用与硬件通信.每种编程语言都需要编译器来编译用高级语言编写的代码,然后生成低级代码,这通常是汇编语言代码.我怀疑,如果我们有用C编写的内核,那么我们应该在机器上安装C编译器吗?最后,当内核与硬件交互时它使用汇编语言,我可以用Java语言创建内核吗?如果是,那么同样的要求是什么?谢谢.
解决方法
通常,内核被认为是操作系统的一部分.
系统调用是操作系统向用户应用程序提供的接口.操作系统通过其他机制(例如中断或存储器映射寄存器)与硬件通信.
编译器输出通常是本机机器代码或特定于语言的字节码(如Java的情况).有时,编译器还会针对另一种编程语言,如C或Javascript(转换).
这不是必要的. C编译器生成的输出可以直接在硬件上执行而无需解释.
CPU不了解汇编.它了解机器代码.
它has been done.
如果你想用Java编写内核,那么你要么必须这样做 >将整个Java代码库编译为机器代码 现在谈到一个未说出口的,几乎是流变的问题:
可能不是.为什么?首先,因为设置需要很长时间.其次,因为您不能只编写开发平均业务应用程序的方式.您必须考虑非常时间关键代码的性能(例如,上下文切换,这通常需要手动调整组件足够快),手动内存管理(如:您的MRU可能希望您给它物理地址页表所在的位置,系统/硬件特定的机制(如何在这个特定的架构上访问XYZ控制器?),… 因此,您首先会失去Java对C语言等低级语言的许多优势. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |