泰曉社區(qū)攜 8 個(gè)項(xiàng)目參加第四屆開源之夏
活動(dòng)簡(jiǎn)介
中科院軟件所主辦了 “開源軟件供應(yīng)鏈點(diǎn)亮計(jì)劃” 活動(dòng),今年為第四屆。該活動(dòng)旨在鼓勵(lì)大家關(guān)注開源軟件和開源社區(qū),致力于培養(yǎng)和發(fā)掘更多優(yōu)秀的開發(fā)者。
泰曉科技作為聚焦 Linux 內(nèi)核十多年的技術(shù)社區(qū)在過去三年都參加了該活動(dòng),提報(bào)的大部分項(xiàng)目在 Mentor 和 Student 的精心合作下都順利完成了。
原文鏈接:https://tinylab.org/summer2023
往年回顧
有意向報(bào)名的同學(xué)可以提前了解一下往年的情況,相關(guān)文章鏈接如下:
2022
開源之夏 - Summer 2022
2021
Summer2021預(yù)告:暑期來做開源項(xiàng)目吧,有社區(qū)老師指導(dǎo),還有Bonus領(lǐng)取
“開源軟件供應(yīng)鏈點(diǎn)亮計(jì)劃——暑期2021”項(xiàng)目提案
2020
“開源軟件供應(yīng)鏈點(diǎn)亮計(jì)劃——暑期2020”項(xiàng)目提案
暑期2020:泰曉科技項(xiàng)目簡(jiǎn)介
活動(dòng)概覽
Summer2023 項(xiàng)目開發(fā)周期為 3 個(gè)月,從 7 月 1 日到 09 月 30 日,詳細(xì)日程請(qǐng)查看 活動(dòng)規(guī)劃,期間:
Mentor 負(fù)責(zé)指導(dǎo)報(bào)名的 Student 完成并達(dá)成預(yù)期的目標(biāo)
為確保活動(dòng)開展質(zhì)量,所有項(xiàng)目準(zhǔn)備、調(diào)研、開發(fā)、測(cè)試、總結(jié)等過程需及時(shí)記錄并公開發(fā)表在社區(qū)網(wǎng)站、公眾號(hào)或其他指定倉庫
達(dá)成目標(biāo)后,活動(dòng)主辦方會(huì)給予 Mentor 和 Student 一定的獎(jiǎng)勵(lì)和資助
數(shù)額因項(xiàng)目難度和完成情況而略有差異,具體情況以 開源之夏 活動(dòng)官網(wǎng)為準(zhǔn),解釋權(quán)歸活動(dòng)主辦方所有
社區(qū)這邊主要是義務(wù)遴選合適的項(xiàng)目參加并組織和協(xié)調(diào) Mentor 與 Student 的項(xiàng)目實(shí)施過程
設(shè)立 Summer2023 微信交流群,方便學(xué)員和 Mentor 的交流
組織必要的項(xiàng)目會(huì)議,跟進(jìn)項(xiàng)目進(jìn)度,發(fā)現(xiàn)項(xiàng)目瓶頸,協(xié)調(diào)解決項(xiàng)目困難,確保各個(gè)項(xiàng)目順利推進(jìn)
開展必要的項(xiàng)目培訓(xùn)與演練
Linux Lab 簡(jiǎn)介
本次提報(bào)的項(xiàng)目均圍繞 Linux Lab 開源項(xiàng)目展開或者建議采用 Linux Lab 作為實(shí)驗(yàn)環(huán)境,這里對(duì) Linux Lab 做一個(gè)簡(jiǎn)單介紹:
Linux Lab 是一款知名國(guó)產(chǎn)開源項(xiàng)目,由 泰曉科技技術(shù)社區(qū) 創(chuàng)建于 2016 年,旨在提供一套開箱即用的 Linux 內(nèi)核與嵌入式 Linux 系統(tǒng)開發(fā)環(huán)境,安裝以后,可以在數(shù)分鐘內(nèi)開展 Linux 內(nèi)核與嵌入式 Linux 系統(tǒng)開發(fā)。
當(dāng)前 Linux Lab 已經(jīng)支持包括 X86、ARM、RISC-V、Loongson 在內(nèi)的 7 大國(guó)內(nèi)外主流處理器架構(gòu),增加了 20 款流行虛擬或真實(shí)嵌入式開發(fā)板,支持從 v0.11, v2.6.x, v3.x, v4.x, v5.x 到 v6.x 的各種新老 Linux 內(nèi)核版本,可以同時(shí)在 Linux、Windows 和 macOS 三大主流操作系統(tǒng)上安裝與使用,另外也制作了免安裝、即插即跑的 Linux Lab Disk / 泰曉 Linux 實(shí)驗(yàn)盤。
項(xiàng)目首頁:https://tinylab.org
當(dāng)前文檔:https://tinylab.org/pdfs/linux-lab-v1.1-manual-zh.pdf
代碼倉庫:https://gitee.com/tinylab/linux-lab
視頻課程:https://www.cctalk.com/m/group/88948325
實(shí)驗(yàn)盤文檔:https://tinylab.org/linux-lab-disk
實(shí)驗(yàn)盤選購(gòu):https://shop155917374.taobao.com/
報(bào)名準(zhǔn)備
為了最大程度地確?;顒?dòng)效果,社區(qū)需要遴選出準(zhǔn)備最充分、能力最合適的學(xué)生參與相應(yīng)項(xiàng)目,報(bào)名前請(qǐng)事先做好如下準(zhǔn)備:
準(zhǔn)備 Linux Lab 開發(fā)環(huán)境
成功運(yùn)行過的操作系統(tǒng)和Docker版本列表
請(qǐng)參考實(shí)驗(yàn)盤文檔: https://gitee.com/tinylab/linux-lab-disk
訪問 項(xiàng)目首頁 了解項(xiàng)目詳情
下載 項(xiàng)目文檔 并瀏覽主要章節(jié)
推薦直接選購(gòu)免安裝即插即跑的泰曉 Linux 實(shí)驗(yàn)盤,在某寶檢索 “泰曉 Linux” 即可
或參考文檔自行安裝好 Linux Lab,并在如下頁面登記安裝信息,證明確實(shí)安裝成功
參考文檔學(xué)習(xí)并使用 Linux Lab,撰寫使用文檔
學(xué)習(xí)視頻課程:https://www.cctalk.com/m/group/88948325
使用過程需公開發(fā)表在知乎、CSDN、泰曉科技等任何公開渠道
瀏覽后文的 “項(xiàng)目列表”,選中自己感興趣的項(xiàng)目
提前對(duì)相關(guān)技術(shù)做充分的調(diào)研并撰寫一份技術(shù)調(diào)研報(bào)告
為確保調(diào)研的質(zhì)量,調(diào)研報(bào)告需正式發(fā)表到社區(qū)網(wǎng)站或公眾號(hào)
社區(qū)稿件投遞方式請(qǐng)查看:https://tinylab.org/post,可直接在 https://gitee.com/tinylab/tinylab.org 提交 PR
報(bào)名方式
05 月 21 日 - 06 月 04 日是學(xué)生提交項(xiàng)目申請(qǐng)階段,可提前了解 學(xué)生指南。
對(duì)社區(qū)提報(bào)的項(xiàng)目感興趣的同學(xué)們,現(xiàn)在就可以提前聯(lián)系我們,聯(lián)系微信:tinylab,暗號(hào):Summer2023。
版權(quán)說明
本次活動(dòng)中由參與的學(xué)生新開發(fā)的代碼需遵循 GPL v2 協(xié)議開放源代碼,該等協(xié)議不影響相關(guān)項(xiàng)目原有和后續(xù)的版權(quán)協(xié)議,新增成果歸貢獻(xiàn)者和泰曉科技技術(shù)社區(qū)所有。
項(xiàng)目列表
項(xiàng)目一
項(xiàng)目標(biāo)題:移植 Unikernel Linux 到 RISC-V 架構(gòu)
項(xiàng)目描述:Unikernel Linux 允許把應(yīng)用程序直接鏈接進(jìn) Linux 內(nèi)核并跟內(nèi)核一起運(yùn)行在特權(quán)模式,這種工作方式將帶來諸多特性,比如應(yīng)用不再需要通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核,還可以跟內(nèi)核一起做 LTO 優(yōu)化。這種設(shè)計(jì)對(duì)于 RISC-V 生態(tài)也非常重要,將對(duì)某些特定領(lǐng)域,比如 MCU、實(shí)時(shí)、低延遲網(wǎng)絡(luò)服務(wù)等帶來好處。它目前僅支持 x86,該項(xiàng)目旨在移植它到 RISC-V 架構(gòu)上。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@sugarfillet
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:
項(xiàng)目產(chǎn)出要求:
學(xué)習(xí) Unikernel Linux 的用法、原理和代碼并輸出 3 篇或以上文章
為 Unikernel Linux 添加 RISC-V 架構(gòu)的支持,可能涉及 Linux、Glibc、Gcc 等,輸出 1 篇或以上文章
開展充分的測(cè)試與驗(yàn)證,含配置、編譯、啟動(dòng)和運(yùn)行,需至少包含 3 個(gè)應(yīng)用例子,輸出 1 篇或以上文章
把相關(guān)成果合并進(jìn) Linux Lab 開源項(xiàng)目的 unikernel 分支并往相關(guān)項(xiàng)目上游提交 Patch
撰寫 1 篇開發(fā)手冊(cè),1 篇使用文檔,1 份測(cè)試報(bào)告并開展 1 期線上技術(shù)直播
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
項(xiàng)目技術(shù)要求:
有 Linux 內(nèi)核開發(fā)與使用經(jīng)驗(yàn)
有 RISC-V 架構(gòu)匯編或操作系統(tǒng)開發(fā)經(jīng)驗(yàn)
學(xué)習(xí)過 C 語言、操作系統(tǒng)相關(guān)課程
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
Unikernel Linux: https://github.com/unikernelLinux/linux
項(xiàng)目二
項(xiàng)目標(biāo)題:為 ELF2FLT 完善獨(dú)立編譯與安裝支持
項(xiàng)目描述:ELF2FLT 是 uclibc 社區(qū)開發(fā)的一款工具,可以配合 gcc 工具鏈生成 FLAT 格式的可執(zhí)行二進(jìn)制文件格式,進(jìn)而運(yùn)行在不支持 MMU 的 Linux 內(nèi)核上。ELF2FLT 目前的編譯安裝較為復(fù)雜,需集成進(jìn) Buildroot 等工具,泰曉社區(qū)已經(jīng)開展了一些優(yōu)化工作,該項(xiàng)目旨在泰曉社區(qū)工作成果的基礎(chǔ)上進(jìn)一步完善 ELF2FLT 的編譯與安裝,確??梢灾苯釉?Linux 下安裝完依賴的庫以后,獨(dú)立編譯并安裝 ELF2FLT,該項(xiàng)目將重點(diǎn)支持 RISC-V 架構(gòu)。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@walimis
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:
項(xiàng)目產(chǎn)出要求:
學(xué)習(xí) ELF2FLT 支持的 FLAT 格式(含壓縮格式),并跟 ELF 格式進(jìn)行對(duì)比,輸出 1 篇文章
以 RISC-V 架構(gòu)為例,學(xué)習(xí) ELF2FLT 的用法、原理和代碼并輸出 3 篇以上文章
以 RISC-V 架構(gòu)為例,開展必要的開發(fā)與修改,確??瑟?dú)立配置、編譯和安裝 ELF2FLT,并能正常編譯出可正常運(yùn)行的 FLAT 格式程序,輸出 1 篇文章
把相關(guān)成果合并進(jìn) Linux Lab 開源項(xiàng)目的 elf2flt 分支,確保能更簡(jiǎn)單的編譯出 FLAT 程序,并往相關(guān)項(xiàng)目上游提交 Patch
撰寫 1 篇開發(fā)手冊(cè),1 篇使用文檔,1 份測(cè)試報(bào)告并在泰曉社區(qū)開展 1 期線上技術(shù)直播
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
項(xiàng)目技術(shù)要求:
有 Linux 開發(fā)與使用經(jīng)驗(yàn)
有 RISC-V 架構(gòu)匯編或操作系統(tǒng)開發(fā)經(jīng)驗(yàn)
學(xué)習(xí)過 C 語言、編譯原理、操作系統(tǒng)等課程
掌握 ELF 格式優(yōu)先
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
泰曉 ELF2FLT 倉庫: https://gitee.com/tinylab/elf2flt
Uclibc ELF2FLT 倉庫: https://github.com/uclinux-dev/elf2flt
項(xiàng)目三
項(xiàng)目標(biāo)題:通過編譯器解決因鏈接過程KEEP操作引起的Section GC失敗問題
項(xiàng)目描述:Linux 內(nèi)核等項(xiàng)目支持 Section GC,在鏈接時(shí)能自動(dòng)刪除沒有被使用到的函數(shù)和變量,但是有一類特殊的段,比如 exception table,雖然由函數(shù)調(diào)用需求觸發(fā)生成,但是并沒有明確的引用記錄,導(dǎo)致這類 Section 需要通過KEEP操作強(qiáng)制保留,結(jié)果是,這種強(qiáng)制保留導(dǎo)致本來無人使用的函數(shù)無法被正常刪除。該項(xiàng)目旨在通過編譯器增加某種機(jī)制,確保這類特殊的段在創(chuàng)建時(shí)可以按需在觸發(fā)生成它們的函數(shù)和這些段之間建立某種引用關(guān)系,從而避免通過KEEP來強(qiáng)制保留,進(jìn)而解決相關(guān)函數(shù)的Section GC失敗問題,并在此基礎(chǔ)上消除內(nèi)核中KEEP操作的濫用,該項(xiàng)目?jī)?yōu)先基于 RISC-V 架構(gòu)。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@lzufalcon
導(dǎo)師聯(lián)系方式:falcon@tinylab.org
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
在某個(gè)編譯器(GCC或/和LLVM)中新增某種機(jī)制,確保在通過 .pushsection 新建 Section 時(shí)可以自動(dòng)建立當(dāng)前函數(shù)對(duì)該 Section 的引用,輸出 1 篇文章
在 Linux 內(nèi)核中驗(yàn)證該機(jī)制的有效性,在無 KEEP 的情況下,確保 Section GC 不能自動(dòng)刪除上述 Section,輸出 1 篇文章
把 Linux 內(nèi)核中所有類似的場(chǎng)景全部替換為新的機(jī)制,消除 KEEP 的濫用,輸出 1 篇文章
把相關(guān)成果合并進(jìn) Linux Lab 開源項(xiàng)目的 section-gc 分支,并往相關(guān)項(xiàng)目的上游提交 Patch
撰寫 1 篇開發(fā)手冊(cè),1 篇使用文檔,1 份測(cè)試報(bào)告并在泰曉社區(qū)開展 1 期線上技術(shù)直播
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
項(xiàng)目技術(shù)要求:
有 Linux 內(nèi)核開發(fā)與使用經(jīng)驗(yàn)
有 GCC 或 LLVM 編譯器的開發(fā)經(jīng)驗(yàn)
有 RISC-V 架構(gòu)匯編或操作系統(tǒng)開發(fā)經(jīng)驗(yàn)
學(xué)習(xí)過 C 語言、編譯原理、操作系統(tǒng)等課程
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
GCC: https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git
LLVM: https://github.com/llvm/llvm-project
項(xiàng)目四
項(xiàng)目標(biāo)題:錄制基于 Linux Lab 的嵌入式 RISC-V Linux 系統(tǒng)開發(fā)課程
項(xiàng)目描述:Linux Lab 和 RISC-V Lab 開源項(xiàng)目現(xiàn)在支持開展各類 RISC-V Linux 實(shí)驗(yàn),包括 QEMU 模擬器、QEMU 虛擬化、Linux 內(nèi)核、RISC-V 匯編、RVOS、U-Boot、OpenSBI、BuildRoot、RISC-V 應(yīng)用開發(fā)等,該項(xiàng)目旨在基于 Linux Lab 和 RISC-V Lab 開展相關(guān)實(shí)驗(yàn)并錄制相應(yīng)視頻課程。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@tjytimi
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
基于 Linux Lab 開展 QEMU 模擬器、QEMU 虛擬化、Linux 內(nèi)核、RISC-V 匯編、RVOS、U-Boot、OpenSBI、BuildRoot 實(shí)驗(yàn)并制作實(shí)驗(yàn)手冊(cè)
基于 RISC-V Lab 開展 RISC-V 應(yīng)用開發(fā)實(shí)驗(yàn)并制作實(shí)驗(yàn)手冊(cè)
把上述實(shí)驗(yàn)過程錄制為相應(yīng)的視頻課程,不少于 10 期視頻,每期不少于半小時(shí)
把視頻課程陸續(xù)發(fā)表在泰曉社區(qū)的 B 站賬號(hào)上
實(shí)驗(yàn)手冊(cè)需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
需要在泰曉社區(qū)開展 1 期與該項(xiàng)目開發(fā)過程與成果相關(guān)的線上技術(shù)直播分享
項(xiàng)目技術(shù)要求:
有 Linux 系統(tǒng)使用經(jīng)驗(yàn)
有學(xué)習(xí)過計(jì)算機(jī)專業(yè)相關(guān)的課程
有嵌入式 Linux 系統(tǒng)開發(fā)相關(guān)的學(xué)習(xí)經(jīng)歷
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Lab: https://gitee.com/tinylab/riscv-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
項(xiàng)目五
項(xiàng)目標(biāo)題:在新版 Manjaro 中確保 Linux Lab 正常啟動(dòng) rpcbind 和 nfs 服務(wù)
項(xiàng)目描述:在最新版的 Manjaro 中,Linux Lab 啟動(dòng) rpcbind 和 nfs 服務(wù)出現(xiàn)衰退,無法正常工作,該項(xiàng)目旨在分析 rpcbind 和 nfs 服務(wù)啟動(dòng)失敗的原因,修復(fù)該問題并提交解決方案。
項(xiàng)目難度:基礎(chǔ)
項(xiàng)目社區(qū)導(dǎo)師:@Forrest
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
在最新版的 Manajaro 中安裝并運(yùn)行 Linux Lab,輸出 1 篇或以上文章
分析新版 Manjaro 中 Linux Lab 的 rpcbind 和 nfs 服務(wù)啟動(dòng)失敗的原因,輸出 1 篇或以上分析文章
修復(fù) rpcbind 和 nfs 服務(wù)啟動(dòng)失敗的問題并提交解決方案,需確保
make boot ROOTDEV=nfs
正常工作,輸出 1 篇或以上技術(shù)文章把相關(guān)成果合并進(jìn) Linux Lab 開源項(xiàng)目,確保在 Manjaro 下正常使用 Linux Lab 的 rpcbind 和 nfs 服務(wù)
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 tinylab.org 項(xiàng)目倉庫
需要在泰曉社區(qū)開展 1 期與該項(xiàng)目開發(fā)過程與成果相關(guān)的線上技術(shù)直播分享
項(xiàng)目技術(shù)要求:
有 Manjaro 或 ArchLinux 系統(tǒng)使用經(jīng)驗(yàn)
有 C 語言程序開發(fā)與調(diào)試經(jīng)驗(yàn)
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
Tinylab.org: https://gitee.com/tinylab/tinylab.org
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
項(xiàng)目六
項(xiàng)目標(biāo)題:為國(guó)產(chǎn)高性能 RISC-V LicheePi4A 開發(fā)板移植 Real Time Preemption 補(bǔ)丁
項(xiàng)目描述:LicheePi4A 是 Sipeed 開發(fā)的一款高性能國(guó)產(chǎn) RISC-V 開發(fā)板,主頻高達(dá) 1.85G,有潛在的工業(yè)場(chǎng)景應(yīng)用前景。該項(xiàng)目旨在為這款國(guó)產(chǎn) RISC-V 開發(fā)板移植 Real Time Preemption 實(shí)時(shí) Linux 解決方案,優(yōu)化潛在的 Latency 問題并達(dá)成一個(gè)較為理想的 Worst Case Latency。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@iosdevlog
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
為 LicheePi4A Linux 內(nèi)核移植 Real Time Preemption 補(bǔ)丁,輸出 1 篇或以上移植文章
測(cè)試移植 RT 補(bǔ)丁后的 Linux 內(nèi)核的實(shí)時(shí)系統(tǒng)性能,輸出 1 篇或以上測(cè)試文章
優(yōu)化潛在的 Latency 問題并驗(yàn)證優(yōu)化后的效果,輸出 1 篇或以上優(yōu)化文章
把相關(guān)成果合并進(jìn) Linux Lab 開源項(xiàng)目的 licheepi4a-rt 分支并往相關(guān)項(xiàng)目的上游提交 Patch
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
需要在泰曉社區(qū)開展 1 期與該項(xiàng)目開發(fā)過程與成果相關(guān)的線上技術(shù)直播分享
項(xiàng)目技術(shù)要求:
有 Linux 內(nèi)核開發(fā)與使用經(jīng)驗(yàn)
有 RISC-V 架構(gòu)匯編或操作系統(tǒng)開發(fā)經(jīng)驗(yàn)
學(xué)習(xí)過 C 語言、操作系統(tǒng)等課程
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
LicheePi4A SDK: https://gitee.com/thead-yocto
項(xiàng)目七
項(xiàng)目標(biāo)題:調(diào)研并總結(jié) RISC-V 處理器擴(kuò)展的最新軟硬件支持方案
項(xiàng)目描述:RISC-V 處理器指令集由核心的 ISA 加一系列外圍的擴(kuò)展組成,在外圍的擴(kuò)展管理方面,最早通過 MISA 寄存器來做標(biāo)識(shí),但是隨著擴(kuò)展的不斷擴(kuò)充,MISA 已經(jīng)完全無法滿足要求,目前已經(jīng)出現(xiàn)了新的擴(kuò)展支持方式,QEMU 與 Linux 內(nèi)核也在往新的方式上遷移,這部分對(duì)于芯片與內(nèi)核廠商度至關(guān)重要。該項(xiàng)目旨在系統(tǒng)地調(diào)研 RISC-V 擴(kuò)展的最新情況,包括擴(kuò)展的類別、狀態(tài)、支持的方式、QEMU, GCC 以及 Linux 內(nèi)核的代碼實(shí)現(xiàn)情況、應(yīng)用開發(fā)時(shí)如何啟用相關(guān)擴(kuò)展等,從而為相關(guān)開發(fā)人員提供清晰明確的指導(dǎo)。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@Bin Meng
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
系統(tǒng)地調(diào)研 RISC-V 處理器擴(kuò)展的最新軟硬件支持方案,輸出 6 篇或以上文章
調(diào)研對(duì)象需包含 Spec 文檔、GCC 支持、QEMU 支持、SBI 支持、Linux 內(nèi)核支持以及應(yīng)用開發(fā)案例等
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 “RISC-V Linux 內(nèi)核剖析” 項(xiàng)目倉庫
需要在泰曉社區(qū)開展 1 期與該項(xiàng)目開發(fā)過程與成果相關(guān)的線上技術(shù)直播分享
項(xiàng)目技術(shù)要求:
有 Linux 內(nèi)核開發(fā)與使用經(jīng)驗(yàn)
有 RISC-V 架構(gòu)匯編或操作系統(tǒng)開發(fā)經(jīng)驗(yàn)
學(xué)習(xí)過 C 語言、編譯原理與操作系統(tǒng)等課程
掌握 Linux Lab 的用法
相關(guān)的開源軟件倉庫列表:
Linux Lab: https://gitee.com/tinylab/linux-lab
RISC-V Linux: https://gitee.com/tinylab/riscv-linux
項(xiàng)目八
項(xiàng)目標(biāo)題:開發(fā)一個(gè)跨 Linux 發(fā)行版的軟件包管理接口工具 tinyget
項(xiàng)目描述:Linux 發(fā)行版眾多造成了比較嚴(yán)重的碎片化,但是可喜的是,幾大包管理工具的名字雖然不同,包名也不同,但是經(jīng)過多年的發(fā)展,各大包管理工具日趨完善,提供的操作方式卻逐步趨同,大同小異。該項(xiàng)目旨在 3 大主流 Linux 包管理工具(apt, pacman 與 dnf)的基礎(chǔ)上,做進(jìn)一步的抽象,在這些工具之上提供統(tǒng)一的 tinyget 接口,從而為各個(gè)發(fā)行版用戶提供更為一致的軟件安裝體驗(yàn),一個(gè)是解決碎片化,另外一個(gè)是解決本地化,該超級(jí)管理工具需要同時(shí)支持命令行方式和 GUI 方式。在 tinyget 的基礎(chǔ)上,為用戶提供他們熟悉的包管理使用方式,比如在 Ubuntu 系統(tǒng)下,自動(dòng)創(chuàng)建 tinyget 的別名 pacman 和 dnf,并根據(jù)別名提供類似原生工具的選項(xiàng)。
項(xiàng)目難度:進(jìn)階
項(xiàng)目社區(qū)導(dǎo)師:@taotieren
導(dǎo)師聯(lián)系方式:
合作導(dǎo)師聯(lián)系方式:暫無
項(xiàng)目產(chǎn)出要求:
能自動(dòng)配置最快的國(guó)內(nèi)軟件鏡像
能用于安裝常用的國(guó)產(chǎn)中文軟件
為底層 apt, pacman, dnf 等包管理工具提供頂層封裝,讓用戶以他們?cè)瓉硎煜さ姆绞绞褂?/p>
系統(tǒng)地總結(jié)當(dāng)前各大主流 Linux 包管理工具(至少需包括 apt, pacman 與 dnf)及其用法,做詳細(xì)的對(duì)照和介紹,輸出 1 篇或以上文章
在上述總結(jié)的基礎(chǔ)上抽象出更為全面的接口,并詳細(xì)介紹各個(gè)接口的功能,輸出 1 篇設(shè)計(jì)文章
匯總各種中文常用軟件包信息,包括軟件名稱、開發(fā)商、發(fā)布節(jié)奏、下載地址等,輸出 1 篇或以上文章
匯總國(guó)內(nèi)各大軟件鏡像站的信息并做分類整理,并輸出 1 篇或以上文章
實(shí)現(xiàn) tinyget 基本功能,增加 completion 支持,提交進(jìn)泰曉社區(qū)的軟件倉庫并開展充分的測(cè)試與驗(yàn)證
撰寫 1 篇開發(fā)手冊(cè),1 篇使用文檔,1 份測(cè)試報(bào)告并在泰曉社區(qū)開展 1 期線上技術(shù)直播
需要在泰曉社區(qū)開展 1 期與該項(xiàng)目開發(fā)過程與成果相關(guān)的線上技術(shù)直播分享
文章需以 Markdown 格式提交進(jìn)泰曉社區(qū)的 tinylab.org 項(xiàng)目倉庫
項(xiàng)目技術(shù)要求:
Linux 發(fā)燒友,使用過各大 Linux 發(fā)行版
具有豐富的 Shell 腳本開發(fā)經(jīng)驗(yàn)
相關(guān)的開源軟件倉庫列表:
Cloud Lab: https://gitee.com/tinylab/cloud-lab
tinyget: https://gitee.com/tinylab/tinyget
Tinylab.org: https://gitee.com/tinylab/tinylab.org
RISC-V Linux: https://gitee.com/tinylab/riscv-linux