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

概念

虚拟机(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
相关推荐
冷雨夜中漫步5 小时前
高级系统架构师笔记——数据库设计基础知识(5)Armstrong公理系统、无损连接和有损连接
笔记·系统架构
安替-AnTi7 小时前
SQLBot:基于大模型与 RAG 的智能问数系统架构
系统架构·大模型·检索增强·rag·智能问数·nltosql
r i c k7 小时前
系统架构设计师--论文真题及预测
系统架构
武子康13 小时前
Java-153 深入浅出 MongoDB 全面的适用场景分析与选型指南 场景应用指南
java·开发语言·数据库·mongodb·性能优化·系统架构·nosql
qqxhb1 天前
系统架构设计师备考第44天——软件架构演化方式的分类和原则
系统架构·运行时·设计时·运行期·静态演化·动态演化·成本风险质量
sniper_fandc1 天前
XXL-JOB从入门到进阶——系统架构、核心原理
系统架构·xxl-job
qqxhb1 天前
系统架构设计师备考第43天——软件架构演化和定义
系统架构·架构演化·架构定义·对象演化·消息演化·复合片段·约束演化
helloworddm1 天前
Orleans Stream SubscriptionId 生成机制详解
java·系统架构·c#
庸了个白1 天前
一种面向 AIoT 定制化场景的服务架构设计方案
mqtt·设计模式·系统架构·aiot·物联网平台·动态配置·解耦设计
武子康2 天前
AI-调查研究-106-具身智能 机器人学习数据采集工具和手段:传感器、API、遥操作、仿真与真人示教全流程
人工智能·深度学习·机器学习·ai·系统架构·机器人·具身智能