From ca323899f3621e58b8649786273fefe77c40b7e6 Mon Sep 17 00:00:00 2001 From: Wu Zhangjin Date: Tue, 30 Aug 2022 04:15:02 +0800 Subject: [PATCH 1/4] README: update with tinycorrect.sh $ template=generic ./tinycorrect.sh refs/README.md Signed-off-by: Wu Zhangjin --- refs/README.md | 83 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 26 deletions(-) diff --git a/refs/README.md b/refs/README.md index 76f065f..d015290 100644 --- a/refs/README.md +++ b/refs/README.md @@ -5,7 +5,7 @@ 我们简单梳理了一下该项目可能涉及的资料,并制作成了思维导图,欢迎下载查阅。 -* [riscv-linux.xmind](https://gitee.com/tinylab/riscv-linux/raw/master/refs/riscv-linux.xmind) +* [riscv-linux.xmind][006] ## 更多信息 @@ -20,37 +20,68 @@ * Linux 移植到新架构 * Porting Linux to a new processor architecture (kernel itself) - * [part 1: The basics](https://lwn.net/Articles/654783/),[译文](https://tinylab.org/lwn-654783/) @通天塔 - * [part 2: The early code](https://lwn.net/Articles/656286/), [译文](https://tinylab.org/lwn-656286/) @通天塔 - * [part 3: To the finish line](https://lwn.net/Articles/657939/), [译文](https://tinylab.org/lwn-657939/) @通天塔 - * [Base porting linux kernel riscv archiecture](https://elinux.org/images/c/c7/Base-porting-linux-kernel-riscv-archiecture-ELC-2019.pdf) - * [Porting Linux to a new architecture (not only kernel)](https://lwn.net/Articles/597351/), [pdf](https://elinux.org/images/5/50/Rybczynska_Porting_Linux_to_a_new_architecture_ELC2014.pdf) + * [part 1: The basics][022],[译文][026] @通天塔 + * [part 2: The early code][023], [译文][027] @通天塔 + * [part 3: To the finish line][024], [译文][028] @通天塔 + * [Base porting Linux kernel RISC-V archiecture][005] + * [Porting Linux to a new architecture (not only kernel)][021], [pdf][004] * RISC-V 汇编 - * [在 Linux Lab Disk 下开展 RISC-V 汇编语言实验](https://zhuanlan.zhihu.com/p/479295461) - * [RISC-V ASSEMBLY LANGUAGE Programmer Manual Part I](https://shakti.org.in/docs/risc-v-asm-manual.pdf) - * [Introduction to Assembly: RISC-V Instruction Set Architecture](https://inst.eecs.berkeley.edu/~cs61c/sp21/pdfs/docs/lectures/lec06_assembly.key.pdf) - * [RISC-V Assembly Programmer's Manual](https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md) + * [在 Linux Lab Disk 下开展 RISC-V 汇编语言实验][029] + * [RISC-V ASSEMBLY LANGUAGE Programmer Manual Part I][025] + * [Introduction to Assembly: RISC-V Instruction Set Architecture][020] + * [RISC-V Assembly Programmer's Manual][008] * RISC-V 标准与规范 - * [RISC-V Platform Specification](https://github.com/riscv/riscv-platform-specs/blob/main/riscv-platform-spec.adoc) - * [RISC-V ABIs Specification](https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-abi.adoc) - * [The RISC-V psABI](https://courses.cs.washington.edu/courses/cse481a/20sp/notes/psabi.pdf) - * [RISC-V Supervisor Binary Interface Specification](https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.adoc) - * [RISC-V UEFI Protocols](https://github.com/riscv-non-isa/riscv-uefi/releases) - * [RISC-V Instruction Set Manual](https://github.com/riscv/riscv-isa-manual) - * [Volume I: User-Level ISA](https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf) - * [Volume II: Privileged Architecture](https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf) + * [RISC-V Platform Specification][018] + * [RISC-V ABIs Specification][009] + * [The RISC-V psABI][002] + * [RISC-V Supervisor Binary Interface Specification][010] + * [RISC-V UEFI Protocols][012] + * [RISC-V Instruction Set Manual][015] + * [Volume I: User-Level ISA][017] + * [Volume II: Privileged Architecture][016] * Extensions - * [External Debug Support](https://github.com/riscv/riscv-debug-spec/) - * [Trace Specification](https://github.com/riscv-non-isa/riscv-trace-spec/) - * [RISC-V Cryptography Extension](https://github.com/riscv/riscv-crypto) - * [RISC-V Vector Specification](https://github.com/riscv/riscv-v-spec/) + * [External Debug Support][014] + * [Trace Specification][011] + * [RISC-V Cryptography Extension][013] + * [RISC-V Vector Specification][019] * 硬件资料 - * [平头哥开放的 RISC-V 核](https://github.com/orgs/T-head-Semi/repositories?type=all) - * [平头哥 D1 资料](https://dl.linux-sunxi.org/D1/) + * [平头哥开放的 RISC-V 核][007] + * [平头哥 D1 资料][003] * 在线书籍 - * [The RISC-V Reader: An Open Architecture Atlas](http://www.riscvbook.com/chinese/RISC-V-Reader-Chinese-v2p1.pdf) - * [Linux Insides](https://0xax.gitbooks.io/linux-insides/content/index.html) + * [The RISC-V Reader: An Open Architecture Atlas][030] + * [Linux Insides][001] + +[001]: https://0xax.gitbooks.io/linux-insides/content/index.html +[002]: https://courses.cs.washington.edu/courses/cse481a/20sp/notes/psabi.pdf +[003]: https://dl.linux-sunxi.org/D1/ +[004]: https://elinux.org/images/5/50/Rybczynska_Porting_Linux_to_a_new_architecture_ELC2014.pdf +[005]: https://elinux.org/images/c/c7/Base-porting-linux-kernel-riscv-archiecture-ELC-2019.pdf +[006]: https://gitee.com/tinylab/riscv-linux/raw/master/refs/riscv-linux.xmind +[007]: https://github.com/orgs/T-head-Semi/repositories?type=all +[008]: https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md +[009]: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-abi.adoc +[010]: https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.adoc +[011]: https://github.com/riscv-non-isa/riscv-trace-spec/ +[012]: https://github.com/riscv-non-isa/riscv-uefi/releases +[013]: https://github.com/riscv/riscv-crypto +[014]: https://github.com/riscv/riscv-debug-spec/ +[015]: https://github.com/riscv/riscv-isa-manual +[016]: https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf +[017]: https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf +[018]: https://github.com/riscv/riscv-platform-specs/blob/main/riscv-platform-spec.adoc +[019]: https://github.com/riscv/riscv-v-spec/ +[020]: https://inst.eecs.berkeley.edu/~cs61c/sp21/pdfs/docs/lectures/lec06_assembly.key.pdf +[021]: https://lwn.net/Articles/597351/ +[022]: https://lwn.net/Articles/654783/ +[023]: https://lwn.net/Articles/656286/ +[024]: https://lwn.net/Articles/657939/ +[025]: https://shakti.org.in/docs/risc-v-asm-manual.pdf +[026]: https://tinylab.org/lwn-654783/ +[027]: https://tinylab.org/lwn-656286/ +[028]: https://tinylab.org/lwn-657939/ +[029]: https://zhuanlan.zhihu.com/p/479295461 +[030]: http://www.riscvbook.com/chinese/RISC-V-Reader-Chinese-v2p1.pdf -- Gitee From 569d514992d4249d7e525485ddd7a4f552e9ca8a Mon Sep 17 00:00:00 2001 From: Wu Zhangjin Date: Tue, 30 Aug 2022 04:18:51 +0800 Subject: [PATCH 2/4] README: update meeting notes with tinycorrect Signed-off-by: Wu Zhangjin --- meeting/README.md | 145 ++++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 70 deletions(-) diff --git a/meeting/README.md b/meeting/README.md index fbf0cf9..1b4d92a 100644 --- a/meeting/README.md +++ b/meeting/README.md @@ -1,7 +1,7 @@ # 会议或直播安排与记录 -该目录用于记录 “RISC-V Linux 内核兴趣小组” 的会议或直播分享记录和安排。 +该目录用于记录“RISC-V Linux 内核兴趣小组”的会议或直播分享记录和安排。 ## 时间安排 @@ -15,7 +15,7 @@ 会议和直播均采用腾讯会议软件,2022/07/23 添加哔哩哔哩直播。 - 会议主题:RISC-V Linux 内核技术分享会 -- 会议时间:2022/03/19-2022/12/30 20:30-21:30,每周 (周六) +- 会议时间:2022/03/19-2022/12/30 20:30-21:30,每周(周六) - 参会方式 - 点击链接入会: - 腾讯会议入口:970-916-265 @@ -38,9 +38,9 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 回放发布在如下三个视频频道: -- [泰晓学院](https://www.cctalk.com/m/group/90251209) -- [B 站频道](https://space.bilibili.com/687228362/channel/collectiondetail?sid=273934) -- [知乎专栏](https://www.zhihu.com/column/tinylab) +- [泰晓学院][202208204] +- [B 站频道][202208203] +- [知乎专栏][202208205] ### 分享安排 @@ -52,20 +52,20 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 - 20220827:源码分析 - Overlay -- RISC-V 内核基础函数与汇编库分析 @郭天佑TanyoKwok +- RISC-V 内核基础函数与汇编库分析 @郭天佑 TanyoKwok - 微架构优化与验证 @falcon - 以 Ftrace & Tracepiont 为例,介绍内核 JIT 思想,优化原理,并通过分析汇编和二进制确认最终优化效果 -- 不同架构基础指令的性能测试与数据分析 @hev @iOSDevLog @dlan17  - - 设计测试案例实测不同架构上的多个基础指令的性能数据并分析数据背后的处理器设计差异(欢迎CPU设计人员参与) +- 不同架构基础指令的性能测试与数据分析 @hev @iOSDevLog @dlan17 + - 设计测试案例实测不同架构上的多个基础指令的性能数据并分析数据背后的处理器设计差异(欢迎 CPU 设计人员参与) - 内核运行时代码修改的原理与实现 - 结合 Ftrace 与 Tracepoint 源码分析如何在运行时修改内核代码以及可能要注意的事项,包括多核竞争与内存管理等 ### 已完成 -- 20220820: [《从零开始 RISC-V 硬件设计》之 MIPI+USB+GPIO 总线使用经验 - 倪老师-哔哩哔哩][202208201] @taotieren +- 20220820: [《从零开始 RISC-V 硬件设计》之 MIPI+USB+GPIO 总线使用经验 - 倪老师 - 哔哩哔哩][202208201] @taotieren - 介绍《从零开始 RISC-V 硬件设计》项目中的 MIPI,USB 和 GPIO 总线使用经验 - 已上传视频剪辑 @@ -75,7 +75,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 - 王利明老师介绍 RISC-V Linux 内核 - 已上传视频剪辑 -- 20220806:[《RISC-V Linux 设备树详解》之语法与文件格式 - 贾老师-哔哩哔哩][202208061] @iOSDevLog +- 20220806:[《RISC-V Linux 设备树详解》之语法与文件格式 - 贾老师 - 哔哩哔哩][202208061] @iOSDevLog - 介绍《RISC-V Linux 设备树详解》第一期:设备树语法与文件格式 - 已上传视频剪辑 @@ -115,7 +115,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 - 从基本概念、__schedule 函数剖析、Schedule Classes 到 RISC-V Context Switch,较为全面地介绍了内核调度的知识 - 已上传视频剪辑 -- 20220611:RISC-V printk 初探,从 Linux v0.01 到 v5.0 @iOSDevLog +- 20220611:RISC-V printk 初探,从 Linux v0.01 到 v5.0 @iOSDevLog - 对比大家熟悉的 printf 介绍 printk,从 Linux v0.01-v5.0 探索 printk 的演进历史,并通过源码分析了 printk 的基本工作原理 - 已上传视频剪辑 @@ -127,7 +127,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 - 对照 X86 和 RISC-V,介绍了 StackTrace 的基本工作原理与代码实现 - 已上传视频剪辑 -- 20220508:RISC-V Linux 内核启动流程分析 @通天塔  +- 20220508:RISC-V Linux 内核启动流程分析 @通天塔 - 结合 RISC-V 源码和 Linux Porting 系列译文,分析 RISC-V Linux 启动流程 - 已上传视频剪辑 @@ -163,25 +163,25 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220820:第二十三周 -本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 MIPI+USB+GPIO 总线使用经验。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 MIPI+USB+GPIO 总线使用经验。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: * @williamsun0122:认领 IRQs。 -* @xuyq0306: 更新 [#I5F0PU][#I5F0PU] 进度:调研常用benchmark工具。 +* @xuyq0306: 更新 [#I5F0PU][#I5F0PU] 进度:调研常用 benchmark 工具。 * @tangjinyu1994:更新 [#I5LIEI][#I5LIEI] 进度:用 LLVM 编译,一旦加上 KMSAN 选项,就无法 qemu 启动加载。 * @zjw961204:更新 [#I5GYUU][#I5GYUU] 进度:使用 nginx 和 ffmpeg 实现了摄像头直播推流。 -* @xiakaipan:更新 [#I5EE48][#I5EE48] 进度:可以在 qemu 中加载自定义的虚拟设备,而非之前提示“无设备”错误;提交 “KVM 虚拟化:用户态程序”,closed。 +* @xiakaipan:更新 [#I5EE48][#I5EE48] 进度:可以在 qemu 中加载自定义的虚拟设备,而非之前提示“无设备”错误;提交“KVM 虚拟化:用户态程序”,closed。 * @yooyoyo:新增新闻 [RISC-V Linux 内核及周边技术动态:第六期][news],merged。 * @trueptolemy:《A First Look at RISC-V Virtualization from an Embedded Systems Perspective》的翻译,closed。 -* @sugarfillet:提交 [ftrace 实现原理 1 - 函数跟踪][231],merged;提交 “ftrace 实现原理 2 - 编译时原理”,closed。 +* @sugarfillet:提交 [ftrace 实现原理 1 - 函数跟踪][231],merged;提交“ftrace 实现原理 2 - 编译时原理”,closed。 * @bosswangst:PR Review [扁平化设备树(DTB)格式剖析之一:版本,报头和内存保留块][235],[扁平化设备树 (DTB) 格式剖析之二:结构体块,字符串块和对齐][236];提交 [RISC-V CPU 设计模块软件行为仿真与下板实验调试][232]。 -* @YJMSTR:更新 [#I5EE48][#I5EE48] 进度:阅读 U-Boot 和 QEMU 的源码;提交 [QEMU 启动方式分析 (1):QEMU 及 RISC-V 上游启动流程简介][233],merged。 +* @YJMSTR:更新 [#I5EE48][#I5EE48] 进度:阅读 U-Boot 和 QEMU 的源码;提交 [QEMU 启动方式分析(1):QEMU 及 RISC-V 上游启动流程简介][233],merged。 * @GoodBoyCC:提交 [RISC-V Syscall 系列 4:vDSO 实现原理分析][234],merged。 -* @lbmeng:PR Review [QEMU 启动方式分析 (1):QEMU 及 RISC-V 上游启动流程简介][233]。 -* @walimis:PR Review [ftrace 实现原理 1 - 函数跟踪][231] 和 “ftrace 实现原理 2 - 编译时原理”。 +* @lbmeng:PR Review [QEMU 启动方式分析(1):QEMU 及 RISC-V 上游启动流程简介][233]。 +* @walimis:PR Review [ftrace 实现原理 1 - 函数跟踪][231] 和“ftrace 实现原理 2 - 编译时原理”。 * @taotieren: PR Review [RISC-V Syscall 系列 4:vDSO 实现原理分析][234],[扁平化设备树(DTB)格式剖析之一:版本,报头和内存保留块][235],[扁平化设备树 (DTB) 格式剖析之二:结构体块,字符串块和对齐][236];分享 [《从零开始 RISC-V 硬件设计》之 MIPI+USB+GPIO 总线使用经验][202208201]。 -* @iOSDevLog:提交 [扁平化设备树(DTB)格式剖析之一:版本,报头和内存保留块][235],merged;[扁平化设备树 (DTB) 格式剖析之二:结构体块,字符串块和对齐][236],merged;登记 D1 开发板,协调D1 开发板的使用;安排下周会议;项目同步;完成本次会议记录。 +* @iOSDevLog:提交 [扁平化设备树(DTB)格式剖析之一:版本,报头和内存保留块][235],merged;[扁平化设备树 (DTB) 格式剖析之二:结构体块,字符串块和对齐][236],merged;登记 D1 开发板,协调 D1 开发板的使用;安排下周会议;项目同步;完成本次会议记录。 * @falcon:更新多个 issues 进度;直播分享 Review 相关工作;所有 PR Review。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 @@ -194,19 +194,19 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220813:第二十二周 -本周由社区负责人 Falcon 特别邀请了龙芯 Linux Maintainer 陈华才老师和资深 Linux 与虚拟化技术专家王利明老师以人物访谈的形式分享主题:Linux v5.19 内核观察。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由社区负责人 Falcon 特别邀请了龙芯 Linux Maintainer 陈华才老师和资深 Linux 与虚拟化技术专家王利明老师以人物访谈的形式分享主题:Linux v5.19 内核观察。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: -* @xuyq19 徐宇奇, @蒋之凡, @凌宇哲, @谭源, @taotieren, @falcon, @iOSDevLog:参加RISC-V 硬件设计小组内部会议,自我介绍及后续协作沟通。 +* @xuyq19 徐宇奇,@蒋之凡,@凌宇哲,@谭源,@taotieren, @falcon, @iOSDevLog:参加 RISC-V 硬件设计小组内部会议,自我介绍及后续协作沟通。 * @zjw961204:新增 [D1 开机入门][221],merged。提交 [用 D1 进行图片采集和人体识别][222],merged。 * @yooyoyo:新增新闻 [RISC-V Linux 内核及周边技术动态:第六期][news],merged。 * @nfk1996:整理 [Missing Features/Tools for RISC-V][224]:optprobes, user-ret-profiler。 -* @trueptolemy:提交 “x86 下 kvm 的 steal time 机制探究”,closed。 -* @xiakaipan:提交 “KVM 虚拟化:用户态程序”,closed。 -* @sugarfillet:认领 Ftrace;提交 “ftrace 实现原理 1 - 函数跟踪”,closed。 +* @trueptolemy:提交“x86 下 kvm 的 steal time 机制探究”,closed。 +* @xiakaipan:提交“KVM 虚拟化:用户态程序”,closed。 +* @sugarfillet:认领 Ftrace;提交“ftrace 实现原理 1 - 函数跟踪”,closed。 * @tangjinyu1994:新增老师提案 [Try to Support KMSAN for RISC-V][223]。 -* @walimis:PR Review “KVM 虚拟化:用户态程序” 和 “ftrace 实现原理 1 - 函数跟踪”。 +* @walimis:PR Review“KVM 虚拟化:用户态程序”和“ftrace 实现原理 1 - 函数跟踪”。 * @iOSDevLog:安排下周会议;项目同步;完成本次会议记录。 * @falcon:新增老师提案 [Missing Features/Tools for RISC-V][224];邀请陈华才和王老师分享 [《Linux 内核观察》v5.19][202208131];所有 PR Review。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 @@ -218,16 +218,16 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220806:第二十一周 -本周由贾老师介绍《RISC-V Linux 设备树详解》之语法与文件格式。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由贾老师介绍《RISC-V Linux 设备树详解》之语法与文件格式。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: * @YJMSTR:更新 issue 进度:继续按照 review 意见进行修改,并修复了原先编译运行 U-Boot, U-Boot SPL 以及 OpenSBI 时遇到的问题,现在能够正常运行这几个软件,目前还差引导内核,以及分析 ZSBL 代码。 * @bosswangst:更新 issue 进度:准备构思数据通路搭建;新增 [RISC-V CPU 设计理论分析与主要模块的实现][211],merged。 * @tangjinyu1994:新增 [RISC-V 架构下内核线程返回函数探究][212],merged。 -* @zjw961204:更新 issue 进度:实现了摄像头采集画面的实时检测,对目前工作的文档记录完成提交;提交 “D1 开机入门”,closed;提交 “用 D1 进行图片采集和人体识别”,closed。 +* @zjw961204:更新 issue 进度:实现了摄像头采集画面的实时检测,对目前工作的文档记录完成提交;提交“D1 开机入门”,closed;提交“用 D1 进行图片采集和人体识别”,closed。 * @yooyoyo:新增新闻 [RISC-V Linux 内核及周边技术动态:第五期][news]。 -* @walimis:新增 ppt [gpu-virtualization-intro.pdf][213],merged。Review 。 +* @walimis:新增 ppt [gpu-virtualization-intro.pdf][213],merged。Review。 * @iOSDevLog:分享 [《RISC-V Linux 设备树详解》之语法与文件格式][202208061];新增 ppt [dts.pdf][214],merged;完成本次会议记录。 * @falcon:整理 v5.19 内核动态资料 kernel newbies;所有 PR Review。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 @@ -239,18 +239,18 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220730:第二十周 -本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 SDIO 总线。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 SDIO 总线。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: -* @cynault:创建 [【学生提案】RISC-V 架构下的二进制攻防实战][201]。 +* @cynault:创建 [〖学生提案〗RISC-V 架构下的二进制攻防实战][201]。 * @zjw961204:提交进度:摄像头模块完成采图功能。 * @bosswangst:提交 CPU 设计的总体思路。 * @yooyoyo:新增新闻 [RISC-V Linux 内核及周边技术动态:第四期][news],merged。 * @xiakaipan:新增 [RISC-V 虚拟化模式切换简析][202],merged。 -* @YJMSTR:提交 “QEMU 启动方式分析 (1):QEMU 及 RISC-V 上游启动流程简介”,closed。 -* @tangjinyu1994:提交 “RISC-V 架构下内核线程返回函数探究”,closed。 -* @xiakaipan:提交 “x86 架构下基于 KVM 的虚拟化的实现”,closed。 +* @YJMSTR:提交“QEMU 启动方式分析(1):QEMU 及 RISC-V 上游启动流程简介”,closed。 +* @tangjinyu1994:提交“RISC-V 架构下内核线程返回函数探究”,closed。 +* @xiakaipan:提交“x86 架构下基于 KVM 的虚拟化的实现”,closed。 * @iOSDevLog:更新 ​D1-H 哪吒开发板 microbench 结果;邀请倪老师分享 [《从零开始 RISC-V 硬件设计》之原理图简介 + SDIO 总线使用经验][202207301];完成本次会议记录。 * @falcon:新增 [5 秒内在 X86_64 笔记本上运行 RISC-V Ubuntu 22.04 + xfce4 桌面系统][203],merged;所有 PR Review。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 @@ -261,7 +261,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220723:第十九周 -本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 I2C+SPI 总线使用经验。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由倪老师使用思维导图介绍《从零开始 RISC-V 硬件设计》之 I2C+SPI 总线使用经验。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -270,8 +270,8 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 * @GoodBoyCC:新增 [RISC-V Syscall 系列 3:什么是 vDSO?][191],merged。 * @ZhaoSQ-CH:新增 [在泰晓 Linux 实验盘中构建 QEMU 并引导 openEuler for RISC-V][193],merged。 * @bosswangst:新增 [CPU 设计——数电基本知识与基于 Scala 的硬件设计框架 SpinalHDL][194],merged。 -* @xiakaipan:提交 “RISC-V 虚拟化模式切换简析”,closed。 -* @ENJOU1224:Review “CPU 设计——数电基本知识与基于 Scala 的硬件设计框架 SpinalHDL”。 +* @xiakaipan:提交“RISC-V 虚拟化模式切换简析”,closed。 +* @ENJOU1224:Review“CPU 设计——数电基本知识与基于 Scala 的硬件设计框架 SpinalHDL”。 * @iOSDevLog:邀请倪老师分享 [《从零开始 RISC-V 硬件设计》之 I2C+SPI 总线使用经验][202207231];完成本次会议记录。 * @falcon:新增 [RISC-V jump_label 详解,第 5 部分:优化案例][192],merged;所有 PR Review。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 @@ -283,7 +283,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220716:第十八周 -本周开展了两次在线分享,7/15 由实习生 Retro 享了 CTF 赛事介绍与 PWN 环境研讨会,7/16 由开放课程《循序渐进,学习开发一个 RISC-V 上的操作系统》作者汪老师分享了 RISC-V 操作系统/RVOS 视频公开课讲师导读 。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周开展了两次在线分享,7/15 由实习生 Retro 享了 CTF 赛事介绍与 PWN 环境研讨会,7/16 由开放课程《循序渐进,学习开发一个 RISC-V 上的操作系统》作者汪老师分享了 RISC-V 操作系统/RVOS 视频公开课讲师导读。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -296,7 +296,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 * @yooyoyo:新增新闻 [RISC-V Linux 内核及周边技术动态:第三期][news],merged。 * @walimis:Review [memblock 内存分配器原理和代码分析][181]。 * @iOSDevLog:完成本次会议记录;协助处理本周活动进度。 -* @falcon:所有 PR Review;安排 CTF 分享,邀请汪老师分享 “RISC-V 操作系统/RVOS 视频公开课讲师导读”。 +* @falcon:所有 PR Review;安排 CTF 分享,邀请汪老师分享“RISC-V 操作系统/RVOS 视频公开课讲师导读”。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 [181]: https://gitee.com/tinylab/riscv-linux/blob/master/articles/20220710-riscv-memblock.md @@ -304,25 +304,25 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220709:第十七周 -本周由王老师图文并茂的展示了 GPU 虚拟化技术实现,系统地梳理了 GPU 虚拟化技术的工作原理。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由王老师图文并茂的展示了 GPU 虚拟化技术实现,系统地梳理了 GPU 虚拟化技术的工作原理。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: -* @YJMSTR:新增 “用纯 C 语言写一个简单的 RISC-V 模拟器(支持基础整数指令集,乘法指令集与 CSR 指令)”,merged。 -* @bosswangst:新增 “RISC-V 特权指令架构”,merged。 -* @xiakaipan:新增 “用 QEMU/Spike+KVM 运行 Host/Guest Linux”,merged。 +* @YJMSTR:新增“用纯 C 语言写一个简单的 RISC-V 模拟器(支持基础整数指令集,乘法指令集与 CSR 指令)”,merged。 +* @bosswangst:新增“RISC-V 特权指令架构”,merged。 +* @xiakaipan:新增“用 QEMU/Spike+KVM 运行 Host/Guest Linux”,merged。 * @yooyoyo:新增 [ISC-V Linux 内核及周边技术动态:第二期][news],merged。 -* @ZhaoSQ-CH:提交 “为 Linux Lab 构建 QEMU”,closed。 +* @ZhaoSQ-CH:提交“为 Linux Lab 构建 QEMU”,closed。 * @GoodBoyCC:整理了 vDSO 技术。 * @iOSDevLog:完成本次会议记录;提交 dts part1, merged。 -* @walimis:Reivew;开展本次 GPU 虚拟化技术分享;指导实习生开展虚拟化专项,布置&Review考核任务,推荐阅读书籍并安排制定项目计划。 +* @walimis:Reivew;开展本次 GPU 虚拟化技术分享;指导实习生开展虚拟化专项,布置&Review 考核任务,推荐阅读书籍并安排制定项目计划。 * @Bin Meng:Review 实习生的考核任务,指导实习生开展 Qemu 模拟器相关任务。 * @falcon:Review;调整 Issues 中 Proposals 进度;安排 CTF 分享;安排该活动的项目管理人员。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频;为实习人员寄送泰晓 Linux 实验盘和 D1 开发板。 ### 20220702:第十六周 -本周开展了两次在线分享,7/1 由廖老师分享了 RISC-V Linux Time 技术原理与实现,7/2 开展了暑期实习宣讲会。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周开展了两次在线分享,7/1 由廖老师分享了 RISC-V Linux Time 技术原理与实现,7/2 开展了暑期实习宣讲会。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -331,8 +331,8 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 * @呀:新增 [第一期 RISC-V Linux 内核及周边技术动态][news],merged。 * @Fajie:新增 CPU Design 系列文章第一篇:RV32 指令集介绍,merged。 * @iOSDevLog:dts part1 merged。 -* @zhaosq:提交 qemu riscv 相关视频资料整理 v2,closed。 -* @yjmstr:提交 v2 of riscv emulator 译文,待提交合并。 +* @zhaosq:提交 qemu RISC-V 相关视频资料整理 v2,closed。 +* @yjmstr:提交 v2 of RISC-V emulator 译文,待提交合并。 * @kyrie.xi:v2 of swtimer,待再次提交合并。 * @falcon:Review;宣讲会准备与实施;实习生资格审核等。 * @walimis:Reivew;准备并宣讲虚拟化计划;指导实习生开展工作。 @@ -340,7 +340,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220625:第十五周 -本周由小陈老师结合内核源码详细地讲解了 RISC-V 系统调用的工作原理与实现,视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由小陈老师结合内核源码详细地讲解了 RISC-V 系统调用的工作原理与实现,视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -357,7 +357,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220618:第十四周 -本周由小尹老师结合 RISC-V 处理器架构介绍了 Linux 内核调度方面的内容,内容非常精彩,讨论气氛很热烈。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由小尹老师结合 RISC-V 处理器架构介绍了 Linux 内核调度方面的内容,内容非常精彩,讨论气氛很热烈。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -368,16 +368,16 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 * @kyrie.xi:认领 swtimer。 * @xiakaipan:认领 CMA、DMA、Hugetlbfs。 * @falcon:Review 上周与本周提交的多篇 PR;邀请到新的 Review 老师;组织暑期的实习生计划。 -* @walimis:同步 Review 上周与本周提交的多篇 PR;准备 GPU虚拟化 相关的在线技术分享。 +* @walimis:同步 Review 上周与本周提交的多篇 PR;准备 GPU 虚拟化 相关的在线技术分享。 * @tinylab:在多个渠道发布本周技术文章;剪辑并发布本周在线分享视频。 ### 20220611:第十三周 -本周由小贾老师结合 Linux v0.01 到 v5.0 的代码分享了 printk 的演进历史,并基于源码分析了 printk 的核心工作原理。与此同时,吴老师介绍了 RISC-V Linux 活动下一阶段的工作计划和目标。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由小贾老师结合 Linux v0.01 到 v5.0 的代码分享了 printk 的演进历史,并基于源码分析了 printk 的核心工作原理。与此同时,吴老师介绍了 RISC-V Linux 活动下一阶段的工作计划和目标。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: -* @iOSDevLog:提交了 “printk 初探” 一文,Merged,他还主讲了本周直播分享。 +* @iOSDevLog:提交了“printk 初探”一文,Merged,他还主讲了本周直播分享。 * @通天塔:提交了 riscv-irq-analysis 一文,正在修订。 * @wufse:提交了 irq-implementation 和 ipi-implementation 两篇文章,正在修订。 * @envestcc:提交了 syscall 系列 part1,等待 Review。 @@ -407,7 +407,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220521:第十一周 -本周邀请到了来自兰州大学一生一芯项目的大三学生谭源和魏人两位同学来做了 RISC-V 处理器设计方面的技术分享,内容非常精彩。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周邀请到了来自兰州大学一生一芯项目的大三学生谭源和魏人两位同学来做了 RISC-V 处理器设计方面的技术分享,内容非常精彩。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -422,7 +422,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220514:第十周 -本周由 RISC-V Linux StackTrace 文章作者 @Jeff 老师主讲,介绍了 StraceTrace 原理与实现。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由 RISC-V Linux StackTrace 文章作者 @Jeff 老师主讲,介绍了 StraceTrace 原理与实现。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要: @@ -435,7 +435,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220508:第九周 -本周由 Linux Porting 系列文章的译者 @通天塔 结合 RISC-V 分享 Linux 内核启动流程。视频剪辑已经上传,见 “回放发布” 一节链接。 +本周由 Linux Porting 系列文章的译者 @通天塔 结合 RISC-V 分享 Linux 内核启动流程。视频剪辑已经上传,见“回放发布”一节链接。 本周纪要(0423-0508): @@ -446,7 +446,7 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 * @Jack Y.:新增 Context Swtich v1/v2 一文并 Merge;认领 Multi-tasking。 * @hev:提交 microbench mips64 支持。 * @falcon:新增 OpenSBI quickstart 一文;Review 本周所有提交(5 篇文章 + microbench mips64)。 -* @tinylab:在知乎、公众号等渠道发布 OpenSBI quickstart;剪辑本周视频并在知乎、B站、Cctalk 等渠道发布。 +* @tinylab:在知乎、公众号等渠道发布 OpenSBI quickstart;剪辑本周视频并在知乎、B 站、Cctalk 等渠道发布。 ### 20220423:第七周 @@ -463,13 +463,13 @@ Linux 内核观察 —— 即时剖析每一个 Linux 内核大版本的关键 ### 20220416:第六周 -本周由吴老师分享了 RISC-V Linux Tracepoint/Jump Label 的前两部分,即 Jump Label 核心原理介绍与 RISC-V 指令编码实战。演示和讨论视频稍后上传,见本文 “回放发布” 一节链接。 +本周由吴老师分享了 RISC-V Linux Tracepoint/Jump Label 的前两部分,即 Jump Label 核心原理介绍与 RISC-V 指令编码实战。演示和讨论视频稍后上传,见本文“回放发布”一节链接。 -Jump Label 技术是内核中的经典类 “JIT” 思想,可以根据需要动态生成并替换指令,从而提升系统性能,确保 Tracepoint 等技术可以直接编译进内核,按需在线上启停,大大提升了 Linux Tracing 的可用性。 +Jump Label 技术是内核中的经典类“JIT”思想,可以根据需要动态生成并替换指令,从而提升系统性能,确保 Tracepoint 等技术可以直接编译进内核,按需在线上启停,大大提升了 Linux Tracing 的可用性。 吴老师结合真实的性能数据详细讲解了其核心原理,之后介绍了如何参考 RISC-V 指令手册逐个编码 Jump Label 需要用到的两条基础指令,最后演示了通过 objdump、gdb 以及 pwn asm 三种工具实现快速指令编码的技巧。 -期间,有同学介绍了 RISC-V Static PIE (静态编译 + 位置无关运行)的开发进展,讨论了 RISC-V 16/32 指令混排(RVI 基础指令与 RVC 扩展如何同时开启)与 ARM 16/32 指令混排(ARM 与 Thumb 指令集如何混排)等内容。 +期间,有同学介绍了 RISC-V Static PIE(静态编译 + 位置无关运行)的开发进展,讨论了 RISC-V 16/32 指令混排(RVI 基础指令与 RVC 扩展如何同时开启)与 ARM 16/32 指令混排(ARM 与 Thumb 指令集如何混排)等内容。 本周纪要: @@ -483,13 +483,13 @@ Jump Label 技术是内核中的经典类 “JIT” 思想,可以根据需要 * @Jack Y:提交并 Merge Sparsemem 一文,新增认领 Context Switch。 * @iOSDevLog:调试 RVB2601RISC-V 生态开发板,比较 ARM 和 RISC-V;完善 microbench for ARMv7 支持。 * @falcon:提交并 Merge Jump Label 系列第 3 篇核心实现分析,开展本周技术直播分享;完善 Linux Lab 中的 RISC-V 汇编例子;Review Sparsemem 与 UEFI v4 等多笔 PR;订正历史文章。 -* @tinylab:协助剪辑本周视频;并在社区网站、B站、知乎、Cctalk、公众号、视频号、知识星球等多个渠道发布相关文章和视频;发布过程中协助订正多篇历史文章的个别错别字;协助更新 plan。 +* @tinylab:协助剪辑本周视频;并在社区网站、B 站、知乎、Cctalk、公众号、视频号、知识星球等多个渠道发布相关文章和视频;发布过程中协助订正多篇历史文章的个别错别字;协助更新 plan。 ### 20220409:第五周 -本周邀请了 RustSBI 作者洛佳老师做了 “RISC-V 引导程序环境:应用&规范” 的主题分享。演示和讨论视频稍后上传,见本文 “回放发布” 一节链接。 +本周邀请了 RustSBI 作者洛佳老师做了“RISC-V 引导程序环境:应用&规范”的主题分享。演示和讨论视频稍后上传,见本文“回放发布”一节链接。 -SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 Machine Mode 服务的方式,而 RustSBI 是 SBI 标准的 Rust 语言实现,是 [RISC-V SBI](https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.adoc#49-sbi-implementation-ids) 规范标准中收录的实现之一。截止到分享当天,RustSBI 已支持 SBI 标准 v1.0,而另外一个 C 语言实现的 OpenSBI 仅支持 SBI v0.2(SBI v1.0 之前还有一个 v0.3)。 +SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 Machine Mode 服务的方式,而 RustSBI 是 SBI 标准的 Rust 语言实现,是 [RISC-V SBI][202208202] 规范标准中收录的实现之一。截止到分享当天,RustSBI 已支持 SBI 标准 v1.0,而另外一个 C 语言实现的 OpenSBI 仅支持 SBI v0.2(SBI v1.0 之前还有一个 v0.3)。 本周纪要: @@ -508,7 +508,7 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 ### 20220402:第四周 -本周由小文老师分享了原子指令及其用法。演示和讨论视频稍后上传,见本文 “回放发布” 一节链接。 +本周由小文老师分享了原子指令及其用法。演示和讨论视频稍后上传,见本文“回放发布”一节链接。 有多位芯片设计与验证工程师和内核工程师参与了讨论,内容精彩,气氛热烈。 @@ -523,7 +523,7 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 ### 20220326:第三周 -本周分享由小贾老师主讲,主要介绍了 RISC-V ISA 相关的知识并做了简要演示。演示和讨论视频稍后上传,见本文 “回放发布” 一节链接。 +本周分享由小贾老师主讲,主要介绍了 RISC-V ISA 相关的知识并做了简要演示。演示和讨论视频稍后上传,见本文“回放发布”一节链接。 会后大家进行了热烈的讨论,涉及本次活动的实验环境、任务认领、任务列表、UEFI、如何入门等议题,会前吴老师特别介绍了 RISC-V Linux 活动过程中提交成果时的注意事项。 @@ -536,14 +536,14 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 * @pingbo:已经提交第 1 篇 Atomic Locking 相关的技术文章,merged。 * @iOSDevLog:准备和开展本周分享。 * @jeff.zhao:第 2 次提交 StackTrace 一文,merged。 -* @jacob:提交了 UEFI 第1篇文章,reviewed,等待修订后再 merge。 +* @jacob:提交了 UEFI 第 1 篇文章,reviewed,等待修订后再 merge。 * @falcon:完善 microbench 测试框架并提交了 x86_64 平台的测试代码和测试数据,提交了 riscv64 测试代码;基于 Linux v5.17 录制了 RISC-V Linux 内核实验教程。 * @dlan17:测试并提交了 Unmatched 这款 RISC-V 平台的 microbench 数据,另外也新增了一笔 PMU 任务。 * @tinylab:协助剪辑视频并在各个渠道发布相关文章和视频。 ### 20220319:首次分享 -本次分享由彭伟林老师主讲,比照 X86 介绍了 RISC-V Paging & MMU,并展开介绍了内核相关的公共部分。次日已剪辑并发布到三个视频频道,见本文 “回放发布” 一节链接。 +本次分享由彭伟林老师主讲,比照 X86 介绍了 RISC-V Paging & MMU,并展开介绍了内核相关的公共部分。次日已剪辑并发布到三个视频频道,见本文“回放发布”一节链接。 本周纪要: @@ -551,7 +551,7 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 * @pwl999:开展本周分享,后续继续分析 psABI,并协助 @falcon 分析内核运行时代码修改相关内存管理部分,比如 `patch_map/patch_unmap`。 * @pingbo:继续阅读 ISA 部分,准备第 3 场分享并开始分析 Atomic Locking 部分。在星球分享了 RISC-V ISA 相关资料。 * @iOSDevLog:准备第 2 场分享。 -* @郭天佑TanyoKwok:认领 Generic library routines and assembly +* @郭天佑 TanyoKwok:认领 Generic library routines and assembly * @falcon:校订 @通天塔 的译文;发布 Jump Label 源码分析第 1 节,接下来继续撰写另外 2 篇文章,并基于 21 日发布的 Linux v5.17 录制 RISC-V Linux 内核实验教程。 * @hev, @pingbo, @dlan17:协同设计测试用例,测试不同架构基础指令的性能,部分结果已经整理到 Jump Label 分析第 1 节,接下来继续完善测试用例,新增 D1 和 Unmatched 两个 RISC-V 平台的数据。 * @tinylab:协助剪辑视频并在各个渠道发布相关文章和视频。 @@ -575,7 +575,7 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 ### 20220305:项目启动会 -本次会议正式启动了 “RISC-V Linux内核兴趣小组”,讨论了首期 3 个月的目标:完成 Linux RISC-V 架构相关部分的剖析,并现场创建了 RISC-V Linux 协作仓库。 +本次会议正式启动了“RISC-V Linux 内核兴趣小组”,讨论了首期 3 个月的目标:完成 Linux RISC-V 架构相关部分的剖析,并现场创建了 RISC-V Linux 协作仓库。 本周纪要: @@ -588,4 +588,9 @@ SBI 是 RISC-V 定义的一套 Supervisor Binary Interface,规范了 OS 调用 [#I5LIEI]: https://gitee.com/tinylab/riscv-linux/issues/I5LIEI [#I5GYUU]: https://gitee.com/tinylab/riscv-linux/issues/I5GYUU [#I5F0PU]: https://gitee.com/tinylab/riscv-linux/issues/I5F0PU -[#I5EE48]: https://gitee.com/tinylab/riscv-linux/issues/I5EE48 \ No newline at end of file +[#I5EE48]: https://gitee.com/tinylab/riscv-linux/issues/I5EE48 + +[202208202]: https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.adoc#49-sbi-implementation-ids +[202208203]: https://space.bilibili.com/687228362/channel/collectiondetail?sid=273934 +[202208204]: https://www.cctalk.com/m/group/90251209 +[202208205]: https://www.zhihu.com/column/tinylab -- Gitee From d07b6a7b977d77dd89983782ce7fc89a8ae73713 Mon Sep 17 00:00:00 2001 From: Wu Zhangjin Date: Tue, 30 Aug 2022 04:19:55 +0800 Subject: [PATCH 3/4] README: update plan with tinycorrect Signed-off-by: Wu Zhangjin --- plan/README.md | 190 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 128 insertions(+), 62 deletions(-) diff --git a/plan/README.md b/plan/README.md index d8d2a5f..aa9e25b 100644 --- a/plan/README.md +++ b/plan/README.md @@ -10,54 +10,54 @@ ## QuickStart * RISC-V Linux Analyse Howto - * [如何分析 Linux 内核 RISC-V 架构相关代码](https://tinylab.org/riscv-linux-quickstart/) @falcon + * [如何分析 Linux 内核 RISC-V 架构相关代码][027] @falcon * RISC-V Linux Distributions - * [两分钟内极速体验 RISC-V Linux 系统发行版](https://tinylab.org/riscv-linux-distros/) @falcon - * [5 秒内跨架构运行 RISC-V Ubuntu 22.04 + xfce4 桌面系统](https://tinylab.org/run-riscv-ubuntu-over-x86/) @falcon + * [两分钟内极速体验 RISC-V Linux 系统发行版][025] @falcon + * [5 秒内跨架构运行 RISC-V Ubuntu 22.04 + xfce4 桌面系统][038] @falcon * Pull Request Howto - * [直播回放:提交 PR 须知 —— 中英文排版等](https://www.cctalk.com/v/16484083661860) @falcon - * [直播回放:RISC-V Linux技术调研暑期实习启动会暨入职培训](https://www.bilibili.com/video/BV1GV4y1H77p) @falcon - * [直播回放:RISC-V Linux技术调研暑期实习宣讲会](https://www.cctalk.net/v/16574310111172) @falcon + * [直播回放:提交 PR 须知 —— 中英文排版等][044] @falcon + * [直播回放:RISC-V Linux 技术调研暑期实习启动会暨入职培训][040] @falcon + * [直播回放:RISC-V Linux 技术调研暑期实习宣讲会][058] @falcon * Linux Upstream Howto - * [直播回放:开放实习与兼职岗位并启动 Linux Upstream计划](https://www.cctalk.com/v/16551875274459) @falcon + * [直播回放:开放实习与兼职岗位并启动 Linux Upstream 计划][053] @falcon ## Experiments * RISC-V Assembly - * [视频演示:快速上手 RISC-V 汇编语言实验](https://www.cctalk.com/v/16484116944868) @tinylab + * [视频演示:快速上手 RISC-V 汇编语言实验][046] @tinylab * RISC-V OS Basics - * [视频演示:无门槛开展 RVOS 课程实验](https://www.cctalk.com/v/16484116944869) @tinylab + * [视频演示:无门槛开展 RVOS 课程实验][047] @tinylab * RISC-V Linux Kernel Development - * [视频演示:极速开展 RISC-V Linux v5.17 内核实验](https://www.cctalk.com/v/16484095223067) @tinylab + * [视频演示:极速开展 RISC-V Linux v5.17 内核实验][045] @tinylab ## Hardware * RISC-V CPU Design - * [大学生 RISC-V 处理器设计实践](https://www.bilibili.com/video/BV1L54y1o7Fs) + * [大学生 RISC-V 处理器设计实践][041] * 从零开始设计 RISC-V CPU @Fajie.WangNiXi * RISC-V Board Design - * [开源之夏2022 - RISC-V 硬件产品开发实录](https://gitee.com/tinylab/cloud-lab/issues/I56CKU) - * [直播回放:I2C & SPI 用法](https://www.cctalk.net/v/16586599461554) @taotieren - * [直播回放:原理图简介 & SDIO 用法](https://www.cctalk.net/v/16592486764588) @taotieren + * [开源之夏 2022 - RISC-V 硬件产品开发实录][002] + * [直播回放:I2C & SPI 用法][060] @taotieren + * [直播回放:原理图简介 & SDIO 用法][061] @taotieren * RISC-V Board Usage * D1 Board - * [D1-H 开发板入门](https://tinylab.org/nezha-d1-quickstart/) @iosdevlog - * [为哪吒 D1 开发板安装 ArchLinux RISC-V rootfs](https://tinylab.org/nezha-d1-archlinux/) @tieren + * [D1-H 开发板入门][016] @iosdevlog + * [为哪吒 D1 开发板安装 ArchLinux RISC-V rootfs][015] @tieren * Longan Nano - * [在 Linux 下制作 rv-link 调试器](https://tinylab.org/rv-link-debugger/) @tieren + * [在 Linux 下制作 rv-link 调试器][039] @tieren ## Specs * ISA - * [RISC-V ISA 简介](https://tinylab.org/riscv-isa-intro), [幻灯](https://gitee.com/tinylab/riscv-linux/raw/master/ppt/riscv-isa.pptx), [直播回放](https://www.cctalk.com/v/16484079493695) @iOSDevLog - * [RISC-V 特权指令](https://tinylab.org/riscv-privileged/) @pingbo + * [RISC-V ISA 简介][019], [幻灯][004], [直播回放][043] @iOSDevLog + * [RISC-V 特权指令][033] @pingbo * psABI * SBI @@ -68,39 +68,39 @@ * rv8 * Spike * Qemu -* [JuiceVm](https://github.com/juiceRv/JuiceVm) +* [JuiceVm][008] * Other - * [Writing a simple RISC-V emulator in plain C (Base integer, multiplication and csr instructions)](https://fmash16.github.io/content/posts/riscv-emulator-in-c.html) @yjmstr + * [Writing a simple RISC-V emulator in plain C (Base integer, multiplication and csr instructions)][001] @yjmstr ## Basic support * Build Infrastructure * User-facing API -* Generic library routines and assembly @郭天佑TanyoKwok +* Generic library routines and assembly @郭天佑 TanyoKwok * FPU * non FPU - * [non M-extension](https://lore.kernel.org/linux-riscv/20220402101801.GA9428@amd/T/#t) + * [non M-extension][012] * futex ## Bootloader * BBL (Berkeley Boot Loader) * OpenSBI - * [OpenSBI 快速上手](https://tinylab.org/riscv-opensbi-quickstart/) @falcon + * [OpenSBI 快速上手][031] @falcon * RustSBI - * RISC-V 引导程序环境:应用&规范,[幻灯](https://gitee.com/tinylab/riscv-linux/raw/master/ppt/riscv-rustsbi.pdf),[直播回放](https://www.cctalk.com/v/16495466863205) @luojia65 + * RISC-V 引导程序环境:应用&规范,[幻灯][005],[直播回放][049] @luojia65 * U-Boot * UEFI - * [RISC-V UEFI 架构支持详解,第 1 部分 - OpenSBI/U-Boot/UEFI 简介](https://tinylab.org/riscv-uefi-part1/) @Jacob + * [RISC-V UEFI 架构支持详解,第 1 部分 - OpenSBI/U-Boot/UEFI 简介][037] @Jacob ## Boot, Init & Shutdown * Booting - * RISC-V Linux 内核启动流程分析,[直播回放](https://www.cctalk.com/v/16520639214118) @通天塔 - * [RISC-V Linux 启动流程分析](https://tinylab.org/riscv-linux-startup/) @通天塔 + * RISC-V Linux 内核启动流程分析,[直播回放][051] @通天塔 + * [RISC-V Linux 启动流程分析][029] @通天塔 -* DTS @iOSDevLog - * [直播回放:RISC-V Linux 设备树语法与格式详解](https://www.cctalk.net/v/16598634312907) @iOSDevLog +* DTS @iOSDevLog + * [直播回放:RISC-V Linux 设备树语法与格式详解][062] @iOSDevLog * UEFI support @jiangbo.jacob * Compressed images @@ -110,12 +110,12 @@ * setup_arch @marycarry * poweroff * printk - * 内核调试基础设施之 printk 初探,[直播回放](https://www.cctalk.com/v/16551876033662) @iOSDevLog + * 内核调试基础设施之 printk 初探,[直播回放][054] @iOSDevLog ## Memory Management * Paging and MMU - * [RISC-V MMU 概述](https://tinylab.org/riscv-mmu/), [直播回放](https://www.cctalk.com/v/16477623213273) @pwl999 + * [RISC-V MMU 概述][030], [直播回放][042] @pwl999 * memblock @tjytimi * setup_vm @davidlamb @@ -129,9 +129,9 @@ * page_fault @tjytimi * Barriers @cursor_risc-v * Sparsemem @Jack Y. -* CMA -* DMA -* Hugetlbfs +* CMA +* DMA +* Hugetlbfs * memtest * NUMA * nommu @@ -148,7 +148,7 @@ ## Timers * Timers - * [RISC-V timer 在 Linux 中的实现](https://tinylab.org/riscv-timer/), [直播回放](https://www.cctalk.net/v/16566997322462) @yuliao + * [RISC-V timer 在 Linux 中的实现][036], [直播回放][057] @yuliao * swtimer @kyrie.xi * udelay @@ -156,13 +156,14 @@ ## Synchronization * Atomics - * [RISC-V 原子指令与用法介绍](https://tinylab.org/riscv-atomics/), [直播回放](https://www.cctalk.com/v/16489499392383) @pingbo + * [RISC-V 原子指令与用法介绍][017], [直播回放][048] @pingbo * [RISC-V vs Aarch 64 atomic PK] @aabb5566 -* [Generic Ticket Spinlock](https://lore.kernel.org/linux-riscv/11364105.8ZH9dyz9j6@diego/T/#t) @aabb5566 +* [Generic Ticket Spinlock][010] @aabb5566 * [Mutex] https://lwn.net/Articles/164802/ @aabb5566 -* [Restartable Sequence (RSEQ)](https://lore.kernel.org/linux-riscv/20220308083253.12285-1-vincent.chen@sifive.com/T/#t) -* [Qspinlock](https://lore.kernel.org/linux-riscv/CAJF2gTT9YHgTzPaBN4ekYS7UcBOj_9k9xEcrsoXgW6PCZc8x3Q@mail.gmail.com/T/#t) +* [Restartable Sequence (RSEQ)][011] +* [Qspinlock][014] * [A Memory Model for RISC-V] (https://riscv.org/wp-content/uploads/2018/05/14.25-15.00-RISCVMemoryModelTutorial.pdf) @aabb5566 + ## Multi-core * SMP support @user_11186799 @@ -174,20 +175,20 @@ * Multi-tasking @Jack Y. * Context switch @Jack Y. - * RISC-V Linux 内核调度详解,[直播回放](https://www.cctalk.com/v/16558003571816) @Jack Y. - * [RISC-V Linux 上下文切换分析](https://tinylab.org/riscv-context-switch/) @Jack Y. - * [RISC-V Linux __schedule() 分析](https://tinylab.org/riscv-linux-schedule/) @Jack Y. + * RISC-V Linux 内核调度详解,[直播回放][055] @Jack Y. + * [RISC-V Linux 上下文切换分析][018] @Jack Y. + * [RISC-V Linux __schedule() 分析][028] @Jack Y. -* Task implementation @tjytimi - * [RISC-V Linux 进程创建与执行流程代码分析](https://tinylab.org/riscv-task-implementation/) @tjytimi - * [RISC-V 架构下内核线程返回函数探究](https://tinylab.org/riscv-kthread-ret/) @tjytimi +* Task implementation @tjytimi + * [RISC-V Linux 进程创建与执行流程代码分析][035] @tjytimi + * [RISC-V 架构下内核线程返回函数探究][024] @tjytimi * EAS ## User-space Support * Syscall - * RISC-V Linux 系统调用详解,[直播回放](https://www.cctalk.com/v/16562391483157) @envestcc + * RISC-V Linux 系统调用详解,[直播回放][056] @envestcc * ELF support * module implementation @@ -207,14 +208,14 @@ ## Tracing * Stacktrace - * [RISC-V Linux Stacktrace 详解](https://tinylab.org/riscv-stacktrace/), [直播回放](https://www.cctalk.com/v/16525972863665) @zhao305149619 + * [RISC-V Linux Stacktrace 详解][034], [直播回放][052] @zhao305149619 * Tracepoint * Ftrace @sugarfillet -* [Fprobe](https://www.kernel.org/doc/html/latest/trace/fprobe.html) +* [Fprobe][063] * Kprobes @juliwang * Uprobes -* [User Events](https://www.kernel.org/doc/html/latest/trace/user_events.html) +* [User Events][064] * eBPF @jams_liu ## Debugging @@ -230,7 +231,7 @@ * KASAN * KMSAN * KFENCE - * [Linux Kfence 详解](https://tinylab.org/riscv-linux-kfence/) @pwl999 + * [Linux Kfence 详解][026] @pwl999 * Kmemleak ## Profiling @@ -243,10 +244,10 @@ * vdso * Jump Label - * [RISC-V Linux jump_label 详解,第 1 部分:技术背景](https://tinylab.org/riscv-jump-label-part1/) @falcon - * [RISC-V Linux jump_label 详解,第 2 部分:指令编码](https://tinylab.org/riscv-jump-label-part2/), [直播回放](https://www.cctalk.com/v/16501801841966) @falcon - * [RISC-V jump_label 详解,第 3 部分:核心实现](https://tinylab.org/riscv-jump-label-part3/) @falcon - * [RISC-V jump_label 详解,第 4 部分:运行时代码改写](https://tinylab.org/riscv-jump-label-part4/) @falcon + * [RISC-V Linux jump_label 详解,第 1 部分:技术背景][020] @falcon + * [RISC-V Linux jump_label 详解,第 2 部分:指令编码][021], [直播回放][050] @falcon + * [RISC-V jump_label 详解,第 3 部分:核心实现][022] @falcon + * [RISC-V jump_label 详解,第 4 部分:运行时代码改写][023] @falcon * Static call @@ -258,8 +259,8 @@ ## Virtulization -* [KVM](https://lore.kernel.org/linux-riscv/CAAhSdy3JwLyOoNOubAS2VusNdj6O-CJJNSs+mM8+NvKErtAdmw@mail.gmail.com/T/#u) @walimis - * [直播回放:GPU Virtulization](https://www.cctalk.net/v/16574325601701) @walimis +* [KVM][013] @walimis + * [直播回放:GPU Virtulization][059] @walimis ## Fast boot @@ -272,10 +273,10 @@ ## Benchmarking * Microbench - * [RISC-V 处理器指令级性能评测尝试](https://tinylab.org/riscv-perf-benchmark/) - * [开源之夏2022 - 处理器指令级 Microbench 开发实录](https://gitee.com/tinylab/cloud-lab/issues/I57CM0) -* [martinus/nanobench](https://github.com/martinus/nanobench) -* [andreas-abel/nanoBench](https://github.com/andreas-abel/nanoBench) + * [RISC-V 处理器指令级性能评测尝试][032] + * [开源之夏 2022 - 处理器指令级 Microbench 开发实录][003] +* [martinus/nanobench][009] +* [andreas-abel/nanoBench][007] ## Testing @@ -283,4 +284,69 @@ ## Latest development -* [News](https://gitee.com/tinylab/riscv-linux/tree/master/news),已新建独立的 News 发布页 \ No newline at end of file +* [News][006],已新建独立的 News 发布页 + +[001]: https://fmash16.github.io/content/posts/riscv-emulator-in-c.html +[002]: https://gitee.com/tinylab/cloud-lab/issues/I56CKU +[003]: https://gitee.com/tinylab/cloud-lab/issues/I57CM0 +[004]: https://gitee.com/tinylab/riscv-linux/raw/master/ppt/riscv-isa.pptx +[005]: https://gitee.com/tinylab/riscv-linux/raw/master/ppt/riscv-rustsbi.pdf +[006]: https://gitee.com/tinylab/riscv-linux/tree/master/news +[007]: https://github.com/andreas-abel/nanoBench +[008]: https://github.com/juiceRv/JuiceVm +[009]: https://github.com/martinus/nanobench +[010]: https://lore.kernel.org/linux-riscv/11364105.8ZH9dyz9j6@diego/T/#t +[011]: https://lore.kernel.org/linux-riscv/20220308083253.12285-1-vincent.chen@sifive.com/T/#t +[012]: https://lore.kernel.org/linux-riscv/20220402101801.GA9428@amd/T/#t +[013]: https://lore.kernel.org/linux-riscv/CAAhSdy3JwLyOoNOubAS2VusNdj6O-CJJNSs+mM8+NvKErtAdmw@mail.gmail.com/T/#u +[014]: https://lore.kernel.org/linux-riscv/CAJF2gTT9YHgTzPaBN4ekYS7UcBOj_9k9xEcrsoXgW6PCZc8x3Q@mail.gmail.com/T/#t +[015]: https://tinylab.org/nezha-d1-archlinux/ +[016]: https://tinylab.org/nezha-d1-quickstart/ +[017]: https://tinylab.org/riscv-atomics/ +[018]: https://tinylab.org/riscv-context-switch/ +[019]: https://tinylab.org/riscv-isa-intro +[020]: https://tinylab.org/riscv-jump-label-part1/ +[021]: https://tinylab.org/riscv-jump-label-part2/ +[022]: https://tinylab.org/riscv-jump-label-part3/ +[023]: https://tinylab.org/riscv-jump-label-part4/ +[024]: https://tinylab.org/riscv-kthread-ret/ +[025]: https://tinylab.org/riscv-linux-distros/ +[026]: https://tinylab.org/riscv-linux-kfence/ +[027]: https://tinylab.org/riscv-linux-quickstart/ +[028]: https://tinylab.org/riscv-linux-schedule/ +[029]: https://tinylab.org/riscv-linux-startup/ +[030]: https://tinylab.org/riscv-mmu/ +[031]: https://tinylab.org/riscv-opensbi-quickstart/ +[032]: https://tinylab.org/riscv-perf-benchmark/ +[033]: https://tinylab.org/riscv-privileged/ +[034]: https://tinylab.org/riscv-stacktrace/ +[035]: https://tinylab.org/riscv-task-implementation/ +[036]: https://tinylab.org/riscv-timer/ +[037]: https://tinylab.org/riscv-uefi-part1/ +[038]: https://tinylab.org/run-riscv-ubuntu-over-x86/ +[039]: https://tinylab.org/rv-link-debugger/ +[040]: https://www.bilibili.com/video/BV1GV4y1H77p +[041]: https://www.bilibili.com/video/BV1L54y1o7Fs +[042]: https://www.cctalk.com/v/16477623213273 +[043]: https://www.cctalk.com/v/16484079493695 +[044]: https://www.cctalk.com/v/16484083661860 +[045]: https://www.cctalk.com/v/16484095223067 +[046]: https://www.cctalk.com/v/16484116944868 +[047]: https://www.cctalk.com/v/16484116944869 +[048]: https://www.cctalk.com/v/16489499392383 +[049]: https://www.cctalk.com/v/16495466863205 +[050]: https://www.cctalk.com/v/16501801841966 +[051]: https://www.cctalk.com/v/16520639214118 +[052]: https://www.cctalk.com/v/16525972863665 +[053]: https://www.cctalk.com/v/16551875274459 +[054]: https://www.cctalk.com/v/16551876033662 +[055]: https://www.cctalk.com/v/16558003571816 +[056]: https://www.cctalk.com/v/16562391483157 +[057]: https://www.cctalk.net/v/16566997322462 +[058]: https://www.cctalk.net/v/16574310111172 +[059]: https://www.cctalk.net/v/16574325601701 +[060]: https://www.cctalk.net/v/16586599461554 +[061]: https://www.cctalk.net/v/16592486764588 +[062]: https://www.cctalk.net/v/16598634312907 +[063]: https://www.kernel.org/doc/html/latest/trace/fprobe.html +[064]: https://www.kernel.org/doc/html/latest/trace/user_events.html -- Gitee From e21d326d298e70d671569ffea3c3bc0d87831ae5 Mon Sep 17 00:00:00 2001 From: Wu Zhangjin Date: Tue, 30 Aug 2022 04:35:42 +0800 Subject: [PATCH 4/4] README: clean up articles/README with tinycorrect Signed-off-by: Wu Zhangjin --- articles/README.md | 47 +++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/articles/README.md b/articles/README.md index a493c24..e231277 100644 --- a/articles/README.md +++ b/articles/README.md @@ -5,9 +5,9 @@ ## 中文排版 -为了更好展示输出成果,请大家在提交成果之前查阅一下 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.zh-Hans.md),可参考如下案例分享: +为了更好展示输出成果,请大家在提交成果之前查阅一下 [中文文案排版指北][003],可参考如下案例分享: -* [直播回放:提交 PR 须知 —— 中英文排版等](https://www.cctalk.com/v/16484083661860) +* [直播回放:提交 PR 须知 —— 中英文排版等][005] ## 校订须知 @@ -17,7 +17,7 @@ * 提交 Pull Request 前后 * 请务必先遵守中文排版中的约定,这块不复杂,仔细一些都可以自己校订好。 - * 提交前请 `git checkout` 出来一个新的分支,然后用 [autocorrect 工具](https://gitee.com/tinylab/riscv-linux/issues/I5E5Z9) 辅助处理一下。 + * 提交前请 `git checkout` 出来一个新的分支,然后用 [autocorrect 工具][001] 辅助处理一下。 * 在排版之外,还可以更通顺,避免堆砌;让结构清晰有条理,避免混乱无章;补充权威资料和规范;清晰说明源码版本、路径甚至代码。 * 作者提交 Pull Request 后,可以在协作群通知其他同学,可以是任何你希望邀请 Review 的同学。 @@ -31,12 +31,12 @@ * 基于校订信息进行修改 * 首次提交 Pull Request 后,不可避免的,可能会收到很多 Review 意见,请保持耐心。 - * 为避免漏掉 Review 意见而造成反复,建议逐个 “评论” 采取如下措施: + * 为避免漏掉 Review 意见而造成反复,建议逐个“评论”采取如下措施: * 对于有疑问的地方,建议联系 Reviewer 沟通确认。 - * 对于认可的意见,可以直接参照 Review 意见修改,**改完后勾选 “已解决”**; + * 对于认可的意见,可以直接参照 Review 意见修改,**改完后勾选“已解决”**; * 在准备 2 次 PR 之前,检查是否还有未标记过的 Review 意见。 -另外,已经有大量的 [校订案例](https://gitee.com/tinylab/riscv-linux/pulls?project_id=tinylab%2Friscv-linux&sort=closed_at+desc&status=closed),作者查阅可以避免犯同样的错误,校订人员查阅可以看看校订思路。**本文文末也汇总了部分注意事项**。 +另外,已经有大量的 [校订案例][002],作者查阅可以避免犯同样的错误,校订人员查阅可以看看校订思路。**本文文末也汇总了部分注意事项**。 ## 文件名 @@ -93,7 +93,6 @@ > Environment: [Linux Lab](https://tinylab.org/linux-lab) ``` - 翻译的文章,统一文件头如下: ``` @@ -117,12 +116,12 @@ - Pull Request - 如果同时撰写多篇新文章,需要为每篇文章创建一个新的分支,比如 `article0-v0`, `article1-v0` - 准备提交时,请 `git checkout` 出一个新的分支,比如 `article0-v0-pr`, `article-v1-pr` - - 记得用 `git rebase` 把本地修改记录精简一些,合并多笔 commit 为一笔并精简里头的 message log,可参考 [How to Combine Multiple Git Commits into One](https://www.w3docs.com/snippets/git/how-to-combine-multiple-commits-into-one-with-3-steps.html) + - 记得用 `git rebase` 把本地修改记录精简一些,合并多笔 commit 为一笔并精简里头的 message log,可参考 [How to Combine Multiple Git Commits into One][006] ``` $ git checkout -b article0-v1-pr // 每次 rebase 前务必创建一个新的分支,确保本地至少有一个备份分支,因为 rebase 可能会出错 $ git fetch --all // 拉取新的社区仓库 $ git rebase --onto origin/master --root // rebase 当前分支到社区最新的 master 分支,可消除一堆 merge 记录 - $ git rebase -i 1st_commit_id^ // 合并记录,把第 2 行开始的所有 ^pick 替换为 squash + $ git rebase -i 1st_commit_id^ // 合并记录,把第 2 行开始的所有 ^pick 替换为 squash ``` - 每个 commit 的 subject title 必须要有明确的意义,用一句话而不是一个单词描述 - commit log 必须干净整洁,需简要准确地描述 commit,仅在 commit log 末尾保留一行 `Signed-off-by` @@ -141,12 +140,11 @@ article1-v0 | article1-v0-pr | article1-v1 | article1-v1-pr ... article2-v0 | article2-v0-pr | article2-v1 | article2-v1-pr ... - - 章节标题 - 章节标题内不要带序号 - 成果发布渠道多样,有的渲染器会自动加序号,如果提前加了,输出内容会重复显示序号,甚至显示的序号不一样,会引起混乱 - 不要出现没有标题的段落 - - 一般结构,要有头有尾:“前言”/“背景”、“总结”/“小结”、“参考资料”/“推荐资料” 等 + - 一般结构,要有头有尾:“前言”/“背景”、“总结”/“小结”、“参考资料”/“推荐资料”等 - 大标题为一级标题,以一个井号开头,例如 `# RISC-V Qemu 用法简介` - 二级标题以两个井号开头,例如 `## 下载 Qemu` - 为了方便区分标题和正文,标题内如果涉及函数等“代码”,请不要使用行内代码标识括起来 @@ -156,16 +154,16 @@ - 段落不要过长,要避免过度堆积引起难以审阅和阅读 - 要及时另取一个新的段落,段落间需要加一个空行(相当于两个换行),而不只是加一个换行,有留白更舒适 - 注意承前启后,增加必要的衔接词 - - 注意避免冗余用词,比如说一句话里头 4、5 个 “的” + - 注意避免冗余用词,比如说一句话里头 4、5 个“的” - 需要连贯通顺,建议通读几遍,自己都读起来别扭,就不能提交 - 巧用 List 但是不要滥用 List - List 前置 `-`,`*` 等无序符号,或者 `1`, `2`, `3` 等有序符号 - - 有序 List 仅支持 `1.`, `2.`, `3.`,不支持,`1、`, `2、`, `3、`,请勿混淆 + - 有序 List 仅支持 `1.`, `2.`, `3.`,不支持,`1、`, `2、`, `3、`,请勿混淆 - 章节数 - 每篇文章的小节数不要过少,也不要过多 - 小节过少的例子:“前言”、“正文标题”,“小结”,“参考资料” - - 这种情况必须把 “正文标题” 拆解成多个步骤,每个步骤作为二级标题(两个井号开头),避免正文层次过深 + - 这种情况必须把“正文标题”拆解成多个步骤,每个步骤作为二级标题(两个井号开头),避免正文层次过深 - 小节过多的情况 - 一种是把太多细节放到二级标题里头,这种情况是下沉细节,到小节内陈述即可 - 还有一种是把多种内容杂糅在一起,这种情况建议拆分成不同的文章 @@ -184,7 +182,7 @@ - 代码与 List 混排 - 如果是行内的短代码,可以混排 - 如果是多行代码,不建议与 List 混排,会导致代码缩进很难处理,阅读也很难看 - - 如果涉及多行代码,建议把 List 改回小节标题的形式,或者如果层次已经很深,可以直接用文字、代码按顺序 “平铺直叙” 的方式 + - 如果涉及多行代码,建议把 List 改回小节标题的形式,或者如果层次已经很深,可以直接用文字、代码按顺序“平铺直叙”的方式 - 关于缩进 - Markdown 中的 List 缩进,一般习惯是 2-4 个空格,不要用一个 Tab(编辑器默认为 8 个空格,太宽了) @@ -198,16 +196,23 @@ - 链接说明 - 建议把所有链接汇总在文末,以 `[1]: url1` 这样的方式一行一个,递增数字序号,相当于增加了一个简短的别名 - - 在文章内部和文末的 “参考资料” 中可以直接这样引用:`[Title1][1]` - - 切莫这样用 ~~`[Title1](1)`~~,后面这种用法是错误的,小括号内必须是完整的 url - - 链接前后也建议加空格,方便读者快速识别链接,例如,这里是 [泰晓科技](https://tinylab.org) 的网站地址。 + - 在文章内部和文末的“参考资料”中可以直接这样引用:`[Title1][1]` + - 切莫这样用 ~~ `[Title1](1)` ~~,后面这种用法是错误的,小括号内必须是完整的 URL + - 链接前后也建议加空格,方便读者快速识别链接,例如,这里是 [泰晓科技][004] 的网站地址。 - Gitee Review 技巧 - 同时 Review 多行 - - 选中左侧的 “+” 号,往下拖,可以选中多行进行 Review + - 选中左侧的“+”号,往下拖,可以选中多行进行 Review - 以 diff 格式提交 Review 建议 - - 点击 “+” 号后,选择评论框顶栏右侧的 `Insert a suggestion` 按钮,会自动插入 Suggestion。修改后点击 “评论” 会直接以 `diff` 的格式渲染出来 + - 点击“+”号后,选择评论框顶栏右侧的 `Insert a suggestion` 按钮,会自动插入 Suggestion。修改后点击“评论”会直接以 `diff` 的格式渲染出来 - 其他杂项 - 中英文排版中用到的空格全部是半角空格,不是全角空格,不然会太宽,显得突兀。 - - 中英文混排的时候,如果主体是中文,那么用中文符号,比如逗号(,)、句号(。)、冒号(:)这些。 \ No newline at end of file + - 中英文混排的时候,如果主体是中文,那么用中文符号,比如逗号(,)、句号(。)、冒号(:)这些。 + +[001]: https://gitee.com/tinylab/riscv-linux/issues/I5E5Z9 +[002]: https://gitee.com/tinylab/riscv-linux/pulls?project_id=tinylab%2Friscv-linux&sort=closed_at+desc&status=closed +[003]: https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.zh-Hans.md +[004]: https://tinylab.org +[005]: https://www.cctalk.com/v/16484083661860 +[006]: https://www.w3docs.com/snippets/git/how-to-combine-multiple-commits-into-one-with-3-steps.html -- Gitee