民生品NASに見る組み込みLinuxの世界

liloのマンスリーセミナで組み込みネタをやるというのに触発されて、自分でやることを想定してちょっと書いてみた。去年からliloセミナ講師に立候補してみようと思ったりしているのだけど、神戸や大阪まで出るのは億劫になってしまって決心がつかない。
それと、最近、なんか大勢の聴衆の前でしゃべる事をやってないので、プレゼン体力が落ちているかもしれないと思う。去年の札幌は少人数だったし。今年に入ってからも社外でも数名のプロジェクト内部だけ。先月は10人くらいの自分のじゃないプレゼンの手伝いはしたけど、それは所詮手伝いだし、私の色が出ても困るのでそんなに気合入れてなかった。
プレゼンとしては40%くらいは完成している。あとは絵と裏取りとPPTに仕上げるだけ。今の内容だと、90分くらいかな。
トピックだけ列挙してみる。

民生品NASに見る組み込みLinuxの世界

  • わたしは何をやってきたか?
  • 組み込みLinuxの歴史
    • 10年前は「寝言は寝て言え」
    • 今では「ネコも杓子も」
  • なぜ組み込みなのか?
    • 低消費電力
    • 価格が安い 多目的->単機能
    • 小さい
    • 発熱が低い
    • 環境耐性が高い
    • 専用設計のSoC
  • CPUアーキテクチャ
    • IA(Intel Architecture)だけがコンピュータじゃない
    • 昔はいろいろなCPUがありました
    • 今のメジャーはARM,MIPS,SHあたり? IA-32クローンもあるよ
  • だいたいこんな構造です
    • CPU
    • Flash ROM
    • RTC
    • DRAM
    • 外部バス
    • シリアル
    • JTAG
    • I2C
    • GPIO
    • リファレンスとなる設計とテスト用ボードはメーカーから借りたり買ったりできる
  • JTAGとシリアルコンソール
    • 大抵はVGAのような豪華なものは付いていません
    • CPUのデバッグにはJTAGが使えます
    • Flashの書き込み
  • 起動の仕組み
    • IPLとは何か?
    • IPLにはどんなものがあるのか?
    • initrdという独特の仕組み -> いまはinitramfsに
    • Flash上に置くもの
    • Flashメモリ用のROMファイルシステム
  • 組み込みの制約とその解決
    • メモリ容量
    • CPUパワーがない マルチメディア用の拡張命令などもない 浮動小数点演算できない
    • MMUなし? -> 仮想記憶が使えない uClinux
    • Flashメモリからの起動による容量の制約 -> ライブラリやツールが大きすぎる busybox
    • ROMしか利用できない -> UNIXではそんなこと考えられていない! ramdisk
    • ガチャ切りされてもけな気に起動する -> ジャーナルなんて最近ですよ 保護されないファイルシステム
  • ソフトウエアの開発
    • 何は無くともtoolchain
    • ミニマムの起動環境を作る Buildroot
    • ドライバは誰かが書かなくちゃね
    • kernelのバグは誰が直すのさ
    • 上流へのマージは?
    • GPLの理解が進んで楽になってきた
    • どこで差別化を行うのか
    • ソフトとハードの確執 ってほどのこともない
  • 組み込みLinuxで遊べるデバイスたち
  • 情報源とコミュニティ

パワーとリソースに余裕ができたのだけど、10年くらい中身は変わっていない感じもする。
ソフトコアとか、MMUなしが再び(AVR)なんかで、これから大きく変わるのだろうな。


書いていて、この内容なら「市販製品の解析とDebian化」みたいなののほうが聴衆ウケがいいような気がした。