获取虚拟机的唯一标识_虚拟机VM ( c++ 版本)(1)

本文介绍了一个简单的虚拟机VM的C++实现,包括VM的基本结构、字节码定义,以及如何通过栈、内存管理和指令执行来运行字节码。作者探讨了虚拟机的目的,介绍了程序执行的流程,如fetch、decode和execute过程,并展示了如何在C++中构建虚拟机的核心组件。
摘要由CSDN通过智能技术生成

虚拟机VM ( c++ 版本)1

e7ea19dd0a75e8bbb18a1ff5f7330c4d.png

今天通过学习来尝试自己去写一个虚拟机,我们一切先从简单开始。做事总是需要找一个原因,也就是为什么做这个件事,做这件事的意义,发明蒸汽机为了人类从繁重的劳动中解放出来更多思考,发明计算机为了辅助人类从重复计算和繁重计算中解放出来去享受生活吗? 结果带来负效应 996。

4ebab4cb46e685c7a6a738e2fa50f0a4.png

CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)和Java 虚拟机一样也是一个运行时环境,它负责资源管理(内存管理和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

VM 的基本结构

1b029ec47e4e5bd6625d93bf23a40e45.png

虚拟机实际上对物理计算机进行抽象和虚拟化,所以要写一个虚拟机,首先需要对计算机内部简单结构进行了解。我们开发应该是理论先行。

  • 还要一个主要方法
  • 内存数据内存(data memory)指令内存(code memory)
    这两个部分都是用于存储数据和源码内存

字节码相比于机器码是更高级以及更有有规律可寻
字节码作为工作的最小单元

  • fetch : fetch 不断循环地执行读取 data memory 和 code memory 获取源码
  • decode : 负责将字节码进行解码为指令供 execute 执行
  • 寄存器(registers)中保存了 sp 栈指针、fp 栈帧指针和 ip 程序指针
    通过 ip 指针的自增一行一行读取字节码然后由 decode 将字节码翻译成指令来执行
  • 栈虚拟机操作数栈持有操作数操作数可以入栈或出栈进行操作栈的大小是由每一个方法显式确定的
public class HelloWor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值