comparison seminar2013/0521.html @ 2:7f4128b2369a

update seminar slides
author taiki <taiki@cr.ie.u-ryukyu.ac.jp>
date Tue, 04 Jun 2013 17:15:27 +0900
parents
children
comparison
equal deleted inserted replaced
1:d3f740120b55 2:7f4128b2369a
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>Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。</li>
55 <li>上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。</li>
56 <li>モデル検証に対応し、エラー予測を可能にする</li>
57 <li>カーネルパニックをなくす</li>
58 <li>Mach-O を ELILO でロードし、64bit で動作可能にする</li>
59 </ul>
60 </article>
61 </slide>
62
63 <slide>
64 <hgroup>
65 <h2>ELILO のレジスタの状態</h2>
66 </hgroup>
67 <article>
68 <h4>CR0</h4>
69 <ul>
70 <li>PGbit ON : ページングが enable されている</li>
71 <li>PEbit ON : Protect mode (32 bit mode) が enable</li>
72 </ul>
73 <h4>CR4</h4>
74 <ul>
75 <li>PAEbit ON : ページングが 32bit 以上を使用</li>
76 <li>PSEbit ON : 32bit ページングでの 4Mbyte page を enable</li>
77 </ul>
78 <h4>CR3</h4>
79 <ul>
80 <li>Page directory base にアドレス</li>
81 </ul>
82 <h4>CS</h4>
83 <ul>
84 <li>GDT のセグメントの番号</li>
85 <li>requested privirege level は最大(全権限をもつ)</li>
86 </ul>
87 </article>
88 </slide>
89
90 <slide>
91 <hgroup>
92 <h2>ELILO のレジスタの状態[2]</h2>
93 </hgroup>
94 <article>
95 <h3>現在の状態</h3>
96 <ul>
97 <li>GDT は動いている</li>
98 <li>long mode(compatibility mode/64bit mode)</li>
99 <li>EFI の仕様でレジスタへの書き込みを許してないのではないか</li>
100 <li>4M byte のページテーブル</li>
101 <li>ページングは enable だが、EFI のマニュアルには physical address = virtual address とある</li>
102 </ul>
103 </article>
104 </slide>
105
106
107 <slide>
108 <hgroup>
109 <h2>ELILO で Mach-O するためにするべきこと</h2>
110 </hgroup>
111 <article>
112 <ul>
113 <li>ELILO は x86-64 ように bzImaze と plain loader を持っている</li>
114 <li>Mach-O 用ローダを追加</li>
115 <li>一度使用するローダを登録して、使用するか決める</li>
116 <li>登録したローダを使う</li>
117 </ul>
118 </article>
119 </slide>
120
121 <slide>
122 <hgroup>
123 </hgroup>
124 <article>
125 </article>
126 </slide>
127
128
129 <slide class="logoslide dark nobackground">
130 <article class="flexbox vcenter">
131 <span><img src="../io2012slides/images/google_developers_logo_white.png"></span>
132 </article>
133 </slide>
134
135 <slide class="backdrop"></slide>
136
137 </slides>
138
139 <script>
140 var _gaq = _gaq || [];
141 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
142 _gaq.push(['_trackPageview']);
143
144 (function() {
145 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
146 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
147 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
148 })();
149 </script>
150
151 <!--[if IE]>
152 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
153 <script>CFInstall.check({mode: 'overlay'});</script>
154 <![endif]-->
155 </body>
156 </html>