[PATCH v3] kernel-docs: Add new section for Rust learning materials

Carlos Bilbao posted 1 patch 2 months, 1 week ago
Documentation/process/kernel-docs.rst | 163 ++++++++++++++++++++++++--
Documentation/rust/index.rst          |   3 +
2 files changed, 155 insertions(+), 11 deletions(-)
[PATCH v3] kernel-docs: Add new section for Rust learning materials
Posted by Carlos Bilbao 2 months, 1 week ago
Include a new section in the Index of Further Kernel Documentation with
resources to learn Rust. Reference it in the Rust index. The resources
are a product of a survey among assistants to the conference Kangrejos'24.

Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
Reviewed-by: Dirk Behme <dirk.behme@de.bosch.com>
---

Changes since v2:
  - Fix wrong title and added date of LPC talks.
  - Add more resources proposed by Miguel Ojeda.
  - Add review tag of Dirk Behme.

Changes since v1:
  - Added two more Rust blogs proposed by Dirk Behme.

---
 Documentation/process/kernel-docs.rst | 163 ++++++++++++++++++++++++--
 Documentation/rust/index.rst          |   3 +
 2 files changed, 155 insertions(+), 11 deletions(-)

diff --git a/Documentation/process/kernel-docs.rst b/Documentation/process/kernel-docs.rst
index 55552ec4b043..3b5b5983fea8 100644
--- a/Documentation/process/kernel-docs.rst
+++ b/Documentation/process/kernel-docs.rst
@@ -72,17 +72,6 @@ On-line docs
         programming. Lots of examples. Currently the new version is being
         actively maintained at https://github.com/sysprog21/lkmpg.
 
-    * Title: **Rust for Linux**
-
-      :Author: various
-      :URL: https://rust-for-linux.com/
-      :Date: rolling version
-      :Keywords: glossary, terms, linux-kernel.
-      :Description: From the website: "Rust for Linux is the project adding
-        support for the Rust language to the Linux kernel. This website is
-        intended as a hub of links, documentation and resources related to
-        the project".
-
 Published books
 ---------------
 
@@ -220,6 +209,158 @@ Miscellaneous
         other original research and content related to Linux and software
         development.
 
+Rust
+----
+
+    * Title: **Rust for Linux**
+
+      :Author: various
+      :URL: https://rust-for-linux.com/
+      :Date: rolling version
+      :Keywords: glossary, terms, linux-kernel, rust.
+      :Description: From the website: "Rust for Linux is the project adding
+        support for the Rust language to the Linux kernel. This website is
+        intended as a hub of links, documentation and resources related to
+        the project".
+
+    * Title: **Learn Rust the Dangerous Way**
+
+      :Author: Cliff L. Biffle
+      :URL: https://cliffle.com/p/dangerust/
+      :Date: Accessed Sep 11 2024
+      :Keywords: rust, blog.
+      :Description: From the website: "LRtDW is a series of articles
+        putting Rust features in context for low-level C programmers who
+        maybe don’t have a formal CS background — the sort of people who
+        work on firmware, game engines, OS kernels, and the like.
+        Basically, people like me.". It illustrates line-by-line
+        conversions from C to Rust.
+
+    * Title: **The Rust Book**
+
+      :Author: Steve Klabnik and Carol Nichols, with contributions from the
+        Rust community
+      :URL: https://doc.rust-lang.org/book/
+      :Date: Accessed Sep 11 2024
+      :Keywords: rust, book.
+      :Description: From the website: "This book fully embraces the
+        potential of Rust to empower its users. It’s a friendly and
+        approachable text intended to help you level up not just your
+        knowledge of Rust, but also your reach and confidence as a
+        programmer in general. So dive in, get ready to learn—and welcome
+        to the Rust community!".
+
+    * Title: **Rust for the Polyglot Programmer**
+
+      :Author: Ian Jackson
+      :URL: https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/index.html
+      :Date: December 2022
+      :Keywords: rust, blog, tooling.
+      :Description: From the website: "There are many guides and
+        introductions to Rust. This one is something different: it is
+        intended for the experienced programmer who already knows many
+        other programming languages. I try to be comprehensive enough to be
+        a starting point for any area of Rust, but to avoid going into too
+        much detail except where things are not as you might expect. Also
+        this guide is not entirely free of opinion, including
+        recommendations of libraries (crates), tooling, etc.".
+
+    * Title: **Fasterthanli.me**
+
+      :Author: Amos Wenger
+      :URL: https://fasterthanli.me/
+      :Date: Accessed Sep 11 2024
+      :Keywords: rust, blog, news.
+      :Description: From the website: "I make articles and videos about how
+        computers work. My content is long-form, didactic and exploratory
+        — and often an excuse to teach Rust!".
+
+    * Title: **Comprehensive Rust**
+
+      :Author: Android team at Google
+      :URL: https://google.github.io/comprehensive-rust/
+      :Date: Accessed Sep 13 2024
+      :Keywords: rust, blog.
+      :Description: From the website: "The course covers the full spectrum
+        of Rust, from basic syntax to advanced topics like generics and
+        error handling".
+
+    * Title: **The Embedded Rust Book**
+
+      :Author: Multiple contributors, mostly Jorge Aparicio
+      :URL: https://docs.rust-embedded.org/book/
+      :Date: Accessed Sep 13 2024
+      :Keywords: rust, blog.
+      :Description: From the website: "An introductory book about using
+        the Rust Programming Language on "Bare Metal" embedded systems,
+        such as Microcontrollers".
+
+   * Title: **Experiment: Improving the Rust Book**
+
+      :Author: Cognitive Engineering Lab at Brown University
+      :URL: https://rust-book.cs.brown.edu/
+      :Date: Accessed Sep 22 2024
+      :Keywords: rust, blog.
+      :Description: From the website: "The goal of this experiment is to
+        evaluate and improve the content of the Rust Book to help people
+        learn Rust more effectively.".
+
+   * Title: **New Rustacean** (podcast)
+
+      :Author: Chris Krycho
+      :URL: https://newrustacean.com/
+      :Date: Accessed Sep 22 2024
+      :Keywords: rust, podcast.
+      :Description: From the website: "This is a podcast about learning
+        the programming language Rust—from scratch! Apart from this spiffy
+        landing page, all the site content is built with Rust's own
+        documentation tools.".
+
+   * Title: **Opsem-team** (repository)
+
+      :Author: Operational semantics team
+      :URL: https://github.com/rust-lang/opsem-team/tree/main
+      :Date: Accessed Sep 22 2024
+      :Keywords: rust, repository.
+      :Description: From the README: "The opsem team is the successor of
+        the unsafe-code-guidelines working group and responsible for
+        answering many of the difficult questions about the semantics of
+        unsafe Rust".
+
+    * Title: **You Can't Spell Trust Without Rust**
+
+      :Author: Alexis Beingessner
+      :URL: https://repository.library.carleton.ca/downloads/1j92g820w?locale=en
+      :Date: 2015
+      :Keywords: rust, master, thesis.
+      :Description: This thesis focuses on Rust's ownership system, which
+        ensures memory safety by controlling data manipulation and
+        lifetime, while also highlighting its limitations and comparing it
+        to similar systems in Cyclone and C++.
+
+    * Name: **Linux Plumbers (LPC) 2024 Rust presentations**
+
+      :Title: Rust microconference
+      :URL: https://lpc.events/event/18/sessions/186/#20240918
+      :Title: Rust for Linux
+      :URL: https://lpc.events/event/18/contributions/1912/
+      :Title: Journey of a C kernel engineer starting a Rust driver project
+      :URL: https://lpc.events/event/18/contributions/1911/
+      :Title: Crafting a Linux kernel scheduler that runs in user-space
+        using Rust
+      :URL: https://lpc.events/event/18/contributions/1723/
+      :Title: openHCL: A Linux and Rust based paravisor
+      :URL: https://lpc.events/event/18/contributions/1956/
+      :Keywords: rust, lpc, presentations.
+      :Description: A number of LPC talks related to Rust.
+
+    * Name: **The Rustacean Station Podcast**
+
+      :URL: https://rustacean-station.org/
+      :Keywords: rust, podcasts.
+      :Description: A community project for creating podcast content for
+        the Rust programming language.
+
 -------
 
 This document was originally based on:
