低レイヤー入門

6,283 views

Published on

Published in: Technology

低レイヤー入門

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

×