职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 541|回复: 12

看到个纯JavaScript写的虚拟机,与大家分享一下

  [复制链接]
yoyo 发表于 2011-7-28 10:05 | 显示全部楼层 |阅读模式
  首先放一个地址:http://bellard.org/jslinux/



  这是一台完全通过JavaScript写成的、使用QEMU模拟x86指令集的、运行在浏览器(我的FireFox运行正常)上的虚拟机。这台机上面运行着一套2.6.20内核的Linux OS,这里的“运行”和以前一些WebOS或者JavaScript模拟DOS的程序并不是一回事,这里的OS就是完完全全运行在客户端浏览器上的,各种交互并不会传送到服务端或者委派到cmd.exe这些程序上执行,说白了这就是一台这实实在在运行的Linux虚拟机,这台虚拟机的相关信息可以在作者公布的Tech页面看到。也可以自己登录到虚拟机上查一下。

  上面基本的linux命令是没问题的(BusyBox支持),甚至还可以玩这些:
Console代码  
~ # echo -ne "#include<tcclib.h>\nint main(int a,char **as){printf(\"hello javaeye\\\n\");return 0;}" > je.c                                                      
~ # tcc je.c -o je.bin   
~ # ./je.bin                                                                       
hello javaeye   
~ #  

~ # echo -ne "#include<tcclib.h>\nint main(int a,char **as){printf(\"hello javaeye\\\n\");return 0;}" > je.c                                                   
~ # tcc je.c -o je.bin
~ # ./je.bin                                                                    
hello javaeye
~ #  另,从codeshell中的评论中看到,这个作者还是ffmpeg的作者、QEMU的开发者、最快速的计算圆周率的算法的作者。真是到了极致的geek。

  下面是这台Linux的一些资料:

内核信息:
Console代码  
~ # cat /proc/version                                                              
Linux version 2.6.20 (bellard@voyager) (gcc version 3.4.6 20060404 (Red Hat 3.4.   
6-9)) #1 Wed May 18 23:22:20 CEST 2011                        

~ # cat /proc/version                                                           
Linux version 2.6.20 (bellard@voyager) (gcc version 3.4.6 20060404 (Red Hat 3.4.
6-9)) #1 Wed May 18 23:22:20 CEST 2011                       
内存信息:
Console代码  
~ # cat /proc/meminfo                                                              
MemTotal:        14136 kB                                                         
MemFree:         10624 kB                                                         
Buffers:          2048 kB                                                         
Cached:            460 kB                                                         
SwapCached:          0 kB                                                         
Active:           2652 kB                                                         
Inactive:           48 kB                                                         
SwapTotal:           0 kB                                                         
SwapFree:            0 kB                                                         
Dirty:               8 kB                                                         
Writeback:           0 kB                                                         
AnonPages:         204 kB                                                         
Mapped:            320 kB                                                         
Slab:              728 kB                                                         
SReclaimable:      124 kB                                                         
SUnreclaim:        604 kB                                                         
PageTables:         36 kB                                                         
NFS_Unstable:        0 kB                                                         
Bounce:              0 kB                                                         
CommitLimit:      7068 kB                                                         
Committed_AS:      444 kB                                                         
VmallocTotal:  1023976 kB                                                         
VmallocUsed:         0 kB                                                         
VmallocChunk:  1023976 kB                                                         
HugePages_Total:     0                                                            
HugePages_Free:      0                                                            
HugePages_Rsvd:      0                                                            
Hugepagesize:     4096 kB  

