linux可以运行js吗,惊动大神的JavaScript:在Web上运行Linux

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

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 1024 (order: 0, 4096 bytes)

TCP bind hash table entries: 512 (order: -1, 2048 bytes)

TCP: Hash tables configured (established 1024 bind 512)

TCP reno registered

checkingifimage is initramfs...it isn't (bad gzip magic numbers); looks like a

n initrd

Freeing initrd memory: 2048k freed

Total HugeTLB memory allocated, 0

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

io scheduler cfq registered (default)

Real Time Clock Driver v1.12ac

JS clipboard: I/O at 0x03c0

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

TCP cubic registered

NET: Registered protocol family 1

NET: Registered protocol family 17

Using IPI Shortcut mode

Time: pit clocksource has been installed.

RAMDISK: ext2 filesystem found at block 0

RAMDISK: Loading 2048KiB [1 disk] into ram disk... done.

VFS: Mounted root (ext2 filesystem).

Freeing unused kernel memory: 124k freed

W

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 1024 (order: 0, 4096 bytes)

TCP bind hash table entries: 512 (order: -1, 2048 bytes)

TCP: Hash tables configured (established 1024 bind 512)

TCP reno registered

checkingifimage is initramfs...it isn't (bad gzip magic numbers); looks like a

n initrd

Freeing initrd memory: 2048k freed

Total HugeTLB memory allocated, 0

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

io scheduler cfq registered (default)

Real Time Clock Driver v1.12ac

JS clipboard: I/O at 0x03c0

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

TCP cubic registered

NET: Registered protocol family 1

NET: Registered protocol family 17

Using IPI Shortcut mode

Time: pit clocksource has been installed.

RAMDISK: ext2 filesystem found at block 0

RAMDISK: Loading 2048KiB [1 disk] into ram disk... done.

VFS: Mounted root (ext2 filesystem).

Freeing unused kernel memory: 124k freed

Welcome to JS/Linux

随后,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,参看酷壳的这篇文章)

从这个事我有这些感触,

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

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

真是Techno-Geek。

原文链接:http://coolshell.cn/articles/4722.html#more-4722

【编辑推荐】

【责任编辑:陈贻新 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值