系统架构设计(十三):虚拟机体系结构风格

概念

虚拟机(Virtual Machine)体系结构风格,是指将整个系统抽象为一台"虚拟机",通过解释或模拟的方式运行应用程序。

它本质上提供了一种"平台中立"的运行环境,典型代表就是 Java 虚拟机(JVM).NET CLR(公共语言运行库)

组成

组件 说明
虚拟机解释器或引擎 解释或编译中间代码(如字节码)并执行。
中间语言(中间代码) 高级语言编译后生成的与平台无关的代码,例如 Java 字节码。
宿主硬件与操作系统 提供底层资源,虚拟机运行在其之上。

执行流程图(简要)

bash 复制代码
源代码(Java/C#) 
    ↓ 编译
中间代码(Bytecode/MSIL)
    ↓ 加载到虚拟机
虚拟机解释/即时编译执行
    ↓
本地机器码(在宿主平台运行)

特点

特点 说明
可移植性强 程序只需针对虚拟机编写,跨平台运行。
安全性高 可在虚拟机层控制内存访问和资源使用。
支持多语言 一种虚拟机可支持多种语言(如 JVM 支持 Java、Kotlin、Scala)。
运行效率略低 比起本地编译语言(如 C/C++),性能偏低,但 JIT 可缓解。
可扩展性强 可通过虚拟机机制添加调试、垃圾回收、安全管理等模块。

与解释器风格的对比

比较项 虚拟机体系结构 解释器体系结构
执行对象 中间代码 高级语言源代码
性能 较高(支持 JIT 编译) 较低
平台独立性 一般
示例 JVM、CLR Python 解释器、Shell 解释器

优缺点分析

优点:

  • 跨平台兼容性(一次编译,到处运行)
  • 可插拔、安全性好(沙箱机制)
  • 语言灵活性高(支持多种语言)
  • 易于调试和性能分析(字节码级别)

缺点:

  • 性能不如直接编译成本地机器码的系统
  • 启动较慢(需加载虚拟机)
  • 实现复杂(需设计虚拟机语言、垃圾收集等)

应用场景

场景 示例
跨平台应用开发 Java SE、Android、.NET 应用
脚本引擎系统 Lua VM、Python 虚拟机
运行安全隔离 App 沙箱、安全执行环境
嵌入式脚本系统 游戏引擎嵌入 Lua VM
相关推荐
roman_日积跬步-终至千里7 小时前
【系统架构设计(38)】数据库规范化理论
数据库·系统架构
杨杨杨大侠9 小时前
Atlas Mapper 教程系列 (8/10):性能优化与最佳实践
java·spring boot·spring·性能优化·架构·系统架构
thginWalker11 小时前
安全系统架构
安全·系统架构
thginWalker13 小时前
《高并发架构实战课》学习笔记
系统架构·高并发
武子康20 小时前
Java-136 深入浅出 MySQL Spring Boot @Transactional 使用指南:事务传播、隔离级别与异常回滚策略
java·数据库·spring boot·mysql·性能优化·系统架构·事务
做运维的阿瑞2 天前
Python零基础入门:30分钟掌握核心语法与实战应用
开发语言·后端·python·算法·系统架构
文火冰糖的硅基工坊2 天前
[硬件电路-324]:芯片根据功能、信号类型、应用场景、制造工艺、集成度及设计理念等多个维度进行分类
单片机·嵌入式硬件·系统架构·信号处理
云虎软件朱总2 天前
配送跑腿系统:构建高并发、低延迟的同城配送系统架构解析
java·系统架构·uni-app
qqxhb2 天前
系统架构设计师备考第33天——软件架构基础
系统架构·软件架构·构件·视图建模·分析设计实现·部署演化
张道天2 天前
软考系统架构设计师知识点-数学与经济管理
系统架构