`
zwhc
  • 浏览: 264743 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

jslinux 简单分析:用JavaScript写出一个PC模拟器,上面运行Linux。

阅读更多
jslinux 简单分析

jslinux:用JavaScript写出一个PC模拟器,上面运行Linux

1、主页面 (http://bellard.org/jslinux/) 很简单,主要调用了 如下两个 js 文件。

http://bellard.org/jslinux/term.js
http://bellard.org/jslinux/cpux86.js

2、term.js 里也没有发现什么特殊的地方;

3、cpux86.js 使用到一个 load_binary 的函数,查看了一下实现,是通过 XMLHttpRequest 来取如下三个 bin 文件:
http://bellard.org/jslinux/vmlinux26.bin
http://bellard.org/jslinux/root.bin
http://bellard.org/jslinux/linuxstart.bin

通过迅雷来看,这三个文件,总大小 3.6M 以上。因为网站在国外,很卡。

通过代理下载成功。在本地试了一下,不错。
分享到:
评论
6 楼 ww2000e 2011-10-18  
打开只有一个光标闪
5 楼 javavsnet 2011-05-25  
才知道javascript也能访问二进制代码
4 楼 kran 2011-05-24  
感谢博主 :)
3 楼 zwhc 2011-05-23  
最下方有个链接,点开后进入
http://bellard.org/jslinux/tech.html

The code is written in pure Javascript using Typed Arrays which are available in recent browsers. 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). In any case, a fast Javascript engine is needed to have good performance.

Typed Arrays 就是用于操作二进制文件的。

http://www.khronos.org/registry/typedarray/specs/latest/


Abstract

This specification provides an API for interoperability with native binary data. It defines a generic fixed-length buffer type, as well as accessor types that allow access to the data stored within the buffer.

The functionality described here originated in the WebGL specification [WEBGL].
2 楼 kran 2011-05-22  
不清楚 到底 通过js怎么操作二进制文件。
代码又不能读。
博主清楚吗?
1 楼 topcss 2011-05-18  
确实不错。。。

相关推荐

    Javascript写的PC模拟器,正常运行Linux

    Javascript写的PC模拟器,正常运行Linux; 作者:Fabrice Bellard 你甚至能在此Linux中用Vi编辑一个C程序,然后编译运行之! 此包可以离线工作。 你还可以用它来测试你浏览器的脚本速度,你的电脑要几秒启动Linux?...

    jslinux-mobile:适用于iOSLinux-用Javascript编写的PC模拟器的移动版本,具有运行中的功能齐全Linux系统

    JSLinux Mobile –适用于iOSLinux 使用Javascript编写的PC模拟器的移动版本,具有正在运行的功能齐全Linux系统。 模拟器可以在iOS和Android设备上以全屏模式脱机运行。 Apple不允许在iOS中进行硬件仿真-AppStore没有...

    js 模拟 linux

    JSLinux 是一个基于 JavaScript 的虚拟机,它使用 Emscripten 编译器将 Linux 内核(通常为 vmlinux)和一些基本的实用程序转换为可以在 Web 浏览器中执行的 JavaScript 代码。这种技术依赖于浏览器的 JavaScript ...

    pdp11-js:用 JavaScript 实现的 PDP-11 模拟器。 UNIX V6 在您的 chrome 上运行

    这是一个用 JavaScript 实现的 PDP-11 模拟器。 UNIX V6 在您的 chrome 上运行。 演示 截屏 这是我的 PDP-11 模拟器在山景城计算机历史博物馆物理 PDP-11 前面的 Android Chrome 上运行的图片。

    js86emu:用100%JavaScript编写的x86模拟器

    js86emu js86emu是一个完全用Java编写的x86模拟器。 当前的目标是正确模拟8086(88)处理器以及辅助硬件,例如硬盘控制器和图形。 这将允许模拟原始PC XT和PC AT系统。 我计划增加对较新处理器和系统的支持,直到...

    html.tar.gz_jslinux

    "jslinux"标签进一步确认了这个压缩包与JSLinux项目有关,意味着其中包含的代码可能是实现JavaScript版本的Linux内核模拟器,或者是相关的用户界面组件、脚本和配置文件。JavaScript Linux的实现依赖于JavaScript的...

    GameBoy-Online:用JavaScript编写的GameBoy Color模拟器,力求性能和接近完美的兼容性

    JavaScript GameBoy颜色模拟器版权所有(C)2010-2012 Grant Galitz 一个GameBoy Color模拟器,该模拟器利用HTML5 canvas和JavaScript音频API提供控制台的完整模拟。 执照: 该程序是免费软件; 您可以根据自由软件...

    js-console-emulator:用于Javascript的用Javascript编写的简单控制台模拟器

    本文将详细介绍“js-console-emulator”——一个由JavaScript编写的简易控制台模拟器,以及如何利用它进行JavaScript开发和调试。 “js-console-emulator”是一个专为JavaScript设计的轻量级模拟器,它的灵感来源于...

    用JavaScript编写的ARM模拟器.zip

    JavaScript编写的ARM模拟器是一个独特的项目,它允许开发者在浏览器环境中模拟ARM处理器的指令集,以便于学习、测试和调试ARM代码。这个项目的核心在于利用JavaScript的灵活性和跨平台特性,将复杂的硬件操作抽象到...

    Js99er:用 JavaScript 编写的 TI-994A 模拟器

    JS99er是一个基于JavaScript编写的TI-99/4A计算机模拟器。这个项目旨在为那些怀念过去经典计算机体验的人们提供一个在线平台,让他们能够在现代浏览器上重温这款1970年代末到1980年代初的家用电脑的魅力。通过...

    JavaScript中的RaspberryPiPico模拟器.zip

    JavaScript中的Raspberry Pi Pico模拟器,如"rp2040js-master"所示,是一项创新的技术,它允许开发者在浏览器环境中使用JavaScript来模拟Raspberry Pi Pico微控制器。Raspberry Pi Pico是由Raspberry Pi基金会推出的...

    linux安装node.js.pdf

    Node.js是一个基于JavaScript的runtime环境,提供了一个事件驱动、非阻塞I/O模型,使得开发者可以轻松地构建高性能的网络应用程序。 在Linux系统中安装Node.js需要经过以下步骤: 1. 从Node.js官网下载Node.js...

    newton-8080:用JavaScript编写的Intel 8080模拟器

    【标题】"newton-8080"指的是一个基于JavaScript实现的Intel 8080微处理器模拟器项目,其名称可能来源于物理学家艾萨克·牛顿和8080芯片的组合。Intel 8080是1974年Intel公司发布的一款8位微处理器,对早期个人...

    jsgameboy:另一个 Javascript GameBoy 模拟器

    现代 Javascript GameBoy 模拟器 工作正在进行中... 丢失的 CPU不完整; 必须测试内存; 视频尚未实现; 尚未实现的中断;...编写此代码只是为了好玩。 我已经用 C++ 写了一个 gameboy 模拟器( )

    gameboy-js:用 Javascript 编写的 Gameboy 模拟器

    它是用 Javascript 编写的,具有 CoffeeScript 的风格(用 Gulp 构建)。 建造 安装 $ npm install -g gulp $ npm install $ gulp build 用法 从源代码构建后,只需在浏览器中打开 index.html。 兼容性 ...

    terminal-js:用于 JavaScript 的简单终端模拟器库

    `terminal-js` 是一个专为 JavaScript 设计的简单终端模拟器库,它允许开发者在 Web 应用中创建功能丰富的交互式终端界面,为用户带来独特的体验。 ### 1. JavaScript 基础 JavaScript 是一种广泛使用的客户端脚本...

    contajs:用JavaScript编写的流行病模拟器

    "Contajs"是一个基于JavaScript开发的流行病模拟器,它允许用户通过编程方式模拟病毒传播的过程,以便理解和分析传染病在人群中的扩散模式。这个项目主要适用于教育、研究和公众意识提升,帮助人们直观地理解传染病...

    elkjs:ElkJS - 基于 Javascript 的 Acorn 电子模拟器

    总的来说,ElkJS 是一个用 Javascript 实现的 Acorn 电子模拟器,它为用户提供了在浏览器中运行复古软件的可能,同时也为开发者提供了研究和学习古老计算机系统的宝贵工具。通过深入理解 ElkJS 的内部机制,可以增进...

    gameboy-js:用Java编写的Nintendo Gameboy模拟器

    游戏男孩(Game Boy)是任天堂在1989年发布的一款掌上游戏机,而"gameboy-js"是一个开源项目,它使用JavaScript语言重新实现了Game Boy的模拟器。JavaScript是一种广泛用于网页和网络应用的编程语言,由于其在浏览器...

Global site tag (gtag.js) - Google Analytics