低レイヤー入門
でむら なりかず
つ部 Android 勉強会 2013年4月
2013/4/20
自己紹介
●
でむら なりかず
●
フリーランスなエンジニア
●
本書いたりしてます
●
低レイヤー(アセンブラ)が好き
●
過去に家庭用ゲーム機のプログラマをしてた
2013/4/20
富山県から来ました
2013/4/20
NDK本第2版
ちょっとだけ宣伝を。
数少ないNDK本の一つ。
書店にて好評発売中
買ってね
http://www.amazon.co.jp/gp/product/4798036307
2013/4/20
ここからが本編
2013/4/20
http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
それは低レイヤーの世界
2013/4/20
「低レイヤー? 何それ? 意味分かんない」
http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
アプリケーション
ブラウザ
OS
ハードウェア
Webアプリ
仮想マシン 低レイヤーな領域
ハードウェア制御~ソフ
トウェア動作を支えるソ
フトウェアレイヤー
低レイヤー =
(厳密な定義がある訳ではない)
高レイヤー
低レイヤー
2013/4/20
利用する言語も異なる
低レイヤー 高レイヤー
ネイティブコード(CPUが直接理解
できるコード)などを出力する言語
●
アセンブリ言語
●
C
●
C++
など
スクリプト言語など
●
Perl
●
Python
●
Ruby
●
JavaScript
など
2013/4/20
ADFDBDEBAFAB0205AB
BDEFEEABCDEEABDE
低レイヤーの世界では、よくバイナリーコードが
登場する。
そのため、その道を究めるとバイナリーコードで
会話できるようにも(個人の感想です)
2013/4/20
「私Pythonistaだから低レイヤーの知識なんて必要ないもん!」
「そんなことねーよ!」 http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
スクリプト言語だけでできる仕
事も多い
しかし、低レイヤーの技術や知
識があると、いろいろと選択肢
が広がる
2013/4/20
ハンマーを持つ人には
すべてが釘に見える
古いことわざ
2013/4/20
高レイヤーからネイティブコードを呼び出す
– NPAPI(ブラウザから)
– AIR Native Extension(AIRから)
– Android NDK(Javaから)
低レイヤー技術を元にしたライブラリ
– asm.js
技術利用例(アプリ開発)
2013/4/20
Perl / Ruby / Python etc...
CPU
高速処理向け
ライブラリ 拡張ライブラリ
各種API
(C言語向け)
C/C++ C/C++
LLのみ
LL + 低レイヤー
カバーできる範囲が
全然違う
2013/4/20
「どこから手を出したらいいの?教えてっ」
http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
ステップは4段階
2013/4/20
Step 0:
低レイヤーを習得する
理由を見つける
動機付け大事。技術習得より、まずは動機。
2013/4/20
Step 1:
C言語を習得する
●
C言語が標準
●
C++は使えるに超したことはないが無
理するな
●
言語の習得と同時に低レイヤーで必須
のハードウェアの知識もある程度は身
につく(すべてではない)
2013/4/20
Step 2:
ソースコードを読む
●
ソースコードを読んで雰囲気を掴む
– 興味がある箇所だけでOK
– 他人のソースが読めるのも大切なスキル
●
Linuxカーネル、各種ライブラリのソース
コードなど
2013/4/20
Step3:
コードを書いて動かす
●
たくさん書いて、たくさん試す
●
量をこなすことで質が向上する
– 結果をblogなどで公開するのがお勧め
2013/4/20
以降は各々の道で
●
OSの仕組みを理解する
– UNIX v6のソースコードを読む など
●
ハードウェアを極限まで使う
– コンパイラの仕組み、アセンブリ言語の習得
●
ハードウェア制御
– mbedなどのマイコンを利用
など
2013/4/20
そんな感じで、進めてみて
はいかがでしょーか
2013/4/20
2013/4/20
低レイヤーを学習すると、コ
ンピュータの根本が理解でき
て面白いですよ
うまく行けば、おちんぎんUP
にもつながるよ
2013/4/20
なお、本スライドで利用した映像は
2013/4/20
http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
内容が気になる!という方は
2013/4/20
http://www.youtube.com/watch?v=-Y6zXnPL53E
2013/4/20
ご静聴ありがとうございました

低レイヤー入門