JSlinux

  sre

5fc9af43944058904.jpg_fo742.png
Jslinux是由程序员法布里斯·贝拉于2011年5月开始开发的一款能够在浏览器中运行的x86模拟器。该模拟器使用JavaScript语言编写,用到了W3C Typed Arrays,提供了一个剪贴板位于/dev/clipboard处用于与宿主机交换数据。浏览器兼容性: Firefox >= 3, Chrome 11, Opera 11.11, Internet Explorer 9.。
jslinux2.PNG
把源码下下来了,演示效果还行。
硬件方面:
32位 x86兼容的CPU
8259 可编程中断控制器
8254 可编程中断时钟
16450 UART
实时时钟(RTC)
软件方面
Linux 操作系统内核 2.6.20
linuxstart BIOS(源码)
一个使用Buildroot生成的文件系统
作者自己的C语言编译器 TinyCC(TCC)
作者自己的QEmacs编辑器
用处
测试浏览器的 JavaScript 引擎的性能(多长时间启动)
在浏览器中学习 Unix 命令行(甚至可以用来试验rm -rf /)
使用一个 x86 库在客户端进行数据处理(例如加密)
一个更加高级的版本可以用于运行老的 DOS 软件(例如游戏)

这个模似器完全由Javascript写成CPU仿真器使用的是QEMU,为了装上Linux,其做了一些改动。 Javascript的终端本来可以使用termlib,但因OS的按键和Web浏览器不一样(here)Linux 使用了2.6.20内核,编译配置在这里做了一些小改动。磁盘用的是Ram Disk,在启动的时候装载。其文件系统由Buildroot 和BusyBox产生。在Home目录下有一个hello.c的程序,你可以使用TinyCC编译。
源码下载:jslinux.rar

发现只有IE可以用,在chrome和UC下无法启动这个linux,查看日志如下:
警告Synchronous cpux86-ta.js:10
XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check http://xhr.spec.whatwg.org/.

错误Uncaught cpux86-ta.js:10
InvalidAccessError: Failed to set the ‘responseType’ property on ‘XMLHttpRequest’: The response type cannot be changed for synchronous requests made from a document.

LEAVE A COMMENT

Captcha Code