`
zwhc
  • 浏览: 266286 次
  • 性别: 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没有...

    Chip-8-JS-emulator:用JavaScript编写的Chip-8模拟器

    一个用JavaScript编写的Chip-8模拟器,具有多个游戏和演示。特征完整的Chip-8仿真加载各种经典的Chip-8游戏重置选项完全支持60 fps 经典的8位声音离线支援控制项CHIP-8键盘使用以下键盘映射: 1 2 3 4Q W E RA S D ...

    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的...

    SnesJs:使用JavaScript的SNES模拟器

    斯内斯一个SNES模拟器,使用javascript 在线尝试。注意我不确定我要进一步使用此模拟器。 尽管这是一个很好的概念证明,但无法全速运行(在我的硬件上)使进行这项工作非常烦人。 我之所以开始创建它,是因为我的...

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

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

    nessie:用 JavaScript 编写的 NES 模拟器

    Nessie 是一个用 JavaScript 编写的 NES 模拟器,它可以运行服务器端或浏览器。 Nessie 目前是 WIP 并且旨在学习,而不是专注于准确性或与大多数 NES romset 的兼容性。 有很多很棒的 OSS 模拟器,它们更稳定,...

    用JavaScript编写的ARM模拟器.zip

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

    QT中使用QScriptEngine引擎编译运行JavaScript脚本

    例如,如果有一个名为`script.js`的JavaScript文件,可以这样运行: ```cpp QString scriptFile = "script.js"; QFile file(scriptFile); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QString ...

    动物声模拟_动物叫声模拟器_

    在IT行业中,动物叫声模拟器是一种特殊的软件应用,它能够模仿不同动物的声音,如狗叫、猫叫等,为用户提供一种趣味性的互动体验。这样的应用通常结合了音频处理技术、编程语言以及用户界面设计等多个方面的知识。...

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

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

    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。 兼容性 ...

    基于HTML5、Javascript的FC NES模拟器.zip

    开发者必须深入理解6502的指令集,并将其转化为JavaScript代码,使得在浏览器中可以执行这些指令,模拟出与原版硬件相似的行为。 HTML5的Canvas是实现游戏画面的关键。开发者通过绘制像素点,动态更新屏幕内容,以...

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

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

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

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

Global site tag (gtag.js) - Google Analytics