3
|
1 <!--
|
|
2 Google IO 2012 HTML5 Slide Template
|
|
3
|
|
4 Authors: Eric Bidelman <ebidel@gmail.com>
|
|
5 Luke Mahé <lukem@google.com>
|
|
6
|
|
7 URL: https://code.google.com/p/io-2012-slides
|
|
8 -->
|
|
9 <!DOCTYPE html>
|
|
10 <html>
|
|
11 <head>
|
|
12 <title>Presentation</title>
|
|
13 <meta charset="utf-8">
|
|
14 <meta http-equiv="X-UA-Compatible" content="chrome=1">
|
|
15 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">-->
|
|
16 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">-->
|
|
17 <!--This one seems to work all the time, but really small on ipad-->
|
|
18 <!--<meta name="viewport" content="initial-scale=0.4">-->
|
|
19 <meta name="apple-mobile-web-app-capable" content="yes">
|
|
20 <link rel="stylesheet" media="all" href="css/default.css">
|
|
21 <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="../io2012slides/theme/css/phone.css">
|
|
22 <base target="_blank"> <!-- This amazingness opens all links in a new tab. -->
|
|
23 <script data-main="../io2012slides/js/slides" src="../io2012slides/js/require-1.0.8.min.js"></script>
|
|
24 </head>
|
|
25 <body style="opacity: 0">
|
|
26
|
|
27 <slides class="layout-widescreen">
|
|
28
|
|
29 <!--
|
|
30 <slide class="logoslide nobackground">
|
|
31 <article class="flexbox vcenter">
|
|
32 <span><img src="../io2012slides/images/google_developers_logo.png"></span>
|
|
33 </article>
|
|
34 </slide>
|
|
35 -->
|
|
36
|
|
37 <slide class="title-slide segue nobackground">
|
|
38 <aside class="gdbar"><img src="../images/concurrent.png"></aside>
|
|
39 <!-- The content of this hgroup is replaced programmatically through the slide_config.json. -->
|
|
40 <hgroup class="auto-fadein">
|
|
41 <h1 data-config-title><!-- populated from slide_config.json --></h1>
|
|
42 <h2 data-config-subtitle><!-- populated from slide_config.json --></h2>
|
|
43 <p data-config-presenter><!-- populated from slide_config.json --></p>
|
|
44 </hgroup>
|
|
45 </slide>
|
|
46
|
|
47 <slide>
|
|
48 <hgroup>
|
|
49 <h2>研究目的</h2>
|
|
50 </hgroup>
|
|
51 <article>
|
|
52 <ul>
|
|
53 <li>動作が軽く、落ちにくいカーネルを実装する</li>
|
|
54 <li>ブートが最速で、コンパクトなカーネルを実装する</li>
|
|
55 <li>Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する</li>
|
|
56 </ul>
|
|
57 </article>
|
|
58 </slide>
|
|
59
|
|
60 <slide>
|
|
61 <hgroup>
|
|
62 <h2>今週の作業</h2>
|
|
63 </hgroup>
|
|
64 <article>
|
|
65 <ul>
|
|
66 <li>Linux 3.8.9 を読む</li>
|
|
67 <li>メモリ初期化のデバッグ</li>
|
|
68 </ul>
|
|
69 </article>
|
|
70 </slide>
|
|
71
|
|
72 <slide>
|
|
73 <hgroup>
|
|
74 <h2>ELILO</h2>
|
|
75 </hgroup>
|
|
76 <article>
|
|
77 <h3>ELILO の中でのカーネル、という方針</h3>
|
|
78 <p>「ELILOアプリケーションの中」だったら ExitBootServices を実行しないで書くべき</p>
|
|
79 <ol>
|
|
80 <li>GDT/LDT を設定</li>
|
|
81 <li>別セグメントに飛ぶ</li>
|
|
82 <li>メモリの初期化</li>
|
|
83 <li>Call Gate と TSS</li>
|
|
84 <li>CPL (current privilege level)</li>
|
|
85 <li>64 bit mode(32bit と互換性なし)/compatibility mode</li>
|
|
86 </ol>
|
|
87 </article>
|
|
88 </slide>
|
|
89
|
|
90 <slide>
|
|
91 <hgroup>
|
|
92 <h2>エラーメッセージ</h2>
|
|
93 </hgroup>
|
|
94 <article>
|
|
95 <h3>cr0 の PE bit を無効にした時</h3>
|
|
96 <img src='images/err_message01.png'>
|
|
97 <h3>cr3 に値を入れた時</h3>
|
|
98 <img src='images/err_message02.png'>
|
|
99 </article>
|
|
100 </slide>
|
|
101
|
|
102 <slide>
|
|
103 <hgroup>
|
|
104 <h2>Fedora Linux</h2>
|
|
105 </hgroup>
|
|
106 <article>
|
|
107 <ul>
|
|
108 <li>Linux kernel 3.8.9</li>
|
|
109 <li>EFI 経由の GRUB2 で動いている</li>
|
|
110 <li>gdb で追いながら追っている途中</li>
|
|
111 </ul>
|
|
112 </article>
|
|
113 </slide>
|
|
114
|
|
115 <slide>
|
|
116 <hgroup>
|
|
117 <h2>PostgreSQL</h2>
|
|
118 </hgroup>
|
|
119 <article>
|
|
120 <h3>手順</h3>
|
|
121 <ol>
|
|
122 <li>./initdb -D $PGDATA<br>
|
|
123 データベースの初期化<li>
|
|
124 <li>./pg_ctl -D $PGDATA -l [logfile_name] start<br>
|
|
125 PostgreSQL の起動<li>
|
|
126 <li>./psql user<br>
|
|
127 対話プロンプトが開く<li>
|
|
128 <li>
|
|
129 ps -ef | grep postgres<br>
|
|
130 PostgreSQL のプロセスを探し出す<li>
|
|
131 <li>gdb $DIR/bin/postgres [process number]<br>
|
|
132 で読む<li>
|
|
133 </ol>
|
|
134 </article>
|
|
135 </slide>
|
|
136
|
|
137 <slide>
|
|
138 <hgroup>
|
|
139 <h2>これからやること</h2>
|
|
140 </hgroup>
|
|
141 <article>
|
|
142 <ul>
|
|
143 <li>引き続き Paging の設定</li>
|
|
144 <li>うまくいったら User/特権 mode の切り替え</li>
|
|
145 </ul>
|
|
146 </article>
|
|
147 </slide>
|
|
148
|
|
149 <slide>
|
|
150 <hgroup>
|
|
151 <h2>Code Slide (with Subtitle Placeholder)</h2>
|
|
152 </hgroup>
|
|
153 <article>
|
|
154 <p>Press 'h' to highlight important sections of code (wrapped in <code><b></code>).</p>
|
|
155 <pre class="prettyprint" data-lang="javascript">
|
|
156 <script type='text/javascript'>
|
|
157 // Say hello world until the user starts questioning
|
|
158 // the meaningfulness of their existence.
|
|
159 function helloWorld(world) {
|
|
160 <b>for (var i = 42; --i >= 0;) {
|
|
161 alert('Hello ' + String(world));
|
|
162 }</b>
|
|
163 }
|
|
164 </script>
|
|
165 </pre>
|
|
166 </article>
|
|
167 </slide>
|
|
168
|
|
169 <slide>
|
|
170 <hgroup>
|
|
171 <h2>Code Slide (Smaller Font)</h2>
|
|
172 </hgroup>
|
|
173 <article class="smaller">
|
|
174 <pre class="prettyprint" data-lang="javascript">
|
|
175 // Say hello world until the user starts questioning
|
|
176 // the meaningfulness of their existence.
|
|
177 function helloWorld(world) {
|
|
178 for (var i = 42; --i >= 0;) {
|
|
179 alert('Hello ' + String(world));
|
|
180 }
|
|
181 }
|
|
182 </pre>
|
|
183 <pre class="prettyprint" data-lang="css">
|
|
184 <style>
|
|
185 p { color: pink }
|
|
186 b { color: blue }
|
|
187 </style>
|
|
188 </pre>
|
|
189 <pre class="prettyprint" data-lang="html">
|
|
190 <!DOCTYPE html>
|
|
191 <html>
|
|
192 <head>
|
|
193 <title>My Awesome Page</title>
|
|
194 </head>
|
|
195 <body>
|
|
196 <p>Hello world</p>
|
|
197 <body>
|
|
198 </html>
|
|
199 </pre>
|
|
200 </article>
|
|
201 </slide>
|
|
202
|
|
203 <slide>
|
|
204 <aside class="note">
|
|
205 <section>
|
|
206 <ul>
|
|
207 <li>Point I wanted to make #1</li>
|
|
208 <li>Point I wanted to make #2</li>
|
|
209 <li>Point I wanted to make #3</li>
|
|
210 <li>Example <a href="#">link</a> in notes.</li>
|
|
211 </ul>
|
|
212 <p><b>Remember to say this tag line!</b></p>
|
|
213 </section>
|
|
214 </aside>
|
|
215 <hgroup>
|
|
216 <h2>Slide with Speaker Notes</h2>
|
|
217 </hgroup>
|
|
218 <article>
|
|
219 <p>Press 'p' to toggle speaker notes.</p>
|
|
220 </article>
|
|
221 </slide>
|
|
222
|
|
223 <slide>
|
|
224 <aside class="note">
|
|
225 <section>
|
|
226 <ul>
|
|
227 <li>See this amazing link: <a href="http://www.google.com">link</a>.</li>
|
|
228 </ul>
|
|
229 <p><b>Remember to say this tag line!</b></p>
|
|
230 </section>
|
|
231 </aside>
|
|
232 <hgroup>
|
|
233 <h2>Presenter Mode</h2>
|
|
234 </hgroup>
|
|
235 <article>
|
|
236 <p>Add <code><a href="?presentme=true" target="_self">?presentme=true</a></code> to the URL to enabled presenter mode.
|
|
237 This setting is sticky, meaning refreshing the page will persist presenter
|
|
238 mode.</p>
|
|
239 <p>Hit <code><a href="?presentme=false" target="_self">?presentme=false</a></code> to disable presenter mode.</p>
|
|
240 </article>
|
|
241 </slide>
|
|
242
|
|
243 <slide>
|
|
244 <hgroup>
|
|
245 <h2>Slide with Image</h2>
|
|
246 </hgroup>
|
|
247 <article>
|
|
248 <img src="../io2012slides/images/chart.png" class="reflect" alt="Description" title="Description">
|
|
249 <footer class="source">source: place source info here</footer>
|
|
250 </article>
|
|
251 </slide>
|
|
252
|
|
253 <slide>
|
|
254 <hgroup>
|
|
255 <h2>Slide with Image (Centered horz/vert)</h2>
|
|
256 </hgroup>
|
|
257 <article class="flexbox vcenter">
|
|
258 <img src="../io2012slides/images/barchart.png" alt="Description" title="Description">
|
|
259 <footer class="source">source: place source info here</footer>
|
|
260 </article>
|
|
261 </slide>
|
|
262
|
|
263 <slide>
|
|
264 <hgroup>
|
|
265 <h2>Table Option A</h2>
|
|
266 <h3>Subtitle Placeholder</h3>
|
|
267 </hgroup>
|
|
268 <article>
|
|
269 <table>
|
|
270 <tr>
|
|
271 <th></th><th>Column 1</th><th>Column 2</th><th>Column 3</th><th>Column 4</th>
|
|
272 </tr>
|
|
273 <tr>
|
|
274 <td>Row 1</td><td>placeholder</td><td class="highlight">placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
275 </tr>
|
|
276 <tr>
|
|
277 <td>Row 2</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
278 </tr>
|
|
279 <tr>
|
|
280 <td>Row 3</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
281 </tr>
|
|
282 <tr>
|
|
283 <td>Row 4</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
284 </tr>
|
|
285 <tr>
|
|
286 <td>Row 5</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
287 </tr>
|
|
288 </table>
|
|
289 </article>
|
|
290 </slide>
|
|
291
|
|
292 <slide>
|
|
293 <hgroup>
|
|
294 <h2>Table Option A (Smaller Text)</h2>
|
|
295 <h3>Subtitle Placeholder</h3>
|
|
296 </hgroup>
|
|
297 <article class="smaller">
|
|
298 <table>
|
|
299 <tr>
|
|
300 <th></th><th>Column 1</th><th>Column 2</th><th>Column 3</th><th>Column 4</th>
|
|
301 </tr>
|
|
302 <tr>
|
|
303 <td>Row 1</td><td>placeholder</td><td class="highlight">placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
304 </tr>
|
|
305 <tr>
|
|
306 <td>Row 2</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
307 </tr>
|
|
308 <tr>
|
|
309 <td>Row 3</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
310 </tr>
|
|
311 <tr>
|
|
312 <td>Row 4</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
313 </tr>
|
|
314 <tr>
|
|
315 <td>Row 5</td><td>placeholder</td><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
316 </tr>
|
|
317 </table>
|
|
318 </article>
|
|
319 </slide>
|
|
320
|
|
321 <slide>
|
|
322 <hgroup>
|
|
323 <h2>Table Option B</h2>
|
|
324 <h3>Subtitle Placeholder</h3>
|
|
325 </hgroup>
|
|
326 <article>
|
|
327 <table class="rows">
|
|
328 <tr>
|
|
329 <th>Header 1</th><td>placeholder</td><td class="highlight">placeholder</td><td>placeholder</td>
|
|
330 </tr>
|
|
331 <tr>
|
|
332 <th>Header 2</th><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
333 </tr>
|
|
334 <tr>
|
|
335 <th>Header 3</th><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
336 </tr>
|
|
337 <tr>
|
|
338 <th>Header 4</th><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
339 </tr>
|
|
340 <tr>
|
|
341 <th>Header 5</th><td>placeholder</td><td>placeholder</td><td>placeholder</td>
|
|
342 </tr>
|
|
343 </table>
|
|
344 </article>
|
|
345 </slide>
|
|
346
|
|
347 <slide>
|
|
348 <hgroup>
|
|
349 <h2>Slide Styles</h2>
|
|
350 </hgroup>
|
|
351 <article class="smaller">
|
|
352 <div class="columns-2">
|
|
353 <ul>
|
|
354 <li class="red">class="red"</li>
|
|
355 <li class="red2">class="red2"</li>
|
|
356 <li class="red3">class="red3"</li>
|
|
357 <li class="blue">class="blue"</li>
|
|
358 <li class="blue2">class="blue2"</li>
|
|
359 <li class="blue3">class="blue3"</li>
|
|
360 <li class="green">class="green"</li>
|
|
361 <li class="green2">class="green2"</li>
|
|
362 </ul>
|
|
363 <ul>
|
|
364 <li class="green3">class="green3"</li>
|
|
365 <li class="yellow">class="yellow"</li>
|
|
366 <li class="yellow2">class="yellow2"</li>
|
|
367 <li class="yellow3">class="yellow3"</li>
|
|
368 <li class="gray">class="gray"</li>
|
|
369 <li class="gray2">class="gray2"</li>
|
|
370 <li class="gray3">class="gray3"</li>
|
|
371 <li class="gray4">class="gray4"</li>
|
|
372 </ul>
|
|
373 </div>
|
|
374 <div class="centered" style="margin-top:2em">
|
|
375 I am centered text with a <button>Button</button> and <button disabled>Disabled</button> button.
|
|
376 </div>
|
|
377 </article>
|
|
378 </slide>
|
|
379
|
|
380 <slide class="segue dark nobackground">
|
|
381 <aside class="gdbar"><img src="../io2012slides/images/google_developers_icon_128.png"></aside>
|
|
382 <hgroup class="auto-fadein">
|
|
383 <h2>Segue Slide</h2>
|
|
384 <h3>Subtitle Placeholder</h3>
|
|
385 </hgroup>
|
|
386 </slide>
|
|
387
|
|
388 <slide class="fill nobackground" style="background-image: url(images/sky.jpg)">
|
|
389 <hgroup>
|
|
390 <h2 class="white">Full Image (with Optional Header)</h2>
|
|
391 </hgroup>
|
|
392 <footer class="source white">www.flickr.com/photos/25797459@N06/5438799763/</footer>
|
|
393 </slide>
|
|
394
|
|
395 <slide class="segue dark quote nobackground">
|
|
396 <aside class="gdbar right bottom"><img src="../io2012slides/images/google_developers_icon_128.png"></aside>
|
|
397 <article class="flexbox vleft auto-fadein">
|
|
398 <q>
|
|
399 This is an example of quote text.
|
|
400 </q>
|
|
401 <div class="author">
|
|
402 Name<br>
|
|
403 Company
|
|
404 </div>
|
|
405 </article>
|
|
406 </slide>
|
|
407
|
|
408 <slide>
|
|
409 <hgroup>
|
|
410 <h2>Slide with Iframe</h2>
|
|
411 </hgroup>
|
|
412 <article>
|
|
413 <iframe data-src="http://www.google.com/doodle4google/history.html"></iframe>
|
|
414 </article>
|
|
415 </slide>
|
|
416
|
|
417 <slide>
|
|
418 <article>
|
|
419 <iframe data-src="http://www.google.com/doodle4google/history.html"></iframe>
|
|
420 </article>
|
|
421 </slide>
|
|
422
|
|
423 <slide class="thank-you-slide segue nobackground">
|
|
424 <aside class="gdbar right"><img src="../io2012slides/images/google_developers_icon_128.png"></aside>
|
|
425 <article class="flexbox vleft auto-fadein">
|
|
426 <h2><Thank You!></h2>
|
|
427 <p>Important contact information goes here.</p>
|
|
428 </article>
|
|
429 <p class="auto-fadein" data-config-contact>
|
|
430 <!-- populated from slide_config.json -->
|
|
431 </p>
|
|
432 </slide>
|
|
433
|
|
434 <slide class="logoslide dark nobackground">
|
|
435 <article class="flexbox vcenter">
|
|
436 <span><img src="../io2012slides/images/google_developers_logo_white.png"></span>
|
|
437 </article>
|
|
438 </slide>
|
|
439
|
|
440 <slide class="backdrop"></slide>
|
|
441
|
|
442 </slides>
|
|
443
|
|
444 <script>
|
|
445 var _gaq = _gaq || [];
|
|
446 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
|
|
447 _gaq.push(['_trackPageview']);
|
|
448
|
|
449 (function() {
|
|
450 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
451 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
452 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
453 })();
|
|
454 </script>
|
|
455
|
|
456 <!--[if IE]>
|
|
457 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
|
|
458 <script>CFInstall.check({mode: 'overlay'});</script>
|
|
459 <![endif]-->
|
|
460 </body>
|
|
461 </html>
|