论坛首页 Web前端技术论坛

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

浏览 23005 次
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-21  
  首先放一个地址:http://bellard.org/jslinux/



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

  上面基本的linux命令是没问题的(BusyBox支持),甚至还可以玩这些:
~ # 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的一些资料:

内核信息:
~ # 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/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信息:
~ # 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 


   发表时间:2011-05-23  
有木有高手把ajax加载vmlinux26.bin, root.bin 和 linuxstart.bin改成本地调用?(比如flash加载文件然后js读取flash变量?)

要是能弄一个纯本地的网页方便很多啊有木有!!!!
0 请登录后投票
   发表时间:2011-05-23  
本来就可以本地调用,这个不需要多高手。

请下载这篇blog中的附件:http://icyfenix.iteye.com/admin/blogs/1052904
0 请登录后投票
   发表时间:2011-05-23  
IcyFenix 写道
本来就可以本地调用,这个不需要多高手。

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


我的谷歌11必须联网运行 火狐4的话可以本地运行。。。怎么回事
0 请登录后投票
   发表时间:2011-05-23  
不是太懂,具体的用处是什么
0 请登录后投票
   发表时间:2011-05-23  
太强了!!!!
0 请登录后投票
   发表时间:2011-05-23  
看了一下,原来只是把js当做io设备而已。
我还以为是完全用js做的
0 请登录后投票
   发表时间:2011-05-23  
wang4382 写道
看了一下,原来只是把js当做io设备而已。
我还以为是完全用js做的

囧,那是term.js干的事情。
精华在使用js完成对x86指令集的模拟。也就是cpux86.js那个文件。
0 请登录后投票
   发表时间:2011-05-23  
虚拟机是不依赖于OS的(mac除外),你的这个io程序 如果在windows环境下还可以?我看够呛
0 请登录后投票
   发表时间:2011-05-23  
不呛,在windows下当然可以。我的环境就是win7+ff4
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics