Suche senden
Hochladen
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
•
2 gefällt mir
•
1,208 views
K
kozossakai
Folgen
OSCライトニングトーク「続・ハロー・ワールド入門」 オープンソースカンファレンス2016 Tokyo/Spring
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 72
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
kozossakai
ディジタル信号処理 課題解説 その9
ディジタル信号処理 課題解説 その9
noname409
Process Simulation using DWSIM
Process Simulation using DWSIM
Naren P.R.
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
Yasuhiro Yoshimura
Scilab: Computing Tool For Engineers
Scilab: Computing Tool For Engineers
Naren P.R.
Hough forestを用いた物体検出
Hough forestを用いた物体検出
MPRG_Chubu_University
アセンブラ漢文
アセンブラ漢文
kozossakai
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Yasuhiro Yoshimura
Empfohlen
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
kozossakai
ディジタル信号処理 課題解説 その9
ディジタル信号処理 課題解説 その9
noname409
Process Simulation using DWSIM
Process Simulation using DWSIM
Naren P.R.
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
Yasuhiro Yoshimura
Scilab: Computing Tool For Engineers
Scilab: Computing Tool For Engineers
Naren P.R.
Hough forestを用いた物体検出
Hough forestを用いた物体検出
MPRG_Chubu_University
アセンブラ漢文
アセンブラ漢文
kozossakai
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Yasuhiro Yoshimura
Cloud frontの概要と勘所
Cloud frontの概要と勘所
Kei Hirata
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
nonane
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
Shohei Hido
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25
Minoru Chikamune
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
Yuya Unno
深層学習とTensorFlow入門
深層学習とTensorFlow入門
tak9029
畳み込みLstm
畳み込みLstm
tak9029
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune
Chainer, Cupy入門
Chainer, Cupy入門
Yuya Unno
ディジタル信号処理 課題解説 その8
ディジタル信号処理 課題解説 その8
noname409
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited
Kyohei Unno
20161203 cv 3_d_recon_tracking_eventcamera
20161203 cv 3_d_recon_tracking_eventcamera
Kyohei Unno
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
tomoaki0705
TensorFlowで遊んでみよう!
TensorFlowで遊んでみよう!
Kei Hirata
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Shohei Hido
Cvim saisentan-cvpr-hyper depth
Cvim saisentan-cvpr-hyper depth
tomoaki0705
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
Yasuhiro Yoshimura
Cvim saisentan-4-2-tomoaki
Cvim saisentan-4-2-tomoaki
tomoaki0705
バイナリ駄洒落コンテスト
バイナリ駄洒落コンテスト
kozossakai
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
kozossakai
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
kozossakai
Weitere ähnliche Inhalte
Andere mochten auch
Cloud frontの概要と勘所
Cloud frontの概要と勘所
Kei Hirata
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
nonane
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
Shohei Hido
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25
Minoru Chikamune
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
Yuya Unno
深層学習とTensorFlow入門
深層学習とTensorFlow入門
tak9029
畳み込みLstm
畳み込みLstm
tak9029
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune
Chainer, Cupy入門
Chainer, Cupy入門
Yuya Unno
ディジタル信号処理 課題解説 その8
ディジタル信号処理 課題解説 その8
noname409
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited
Kyohei Unno
20161203 cv 3_d_recon_tracking_eventcamera
20161203 cv 3_d_recon_tracking_eventcamera
Kyohei Unno
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
tomoaki0705
TensorFlowで遊んでみよう!
TensorFlowで遊んでみよう!
Kei Hirata
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Shohei Hido
Cvim saisentan-cvpr-hyper depth
Cvim saisentan-cvpr-hyper depth
tomoaki0705
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
Yasuhiro Yoshimura
Cvim saisentan-4-2-tomoaki
Cvim saisentan-4-2-tomoaki
tomoaki0705
Andere mochten auch
(19)
Cloud frontの概要と勘所
Cloud frontの概要と勘所
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
深層学習とTensorFlow入門
深層学習とTensorFlow入門
畳み込みLstm
畳み込みLstm
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Chainer, Cupy入門
Chainer, Cupy入門
ディジタル信号処理 課題解説 その8
ディジタル信号処理 課題解説 その8
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited
20161203 cv 3_d_recon_tracking_eventcamera
20161203 cv 3_d_recon_tracking_eventcamera
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
TensorFlowで遊んでみよう!
TensorFlowで遊んでみよう!
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Cvim saisentan-cvpr-hyper depth
Cvim saisentan-cvpr-hyper depth
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
Cvim saisentan-4-2-tomoaki
Cvim saisentan-4-2-tomoaki
Mehr von kozossakai
バイナリ駄洒落コンテスト
バイナリ駄洒落コンテスト
kozossakai
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
kozossakai
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
kozossakai
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
kozossakai
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
kozossakai
Assembly Language Tanka (AVTOKYO2013.5 English version)
Assembly Language Tanka (AVTOKYO2013.5 English version)
kozossakai
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
kozossakai
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
kozossakai
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
kozossakai
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた・完全版)
kozossakai
バイナリかるた(アーキテクチャかるた)
バイナリかるた(アーキテクチャかるた)
kozossakai
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
kozossakai
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
kozossakai
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
kozossakai
Mehr von kozossakai
(14)
バイナリ駄洒落コンテスト
バイナリ駄洒落コンテスト
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
Assembly Language Tanka (AVTOKYO2013.5 English version)
Assembly Language Tanka (AVTOKYO2013.5 English version)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた)
バイナリかるた(アーキテクチャかるた)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
1.
続・ ハロー・ワールド 入門 坂井弘亮 (KOZOSプロジェクト) TwitterID:kozossakai
2.
毎年恒例
3.
バイナリカレンダー あります
4.
バイナリカレンダー とは何か
5.
(普通のカレンダー) 風景や人物がテーマ (バイナリカレンダー) バイナリデータがテーマ
6.
こんな感じです
7.
(バイナリカレンダー2014) (アーキテクチャカレンダー2015)
8.
そして今年
9.
乱数カレンダー
10.
乱数カレンダー とは何か
11.
乱数データをテーマとした バイナリカレンダーの 一種です
12.
こんな感じです
13.
14.
乱数データの ダンプ
15.
日付は16進数と 2進数を併記 (さすがにここは 乱数ではない)
16.
乱数一覧 1月 /dev/urandom 7月
bashの$RANDOM 2月 rand() 8月 Pythonの random.randint() 3月 ガウス分布 9月 random() 4月 旧rand() 10月 Numpyの random.randint() 5月 M系列 11月 Awkのrand() 6月 Perlのrand() 12月 openssl rand
17.
特徴的な月
18.
4月 (旧libcの rand()関数)
19.
4月 (旧libcの rand()関数) パターンが 規則的
20.
4月 (旧libcの rand()関数) パターンが 規則的 rv = rv
* 1103515245 + 12345;
21.
他にも
22.
5月 (M系列)
23.
5月 (M系列) 先頭に ゼロデータの 連続
24.
5月 (M系列) 先頭に ゼロデータの 連続 乱数の種を適切に選ばないと 乱数性が低くなる (この例では seed =
1)
25.
前置き終わり
26.
続・ ハロー・ワールド 入門 坂井弘亮 (KOZOSプロジェクト) TwitterID:kozossakai
27.
「ハロー・ワールド入門」 とは何か
28.
1年前の OSC東京春の LTでの発表
29.
「ハロー・ワールド入門」
30.
C言語の入門時に 必ずと言っていいほど書く 「ハロー・ワールド」
31.
こんなのです
32.
#include <stdio.h> int main() { printf("Hello,
World!n"); return 0; }
33.
実行結果
34.
Hello, World!
35.
単に 「Hello, World!」 と出力するだけの プログラム
36.
たいていのプログラミング 入門書はこれで始まる
37.
これを徹底的に 解析する,という話
38.
1年前の OSC東京春の LTで言ったこと
39.
マニアックな技術書を 書くのはもう卒業だ! 今年は入門書を書くぞ!
40.
入門書と言えば ハロー・ワールドだろう
41.
じゃあハロー・ワールドだけに ついて解説する本を書けば, 入門書の前に読むべき スーパー入門書になるのでは?
42.
そして今年
43.
続・ ハロー・ワールド 入門 坂井弘亮 (KOZOSプロジェクト) TwitterID:kozossakai
44.
そもそもの きっかけ
45.
こんなことを 言われたことが ある
46.
「ハロー・ワールド」について レポートを書けという 課題が出れば, 5枚でも6枚でも書ける! (要するにそれほど奥が深い)
47.
これを聞いたときの 正直な感想
48.
いやいや 無理でしょ
49.
足りないでしょ
50.
50枚は必要でしょ
51.
ということで 書いてみた
52.
「ハロー "Hello, World"」
53.
54.
(当初の予定) ハロー・ワールドについて いろんな視点から説明した 150ページくらいの薄い本
55.
(できあがったもの) ハロー・ワールドについて 徹底的に解析した 450ページくらいの 薄くない本(またか)
56.
注意
57.
C言語によるハロー・ワールド の入門です ハロー・ワールドによるC言語 の入門ではありません
58.
つまり K&Rの前に読むべき スーパー入門書
59.
ハロー・ワールドの 入門書なので
60.
この本には リスト1しか ありません
61.
利用しているOSS (たいへんありがたい) Linuxカーネル glibc FreeBSD Newlib GDB
GCC binutils CentOS
62.
内容
63.
(第1章) CentOS環境でハロー・ワー ルドをビルドして 逆アセンブ ル結果や実行ファイルの解析 結果を眺めてみたりする
64.
(第2章) printf()の動作を知るために デバッガで動的解析して シ ステムコールの呼出しまでを 追う
65.
(第3章) Linuxカーネルのソースコー ドを読んで,Linuxのシステム コール処理を探る
66.
(第4章) 標準ライブラリのソースコー ドを読んでシステムコールの 呼出し処理を知る. ついでに ビルドして動的解析で処理を 追う
67.
(第5章) main()関数が呼ばれる前の スタートアップの処理と, main()関数から戻った後の 終了処理を探る
68.
(第6章) 標準ライブラリのソースコー ドを読んでprintf()の実装を 知る. FreeBSDやNewlibの 実装も見てみる
69.
こんなのが延々と続く, (自己評価で)最高に面白い本
70.
他にも実行ファイル解析 共有ライブラリ 最適化 可変長引数などの話もあり
71.
Linux/x86だけでなく FreeBSDやARMなど 他実装/アーキの話題もあり (このへんが特色)
72.
どうもありがとう ございました
Jetzt herunterladen