FORCIA CUBEフォルシアの情報を多面的に発信するブログ

Shinjuku.rs #15を開催しました

2021.05.20

Shinjuku.rs Rust

第1旅行プラットフォーム部の高橋です。


この記事では4/27(火)に開催したShinjukurs #15の様子についてご紹介します。

特にテーマを絞っているわけではないのですが、組み込みRustやLinuxのトレーシングツールの話など、低レイヤーの話が多めの会となりました。

前回、前々回のイベントの様子はこちらをご覧ください。

Shinjuku.rs#13を開催しました
Shinjuku.rs#14を開催しました

LTの様子

LT1 | 組込みRustの歩き方 Edition 2021 | tomoyuki-nakabayashi さん

shinjukurs_15_1.png

1人目のtomoyuki-nakabayashi さんからは組み込みRustをはじめるにあたって、どのように勉強を進めていけばよいかをお話しいただきました。

nakabayashiさんは組み込みRustの本を最近出版されたとのことで、前振りではLTの内容は出版された本の紹介が9割ですとおっしゃられていました(笑)

しかし、実際には組み込みRustの入門方法やおすすめの書籍やその後の勉強の進め方について体系的にまとめられた内容をお話しいただき、組み込みRustをはじめてみようという方にとてもためになる発表でした。

LT2 | Rustで作るLinuxトレーサ | udzura さん

image (2).png

2人目のudzuraさんからはLinuxトレーシングツールをRustで自作してみたという内容を発表いただきました。

Linuxのカーネルの処理をトレースするための手法として、eBPF( extended Berkeley Packet Filter)というものがあります。これはユーザーランドで記述したプログラムを用いてカーネル内部の情報を集計することのできる機能です。

これまでeBPFツールはC言語で実装されることがほとんどでしたが、BPFプログラム自体は仕方ないとしてもユーザーランドのプログラムもCだと実装がつらい、、ということでRustで実装できないかを試されたそうです。LTではコンテナのシステムコール呼び出しをトレーシングできるツールのデモをしていただきました。

Rustで実装したメリットとして、メモリ安全性や実行スピードを保ちつつも型などの恩恵を受けることができる点を挙げられていました。またコマンドラインツールの実装には structoptがとても便利だったとのことです。

LT3 | Rustでつくるx86アセンブラ | monochrome さん

image (3).png

3人目のmonochrome さんからは、Rustで作成したx86アセンブラについてご紹介いただきました。アセンブラとは(人が読んでぎりぎり意味の分かる)アセンブリ言語を、機械にしか理解できない機械語に変換する処理を行うソフトウェアです。

Rustでは asm! マクロを利用するとRustのコード中にインラインでアセンブリ言語を組み込んで実行することができます。monochromeさんはRubyをRustで実装してみたという内容で以前もLTをしていただいていますが、今回発表いただいたアセンブラを利用することでその処理の高速化に成功したとのことでした。

LTでお話を聞くたびに着々と進捗をあげられていて素晴らしいなと感じています。

LT4 | Rust初心者がArduinoをLチカしてみた | 阿部耕二 さん

image (4).png

LTの最後は阿部耕二さんから、RustをArduinoに組み込んでLチカしてみた、という内容で発表いただきました。Lチカとは「LEDをチカチカさせる」の略称で、マイコンを動かす第一歩としてよく行われているようです(プログラミングでいうところの「Hello, World!」の出力と同じようなものだと認識しています)。
今回利用されたマイコン基盤は、leafonyというものだそうです。

leafonyは、マイコンでは有名な基盤のArduinoと互換性があるとのことで、Arduinoに対応しているRustの avr-hal というモジュールをleafony向けに一部書き換え、電圧読み取りのコードを動かすことができたとのことでした。

Lチカといいつつ一歩踏み込んだ内容に取り組まれていて、さすがでした。

懇親会

今回のLTでは低レイヤー×Rustの話が多かったこともあり、懇親会もそれに関連する話題で盛り上がりました。他にも以下のような話題が上がり、口頭とチャット欄を合わせて多くの方に発言いただきました。

  • 業務でRustと広げる方法とそれを妨げている要因について
  • 組み込みRustの可能性。CやC++を置き換えられるのか?
  • iOS, AndroidへのRustの利用について

次回のShinjuku.rs #16は 6/29(火) に開催予定です

次回のイベントには以下のページから参加申し込みできます。

Shinjuku.rs #16 connpassイベントページ

Rustを商用利用した話、Rustでこんなものを開発した、Rustの面白い仕様を紹介したい、Rustにcontributeしたなど、Rustに関連する内容ならなんでもWelcomeです。皆様からのLTをお待ちしています。

この記事を書いた人

髙橋 優樹

2019年新卒入社エンジニア。
自宅サウナを実現すべく、入浴環境を整え中です。