歡迎您光臨本站 註冊首頁

十大使用 Linux Lab 的理由

←手機掃碼閱讀     admin @ 2019-12-22 , reply:0

Linux Lab 是一套用於 Linux 內核學習、開發和測試的即時實驗室,可以極速搭建和使用,功能強大,用法簡單!

Linux Lab Boot example

Linux Lab Boot example

經過 3 年多的開發與迭代,Linux Lab 已經發布了 v0.2 版,其易用性和功能逐漸強大,非常推薦各位 Linux 內核和嵌入式 Linux 開發者嘗試。

下面列舉了十大使用 Linux Lab 的理由。

省時:節省數周的環境搭建時間

無論是新人還是有經驗的老手,搭建 Linux 的學習和實驗環境都是比較費時費力的,一方面要安裝基礎系統,一方面要下載各種交叉編譯工具,有時候還要去下載最新的源代碼。在國內這個大的區域網下,要整完整套環境,少則幾天,多則數周,最重要的通常還得多次重複去搭建,不光費時還很繁瑣,系統一變更,又得重複做。

Linux Lab 把這幾個工作簡化成了三條命令(Windows、Mac OSX 和非 Ubuntu Linux 系統需要自行安裝 Docker),數十分鐘就可以執行完,而且每次都可以拿到體驗一致的環境:


$ git clone https://gitee.com/tinylab/cloud-lab.git
$ cd cloud-lab
$ tools/docker/run linux-lab

目前 Linux Lab 已經在 github 和 gitee 上收穫累計 500 多個 Stars,並有數百人的用戶群,按 500 人,每人節省 4 周即 30 天粗略估算,Linux Lab 已經累計節省了 500 * 30 天 = 15000 天 = 41 年

省錢:節省不菲的開發板購買費用

截止到目前,Linux Lab 已經支持世界上最主流和流行的 5 大處理器架構(X86、ARM、MIPS、PowerPC、RISC-V),也支持國產的 CSKY 和 Loongson,支持 15 款相應的開發板。

按人均一塊板子,每塊開發板 ¥300 粗略計算,已經為大家節省了 500 * ¥300 = ¥150000 = ¥15 萬

對於個人而言,有了 Linux Lab,可以自由使用現有的 7 大架構,15 款開發板中的任意一款,累積節省 15 * ¥300 = ¥4500,並且這些開發板可以反覆使用,永遠不會壞,而且還有更多板子在持續添加中,用戶也可以自己輕鬆擴展新板子。


$ make list-short
[ aarch64/raspi3 ]:
      ARCH     = arm64
      LINUX   ?= v5.1
[ aarch64/virt ]:
      ARCH     = arm64
      LINUX   ?= v5.1
[ arm/versatilepb ]:
      ARCH     = arm
      LINUX   ?= v5.1
[ arm/vexpress-a9 ]:
      ARCH     = arm
      LINUX   ?= v5.1
[ i386/pc ]:
      ARCH     = x86
      LINUX   ?= v5.1
[ mipsel/malta ]:
      ARCH     = mips
      LINUX   ?= v5.1
[ ppc/g3beige ]:
      ARCH     = powerpc
      LINUX   ?= v5.1
[ riscv32/virt ]:
      ARCH     = riscv
      LINUX   ?= v5.0.13
[ riscv64/virt ]:
      ARCH     = riscv
      LINUX   ?= v5.1
[ x86_64/pc ]:
      ARCH     = x86
      LINUX   ?= v5.1
[ csky/virt ]:
      ARCH     = csky
      LINUX   ?= v4.9.56
[ loongson/ls1b ]:
      ARCH     = mips
      LINUX   ?= v5.2
[ loongson/ls232 ]:
      ARCH     = mips
      LINUX   ?= v2.6.32-r190726
[ loongson/ls2k ]:
      ARCH     = mips
      LINUX   ?= loongnix-release-1903
[ loongson/ls3a7a ]:
      ARCH     = mips
      LINUX   ?= loongnix-release-1903

