Webminal.org 運行在一台單一的 CentOS Linux 伺服器上,配備 8GB RAM。僅此而已。沒有 Kubernetes,沒有微服務,沒有自動擴展。自 2011 年以來就只有一台伺服器。它經歷了:
這個想法很簡單。我當時坐在辦公室的 Windows 電腦前,想學習 Linux。如果我能在瀏覽器中打開一個真實的 Linux 終端機進行練習——沒有「執行」按鈕,只有一個真實的伺服器——獲得信心,然後轉身去操作一台真實的 Linux 機器並實際使用它呢?沒有恐懼,沒有猶豫,因為我已經知道我在做什麼。
我們剛剛對整個網站進行了重新設計。每一頁,都是從頭開始。以下是改變之處:
新的現代 UI - 乾淨、快速,沒有 Bootstrap 或 jQuery CDN 依賴。自託管字體,響應式設計,適用於行動裝置。
Root Lab - 透過完整的 root 權限練習真實的系統管理技能。我們使用 User Mode Linux 為您提供一個完整的核心,帶有真實的區塊設備。練習 fdisk、LVM、RAID、mkfs、systemctl、crontab、firewalld、SSH 金鑰、awk 和 sed——這些是在共享終端機上無法做到的事情。
即時指令追蹤器 - 首頁上那個滾動的條?它是真實的。透過 eBPF (execsnoop) 即時追蹤指令。目前已記錄 2800 萬條指令,並且還在增加。
圓滿完成。在此過程中,我們建構了:一個帶有 VS Code/Theia 的瀏覽器 IDE、Docker-over-LXC 的 root 環境、Asciinema 螢幕錄影、共享檔案池、ttyrec 轉 GIF 發布工具、一個自訂的 useradd 二進位檔(預設值在 30 萬以上用戶時太慢),以及一個基於 OpenVZ 的 VM 佈建系統。有些仍在運行,有些則因時間或金錢而停用。
我來自印度。Freston 來自荷蘭。我們在 2010 年於 LinuxForums.org 上相遇。直到 2015 年,我們從未見過對方的臉——甚至連 Skype 都沒有。所有的溝通都透過 SSH 進入我們的伺服器,在 screen 會話中進行。
這就是整個平台建構的方式。沒有 Slack,沒有 Zoom,沒有 Jira 工單。只有兩個傢伙在終端機裡寫訊息。
每一次技術會議的演講都會告訴你這個堆疊是錯誤的。但它服務了 50 萬用戶,並且已經運行了 15 年。
我們曾嘗試將 Shellinabox 替換為現代的基於 WebSocket 的終端機。它在生產環境中運行了幾個小時,用戶就回報螢幕變黑和 Firefox 不相容的問題。我們又換回去了。
Shellinabox 是 2005 年的產物。它很醜,很慢,但它能穿透地球上每一個防火牆、代理和企業網路。我們又換回去了。有時候,舊的東西才是正確的東西。
每個人都在使用 Docker。我們使用 User Mode Linux——一個由 Jeff Dike 在 2001 年創建的、在使用者空間中運行的完整 Linux 核心。
為什麼?因為當學生輸入 `fdisk /dev/sdb` 時,他們需要一個真實的區塊設備。Docker 無法提供這個。UML 可以。
當學生輸入 `poweroff` 時,UML 會退出,他們就會回到正常的 shell。完全隔離。對主機零風險。
COW overlay 意味著 100 個並發用戶只會增加約 2GB 的磁碟空間。黃金映像是共享的。
首頁上那個 28,469,041 條指令已執行的計數器?它是真實的。我們使用 bcc-tools 中的 execsnoop2。
首頁上滾動的即時追蹤器——那些是真實用戶現在正在輸入的真實指令。僅匿名化、安全的指令。沒有參數,沒有路徑,沒有密碼。只有 `$ ls`、`$ gcc`、`$ vim` 像心跳一樣流動。
Linux 核心本身會告訴我們,當有人執行他們的第一次 `ls` 時。
「我是一名 Windows 系統管理員,沒有太多空閒時間,這個網站真的幫助我熟悉了 Linux。我甚至在平板電腦上使用這個網站。你們提供的教學也很棒。感謝你們所做的一切。」
「我是一名在韓國學習電子工程的學生。我透過你們的網站學習 Linux,它真的幫助了我很多!」
「這個教學很棒!我還在某些地方笑了。你們的網站真是太棒了。請多做一些!繼續保持偉大的工作!」
Webminal 零收入。沒有廣告,沒有追蹤,沒有創投資金。我用我的積蓄支付伺服器費用。我在這個項目上花的錢比花在個人或家庭事務上的錢還要多。
不止一次,我考慮過放棄它。15 年是很長的時間。有幾個月我處於失業狀態,看著我的積蓄縮水,伺服器帳單卻不斷寄來。每個月我都會想——也許就是這個月我該拔掉插頭了。然後我會找到一份工作,這個想法就會消失,Webminal 又會再活一年。我申請了 YC。被拒絕了。試圖將其商業化——PayPal、Stripe、付費方案。從未成功過。最需要 Webminal 的用戶是那些無法負擔每月 4 美元的學生。所以它保持免費。
50 萬人在 Webminal 上輸入了他們的第一次 `ls`。其中一些人現在是系統管理員。一些人經營自己的伺服器。其中一個人可能管理的基礎設施比我 ever 都要多。
只要它能幫助一個學生,Webminal 就會運行下去。
如果您想幫助我們從 8GB 升級到 128GB,以便更多學生可以同時運行 root 實驗室。每一點都算數:在 GitHub Sponsors 上贊助 @Lakshmipathi · GitHub
就是這樣。這才是正確的方式。我發自內心地感謝您,您是我需要的英雄。
感謝您的美言。老實說,我沒想到會像這樣爆紅。Webminal,只是我向開源社群表達感謝的一種方式。
由 Discourse 提供支援,建議使用 JavaScript 啟用後觀看