什么是虚拟机

虚拟机就像计算机(computer),它模拟包括 CPU 在内的几个硬件组件,能够执行 算术运算、读写内存、与 I/O 设备交互。最重要的是,它能理解机器语言(machine language),因此可以用相应的语言来对它进行编程。

虚拟机的跨平台方式是自己创建一个标准的 CPU 架 构,然后在不同的物理设备上模拟这个 CPU 架构。

Java Virtual Machine (JVM) 就是一个非常成功的例子。JVM 本身是一个中等大小、程序员完全能够看懂的程序,因此很 容易将它移植到包括手机在内的上千种设备上。只要在设备上实现了 JVM,接下来任何 Java、Kotlin 或 Clojure 程序都无需任何修改就可以直接运行在这个设备上。

一个寄存器就是 CPU 上一个能够存储单个数据的槽(slot)。寄存器就像是 CPU 的 "工作台"(workbench),CPU 要对一段数据进行处理,必须先将数据放到某个寄存器中。但 因为寄存器的数量很少,因此在任意时刻只能有很少的数据加载到寄存器。计算机的解决办 法是:首先将数据从内存加载到寄存器,然后将计算结果放到其他寄存器,最后将最终结果 再写回内存。

相关推荐
czy87874758 分钟前
LwIP 协议栈核心.c 文件依赖关系图
c语言·网络·单片机
Yupureki1 小时前
《算法竞赛从入门到国奖》算法基础:搜索-记忆化搜索
c语言·c++·学习·算法·深度优先
StandbyTime2 小时前
C语言学习-菜鸟教程C经典100例-练习43
c语言
学嵌入式的小杨同学2 小时前
【嵌入式 Linux 实战 1】Ubuntu 环境搭建 + 目录结构详解:嵌入式开发入门第一步
linux·c语言·开发语言·数据结构·vscode·vim·unix
17(无规则自律)3 小时前
【CSAPP 读书笔记】第一章:计算机系统漫游
linux·c语言·arm开发·嵌入式硬件·学习·ubuntu
WYH2873 小时前
为什么在cubeide里勾选了can1,生成的工程里没有can.c?
c语言·开发语言
曾浩轩3 小时前
C语言学习记录——BC113 数字三角形
c语言·学习
nuo5342023 小时前
C语言实现类似面向对象的三大特性
c语言·开发语言
EmbedLinX3 小时前
Linux内核之文件系统:从VFS到实际存储的运作机制
linux·服务器·c语言·c++
2501_927773075 小时前
嵌入式——I.MX6ULL裸机环境配置
c语言·嵌入式硬件