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

==============================================================================

csdn怎么用iframe?

<p align=center><button id="jslinux-stop" style="display: none" onclick="document.getElementById('jslinux').src='about:blank';document.getElementById('jslinux-stop').style.display='none';document.getElementById('jslinux-start').style.display='block';">清除启动</button>

<button  id="jslinux-start" onclick="document.getElementById('jslinux').src='http://bellard.org/jslinux/';document.getElementById('jslinux-start').style.display='none';document.getElementById('jslinux-stop').style.display='block';">开始启动</button></p>

<p align=center><iframe id="jslinux" frameborder="" style="background:#000;border:0" width="" height="" src=""></iframe></p>

==============================================================================

运行截图:

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

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

从这个事我有这些感触,

  1. 在Web上运行一个Linux的操作系统不是问题。那么在Web上还有什么不能做的吗?
  2. Linux真是性能很高,在Javascript下运行感觉也不慢啊。
  3. 真是Techno-Geek。
  4. PS:js/linux作者神人Fabrice Bellard 的简介

    Fabrice Bellard1972年生于法国,曾就读于巴黎高等综合理工学院和法国电信研究院。对计算机有着浓厚兴趣的他,高中时就崭露头角,编写出了 LZEXE ,这是 DOS 上第一个广泛使用的文件压缩程序。

    Fabrice Bellard是一位计算机奇才,在业界有着重要的影响。 1996 年他编写了一个简洁但是完整的 C 编译器和一个 Java 虚拟机 Harissa。 Fabrice Bellard发明的 TinyCC 是 GNU/Linux 环境下最小的 ANSI C 语言编译器,是目前号称编译速度最快的 C 编译器。 Fabrice Bellard 杰作众多且涉及广泛, 1998 年编写了一个简洁的 OpenGL 实现 TinyGL , 2003 年开发了 Emacs 克隆 QEmacs , 2005 年还设计了一个廉价的数字电视系统。

    Fabrice Bellard的一个重要杰作是在 Linux 内核上写了一个 CPU 模拟器 QEMU ,这套开放源码的模拟器软件与 Bochs 、 PearPC 近似,但具有后两者所不具备的高速度及跨平台等特性。 QEMU 可以在不同的机器上运行独自开发的操作系统与软件,经由 KQEMU 这个开源的加速器,能模拟至接近真实电脑的速度。 QEMU 构思巧妙, 效率极高, 在借助核心态的 KQEMU 加速器之后,模拟代码的执行速度甚至能够接近真实机器。 QEMU 已成为目前使用最广泛的模拟器, KVM 和 Google Android 的模拟器都是基于 QEMU 的。

    Fabrice Bellard 可谓博学多才,他另外一个重量级项目是 FFmpeg 。 F Fmp e g 单词中的 F F 指的是 F a s t Forward, FFmpeg 这个 2000年发起著名的开源多媒体播放器项目, 是 MPlayer 的姊妹项目。这是一个如此重要的成就,没有这个项目,就没有我们今天广为使用的暴风影音等播放器。这个多平台、多功能的多媒体编码解码器由 Fabrice Bellard 发起并管理,现在是由 Michael Niedermayer 在进行维护。

    天才的创新经常是离经叛道式的超越,Fabriced Bellard 的一些项目让人感觉疯狂。比如他曾有一个项目是将带有 VGA 显卡的 PC 改装成 DVB-T 的信号发射器。这样一来,为了防止泄密,公司不仅要封声卡插口,还要焊上显卡插口。

    Fabrice Bellard在圆周率算法方面也有着惊人的成就, 1997 年 FabriceBellard 提出最快圆周率算法公式。在计算圆周率的过程中, Fabrice Bellard 使用改良后的查德诺夫斯基方程算法来进行圆周率的计算,并使用贝利 - 波温 - 劳夫算法来验证计算的结果。为了纪念他对圆周率算法所作出的杰出贡献, Fabrice Bellard 所使用的改良型算法被命名为 Fabrice Bellard 算法,这种算法是目前所有圆周率算法中最快的一种,这个计算 N 位 PI 的公式比传统的 BBQ 算法要快 47% 。

    2009年的最后一天, Fabr ice Bellard宣布另一重大突破:他用桌面电脑打破了由超级计算机保持的圆周率运算记录。这是一个壮举, 他将 PI 计算到了小数点后 2.7 万亿位!更令人惊讶的是, 他使用的不过是价格不到 2000 欧元的个人 PC ,仅用了 116 天,就计算出了 PI 的小数点后第 2.7 万亿位,超过了由目前排名世界第 47 位的 T2K Open 超级计算机于 2009 年 8 月 17 日创造的世界纪录。新纪录比原纪录多出 1200 亿位,然而,他使用的这台桌面电脑的配置仅为: 2.93GHz Core i7 CPU , 6GB 内存, 7.5TB 硬盘 !

    不过这次为了加快计算完成的速度保住排名第一的位置,Fabrice Bel lard使用了 9 台联网的电脑来对数据进行验证, 若使用一台电脑来验证计算结果的话, 则需要额外增加 13 天的计算时间。

在Web上运行Linux—js/linux模拟器的更多相关文章

  1. 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序

    物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...

  2. 如何在 Android 安卓手机上运行 Node.js 应用 | 如何在安卓手机配置node开发环境

    最近在学习js,由于没法随身携带笔记本电脑,在手机翻阅<JavaScript高级程序设计>时,时常想调试一下书中的代码.于是就有了,能否在手机上配置一个js开发环境.考虑到手机上的Chro ...

  3. 在mac上运行android的intel模拟器导致的死机问题解决

    最近用Mac开发android的时候遇到了一个烦人的问题,装上了HAXM,intel hardware accelerated execution manager以后,一运行android emula ...

  4. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  5. 在Window IIS中安装运行node.js应用—你疯了吗

    [原文发表地址]Installing and Running node.js applications within IIS on Windows - Are you mad? [原文发表时间]201 ...

  6. linux入门--Linux桌面环境(桌面系统)大比拼[附带优缺点]

    早期的 Linux 系统都是不带界面的,只能通过命令来管理,比如运行程序.编辑文档.删除文件等.所以,要想熟练使用 Linux,就必须记忆很多命令. 后来随着 Windows 的普及,计算机界面变得越 ...

  7. 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行

    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: 任意Linux OS - 支持开发和部署.适合演示应用程序. Windows OS - 仅支持开发. Mac OS - 仅支持 ...

  8. 让nodejs在iis上运行

    node在IIS上运行的好处: Tomasz的回答是我见过最棒的: 使用iisnode模块在IIS中托管node.js应用程序来取代自托管node.exe进程的优势在于: · 进程管理. Iisnod ...

  9. Wine——在Linux上运行Windows软件

    官网:https://www.winehq.org/ 参考: wikipedia 教你使用Wine在Linux上运行Windows软件 如何安装和使用Wine,以便在Linux上运行Windows应用 ...

随机推荐

  1. [JNA系列]Java调用Delphi编写的Dll之Delphi与JAVA基本数据类型对比

    Delphi与JAVA基本数据类型对比 类型 Delphi关键字 JAVA关键字 字节 备注 范围 整型 Shortint byte 1 有符号8位 -128..127 Byte 1 无符号8位 0 ...

  2. 配置taglib的uri的2种方法

    推荐方法1 1.把uri写在tld文件中,tld放在WEB-INF文件夹下,例如: <short-name>就对应了你在jsp中引用的时候<%@ taglib prefix=&quo ...

  3. lua工具库penlight--07函数编程(一)

    函数编程 序列 Lua 迭代器 (最简单的形式) 是一个函数,可以多次调用返回一个或多个值.for in语句理解迭代器和循环,直到该函数将返回nil. Lua有标准的序列迭代器 (ipairs和pai ...

  4. TPM--Trusted Platform Module

    trouSerS是IBM的一帮牛人搞的TSS软件栈,提供了与TPM交互的API,从而可以让我们方便地编写应用程序. 地址:https://sourceforge.net/projects/trouse ...

  5. JavaScript中数组常用方法的总结

    JavaScript中数组Array常用的方法总结 标签(空格分隔): JavaScript ECMAScript数组给我们提供了许多常用的方法,便于我们对数组进行操作,下面,就来总结一下这些方法. ...

  6. Tuning 13 Using oracle blocks Efficiently

    推进使用自动管理 automatic segment 1 个 Blocks = 2的幂次方倍 tablespace 像一块地 segment 像一个房子 extents 向一个装砖头的框 blocks ...

  7. 文件I/O:文件流→序列化

    ★文件流 文件操作是最简单最直接也是最容易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前 ...

  8. 栈类Stack

    Stack类是Vector类的子类.它向用户提供了堆栈这种高级的数据结构.栈的基本特性就是先进后出.即先放入栈中的元素将后被推出.Stack类中提供了相应方法完成栈的有关操作. 基本方法: publi ...

  9. iOS 横向菜单

    MKHorizMenu 源码地址 现在想要实现以下效果,其中“选时间”这部分是一个NavigationBar,“日期”是横向的菜单,“电影时段”是TableView. 比较难实现的是横向菜单,因为没有 ...

  10. 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)

    转自:http://blog.csdn.net/fzuim/article/details/61199351 涉及到有效期的设置,需要计算N天时间间隔的时间.  C++ Code  123456789 ...