Nik*_*kov 67 javascript linux emulation
今天,当我在Javascript中看到Linux模拟器时,我有一个令人痛苦的下降时刻:http: //bellard.org/jslinux/
它编译C程序,它有vi和emacs,它支持所有shell命令等.
它是如何工作的?
Aar*_*lla 35
起初,我还认为这只是一个终端模拟器,将您连接到VM,但事实并非如此.如果您观察网络连接,您可以看到,启动后,不再传输任何数据.
这是真的.
CPU不是神奇的东西; 事实上,它只是从内存中读取字节,并根据命令的含义修改RAM.
在这种情况下,CPU仿真器基于qemu代码.他所做的是创建一系列函数,其中索引是PC(程序计数器)的下一个字节.
现在您只需要一个简单的Linux发行版,它不需要任何奇特的CPU命令,如浮点运算或MMX代码和瞧.
有趣的是野兽的速度.整个事情有点迟钝但是,它是浏览器中的JavaScript.
结论:令人印象深刻.迫不及待地想看一个C64模拟器:-)
ale*_*lex 26
请参阅http://www.quora.com/CPU-Emulation/How-does-bellard-org-jslinux-work
简化说明
jslinux本质上是一个用软件实现的完整计算机,特别是JavaScript.这当然称为模拟器.此特定版本设置为运行Linux,但理论上它可以运行其他操作系统.
将模拟器(JavaScript,~90KB缩小,~7000行格式化)加载到浏览器中.Linux的一个版本以前被编译成机器代码,x86处理器被加载并复制到一个大的整数数组中,充当模拟计算机的RAM.然后,仿真器CPU指向机器代码的第一条指令,并告诉它开始解释指令(例如读/写RAM,进行算术和逻辑运算,跳转到不同的指令等).有时它会通过使用浏览器DOM模拟串行端口和终端的另一段JavaScript代码将数据(如系统日志或shell命令提示符)写入"终端".您的按键也通过此模拟串口发送回Linux ...
| 归档时间: |
|
| 查看次数: |
18541 次 |
| 最近记录: |