就某些方面而言,完全硬件模拟器是进行模拟的最简单方式。很多工作都需要构建一个完全硬件模拟器,但是一旦您拥有这样一个模拟器,所有的事情就都可以迎刃而解。例如,用于 Macintosh 的 VirtualPC 版本 3 开始支持 Linux。
硬件模拟可以解决使用其他方式难以解决的问题。例如,我以前有一个BIOS闪存工具,仅以用于DOS的自解压缩的映像文件的格式发布。更糟糕的是,运行它的机器必须在传统的 ISA 软盘控制器上安装实际的软盘(我的 Windows 桌面机有一个 LS-120 驱动器)。通过模拟来解决这个问题吧!我在模拟器下运行该程序,将数据写入已经插入 Mac 的一个 USB 软盘驱动器。
虽然如此,想要在 Macintosh 或者任何其他非 x-86 机器上运行x86Linux二进制程序的用户,为了尝试运行程序,可能要完全依赖于某种当前可用的x86模拟器。在类似这样的系统上,大部分工具程序将运行得非常好(虽然可能较慢)。要担心的惟一一个主要顾虑是,为了提高性能,这种系统的用户可能安装较小的或者较老的 Linux 发行版本。使用 32 MB 内存来运行模拟机器的那些人不可能运行最新版本的 KDE。
部分硬件模拟器
部分硬件模拟器是一个中间解决方案:它们模拟一台计算机,但是这台计算机只能是与它们实际上所在的计算机类型相同的计算机。由于执行的速度与宿主机器相当,所以类似这样的程序可以降低模拟的成本。此类模拟器的示例包括 Serenity Virtual Station 和 VMWare。
当您拥有用于多种操作系统的应用程序,而且需要同时运行它们时,这些系统最为实用。类似于完全硬件模拟,这样的系统将运行一个完全的 Linux OS 环境,只要您的程序能够适当地跨Linux系统移植,那么就没什么问题。不过,再次声明,Linux的移植到较老版本的可移植性将有非常有用。使用虚拟机的人们可能愿意在这样的系统上运行一个较老的、占空间较小的 Linux 版本。 软件模拟器
基于内核的模拟器可以捕捉到到达它的系统调用。用户空间模拟器,比如 lxrun,会等待应用程序尝试进行系统调用。由于 Linux 系统调用功能与 Solaris 或SCOUNIX上的系统调用功能不同,所以结果是发生一个代码段错误。然后,lxrun程序像一个调试器那样纠正这个错误并使系统调用继续运行——但是,实际上,它已经截取了这个系统调用,并向底层操作系统进行相应的系统调用,而且解决了所有问题。聪明!
文件系统结构
文件系统的问题通常更为微妙。访问文件系统极其简单。不简单的是如何找到您想要的文件。
如果您的程序在模拟环境中运行,那么
copyright 2004-2009 www.qqcf.com all rights reserved. DIV+CSS架构 本站为学习性免费网站,没有任何商业性质,甚至连一个外部广告都没有投放 所有文章均来源于互联网,如发现有侵权,请来信告知,本站将会以最快的速度删除和改正,E-Mail:cftop@qq.com