~ # cat /proc/meminfo                                                           
MemTotal:        14136 kB                                                      
MemFree:         10624 kB                                                      
Buffers:          2048 kB                                                      
Cached:            460 kB                                                      
SwapCached:          0 kB                                                      
Active:           2652 kB                                                      
Inactive:           48 kB                                                      
SwapTotal:           0 kB                                                      
SwapFree:            0 kB                                                      
Dirty:               8 kB                                                      
Writeback:           0 kB                                                      
AnonPages:         204 kB                                                      
Mapped:            320 kB                                                      
Slab:              728 kB                                                      
SReclaimable:      124 kB                                                      
SUnreclaim:        604 kB                                                      
PageTables:         36 kB                                                      
NFS_Unstable:        0 kB                                                      
Bounce:              0 kB                                                      
CommitLimit:      7068 kB                                                      
Committed_AS:      444 kB                                                      
VmallocTotal:  1023976 kB                                                      
VmallocUsed:         0 kB                                                      
VmallocChunk:  1023976 kB                                                      
HugePages_Total:     0                                                         
HugePages_Free:      0                                                         
HugePages_Rsvd:      0                                                         
Hugepagesize:     4096 kB
CPU信息:
Console代码  
~ # cat /proc/cpuinfo                                                              
processor       : 0                                                               
vendor_id       : GenuineIntel                                                     
cpu family      : 5                                                               
model           : 4                                                               
model name      : Pentium MMX                                                      
stepping        : 3                                                               
cache size      : 0 KB                                                            
fdiv_bug        : no                                                               
hlt_bug         : no                                                               
f00f_bug        : yes                                                              
coma_bug        : no                                                               
fpu             : no                                                               
fpu_exception   : no                                                               
cpuid level     : 1                                                               
wp              : yes                                                              
flags           :                                                                  
bogomips        : 20.22                                                            
clflush size    : 32   

~ # cat /proc/cpuinfo                                                           
processor       : 0                                                            
vendor_id       : GenuineIntel                                                  
cpu family      : 5                                                            
model           : 4                                                            
model name      : Pentium MMX                                                   
stepping        : 3                                                            
cache size      : 0 KB                                                         
fdiv_bug        : no                                                            
hlt_bug         : no                                                            
f00f_bug        : yes                                                           
coma_bug        : no                                                            
fpu             : no                                                            
fpu_exception   : no                                                            
cpuid level     : 1                                                            
wp              : yes                                                           
flags           :                                                               
bogomips        : 20.22                                                         
clflush size    : 32



只学java 发表于 2011-7-28 10:05 | 显示全部楼层
有木有高手把ajax加载vmlinux26.bin, root.bin 和 linuxstart.bin改成本地调用?(比如flash加载文件然后js读取flash变量?)

要是能弄一个纯本地的网页方便很多啊有木有!!!!

木已 发表于 2011-7-28 10:05 | 显示全部楼层
本来就可以本地调用,这个不需要多高手。

请下载这篇blog中的附件:http://icyfenix.iteye.com/admin/blogs/1052904

ksdal 发表于 2011-7-28 10:06 | 显示全部楼层
IcyFenix
本来就可以本地调用,这个不需要多高手。

请下载这篇blog中的附件:http://icyfenix.iteye.com/admin/blogs/1052904


我的谷歌11必须联网运行 火狐4的话可以本地运行。。。怎么回事

楠楠 发表于 2011-7-28 10:06 | 显示全部楼层
不是太懂,具体的用处是什么

能文能武 发表于 2011-7-28 10:06 | 显示全部楼层
太强了!!!!

月上萧萧 发表于 2011-7-28 10:06 | 显示全部楼层
看了一下,原来只是把js当做io设备而已。
我还以为是完全用js做的

叫我小乖 发表于 2011-7-28 10:06 | 显示全部楼层
wang4382
看了一下,原来只是把js当做io设备而已。
我还以为是完全用js做的

囧,那是term.js干的事情。
精华在使用js完成对x86指令集的模拟。也就是cpux86.js那个文件。

爱车车 发表于 2011-7-28 10:06 | 显示全部楼层
虚拟机是不依赖于OS的(mac除外),你的这个io程序 如果在windows环境下还可以?我看够呛

江南枫 发表于 2011-7-28 10:07 | 显示全部楼层
不呛,在windows下当然可以。我的环境就是win7+ff4
ksdal 发表于 2011-8-7 11:10 | 显示全部楼层
原来...发神经是这样的啊...
天上智喜 发表于 2011-8-10 10:44 | 显示全部楼层
正好你开咯这样的帖
紫衿 发表于 2011-8-10 10:45 | 显示全部楼层
ding   支持
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-19 11:39 , Processed in 0.163511 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表