更為重要的是,有些開發板在市面上可能根本就買不到,要不不開賣了,要不沒地方買。

省心:一致和可預期的操作結果

以往要研究 Linux,最害怕的是慢得讓人發瘋的洲際網路,不知道從哪裡才能找到靠譜可用的編譯器,抑或是某個版本內核 ok,另外一個版本又不行,或者某個命令又罷工了,或者是配置不對。

Linux Lab 不僅提供了一致的環境,還提供了驗證好的編譯器、Qemu 啟動腳本、甚至有預編譯好的內核和文件系統映像包以及配套的配置文件,而且 Linux Lab 把所有依賴的資源盡量都遷移到了我們的「區域網」內。

  • Linux,採用清華的 Mirror

  • U-boot, Buildroot 和 Qemu 都採用碼雲的 Mirror

  • Docker 鏡像,可採用 USTC、阿里雲等 Mirror

  • 編譯器,每個架構有驗證好 2~3 款可用的編譯器

  • 內核和文件系統,每個架構都有提前編譯好的版本,按開發板各自存放在獨立的碼雲倉庫中

幾乎所有的動作都有預先驗證過的簡單介面,並且都經過了較為充分的測試和驗證。能極大程度地降低不確定性帶來的恐慌和彷徨,減少苦惱。

幾乎所有的板子都添加了串口、網路、LCD 驅動支持,也添加了從 Ramdisk、NFS、磁碟 載入文件系統功能,還添加了簡潔的調試和測試功能。用戶可以在這個很高的起點上再根據需求做進一步的客制化,非常省心省力。

強大:可擴展的計算機基礎技術學習環境

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 環境,有巨大的可擴展能力。

簡潔:統一簡單易記的操作介面

Linux Lab 把各種常見操作抽象為簡單易記的介面,把背後繁瑣的細節和費時的工作全部隱藏並且優化好,用戶只需要記住簡單的命令即可。並且這些命令適應已經支持的 Linux、U-boot、Buildroot 和 Qemu。

make 介面 作用
*download 下載
*checkout 檢出某個版本
*patch 打補丁
*defconfig 使能默認配置文件
*olddefconfig 啟用老的配置
*menuconfig 打開圖形配置界面
*save 保存配置和鏡像
boot 通過 Qemu 引導
debug 通過 Qemu 調試
test 通過 Qemu 測試

小巧:模塊化和清晰透明的架構

Linux Lab 本身被拆分成三大部分:實驗環境、實驗代碼和環境管理,而實驗代碼又經過精心地設計,避免臃腫。

Linux Lab 與其他 Lab 實例共享環境管理代碼:Cloud Lab,僅需關心自身的實驗環境和實驗代碼,而實驗代碼部分又儘可能地只保留板級公共代碼,板子特定的代碼不僅可以作為獨立的倉庫發布,而且可以獨立使用。所以,Linux Lab 不僅結構清晰,而且代碼小巧。

模塊 大小
Cloud Lab 8.5M
Linux Lab 7.3M
linux-lab Docker 鏡像 4.13G
boards/csky 358M
boards/loongson/ls3a7a/bsp 7.8M
boards/loongson/ls232/bsp 5.0M
boards/loongson/ls1b/bsp 40M
boards/loongson/ls2k/bsp 29M
boards/aarch64/raspi3/bsp 152M
boards/aarch64/virt/bsp 68M
boards/arm/versatilepb/bsp 142M
boards/arm/vexpress-a9/bsp 60M
boards/riscv64/virt/bsp 49M
boards/riscv32/virt/bsp 40M
boards/mipsel/malta/bsp 48M
boards/i386/pc/bsp 23M
boards/x86_64/pc/bsp 20M
boards/ppc/g3beige/bsp 57M

各板級或架構有獨立的倉庫,並且有獨立的 Qemu 啟動腳本(boot.sh)、內核映像、文件系統映像以及相應配置文件,可以獨立使用和參考:

