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

Carlos Bilbao posted 1 patch 2 months, 2 weeks ago
There is a newer version of this series
Documentation/process/kernel-docs.rst | 111 +++++++++++++++++++++++---
Documentation/rust/index.rst          |   3 +
2 files changed, 103 insertions(+), 11 deletions(-)
[PATCH] kernel-docs: Add new section for Rust learning materials
Posted by Carlos Bilbao 2 months, 2 weeks ago
Include a new section in the Index of Further Kernel Documentation with
resources to learn Rust. Reference it in the Rust index.

Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
---
 Documentation/process/kernel-docs.rst | 111 +++++++++++++++++++++++---
 Documentation/rust/index.rst          |   3 +
 2 files changed, 103 insertions(+), 11 deletions(-)

diff --git a/Documentation/process/kernel-docs.rst b/Documentation/process/kernel-docs.rst
index 55552ec4b043..d917accd7fc3 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,106 @@ 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: **Learning 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: **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) 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.0

Re: [PATCH] kernel-docs: Add new section for Rust learning materials
Posted by Miguel Ojeda 2 months, 2 weeks ago
On Wed, Sep 11, 2024 at 8:59 PM Carlos Bilbao
<carlos.bilbao.osdev@gmail.com> wrote:
>
> Include a new section in the Index of Further Kernel Documentation with
> resources to learn Rust. Reference it in the Rust index.

Thanks for this, Carlos! It would be nice to mention that this came
out of a session of Kangrejos with suggestions from people in the room
(or who suggested it).

Did you rank/filter them in some way? i.e. my plan was to perhaps make
a poll or something in Zulip and then pick the best ones.

A few extra that got mentioned: https://rust-book.cs.brown.edu
(perhaps could go into the Rust book entry somehow; having said that,
I am not sure if it is being updated, and it is part of an
"experiment"), https://newrustacean.com, the reference,
https://github.com/rust-lang/opsem-team/blob/main/fcps.md...

> +    * Name: **Linux Plumbers (LPC) Rust presentations**

I wonder if listing individual talks may be a bit too much, compared
to other entries in the file that link to the overall resource.
Perhaps LPC should be in a different section as a "global" resource,
perhaps with links to the few latest years' full schedules?

> +    * Name: **The Rustacean Station Podcast**

By the way, are these sorted in any particular way?

Cheers,
Miguel
Re: [PATCH] kernel-docs: Add new section for Rust learning materials
Posted by Carlos Bilbao 2 months, 1 week ago
Hello Miguel,

On 9/16/24 03:39, Miguel Ojeda wrote:
> On Wed, Sep 11, 2024 at 8:59 PM Carlos Bilbao
> <carlos.bilbao.osdev@gmail.com> wrote:
>> Include a new section in the Index of Further Kernel Documentation with
>> resources to learn Rust. Reference it in the Rust index.
> Thanks for this, Carlos! It would be nice to mention that this came
> out of a session of Kangrejos with suggestions from people in the room
> (or who suggested it).


Sure, I'll mention in the v3 commit that this is the product of a survey
among Kangrejos'24 assistants.


>
> Did you rank/filter them in some way? i.e. my plan was to perhaps make
> a poll or something in Zulip and then pick the best ones.


No filter, I thought the more the better. I'd be willing to read reasons
to remove entries if anyone objects to any resource in the future.


>
> A few extra that got mentioned: https://rust-book.cs.brown.edu
> (perhaps could go into the Rust book entry somehow; having said that,
> I am not sure if it is being updated, and it is part of an
> "experiment"), https://newrustacean.com, the reference,
> https://github.com/rust-lang/opsem-team/blob/main/fcps.md...


Will add in v3.


>
>> +    * Name: **Linux Plumbers (LPC) Rust presentations**
> I wonder if listing individual talks may be a bit too much, compared
> to other entries in the file that link to the overall resource.
> Perhaps LPC should be in a different section as a "global" resource,
> perhaps with links to the few latest years' full schedules?


I thought adding each LPC talk as a separate item was too much. But,
adding them at the end of the list, for those who venture deep enough into
the Rust rabbit hole, I think is good. Honestly, we should be doing more to
take advantage of the documentation generated in LPCs.


>
>> +    * Name: **The Rustacean Station Podcast**
> By the way, are these sorted in any particular way?


The rest of the resource index is chronologically sorted. But, for this
heterogeneous collection of blog posts, talks, etc. I didn't see the point
of that. As the project grows, we'll need to categorize Rust resources and
index them for easier access.


>
> Cheers,
> Miguel


Thanks, Carlos

Re: [PATCH] kernel-docs: Add new section for Rust learning materials
Posted by Dirk Behme 2 months, 2 weeks ago
On 11.09.2024 20:59, Carlos Bilbao wrote:
> Include a new section in the Index of Further Kernel Documentation with
> resources to learn Rust. Reference it in the Rust index.

Many thanks for creating the patch! Looks nice :)

Whats about adding

https://google.github.io/comprehensive-rust/

https://docs.rust-embedded.org/book/

additionally?

Best regards

Dirk


> Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
> ---
>   Documentation/process/kernel-docs.rst | 111 +++++++++++++++++++++++---
>   Documentation/rust/index.rst          |   3 +
>   2 files changed, 103 insertions(+), 11 deletions(-)
> 
> diff --git a/Documentation/process/kernel-docs.rst b/Documentation/process/kernel-docs.rst
> index 55552ec4b043..d917accd7fc3 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,106 @@ 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: **Learning 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: **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) 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

-- 
======================================================================
Dirk Behme                      Robert Bosch Car Multimedia GmbH
                                 CM/ESO2
Phone: +49 5121 49-3274         Dirk Behme
Fax:   +49 711 811 5053274      PO Box 77 77 77
mailto:dirk.behme@de.bosch.com  D-31132 Hildesheim - Germany

Bosch Group, Car Multimedia (CM)
              Engineering SW Operating Systems 2 (ESO2)

Robert Bosch Car Multimedia GmbH - Ein Unternehmen der Bosch Gruppe
Sitz: Hildesheim
Registergericht: Amtsgericht Hildesheim HRB 201334
Aufsichtsratsvorsitzender: Dr. Dirk Hoheisel
Geschäftsführung: Dr. Steffen Berns;
                   Dr. Sven Ost, Jörg Pollak, Dr. Walter Schirm
======================================================================

Re: [PATCH] kernel-docs: Add new section for Rust learning materials
Posted by Carlos Bilbao 2 months, 2 weeks ago
On 9/12/24 00:01, Dirk Behme wrote:

> On 11.09.2024 20:59, Carlos Bilbao wrote:
>> Include a new section in the Index of Further Kernel Documentation with
>> resources to learn Rust. Reference it in the Rust index.
> Many thanks for creating the patch! Looks nice :)
>
> Whats about adding
>
> https://google.github.io/comprehensive-rust/
>
> https://docs.rust-embedded.org/book/
>
> additionally?


You got it! I’ll send v2 in a few mins.


>
> Best regards
>
> Dirk
>
>
>> Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
>> ---
>>   Documentation/process/kernel-docs.rst | 111 +++++++++++++++++++++++---
>>   Documentation/rust/index.rst          |   3 +
>>   2 files changed, 103 insertions(+), 11 deletions(-)
>>
>> diff --git a/Documentation/process/kernel-docs.rst b/Documentation/process/kernel-docs.rst
>> index 55552ec4b043..d917accd7fc3 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,106 @@ 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: **Learning 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: **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) 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


Thanks, Carlos