Linux Lab v0.5 正式發(fā)布,功能強(qiáng)大,用法簡(jiǎn)單
Linux Lab 是一套用于 Linux 內(nèi)核學(xué)習(xí)、開(kāi)發(fā)和測(cè)試的即時(shí)實(shí)驗(yàn)室,可以極速搭建和使用,功能強(qiáng)大,用法簡(jiǎn)單!
可以用它來(lái)高效地學(xué)習(xí)處理器架構(gòu)、Linux 內(nèi)核、嵌入式 Linux 系統(tǒng)、C 語(yǔ)言編程、Linux 匯編、Shell 編程等。
版本更新
Linux Lab 于 6 月底發(fā)布了 v0.5 的第一個(gè)候選版本:v0.5-rc1,經(jīng)過(guò)三個(gè)月的開(kāi)發(fā)和迭代,在連續(xù)發(fā)布了 rc2, rc3 后,本次發(fā)布 v0.5 正式版本,同步發(fā)布配套的 Lab 管理工具 Cloud Lab v0.3 和首個(gè) Linux Lab 視頻公開(kāi)課,更多用法將逐步以視頻講解+演示的方式發(fā)布,敬請(qǐng)期待。本次主要是把開(kāi)發(fā)環(huán)境升級(jí)到了 Ubuntu 20.04 并添加了龍芯全系處理器支持。
本次合計(jì) 204 筆變更:
- // linux lab
- $ git log --pretty=oneline v0.4..v0.5 | wc -l
- 144
- // cloud lab
- $ git log --pretty=oneline v0.2..HEAD | wc -l
- 60
本次有 4 位同學(xué)發(fā)起了 PR 并被 Merge,另有接近 10 位同學(xué)提報(bào)或驗(yàn)證了 Bug,感謝大家的貢獻(xiàn):
- $ git log --format="%aN" v0.4..v0.5 --reverse | sort -u
- fanjun kongSignaltaotierenWuZhangjin
本次主要更新如下:
v0.5
- Bug 修復(fù)和功能完善整理目錄架構(gòu),新增 src 和 build 目錄,并把部分目錄轉(zhuǎn)到 src 目錄下修復(fù) clone 功能,避免一處死循環(huán)
- 文檔更新介紹如何以壓縮包的方式導(dǎo)入內(nèi)核源代碼介紹同名板子的使用注意事項(xiàng)介紹如何通過(guò) Linux Lab 開(kāi)展 C 語(yǔ)言開(kāi)發(fā)完善調(diào)試相關(guān)文檔
v0.5-rc3
- Bug 修復(fù)和功能完善修復(fù) arm/vexpress-a9 因編譯器配置問(wèn)題引起的 Uboot 編譯失敗新鏡像中 aarch64/virt 的系統(tǒng)自帶 Qemu 有問(wèn)題,替換為 BSP 包中預(yù)編譯的版本增大龍芯 Qemu 傳遞內(nèi)核參數(shù)的 Buffer(Binary暫時(shí)未更新)system/tools/trace.sh: 更新對(duì)新內(nèi)核的支持tools/root/dir2*.sh: 允許 find 屬于 root 的文件,確保 rootfs 打包完整分別設(shè)定 x86_64/pc 和 arm/vexpress-a9 默認(rèn)編譯器為 gcc-8 和 gcc-9,確保能正確編譯新內(nèi)核
- 文檔更新進(jìn)一步完善文檔中對(duì)普通用戶的使用要求,避免使用 root 帶來(lái)的諸多問(wèn)題完善來(lái)自 Docker Debian 鏡像的根文件系統(tǒng)的用法
v0.5-rc2
- Qemu 方面進(jìn)一步改善 Qemu 編譯體驗(yàn),在 Gitee 新增 submodules 鏡像,不再有挫折感修復(fù)新鏡像中的一處 Loongson qemu 編譯錯(cuò)誤感謝龍芯@張老師 反饋和提出修改建議
- 文檔方面新增 Arch/Manjaro docker 安裝文檔,感謝@taotieren 發(fā)送 PR修復(fù) MacOS 大小寫敏感的文件系統(tǒng)鏡像制作步驟,感謝@賈獻(xiàn)華 報(bào)告Bug并給出修訂方案新增 “新建分支進(jìn)行 Linux 開(kāi)發(fā)” 的步驟,感謝@陳家楠 反饋顯式注明工作路徑,確保非內(nèi)置登陸方式 ok,感謝@老孔家的獨(dú)苗 發(fā)送 PR
- 其他問(wèn)題完善兩處內(nèi)核模塊編譯問(wèn)題,感謝@江左有枚狼 報(bào)告Bug修復(fù)一處 x86_64 首次下載內(nèi)核后的內(nèi)核配置文件路徑問(wèn)題,感謝@亮 報(bào)告Bug
v0.5-rc1
- 全面完善并合并早期對(duì)龍芯全系處理器的支持目前已經(jīng)支持 4 塊開(kāi)發(fā)板:mipsel/ls1b, mipsel/ls2k, mipsel/ls232, mipsel/ls3a7a其中 ls1b 已經(jīng)支持 mainline v5.2,ls2k 和 ls3a7a 有望在 v5.8/v5.9 獲得完整支持
- 全面升級(jí)開(kāi)發(fā)環(huán)境基礎(chǔ)鏡像到 Ubuntu 20.04大部分準(zhǔn)備工作都已經(jīng)開(kāi)發(fā)完成并合并到了當(dāng)前版本,部分兼容和適配工作還在繼續(xù)
環(huán)境準(zhǔn)備
在非 Ubuntu 平臺(tái),請(qǐng)?zhí)崆白孕邪惭b好 docker,可參考 Docker for Mac、Docker for Windows。
如果是老版本的 Windows,可以用 Docker Toolbox,也可以通過(guò) Virtualbox 或 Vmware 自行安裝 Ubuntu。
國(guó)內(nèi)的同學(xué)請(qǐng)務(wù)必使用國(guó)內(nèi)的 Docker 鏡像服務(wù),否則無(wú)法正常下載鏡像,推薦參考 阿里云鏡像配置文檔。
下面的鏈接是大家成功運(yùn)行過(guò) Linux Lab 的主機(jī)環(huán)境,歡迎參考,安裝完以后也歡迎登記上來(lái)。
- 成功運(yùn)行過(guò) Linux 的操作系統(tǒng)和 Docker 版本列表
極速體驗(yàn)
該版本依賴最新的 Cloud Lab 和 docker 鏡像:
- $ git clone https://gitee.com/tinylab/cloud-lab.git
- $ cd cloud-lab
- $ tools/docker/pull linux-lab # 確保更新 docker 鏡像
- $ tools/docker/run linux-lab
已經(jīng)下載過(guò)的,請(qǐng)更新到最新版本并重啟 Linux Lab:
- $ cd cloud-lab && git pull
- $ tools/docker/update linux-lab$ tools/docker/rerun linux-lab
進(jìn)去以后,打開(kāi)控制臺(tái),敲入如下命令即可啟動(dòng)一個(gè)板子(自動(dòng)下載預(yù)編譯的版本):
- $ make boot
一鍵編譯和啟動(dòng)(自動(dòng)下載源碼、檢出版本、打補(bǔ)丁、配置、編譯):
- $ make boot BUILD=kernel
默認(rèn)使用的是 arm/vexpress-a9,如果要使用龍芯的板子,可以簡(jiǎn)單切換:
- $ make BOARD=mipsel/ls1b
- $ make boot
關(guān)鍵特性
Linux Lab 具備如下特性:
- 支持 3 大操作系統(tǒng)(Windows、MacOS、Linux),可以輕松在這三大操作系統(tǒng)下使用。
- 支持 7+ 大處理器架構(gòu)(X86、ARM、MIPS、PPC、CSKY,RISC-V, LOONGSON),其中 LOONGSON 和 CSKY 為國(guó)產(chǎn)處理器。
- 支持 16+ 款開(kāi)發(fā)板(i386/pc, x86_64/pc, arm/versatilepb, arm/vexpress-a9, ppc/g3beige, mips/malta, aarch64/virt, aarch64/raspi3, riscv32/virt, riscv64/virt, csky/virt, loongson/ls1b, loongson/ls2k, loongson/ls232, loongson/ls3a7a)。
- 支持 5 種登陸方式(docker, ssh, vnc,webssh, webvnc),可以本地訪問(wèn),也可以遠(yuǎn)程訪問(wèn)。
- 集成了 5 大組件(Qemu、U-boot、Buildroot、Linux、Toolchain),都有預(yù)編譯版本。
- 內(nèi)置了 5 大平臺(tái),32 位和 64 位共 10 個(gè) Hello World 匯編語(yǔ)言例程,見(jiàn) examples/assembly。
- 可以學(xué)習(xí)處理器指令集、Qemu、Shell、匯編、C、Linux 內(nèi)核、嵌入式 Linux。
- 支持 Debugging 和 Testing。
- host & guest 雙側(cè)免 root 使用。