Rust LT会

Rust LT会 #4にLT登壇枠で参加してきました。
この会に参加するのははじめてなので少々ためらったのですが、LT枠が結構余っていたのと、たまにはこういう場で発表して自身のモチベーションあげようということで、簡単ではありましたが、低レイヤープログラミングについての話をしました。

発表スライド

発表時間には間に合ったものの、会の開始時間には遅刻してしまい運営の方々にはご迷惑をおかけしました。
登壇枠で参加するときは特に時間に余裕を持たなければ…

ちょっとした補足

いくつか会場で出た質問とか、スライドでは深く突っ込んでいない内容についてちょっとした補足をしておきます

no_stdプログラミングでのクレート

低レイヤープログラミングでは基本的にはstdクレートは使えないため、stdクレートに依存している大半のクレートは使用できません。
しかし、中にはno_stdでつくられているものもあり、そういうものはcrate.ioでno_stdキーワードがついています。 が、たとえno_stdでつかえるものでも作者がキーワードを設定していないことも多いです…

追記:no_stdというカテゴリーをつけるほうが一般的っぽい

それでも個人的にはクレートシステムの存在はありがたく、すでに様々な便利なクレートの存在のおかげで、低レイヤープログラミングといえどもフルスクラッチで書くのを避けることもできます。
C言語などではデファクトといえるこういうシステムがなかったのでありがたいと思っています。

Redoxについて

Redoxのレポジトリを見ればわかるのですが、なんとRustコンパイラのフォークをサブモジュールとしてとりこんでいます。
どこを変更したかは具体的には追えていないのですが、所有権に関する制約を緩和するためにRustコンパイラを変更する必要があったという記述をどこかで見た記憶があります。
Rustコンパイラそのものをビルドする必要があるので、Redox全体のビルドは結構大変です。dockerイメージが同梱されているので、そちらを利用するといいでしょう。

一方で、このブログでも何度か登場したTockはnightlyコンパイラでビルドでき、発表された論文ではその部分が貢献のひとつとして強調されていました。
TockはRustで書かれているという以外にも、組込みOSの設計として面白いアーキテクチャをしているので、興味があれば是非みてみるといいと思います。

スライドについて

reveal-ckというのを使ってつくりました。
いつもならばPowerPointかGoogle Docsでつくるのですが、markdown形式でつくれてウェブページとして公開できるのはいいかも、と思い試験的に使ってみました。
しかし、スライドの文字の位置や大きさをもっと調整したかったとかを考えると、やはりPower Pointとかでつくったほうがいいのかも、というのが正直な感想です。
また次回、LT会等の機会があったら別のシステムもいろいろ検討したいと思います。