在Web上运行Linux

在Web上运行Linux

一个叫Fabrice Bellard的程序员写了一段Javascript在Web浏览器中启动Linux(原网页,我把这个网页iframe在了下面),目前,你只能使用Firefox 4和Chrome 11运行这个Linux。这不是什么假的模仿Linux的东西,这是实实在在的运行一个Linux。这一举动还引起了很多很牛人的关注,包括Javascript的创建者Brendan Eich

随后,Fabrice Bellard发布了相关的技术说明:http://bellard.org/jslinux/tech.html,从这份文档中我们可以看到:

  • 这个模似器完全由Javascript写成
  • CPU仿真器使用的是QEMU(接近于原古的486),为了装上Linux,其做了一些改动。
  • Javascript的终端本来可以使用termlib,但他还是自己写了一个,因为OS的按键和Web浏览器不一样(here
  • Linux  使用了2.6.20内核,编译配置在这里,并做了一些小改动
  • 磁盘用的是Ram Disk,在启动的时候装载。其文件系统由BuildrootBusyBox产生。
  • 在Home目录下有一个hello.c的程序,你可以使用TinyCC编译(tcc,参看酷壳的这篇文章

从这个事我有这些感触,

  1. 在Web上运行一个Linux的操作系统不是问题。那么在Web上还有什么不能做的吗?
  2. Linux真是性能很高,在Javascript下运行感觉也不慢啊。
  3. 真是Techno-Geek。

 


关注CoolShell微信公众账号和微信小程序

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
好烂啊有点差凑合看看还不错很精彩 (50 人打了分,平均分: 4.84 )
Loading...

在Web上运行Linux》的相关评论

  1. 为啥我用chrome12 bata版,运行到Freeing unused kernel memory: 124k freed就跑不动了呢

  2. @小缺
    参照http://bellard.org/jslinux/tech.html作者的notes

    It was tested with Firefox 4 and Google Chrome 11 on Linux, Window and Mac (it does not work with Chrome 12 beta. As far as I know, it is a bug in the browser).

  3. 话说,我是在linuxtoy上面看到的,还去玩了

    不过我还没有发现这件事情有意思的地方,不是LOA还装在一个真正的土豆里去了嘛

  4. 这牛人啊, ffmpeg的作者, QEMU的开发者.
    还是最快速的计算圆周率的算法的作者.
    简直是神人.

  5. 可以看到加载了vmlinux26.bin内核, 才1.67 MB, 真他妈牛…
    还有一个root.bin包含了/目录下所有文件, 包含那个tcc.
    还有一个看名字应该是加载linux内核用的,linuxstart.bin. 14.5 KB
    然后这些东西就在Js写的虚拟机里跑起来了, 这真他妈是神人啊…

  6. 试了一下,vi也是可以运行的. 有人说运行了hello.c,我试了一下,没有gcc编译器,这个C代码是如何运行的呢?

  7. wget似乎不能用
    另外,要怎么用复制粘贴功能呀?右上角的剪贴板意义不明

  8. 看了半天,我还是不能理解,这个虚拟机运行的架构。模拟的x86在哪?服务器,浏览器?linux内核在哪?整体的数据交互是怎么样的?

  9. @lee
    没搞清楚就不要乱说。
    这个东西是用Javascript写的PC模拟器,你用Chrome看看它的网络请求就知道了,不是什么ajax做的telnet终端那种下三滥技术。
    整个模拟器是在一个叫cpux86.js或者cpux86-ta.js(如果浏览器的JavascriptEngine支持typedArray的话用这个)模拟出来的,运行的时候会从网上动态抓下vmlinux26.bin, root.bin 和 linuxstart.bin,用这个模拟器运行里面的代码。

    如果要抓这个网页的话这些文件都要抓,而且自己要架个web服务器才能用(ajax的原因),不能直接拖到浏览器里。

  10. 建议博主把浮动框架去了,改用其他方式嵌入,不是所有人都用火狐,我谷歌chrome11,打开博客首页就卡在那了,最后还崩溃。。。

  11. 拜托读懂原文。。。你真的理解为这个引擎使用 QEMU 来虚拟 x86?

    作者说的只是借鉴了 QEMU 中的编程思想而已。。。

发表评论

邮箱地址不会被公开。 必填项已用*标注