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

如何实现的:

作者 Fabrice Bellard 使用 JavaScript 编写了一个简单的 PC 模拟器,包含32位 x86 兼容 CPU、8259 可编程中断控制器、8254 可编程中断计时器

实现 16450 UART 串口设备

用 JavaScript 实现一个终端

编译包含 FPU 模拟的 Linux 内核镜像。

使用 Buildroot 创建文件系统并在启动时载入 RAM。

添加基本工具集 BusyBox,微型 C 编译器 TinyCC,以及迷你编辑器 QEmacs

根据作者的描述,该模拟器的初衷是了解现在 JavaScript 引擎的工作,尤其是 Firefox 4 的 Jaeger Monkey 和 Chrome 的 V8,这个探索的结果,可以被用来:

通过 Linux 的启动时间反应浏览器的 JavaScript 性能。(作者说目前在 Firefox 4 下比 Chrome 11 要快 2倍,Chrome 12 有 Bug 无法运行)。

实验在用 JavaScript 进行客户端运算时载入 x86 运行库的可能性。

进一步发展从而支持 DOS 游戏的运行。

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

CPU仿真器使用的是QEMU(接近于原古的486),为了装上Linux,其做了一些改动。

Javascript的终端本来可以使用termlib,但他还是自己写了一个,因为OS的按键和Web浏览器不一样(here)

Linux  使用了2.6.20内核,编译配置在这里,并做了一些小改动。

磁盘用的是Ram Disk,在启动的时候装载。其文件系统由Buildroot 和BusyBox产生。

在Home目录下有一个hello.c的程序,你可以使用TinyCC编译(tcc,参看酷壳的这篇文章)

从这个事我有这些感触,

在Web上运行一个Linux的操作系统不是问题。那么在Web上还有什么不能做的吗?

Linux真是性能很高,在Javascript下运行感觉也不慢啊。

真是Techno-Geek。

网页版 linux终端,网页版的Linux-大神之笔相关推荐

  1. python爬虫:关于解决request.get和点击查看网页源代码的内容不同的问题//及大神版js加密参数获取教程指路

    首先声明:爬虫小白,虽然爬过几个网站,但是知识几乎都是实践中获取,如果以下说的不对的,请多指正,谢谢!谨此给和我一样的小白提供一个解题思路! 目录 问题背景 菜鸡版解决方案 大神版js加密参数获取教程 ...

  2. 深度linux玩大话西游2,大话西游2大神用版单盘点服务器活跃度 你的服务器是否在列...

    大话西游2大神用版单盘点服务器活跃度 你的服务器是否在列 某位大神利用闲暇时间盘点出了14个服务器的人气,也好让有移民想法的朋友们对服务器有一个大概的了解.这位大神,替那些小伙伴们跟你说声辛苦了!我们 ...

  3. Linux终端一直输出login,Linux tty pty console区别

    基本概念: 1. tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被 ...

  4. android linux终端,为Android安装Linux终端仿真与环境APP

    今天为大家推荐Android下的Linux终端仿真与环境APP,它叫Termux. 有了Termux,它会在你的Android手机模拟一个最小化的Linux运行环境,与很多Linux发行版类似.它可以 ...

  5. linux终端 介绍,全面介绍Linux终端命令(二)

    上一篇文章我们介绍了五类Linux终端命令,相信会觉得有用吧,这里继续介绍另外一些Linux终端命令,大家一定要熟记这些终端命令,会省去很多的查找这些命令用法的时间,提高工作效率. 六.程序运行类 1 ...

  6. linux终端打印保存到文件,Linux 终端中命令输出保存到文件中的方法

    当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看. 有时你需要将输出保存到文件中以备将来参考.当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linu ...

  7. linux 修改用户组_linux小白到大神的成长之路:linux系统用户组的管理!

    linux小白到大神的成长之路:linux系统用户组的管理! 本经验由宗龙龙原创,全文共500多字,阅读需要14分钟,如果文中存在错误,还请大家多多指点,我会积极改进的! 上一篇文章为大家详细介绍有关 ...

  8. 关于SDN的未来,Linux基金会专访阿里云网络大神

    摘要: 近日,大家熟知的国际开源组织Linux基金会与阿里云进行了一次访谈.专访了阿里云网络团队掌门人江鹤.江鹤执掌阿里云网络产品线,并负责阿里集团网络虚拟化产品的研发管理工作.在软件定义网络(SDN ...

  9. 红米4刷linux,极客精神,国外大神将红米Note 7刷上了Ubuntu

    原标题:极客精神,国外大神将红米Note 7刷上了Ubuntu 说起刷机,可能现在许多的科技爱好者都不太经常刷机了,随着现在手机硬件性能的越来越强大,以及系统UI的越来越好用,刷机似乎不再像过去一样成 ...

最新文章

  1. ACMNO.40 C语言-子串 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
  2. 2014-3-13 星期四 晴 [取舍 果断]
  3. python matplotlib数据可视化教程_matplotlib的Python数据可视化和探索——入门指南
  4. stat函数_数据分析工具入门 掌握这些Excel函数就够了
  5. mysql简单语句_MySQL 简单的语句
  6. 【C#】隐式类型var
  7. GPO组策略 权限处理之原则
  8. Unity人物动画问题
  9. Android 仿淘宝首页界面
  10. 多目标跟踪 | 评测指标
  11. IDEA git 切换分支产生问题
  12. msgbox在matlab中,Matlab load global 变量 length( ) 函数 msgbox( )函数
  13. IC-二进制, 自然数, 有符号数
  14. Windows11网速慢解决方案
  15. R语言基础指令和并行算法初识(上篇)
  16. 熊绎:我看软件工程师的职业规划(转载)
  17. win7网络找不到局域网计算机名,教你操作win7系统局域网内找不到其他电脑的解决方法...
  18. Excel Vba快速界面设计入门
  19. C++11使用emplace_back代替push_back
  20. golang 记一次data race排查过程

热门文章

  1. url地址的图片路径
  2. 《穷爸爸富爸爸》读记
  3. 股票高位天量后走势、中继浪、放量涨停突破形态
  4. [面试] 百度笔经加面经 实例
  5. 怎样切换tab显示不同的数据
  6. 【Unity VFX】VFX特效入门笔记-火花制作
  7. 计算机博士英语缩写,学士、硕士、博士学位英文缩写.pdf
  8. 处理Android中的点击冲突
  9. 勘智K210 KPU特性及约束
  10. BaseService和其实现类