简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
KVM(K Virtual Machine)是SUN公司的一种主要面向嵌入式设备的小型Java虚拟机,在PC机上也能使用。KVM最大的特点是极为小巧,只有一个可执行文件,大概200K多一点。相应地,KVM的功能也很弱,它只有cldc1.1的类库,所以没有图形界面;它也没有采用优化技术来提高性能,是一种比较原始的虚拟机。正因为KVM的小巧和简单,它是Java爱好者研究虚拟机的理想入门教材。而
接下来的两篇将介绍在KVM中字节是如何执行的,这是KVM中比较核心的内容,分为两部分来讲,本篇先介绍虚拟机中的栈和帧是如何实现的。 首先来看一些全局指针,在头文件kvm/vmcommon/h/interpret.h中定义有以下结构:struct GlobalStateStruct { BYTE* gs_ip; /* Instruction pointer (
现在的开发转到了ubuntu虚拟机上来,代码比较乱,有好几份,每一份都有10G左右,为了避免单个虚拟硬盘文件过大,也为了规避风险,新建了虚拟硬盘存放代码。这两天发现一个问题,几个后来加上的硬盘分区在启动时被分配的设备名是不固定的,很麻烦。但是根分区不会错,因为在/etc/fstab里面,"/"分区是通过指定分区的UUID来挂的,不会因为随机的设备名而搞错。我自己加的分区是通过指定/dev/
指令集是虚拟机中最底层也是最核心的部分,Java程序中的变量赋值、函数调用等所有操作最后都要被转化为一条条的指令来执行。指令集是在Java虚拟机规范中定义的,各种虚拟机实现要给予精确的实现,下面就来介绍一下指令集的分类以及在KVM中是如何实现的。在头文件kvm/vmcommon/h/interpret.h中有如下对指令集种类的定义: typedef enum {
昨天做的一个极简单的framebuffer的例子,用来学习怎样操作fb设备。 这段代码是在picogl的vesafb backend部分的基础上简出来的,所以变量名还保留着。流程如下:1 打开framebuffer设备;2 通过ioctl取得fixed screen information;3 通过ioctl取得variable screen information;
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000100000006901000000000000001000008301000001000000feffffff000000006601000067010000680100007b010000e1010000e2010000