GENODE OS上でGalliumのドライバを動かせたという話
(記事を読む限りだと、4,5年前にはすでに実現していて
今でもメンテナンスされてますよ、って話なのかな)
Doing Graphics Hardware Acceleration With Microkernels
http://www.phoronix.com/scan.php?page=news_item&px=GPU-Microkernel-Support
まず、GENODE OSってのは知らなかった。
セキュアな環境を実現するためのMicrokernelなOS。
Microkernelにすることでカーネル自体のコード行数を減らし、
コードの検証をやりやすくする、ってことみたい。
まぁ、Micro kernelでもMonolithic kernelでも、
責任の所在がどっちになるかという問題のような気がしてて、
個人的にはどちらでも良いけど…。
(もちろん、見通しの問題もあるだろうけど、あまり利点があるとは思えない)
GalliumはLinuxのグラフィックスドライバのフレームワークの名称。
Mesa(Linux向けのOpenGLドライバ実装)の中に
このGalliumの仕組みを使ったグラフィックスドライバが実装されている。
この記事の面白いところは、Galliumの実行はLinuxでないと無理だろうなぁと
思い込んでいたけど、やろうと思えば他のOSでもできるという点。
ざっと見た感じだと、DRM(Direct Rendering Manager : Linuxカーネルドライバのうち
グラフィックスのリソースなどを管理するドライバ)に相当する部分を
Graphics Execution Managerという仕組みでユーザランドで実現している。
この辺りの話は2010年の以下の資料にのっていた。
http://genode.org/documentation/release-notes/10.08#Gallium3D_and_Intel_s_Graphics_Execution_Manager
極端な話、iTRONとか組み込み系のOSでもできなくはないんだろうな。
データをgithub上に上げてみました。
使ってみたい方はご自由にどうぞ〜
回路図、ボード図と実装完了したら、次にデザインルールのチェックをする。
EAGLE用のDRUファイルが以下にあるので、ダウンロードして使用する。
https://www.switch-science.com/pcborder/techguide/
最初はずらーっとエラーが出るので、一つ一つ対応していく。
今回作ったものだと、ほとんどがシルクとパッドが接触している、というエラーが多かった。
ライブラリの段階でダメなものが多かったので、
ライブラリをコピーして適当にシルクを修正した。
エラーが出なくなったら、最後に提出用データの作成。
上記のURLからCAMファイルをダウンロードしてきて、
CAM Processorからファイルを読みこませる。
(Mac版の場合、メニューバーからFile -> Open -> Job...を選択
上のメニューに出てると思わなかったので、一瞬わからなかった)
Proceed Jobを実行すると必要なファイルが出力される。
出力されたファイルで必要な物だけ取り出して、zipでまとめる。
これでデータの作成は完了。簡単にできるね…。
後はデータをアップロードして、先方からの確認がないか待つのみ。
ミスがないといいなぁ…。
ESP-WROOM-02というWifi付きのSoCが気になって、早速秋月で買ってきた。
Wi-Fiモジュール ESP-WROOM-02
http://akizukidenshi.com/catalog/g/gM-09607/
特徴は以下のとおり。
ピンピッチが1.5mmなのでこれを変換する基板を用意する必要がある。
専用のものも探せば売っているので、それを使うのも一つの手。
と思ってたんだけど、そういえばこんなのあったな、と。
基板製造サービス「スイッチサイエンス PCB」ベータテスト開始 - スイッチサイエンス
https://www.switch-science.com/pressrelease/pcb_betatest/
9月中なら10枚たったの1713円で作れるという…。すごい。
今後使う可能性もあるので、ちょうど良いテスト基板として作ることにしてみた。
とりあえず、一通り作ったのがこんな感じ。
今現在、VPSの契約が2つある
どちらもそこそこ負荷はかかっているので、2つある事自体は問題なし。
ただ、気になってるのは、後者のほうの以下の点
AWSにしようか、とか、いっそHerokuに一部移すかとかも
考えてみたけど、どちらもコスト的にいまいち。
動かしているサービスで利益が出ているのであれば、
投資と考えられるけど、現状は特に無いので最小限のコストで。
そうなると、現状のままでいっか…となりました。
HTMLの が半角スペースだと思ってたんですが、実は違ったんだね…。
半角スペースはUnicodeでU+0020、対して はU+00A0となり、
別々の文字コードとなる。当然見た目は同じなんだけどね。。。
どういう状況でこれに困るかというと、スクレイピングしたデータをパースしたい場合。
Rubyで例えば、以下のようにsplitしたとき区切り文字がnbspだとうまくいかない。
じゃあどうするか?
Unicodeを直接指定すればできる、と。
空白のはずなのにsplitできなくて小一時間悩んだ。