溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Web上運行Linux

發(fā)布時間:2021-11-17 16:56:01 來源:億速云 閱讀:146 作者:柒染 欄目:web開發(fā)

如何在Web上運行Linux,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一個叫Fabrice Bellard的程序員寫了一段Javascript在Web瀏覽器中啟動Linux(原網(wǎng)頁,我把這個網(wǎng)頁iframe在了下面),目前,你只能使用Firefox 4和Chrome 11運行這個Linux。這不是什么假的模仿Linux的東西,這是實實在在的運行一個Linux。這一舉動還引起了很多很牛人的關(guān)注,包括Javascript的創(chuàng)建者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

隨后,F(xiàn)abrice Bellard發(fā)布了相關(guān)的技術(shù)說明:http://bellard.org/jslinux/tech.html,從這份文檔中我們可以看到:

這個模似器完全由Javascript寫成

CPU仿真器使用的是QEMU(接近于原古的486),為了裝上Linux,其做了一些改動。

Javascript的終端本來可以使用termlib,但他還是自己寫了一個,因為OS的按鍵和Web瀏覽器不一樣(here)

Linux 使用了2.6.20內(nèi)核,編譯配置在這里,并做了一些小改動。

磁盤用的是Ram Disk,在啟動的時候裝載。其文件系統(tǒng)由Buildroot 和BusyBox產(chǎn)生。

在Home目錄下有一個hello.c的程序,你可以使用TinyCC編譯(tcc,參看酷殼的這篇文章)

從這個事我有這些感觸,

在Web上運行一個Linux的操作系統(tǒng)不是問題。那么在Web上還有什么不能做的嗎?

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

看完上述內(nèi)容,你們掌握如何在Web上運行Linux的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI