2014年5月25日kernel vm発表資料sushi514

95
(吐血

Upload: naoto-kawahara

Post on 03-Jul-2015

1.631 views

Category:

Software


5 download

DESCRIPTION

第十回 カーネル/VM探検隊で発表した資料. ”” http://kernelvm10.peatix.com/

TRANSCRIPT

Page 1: 2014年5月25日kernel vm発表資料sushi514

ま え が き (吐血

Page 2: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 2

5/23(Fri) 午前02:21

Page 3: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 3

5/23(Fri) 午前02:21

お馴染みの,”あの人”による

Page 4: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 4

5/23(Fri) 午前02:21

Page 5: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 5

5/23(Fri) 午前02:21

声掛け事案発生

Page 6: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 6

Page 7: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 7

Page 8: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 8

Page 9: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 9

Page 10: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 10

Page 11: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 11

Page 12: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 12

5/23(Fri) 午前02:30

更に...

お馴染みの,”ておくれ”による

Page 13: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 13

5/23(Fri) 午前02:30

Page 14: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 14

5/23(Fri) 午前02:30

わけが,わからないお

Page 15: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 15

このポストに対する不穏なリプライ

Page 16: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 16

Page 17: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 17

Page 18: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 18

URL : docs.google.com/sprea...

Page 19: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 19

Page 20: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 20

Page 21: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 21

Page 22: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 22

タイトルと時間が決定

● どうすんだこれ– ”ご注文はおすしですか?”– 初カーネルVM/探検隊

催眠術だとか超スピードだとか そんなチャチなもんじゃあ断じてねぇもっと恐ろしいものの鱗片を味わったぜ…

Page 23: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 23

タイトルと時間が決定

● どうすんだこれ– ”ご注文はおすしですか?”– 初カーネルVM/探検隊

なるほどね

Page 24: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 24

この3日で,新鮮なネタをご用意しました

簡単な内容だけど

ヽ('ω')ノ三ヽ('ω')ノ

Page 25: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 25

  ご注文は

  おすし

  ですか?

2014/05/25(Sun)第十回 カーネル/VM探検隊

@sushi514

Page 26: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 26

お品書き

● ネタ1– ひと目で、尋常じゃないiPhoneだと見抜いたよ

● ネタ2– 音楽を話す、ターミナルの話

  ご注文は

  おすし

  ですか?

Page 27: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 27

お品書き

● ネタ1– ひと目で、尋常じゃないiPhoneだと見抜いたよ

● ネタ2– 音楽を話す、ターミナルの話

  ご注文は

  おすし

  ですか?

Page 28: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 28

ネタ1の仕入れ

Page 29: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 29

30秒後届く

Page 30: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 30

iPhone5(起動しないらしい

Page 31: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 31

リカバリ

Page 32: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 32

?!

Page 33: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 33

よくあるiPhoneの故障例

● 液晶割– 落として破損

● ボタン効かない– 耐久値の限界

● 完全に動かない– 水没死,バッテリ死

Page 34: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 34

今回の仕入れたネタ

● 明らかに読み込めてないデバイスのログ● NAND読み込めない?

ひと目で、尋常じゃないiPhoneだと見抜いたよ

Page 35: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 35

エラーでググる[NAND]_FindFlashMediaAndKeepout:601 physical nand block offset 1

Page 36: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 36

エラーでググる[NAND]_FindFlashMediaAndKeepout:601 physical nand block offset 1

30分くらいでクリティカルな情報にヒット

Page 37: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 37

WANTED

● フロントパネルのパーツ

● こいつを交換すると治るらしい

Page 38: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 38

オーナーからの依頼

● 中のデータ消したいから初期化したい– 煮ても焼いてもいいよとのこと

Page 39: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 39

修理の方針

● ハードウェアをFix– 交換用のパーツがない

● ソフトウェアをFix– スキルがない

● 修理開始 2014/05/25(Sun) 02:00– Kernel/VMまで時間がない

      _____      /∧_∧ \    ./  < ・∀・)、 `、<まじヤバイ!   / /\ \つ  つ、ヽ   | |  ,\ \ ノ  | |   ヽヽ  レ \ \フ / /    \[ヤバイ禁止]' /     ヽ、 ____,, /        ||        || 

Page 40: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 40

ところで

● Mac特有の起動時の死に画面

Page 41: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 41

ドゥーン(絶望の音)

● Macのジャンクを弄る人なら何度でも聞いた● エラーログがだらだら出る● 再起動

Page 42: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 42

俺にトラウマを残したこれらの画面

● Mac < ドゥーン (トラウマになる音● 起動しない (何度やってもだめ

Page 43: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 43

これらの修理経験

● iMac [Kernel Panic]– HDDの死亡 ⇒ 摘出– メモリの死亡 ⇒ 摘出

● MacBookAir [突然死]– バッテリの死亡 ⇒ 摘出– キーボードのチャタリング ⇒ 摘出

Page 44: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 44

以前の修理経験

● iMac [Kernel Panic]– HDDの死亡 ⇒ 摘出– メモリの死亡 ⇒ 摘出

● MacBookAir [突然死]– バッテリの死亡 ⇒ 摘出– キーボードのチャタリング ⇒ 摘出

全て解決

Page 45: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 45

今回,これ似ているな?

Page 46: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 46

時間もないし

Page 47: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 47

これを

Page 48: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 48

こうして

Page 49: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 49

こうじゃ

Page 50: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 50

こんにちは

Page 51: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 51

こんにちは

動いた!(初期化できた

Page 52: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 52

('ω' )✌ 三✌('ω')✌三( 'ω')✌  

嬉 し い!

Page 53: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 53

考察

● iMacもMacBookAirも摘出して動く– 不自由な制約があるが,不自由なHWではない

● そもそもiOSは組み込みOSではない– NUCが動いている– 携帯ももはや小さなPCと捉える

Page 54: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 54

お品書き

● ネタ1– ひと目で、尋常じゃないiPhoneだと見抜いたよ

● ネタ2– 音楽を話す、ターミナルの話

  ご注文は

  おすし

  ですか?

Page 55: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 55

Terminalが歌ってくれたら

Page 56: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 56

嬉しい

Page 57: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 57

みんな大好き

Page 58: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 58

$ sudo echo $'\a'

Page 59: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 59

$ sudo echo $'\a'

Page 60: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 60

$ sudo echo $'\a'

ピッ

Page 61: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 61

$ sudo echo $'\a'

● ピッ● 制御文字

– BEL– '\a' , '\7'

Page 62: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 62

PCの歴史が生んだ文化の極みだよ

Page 63: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 63

更には$ emerge -s beep

* app-misc/beep Latest version available: 1.2.2-r1 Latest version installed: 1.2.2-r1 Size of files: 18 kB Homepage: http://www.johnath.com/beep/ Description: The advanced PC speaker beeper License: GPL-2

Page 64: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 64

beep $ beep --helpUsage:beep [-f freq] [-l length] [-r reps] [-d delay][-D delay] [-s] [-c]beep [Options...] [-n] [--new] [Options...] ... beep [-h] [--help]beep [-v] [-V] [--version]

Page 65: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 65

beep

● 音程や音の長さが調整可能

$ beep --helpUsage:beep [-f freq] [-l length] [-r reps] [-d delay][-D delay] [-s] [-c]beep [Options...] [-n] [--new] [Options...] ... beep [-h] [--help]beep [-v] [-V] [--version]

Page 66: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 66

みんな,やったbeep音楽

● モールス信号とかもできる● 曲も書ける

– Twincle.sh● beep -f $C5 -l $b4th

● ドー♪● Terminalが歌い始める

Page 67: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 67

でも

Page 68: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 68

Shでやるなら

Page 69: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 69

$ mplayer -loop 0 twincle.mp3

Page 70: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 70

$ mplayer -loop 0 twincle.mp3

Page 71: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 71

<(。ε゜)>ENJOY 永遠に楽しめる

Page 72: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 72

それに....

Page 73: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 73

俺 ⇒ shell ⇒ コマンド ⇒ Terminal

Page 74: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 74

俺 ⇒ shell ⇒ コマンド ⇒ Terminal

何か違う

Page 75: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 75

俺 ⇒ shell ⇒ コマンド ⇒ Terminal

祖父↑ ↓父 お前↑俺

Page 76: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 76

俺 ⇒ shell ⇒ コマンド ⇒ Terminal

祖父↑ ↓父 お前↑俺

遠いな…?

Page 77: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 77

俺 ⇒ Terminal

Page 78: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 78

俺 ⇒ Terminal

俺→お前

Page 79: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 79

俺 ⇒ Terminal

俺→お前

で歌ってほしい

Page 80: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 80

どうやって実装されてるの?$ emerge -s beep

* app-misc/beep Latest version available: 1.2.2-r1 Latest version installed: 1.2.2-r1 Size of files: 18 kB Homepage: http://www.johnath.com/beep/ Description: The advanced PC speaker beeper License: GPL-2

Page 81: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 81

どうやって実装されてるの?$ emerge -s beep

* app-misc/beep Latest version available: 1.2.2-r1 Latest version installed: 1.2.2-r1 Size of files: 18 kB Homepage: http://www.johnath.com/beep/ Description: The advanced PC speaker beeper License: GPL-2

Page 82: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 82

どうやって実装されてるの?$ emerge -s beep

* app-misc/beep Latest version available: 1.2.2-r1 Latest version installed: 1.2.2-r1 Size of files: 18 kB Homepage: http://www.johnath.com/beep/ Description: The advanced PC speaker beeper License: GPL-2

Page 83: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 83

beepのコードを読む

Page 84: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 84

勘所

● ヘッダ– fcntl.h, linux/kd.h

● 関数– console_fd, open, close, ioctl, usleep

● 定数– CLOCK_TICK_RATE, O_WRONLY, KIOCSOUND

Page 85: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 85

Page 86: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 86

$ emacs beep.c$ gcc beep.c$ sudo ./a.out

Page 87: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 87

ピッ

Page 88: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 88

Page 89: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 89

(n' '∀)η キタワァ !!

Page 90: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 90

俺 ⇒ Terminal

Page 91: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 91

あとは....

Page 92: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 92

$ vim beep.c$ vim score.h$ vim score.c

$ gcc beep.c score.c$ sudo ./a.out 3

Page 93: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 93

Terminalが僕に歌ってくれる!!!

● 打ち込んだ曲– ごちうさOP 722音 (今朝作成– チューリップの花 46音 (昨夜作成– らららコッペパン 318音 (昨夜完成– まっしろワールド 712音 (今朝完成

Page 94: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 94

俺とTerminal

● また一つ仲良くなれた♥

以上です

Page 95: 2014年5月25日kernel vm発表資料sushi514

2014/05/25(Sun) 第十回 カーネル/VM探検隊 - 95

参考サイト● iPhoneの修理で参考にしたサイト

– http://platinumrepairs.co.za/weird-code-on-iphone-screen/

● XNUについてはWikipediaで確認しました

– http://ja.wikipedia.org/wiki/XNU

● 神サイト.beepのソース有

– http://www.johnath.com/beep/