diff --git a/Documentation/rust/index.rst b/Documentation/rust/index.rst
index 46d35bd395cf..01f09216c229 100644
--- a/Documentation/rust/index.rst
+++ b/Documentation/rust/index.rst
@@ -42,6 +42,9 @@ configurations.
     arch-support
     testing
 
+You can also find learning materials for Rust in its section in
+:doc:`../process/kernel-docs`.
+
 .. only::  subproject and html
 
    Indices
-- 
2.43.5

Re: [PATCH v3] kernel-docs: Add new section for Rust learning materials
Posted by Jonathan Corbet 1 month, 3 weeks ago
Carlos Bilbao <carlos.bilbao.osdev@gmail.com> writes:

> Include a new section in the Index of Further Kernel Documentation with
> resources to learn Rust. Reference it in the Rust index. The resources
> are a product of a survey among assistants to the conference Kangrejos'24.
>
> Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
> Reviewed-by: Dirk Behme <dirk.behme@de.bosch.com>
> ---
>
> Changes since v2:
>   - Fix wrong title and added date of LPC talks.
>   - Add more resources proposed by Miguel Ojeda.
>   - Add review tag of Dirk Behme.
>
> Changes since v1:
>   - Added two more Rust blogs proposed by Dirk Behme.
>
> ---
>  Documentation/process/kernel-docs.rst | 163 ++++++++++++++++++++++++--
>  Documentation/rust/index.rst          |   3 +
>  2 files changed, 155 insertions(+), 11 deletions(-)

Applied, thanks.

jon
Re: [PATCH v3] kernel-docs: Add new section for Rust learning materials
Posted by Miguel Ojeda 1 month, 4 weeks ago
On Sun, Sep 22, 2024 at 6:04 PM Carlos Bilbao
<carlos.bilbao.osdev@gmail.com> wrote:
>
> +   * Title: **Experiment: Improving the Rust Book**
> +
> +      :Author: Cognitive Engineering Lab at Brown University
> +      :URL: https://rust-book.cs.brown.edu/
> +      :Date: Accessed Sep 22 2024
> +      :Keywords: rust, blog.
> +      :Description: From the website: "The goal of this experiment is to
> +        evaluate and improve the content of the Rust Book to help people
> +        learn Rust more effectively.".

Perhaps this could go closer to the Rust book entry since it is a variant of it.

Or are these sorted in a particular way?

> +   * Title: **Opsem-team** (repository)
> +
> +      :Author: Operational semantics team
> +      :URL: https://github.com/rust-lang/opsem-team/tree/main

Nit: I think you can remove the `/tree/main` part of the URL to simplify.

> +      :Date: Accessed Sep 22 2024

Since these are repositories, and elsewhere you say "rolling version",
should that one have a concrete date, or should some of these ones
have a rolling date too?

One more that I remembered and that we could have here if we have
other videos/podcasts/... is Crust of Rust (and probably the book from
the same author).

In any case, I think it looks good, thanks!

Acked-by: Miguel Ojeda <ojeda@kernel.org>

Cheers,
Miguel