<a href="http://tinylab.org/linux-lab">Linux Lab</a> 是一套用於 Linux 內核學習、開發和測試的即時實驗室,能夠極速搭建和使用,功能強大,用法簡單!
Linux Lab Boot example
通過 3 年多的開發與迭代,Linux Lab 已經發布了 <a href="http://tinylab.org/linux-lab-v02/">v0.2</a>; 版,其易用性和功能逐漸強大,很是推薦各位 Linux 內核和嵌入式 Linux 開發者嘗試。
下面列舉了十大使用 Linux Lab 的理由。
<strong>省時:節省數週的環境搭建時間</strong>
不管是新人仍是有經驗的老手,搭建 Linux 的學習和實驗環境都是比較費時費力的,一方面要安裝基礎系統,一方面要下載各類交叉編譯工具,有時候還要去下載最新的源代碼。在國內這個大的局域網下,要整完整套環境,少則幾天,多則數週,最重要的一般還得屢次重複去搭建,不光費時還很繁瑣,系統一變動,又得重複作。
Linux Lab 把這幾個工做簡化成了三條命令(Windows、Mac OSX 和非 Ubuntu Linux 系統須要自行安裝 Docker),數十分鐘就能夠執行完,並且每次均可以拿到體驗一致的環境:
目前 Linux Lab 已經在 github 和 gitee 上收穫累計 500 多個 Stars,並有數百人的用戶羣,按 500 人,每人節省 4 周即 30 天粗略估算,Linux Lab 已經累計節省了 <code>500 30 天 = 15000 天 = 41 年</code>。
<strong>省錢:節省不菲的開發板購買費用</strong>
截止到目前,Linux Lab 已經支持世界上最主流和流行的 5 大處理器架構(X8六、ARM、MIPS、PowerPC、RISC-V),也支持國產的 CSKY 和 Loongson,支持 15 款相應的開發板。
按人均一塊板子,每塊開發板 ¥300 粗略計算,已經爲你們節省了 <code>500 ¥300 = ¥150000 = ¥15 萬</code>。
對於我的而言,有了 Linux Lab,能夠自由使用現有的 7 大架構,15 款開發板中的任意一款,累積節省 <code>15 * ¥300 = ¥4500</code>,而且這些開發板能夠反覆使用,永遠不會壞,並且還有更多板子在持續添加中,用戶也能夠本身輕鬆擴展新板子。
更爲重要的是,有些開發板在市面上可能根本就買不到,要不不開賣了,要不沒地方買。
<strong>省心:一致和可預期的操做結果</strong>
以往要研究 Linux,最懼怕的是慢得讓人發瘋的洲際網絡,不知道從哪裏才能找到靠譜可用的編譯器,抑或是某個版本內核 ok,另一個版本又不行,或者某個命令又罷工了,或者是配置不對。
Linux Lab 不只提供了一致的環境,還提供了驗證好的編譯器、Qemu 啓動腳本、甚至有預編譯好的內核和文件系統映像包以及配套的配置文件,並且 Linux Lab 把全部依賴的資源儘可能都遷移到了咱們的「局域網」內。
幾乎全部的動做都有預先驗證過的簡單接口,而且都通過了較爲充分的測試和驗證。能極大程度地下降不肯定性帶來的恐慌和彷徨,減小苦惱。
幾乎全部的板子都添加了串口、網絡、LCD 驅動支持,也添加了從 Ramdisk、NFS、磁盤加載文件系統功能,還添加了簡潔的調試和測試功能。用戶能夠在這個很高的起點上再根據需求作進一步的客製化,很是省心省力。
<strong>強大:可擴展的計算機基礎技術學習環境</strong>
Linux Lab 的初衷是學習 Linux 內核,可是發展至今,不只能夠用來學習 Linux 內核,還能夠用來學習 C、彙編、Shell、處理器架構、U-boot、Qemu 等,並且還能夠作進一步的擴展。
另外,做爲 Linux Lab 的基礎設施,Cloud Lab 提供了更大擴展性,目前不只有 Linux 0.11 Lab, CS630 Qemu Lab 這樣的 Lab 實例,並且有 Markdown Lab, RT-Thread Lab 這樣的 Lab 實例,還能夠相似添加更多的專屬 Lab 環境,有巨大的可擴展能力。
<strong>簡潔:統一簡單易記的操做接口</strong>
Linux Lab 把各類常見操做抽象爲簡單易記的接口,把背後繁瑣的細節和費時的工做所有隱藏而且優化好,用戶只須要記住簡單的命令便可。而且這些命令適應已經支持的 Linux、U-boot、Buildroot 和 Qemu。
<strong>小巧:模塊化和清晰透明的架構</strong>
Linux Lab 自己被拆分紅三大部分:實驗環境、實驗代碼和環境管理,而實驗代碼又通過精心地設計,避免臃腫。
Linux Lab 與其餘 Lab 實例共享環境管理代碼:Cloud Lab,僅需關心自身的實驗環境和實驗代碼,而實驗代碼部分又儘量地只保留板級公共代碼,板子特定的代碼不只能夠做爲獨立的倉庫發佈,並且能夠獨立使用。因此,Linux Lab 不只結構清晰,並且代碼小巧。
各板級或架構有獨立的倉庫,而且有獨立的 Qemu 啓動腳本(boot.sh)、內核映像、文件系統映像以及相應配置文件,能夠獨立使用和參考:
<strong>易達:隨時隨地使用和訪問</strong>
Linux Lab 不只提供了本地的 VNC/SSH 訪問方式,並且提供了遠程的 WebVNC 和 WebSSH 訪問方式,並且提供了內網穿透的功能(須要專屬 Docker 容器配合),能夠相似 teamviewer 那樣從外網進入局域網。因此,理論上,搭建完 Linux Lab,再配合現代路由器或者雲服務器,就能夠作到,隨時隨地訪問一致的開發環境。
簡單地,若是在一臺雲服務器上運行 Linux Lab,只須要把外網可訪問的服務 IP 地址或者域名寫入到 Cloud Lab 根目錄下的 <code>.host_name</code> 便可得到合適的 URL 地址:
<strong>兼容:三大系統環境下使用幾乎一致</strong>
Linux Lab 基於 Docker,只要安裝有 Docker,就能夠直接在 Linux、Mac OSX 和 Windows 三大系統下使用,而且使用體驗幾乎一致。
依賴特定的 Windows 版本,請查看上述文檔
須要配合 「Git Bash Here」 使用。安裝完 <a href="https://git-scm.com/downloads">Git for Windows</a> 後,在任意目錄點擊鼠標右鍵可見。
若是是老版本的 Windows,能夠用 <a href="https://docs.docker.com/toolbox/overview/">Docker Toolbox</a>,也能夠經過 Virtualbox 或 Vmware 自行安裝 Ubuntu。
<strong>通用:支持幾乎全部版本的 Linux 內核</strong>
能夠自由切換「任意」內核版本,從 2.6 到 5.4,已經驗證的版本從早期的 2.6.35 到 5.2,都提供有相應的配置文件和預編譯好的映像:
結合 <a href="http://tinylab.org/linux-0.11-lab">Linux 0.11 Lab</a>,還能夠研究"上古時代"的 0.11 等老內核版本。
<strong>教學:提供了多種教學輔助功能</strong>
Linux Lab 提供了以下教學輔助功能,適合在高校、培訓機構、在線課程等場景下使用:
已經火燒眉毛了嗎?快經過微信加 tinylab 爲好友,申請進 「Linux Lab 用戶羣」 或 「Linux Lab 開發羣」 吧。
接下來,看看同窗們在 arm64 aarch64/virt 板子上運行 5.1 Linux 的小視頻吧:
<a href="http://showterm.io/6260970951ad23fe18edb">http://showterm.io/6260970951ad23fe18edb</a>;linux