2019-03-19 30分で論文流し読みシリーズ2: 「U-root: A Go-based, firmware embeddable root file system with on-demand compilation」 U-root: A Go-based, firmware embeddable root file system with on-demand compilationの感想など。 実際の所要時間 30分 概要 課題: 組み込み機器のファームウェアから、ファームウェアに埋め込んだlinux(この論文ではfirmware embeddedable root file systemと表現される)を立ち上げる場合、ファームウェアのサイズはなるべく小さくしたいという要件をもとに、そのためにはユーザランドは帯に短し襷に長しの次のようなものにする必要があった busyboxなどのCで書かれたプログラムを使う: 高速だが低級言語なのでセキュリティ攻撃を受けやすい perlなどのスクリプト言語で書かれたプログラムを使う: 楽に書けるが遅い 解決方法 ユーザランドをGoで書く。ほとんどのユーティリティはバイナリではなくソースコードとして同梱して初回使用時にはコンパイルが走る Goなので安全かつ楽に書ける 最初は遅いがいったんコンパイルすれば高速。しかもGoなのでコンパイルは高速 感想 実行が高速で、かつ(Cより)安全かつコンパイルが高速なGoが出てきたからことできたこと バイナリではなく、それよりはるかにサイズが小さなソースコードを組み込むというアイデアは面白い ソース、とくにcmds以下がGoを覚えるための練習として役立ちそう