温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在Web上运行Linux

发布时间:2021-11-17 16:56:01 来源:亿速云 阅读:130 作者:柒染 栏目:web开发

如何在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                                                               checking if image 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                                                               checking if image 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下运行感觉也不慢啊。

看完上述内容,你们掌握如何在Web上运行Linux的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI