annotate seminar/seminar2013/1008.html @ 3:fea44bb81877 default tip

many change
author taiki
date Tue, 10 Dec 2013 15:31:33 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
fea44bb81877 many change
taiki
parents:
diff changeset
1 <!--
fea44bb81877 many change
taiki
parents:
diff changeset
2 Google IO 2012 HTML5 Slide Template
fea44bb81877 many change
taiki
parents:
diff changeset
3
fea44bb81877 many change
taiki
parents:
diff changeset
4 Authors: Eric Bidelman <ebidel@gmail.com>
fea44bb81877 many change
taiki
parents:
diff changeset
5 Luke Mahé <lukem@google.com>
fea44bb81877 many change
taiki
parents:
diff changeset
6
fea44bb81877 many change
taiki
parents:
diff changeset
7 URL: https://code.google.com/p/io-2012-slides
fea44bb81877 many change
taiki
parents:
diff changeset
8 -->
fea44bb81877 many change
taiki
parents:
diff changeset
9 <!DOCTYPE html>
fea44bb81877 many change
taiki
parents:
diff changeset
10 <html>
fea44bb81877 many change
taiki
parents:
diff changeset
11 <head>
fea44bb81877 many change
taiki
parents:
diff changeset
12 <title>Presentation</title>
fea44bb81877 many change
taiki
parents:
diff changeset
13 <meta charset="utf-8">
fea44bb81877 many change
taiki
parents:
diff changeset
14 <meta http-equiv="X-UA-Compatible" content="chrome=1">
fea44bb81877 many change
taiki
parents:
diff changeset
15 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">-->
fea44bb81877 many change
taiki
parents:
diff changeset
16 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">-->
fea44bb81877 many change
taiki
parents:
diff changeset
17 <!--This one seems to work all the time, but really small on ipad-->
fea44bb81877 many change
taiki
parents:
diff changeset
18 <!--<meta name="viewport" content="initial-scale=0.4">-->
fea44bb81877 many change
taiki
parents:
diff changeset
19 <meta name="apple-mobile-web-app-capable" content="yes">
fea44bb81877 many change
taiki
parents:
diff changeset
20 <link rel="stylesheet" media="all" href="css/default.css">
fea44bb81877 many change
taiki
parents:
diff changeset
21 <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="../io2012slides/theme/css/phone.css">
fea44bb81877 many change
taiki
parents:
diff changeset
22 <base target="_blank"> <!-- This amazingness opens all links in a new tab. -->
fea44bb81877 many change
taiki
parents:
diff changeset
23 <script data-main="../io2012slides/js/slides" src="../io2012slides/js/require-1.0.8.min.js"></script>
fea44bb81877 many change
taiki
parents:
diff changeset
24 </head>
fea44bb81877 many change
taiki
parents:
diff changeset
25 <body style="opacity: 0">
fea44bb81877 many change
taiki
parents:
diff changeset
26
fea44bb81877 many change
taiki
parents:
diff changeset
27 <slides class="layout-widescreen">
fea44bb81877 many change
taiki
parents:
diff changeset
28
fea44bb81877 many change
taiki
parents:
diff changeset
29 <!--
fea44bb81877 many change
taiki
parents:
diff changeset
30 <slide class="logoslide nobackground">
fea44bb81877 many change
taiki
parents:
diff changeset
31 <article class="flexbox vcenter">
fea44bb81877 many change
taiki
parents:
diff changeset
32 <span><img src="../io2012slides/images/google_developers_logo.png"></span>
fea44bb81877 many change
taiki
parents:
diff changeset
33 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
34 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
35 -->
fea44bb81877 many change
taiki
parents:
diff changeset
36
fea44bb81877 many change
taiki
parents:
diff changeset
37 <slide class="title-slide segue nobackground">
fea44bb81877 many change
taiki
parents:
diff changeset
38 <aside class="gdbar"><img src="../images/concurrent.png"></aside>
fea44bb81877 many change
taiki
parents:
diff changeset
39 <!-- The content of this hgroup is replaced programmatically through the slide_config.json. -->
fea44bb81877 many change
taiki
parents:
diff changeset
40 <hgroup class="auto-fadein">
fea44bb81877 many change
taiki
parents:
diff changeset
41 <h1 data-config-title><!-- populated from slide_config.json --></h1>
fea44bb81877 many change
taiki
parents:
diff changeset
42 <h2 data-config-subtitle><!-- populated from slide_config.json --></h2>
fea44bb81877 many change
taiki
parents:
diff changeset
43 <p data-config-presenter><!-- populated from slide_config.json --></p>
fea44bb81877 many change
taiki
parents:
diff changeset
44 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
45 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
46
fea44bb81877 many change
taiki
parents:
diff changeset
47 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
48 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
49 <h2>研究目的</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
50 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
51 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
52 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
53 <li>ブートが高速で、コンパクトなカーネルを実装する。</li>
fea44bb81877 many change
taiki
parents:
diff changeset
54 <li>Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。</li>
fea44bb81877 many change
taiki
parents:
diff changeset
55 <li>上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。</li>
fea44bb81877 many change
taiki
parents:
diff changeset
56 <li>モデル検証に対応し、エラー予測を可能にする</li>
fea44bb81877 many change
taiki
parents:
diff changeset
57 <li>カーネルパニックをなくす</li>
fea44bb81877 many change
taiki
parents:
diff changeset
58 <li>Mach-O を ELILO でロードし、64bit で動作可能にする</li>
fea44bb81877 many change
taiki
parents:
diff changeset
59 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
60 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
61 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
62
fea44bb81877 many change
taiki
parents:
diff changeset
63 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
64 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
65 <h2>ELILO</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
66 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
67 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
68 <h3>現状</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
69 <img src="images/flowchart.png">
fea44bb81877 many change
taiki
parents:
diff changeset
70 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
71 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
72
fea44bb81877 many change
taiki
parents:
diff changeset
73 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
74 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
75 <h2>ELILO</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
76 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
77
fea44bb81877 many change
taiki
parents:
diff changeset
78 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
79 <h3>目標</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
80 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
81 <li>Page Table を初期化</li>
fea44bb81877 many change
taiki
parents:
diff changeset
82 <li>一度 Paging を disable </li>
fea44bb81877 many change
taiki
parents:
diff changeset
83 <li>CR3 レジスタに初期化した Page Table を登録</li>
fea44bb81877 many change
taiki
parents:
diff changeset
84 <li>再度 Paging を enable</li>
fea44bb81877 many change
taiki
parents:
diff changeset
85 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
86 <h4>目標 [EFI version]</h4>
fea44bb81877 many change
taiki
parents:
diff changeset
87 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
88 <li>memmap を設定</li>
fea44bb81877 many change
taiki
parents:
diff changeset
89 <li>新しく仮想メモリ用に memmap を作る</li>
fea44bb81877 many change
taiki
parents:
diff changeset
90 <li>irq をセーブして、pgd を作る[TLB をフラッシュ]</li>
fea44bb81877 many change
taiki
parents:
diff changeset
91 <li>UEFI API SetVirtualAddressMap を call</li>
fea44bb81877 many change
taiki
parents:
diff changeset
92 <li>pgd を登録して、irq をリストア[TLB をフラッシュ]</li>
fea44bb81877 many change
taiki
parents:
diff changeset
93 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
94 <h3>どちらかの方法で、ELILO 内に Page table を作る</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
95 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
96 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
97
fea44bb81877 many change
taiki
parents:
diff changeset
98
fea44bb81877 many change
taiki
parents:
diff changeset
99 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
100 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
101 <h2>ELILO</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
102 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
103 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
104 <h3>ExitBootService の前後の接続</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
105 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
106 <li>ExitBootService 後に、 uefi_call_wrapper(RT-&gt;SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)</li>
fea44bb81877 many change
taiki
parents:
diff changeset
107 <li>Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい</li>
fea44bb81877 many change
taiki
parents:
diff changeset
108 <li>そのまま入れたらマシンが落ちる</li>
fea44bb81877 many change
taiki
parents:
diff changeset
109 <li>下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている</li>
fea44bb81877 many change
taiki
parents:
diff changeset
110 <li>EFI_BOOT_SERVICES_CODE</li>
fea44bb81877 many change
taiki
parents:
diff changeset
111 <li>EFI_BOOT_SERVICES_DATA</li>
fea44bb81877 many change
taiki
parents:
diff changeset
112 <li>この辺りを使用して、VirtualAddressMap を生成する必要がある</li>
fea44bb81877 many change
taiki
parents:
diff changeset
113 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
114 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
115 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
116
fea44bb81877 many change
taiki
parents:
diff changeset
117 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
118 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
119 <h2>Vagrant KVM</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
120 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
121 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
122 <h3>Bldsv09</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
123 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
124 <li>ExitBootService 後に、 uefi_call_wrapper(RT-&gt;SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)</li>
fea44bb81877 many change
taiki
parents:
diff changeset
125 <li>Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい</li>
fea44bb81877 many change
taiki
parents:
diff changeset
126 <li>そのまま入れたらマシンが落ちる</li>
fea44bb81877 many change
taiki
parents:
diff changeset
127 <li>下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている</li>
fea44bb81877 many change
taiki
parents:
diff changeset
128 <li>EFI_BOOT_SERVICES_CODE</li>
fea44bb81877 many change
taiki
parents:
diff changeset
129 <li>EFI_BOOT_SERVICES_DATA</li>
fea44bb81877 many change
taiki
parents:
diff changeset
130 <li>この辺りを使用して、VirtualAddressMap を生成する必要がある</li>
fea44bb81877 many change
taiki
parents:
diff changeset
131 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
132 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
133 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
134
fea44bb81877 many change
taiki
parents:
diff changeset
135 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
136 <hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
137 <h2>TLB</h2>
fea44bb81877 many change
taiki
parents:
diff changeset
138 </hgroup>
fea44bb81877 many change
taiki
parents:
diff changeset
139 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
140 <h3>Linux kernel では</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
141 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
142 <li>アセンブラで呼び出し</li>
fea44bb81877 many change
taiki
parents:
diff changeset
143 <li>hypervisor call を経て、割り込み扱い、int 命令で呼び出す</li>
fea44bb81877 many change
taiki
parents:
diff changeset
144 <li>必要なら SetVirtualAddressMap の前後に tlb flush を実装しないといけない</li>
fea44bb81877 many change
taiki
parents:
diff changeset
145 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
146 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
147 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
148
fea44bb81877 many change
taiki
parents:
diff changeset
149 <slide>
fea44bb81877 many change
taiki
parents:
diff changeset
150 <article>
fea44bb81877 many change
taiki
parents:
diff changeset
151 <h3>Vagrant の問題</h3>
fea44bb81877 many change
taiki
parents:
diff changeset
152 <ul>
fea44bb81877 many change
taiki
parents:
diff changeset
153 <li>Vagraint の開発者が作成したツール Packer を使用して、Fedora19 を Vagrant で起動できる形式にする</li>
fea44bb81877 many change
taiki
parents:
diff changeset
154 <li>Chef で環境/構成を設定</li>
fea44bb81877 many change
taiki
parents:
diff changeset
155 <li>構成はどうしよう</li>
fea44bb81877 many change
taiki
parents:
diff changeset
156 <li>Vagrant で起動し、それに ssh 接続ができることを明示</li>
fea44bb81877 many change
taiki
parents:
diff changeset
157 </ul>
fea44bb81877 many change
taiki
parents:
diff changeset
158 </article>
fea44bb81877 many change
taiki
parents:
diff changeset
159 </slide>
fea44bb81877 many change
taiki
parents:
diff changeset
160
fea44bb81877 many change
taiki
parents:
diff changeset
161 <slide class="backdrop"></slide>
fea44bb81877 many change
taiki
parents:
diff changeset
162
fea44bb81877 many change
taiki
parents:
diff changeset
163 </slides>
fea44bb81877 many change
taiki
parents:
diff changeset
164
fea44bb81877 many change
taiki
parents:
diff changeset
165 <script>
fea44bb81877 many change
taiki
parents:
diff changeset
166 var _gaq = _gaq || [];
fea44bb81877 many change
taiki
parents:
diff changeset
167 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
fea44bb81877 many change
taiki
parents:
diff changeset
168 _gaq.push(['_trackPageview']);
fea44bb81877 many change
taiki
parents:
diff changeset
169
fea44bb81877 many change
taiki
parents:
diff changeset
170 (function() {
fea44bb81877 many change
taiki
parents:
diff changeset
171 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
fea44bb81877 many change
taiki
parents:
diff changeset
172 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
fea44bb81877 many change
taiki
parents:
diff changeset
173 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
fea44bb81877 many change
taiki
parents:
diff changeset
174 })();
fea44bb81877 many change
taiki
parents:
diff changeset
175 </script>
fea44bb81877 many change
taiki
parents:
diff changeset
176
fea44bb81877 many change
taiki
parents:
diff changeset
177 <!--[if IE]>
fea44bb81877 many change
taiki
parents:
diff changeset
178 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
fea44bb81877 many change
taiki
parents:
diff changeset
179 <script>CFInstall.check({mode: 'overlay'});</script>
fea44bb81877 many change
taiki
parents:
diff changeset
180 <![endif]-->
fea44bb81877 many change
taiki
parents:
diff changeset
181 </body>
fea44bb81877 many change
taiki
parents:
diff changeset
182 </html>