首页 > Unix/Linux, Web开发, 操作系统 > 在Web上运行Linux

在Web上运行Linux

2011年5月19日 发表评论 阅读评论 25,434 人阅读    

一个叫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。

 

好烂啊有点差凑合看看还不错很精彩 (44 人打了分,平均分: 4.91 )
Loading ... Loading ...
  1. btw616
    2011年5月19日08:47 | #1

    压力巨大。。膜拜

  2. 大海无量
    2011年5月19日08:48 | #2

    这个没有什么技术性吧, 几前年我就研究过了!

  3. 桎梏
    2011年5月19日09:13 | #3

    哈哈,是在root目下有一个Hello.c 我还运行了一把

  4. tlzebsl-1
    2011年5月19日09:14 | #4
  5. qq
    2011年5月19日09:16 | #5

    @大海无量
    如果只是研究过的话,基本上就是狗屁

  6. 小缺
    2011年5月19日09:33 | #6

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

  7. airtrack
    2011年5月19日09:34 | #7

    果断执行rm -rf /

  8. 喜东
    2011年5月19日09:47 | #8

    输入的时候看不见我输入的字符啊,虽然是执行了。

  9. fe
    2011年5月19日09:59 | #9

    肃然起敬啊, 回显慢了点

  10. deepsolo9
    2011年5月19日10:03 | #10

    @小缺
    参照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).

  11. fe
    2011年5月19日10:09 | #11

    bellard这家伙顺便推广了自家的编译器和虚拟机

  12. indexRoad
    2011年5月19日10:17 | #12

    倍感压力,太牛了!

  13. 2011年5月19日10:21 | #13

    niubi

  14. 2011年5月19日10:23 | #14

    这家伙就是去年用个人计算机破了算pi世界纪录的牛人~~

  15. Lq
    2011年5月19日10:47 | #15

    我第一想法就是halt关机。。。但是不管用,呵呵

  16. debug
    2011年5月19日10:58 | #16

    膜拜吧,

  17. dallaslu
    2011年5月19日11:14 | #17

    让人感觉技术无极限啊,我等真是太浮躁了

  18. Steven
    2011年5月19日11:18 | #18

    大虎

  19. winddy
    2011年5月19日11:49 | #19

    @airtrack
    ramdisk,你删了/ 又不能怎么样,都是内存里面的东西。

  20. napolen
    2011年5月19日11:51 | #20

    膜拜,我等依旧太浮躁

  21. 2011年5月19日12:07 | #21

    真的是很牛逼啊,在Web中运行OS,从来没有想像过可以这样弄!真牛!

  22. summic
    2011年5月19日12:55 | #22

    @大海无量
    这就是你永远都是无名之辈,而人家获得认可的原因

  23. airtrack
    2011年5月19日14:20 | #23

    @winddy
    是没啥,好玩而已,自己电脑上从来不敢执行这个命令,用这个过过删/ 的瘾。

  24. wxnfifth
    2011年5月19日14:32 | #24

    纯SB嘛……你研究出来啥了?@大海无量

  25. 2011年5月19日14:49 | #25

    世外有高人啊,佩服!

  26. pythonee
    2011年5月19日16:11 | #26

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

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

  27. 2011年5月19日17:34 | #27

    @小缺 Chrome 13 也是停在那里了。还是火狐给力啊。

  28. 2011年5月19日17:51 | #28
  29. 2011年5月19日17:51 | #29

    拜摸 有空去我那 http://www.shoujikanshu.net
    多多交流

  30. 2011年5月19日19:16 | #30

    这家伙是神一级的。

  31. bigship
    2011年5月19日19:30 | #31

    大海无量 :
    这个没有什么技术性吧, 几前年我就研究过了!

    talk is cheap, show us your work

  32. jack
    2011年5月19日21:33 | #32

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

  33. jack
    2011年5月19日21:59 | #33

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

  34. 877527174
    2011年5月20日00:35 | #34

    可以下载回来,无需网络本地运行
    Firefox4通过

    http://www.vdisk.cn/down/index/7838267A6661

  35. yuleibest
    2011年5月20日09:01 | #35

    技术无止境,我辈多多努力呀

  36. Steven
    2011年5月20日09:50 | #36

    我要学linux!

  37. west
    2011年5月20日13:53 | #37

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

  38. shunai
    2011年5月20日18:31 | #39

    每次打开这个页面都卡一下!

  39. bell
    2011年5月21日00:51 | #40

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

  40. gtss
    2011年5月21日01:44 | #41

    我想保存下来。可是好像保存下来的不太好用。。。。。

  41. xm
    2011年5月21日15:13 | #42

    新人 刚学linux 编译了一下hello.c 再次膜拜

  42. 2011年5月21日15:45 | #43

    膜拜。

  43. Wang
    2011年5月22日07:25 | #44

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

  44. lee
    2011年5月22日09:18 | #45

    就是模拟个终端,然后通过ajax和那边的终端代理telnet虚拟机里的linux。

  45. RedNax
    2011年5月22日21:06 | #46

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

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

  46. 2011年5月23日09:38 | #47

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

  47. poet
    2011年5月23日16:00 | #48

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

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

  48. way
    2011年5月23日17:58 | #49

    poet 我也覺得博主 那句話說的有點模糊

  49. 2011年5月25日09:59 | #50

    牛逼啊。

  50. 飞絮哀
    2011年5月26日21:15 | #51

    @bell

    ifconfig,没有接驳网卡。

评论分页
1 2 4722
  1. 2011年5月19日12:31 | #1
  2. 2011年5月25日22:18 | #2
  3. 2011年7月12日23:51 | #3

无觅相关文章插件,快速提升流量