易達:隨時隨地使用和訪問

Linux Lab 不僅提供了本地的 VNC/SSH 訪問方式,而且提供了遠程的 WebVNC 和 WebSSH 訪問方式,而且提供了內網穿透的功能(需要專屬 Docker 容器配合),可以類似 teamviewer 那樣從外網進入區域網。所以,理論上,搭建完 Linux Lab,再配合現代路由器或者雲伺服器,就可以做到,隨時隨地訪問一致的開發環境。


$ tools/docker/release linux-lab
LOG: Current Lab is linux-lab
Lab: linux-lab-60029, User: ubuntu
  * VNC (Normal): http://localhost:6080/?u=7827c9&p=chln3p
  * VNC   (View): http://localhost:6080/?r=7827c93tsrkd
  * SSH    (Web): http://localhost:4433/?ssh=ssh://ubuntu:tffsm7@172.17.0.3:22

LOG: Released to: /media/falcon/develop/cloud-lab/releasings/index.html
LOG: Labs online: http://localhost:6080/labs/index.html

簡單地,如果在一台雲伺服器上運行 Linux Lab,只需要把外網可訪問的服務 IP 地址或者域名寫入到 Cloud Lab 根目錄下的 .host_name 即可獲得合適的 URL 地址:


$ cd /path/to/cloud-lab
$ echo example.com > .host_name
$ tools/docker/release linux-lab
LOG: Current Lab is linux-lab
Lab: linux-lab-60029, User: ubuntu
  * VNC (Normal): http://example.com:6080/?u=7827c9&p=chln3p
  * VNC   (View): http://example.com:6080/?r=7827c93tsrkd
  * SSH    (Web): http://example.com:4433/?ssh=ssh://ubuntu:tffsm7@172.17.0.3:22

LOG: Released to: /media/falcon/develop/cloud-lab/releasings/index.html
LOG: Labs online: http://example.com:6080/labs/index.html

兼容:三大系統環境下使用幾乎一致

Linux Lab 基於 Docker,只要安裝有 Docker,就可以直接在 Linux、Mac OSX 和 Windows 三大系統下使用,並且使用體驗幾乎一致。

如果是老版本的 Windows,可以用 Docker Toolbox,也可以通過 Virtualbox 或 Vmware 自行安裝 Ubuntu。

通用:支持幾乎所有版本的 Linux 內核

可以自由切換「任意」內核版本,從 2.6 到 5.4,已經驗證的版本從早期的 2.6.35 到 5.2,都提供有相應的配置文件和預編譯好的映像:


$ ls boards/*/*/bsp/kernel/ | grep -v riscv | sort -u
v2.6.35
v2.6.35.14
v2.6.36
v2.6.37
v3.10
v3.18.39
v4.19
v4.5.5
v4.6.7
v5.0.10
v5.0.13
v5.0.21
v5.1
v5.2

結合 Linux 0.11 Lab,還可以研究"上古時代"的 0.11 等老內核版本。

教學:提供了多種教學輔助功能

Linux Lab 提供了如下教學輔助功能,適合在高校、培訓機構、在線課程等場景下使用:

  • 提供了 Normal 和 Viewonly 這兩種訪問方式,可以互動,也可以廣播,適合多種教學場景

  • 允許一鍵創建任意多個獨立的 Lab 實體,允許多個學生同時使用

  • 提供了多種實驗過程的錄製工具,包括命令行的錄製工具 showterm 和桌面的錄製工具:showdesk.io

已經迫不及待了嗎?快通過微信加 tinylab 為好友,申請進 「Linux Lab 用戶群」 或 「Linux Lab 開發群」 吧。

接下來,看看同學們在 arm64 aarch64/virt 板子上運行 5.1 Linux 的小視頻吧:

http://showterm.io/6260970951ad23fe18edb


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/112229/why-linux-lab
十大使用 Linux Lab 的理由已經有291次圍觀

http://coctec.com/news/all/show-post-221487.html