comparison seminar/seminar2013/0730.html @ 3:fea44bb81877 default tip

many change
author taiki
date Tue, 10 Dec 2013 15:31:33 +0900
parents
children
comparison
equal deleted inserted replaced
2:7f4128b2369a 3:fea44bb81877
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 <h3>現状</h3>
69 <img src="images/flowchart.png">
70 </article>
71 </slide>
72
73 <slide>
74 <hgroup>
75 <h2>ELILO</h2>
76 </hgroup>
77
78 <article>
79 <h3>目標</h3>
80 <ul>
81 <li>Page Table を初期化</li>
82 <li>一度 Paging を disable </li>
83 <li>CR3 レジスタに初期化した Page Table を登録</li>
84 <li>再度 Paging を enable</li>
85 </ul>
86 <h4>目標 [EFI version]</h4>
87 <ul>
88 <li>memmap を設定</li>
89 <li>新しく仮想メモリ用に memmap を作る</li>
90 <li>irq をセーブして、pgd を作る[TLB をフラッシュ]</li>
91 <li>UEFI API SetVirtualAddressMap を call</li>
92 <li>pgd を登録して、irq をリストア[TLB をフラッシュ]</li>
93 </ul>
94 <h3>どちらかの方法で、ELILO 内に Page table を作る</h3>
95 </article>
96 </slide>
97
98
99 <slide>
100 <hgroup>
101 <h2>Page Table を登録する方法</h2>
102 </hgroup>
103 <article>
104 <h3>Intel のマニュアルを参照</h3>
105 <img src="images/entire_cr3_setup.png">
106 </article>
107 </slide>
108
109 <slide>
110 <hgroup>
111 <h2>Page Table を登録する方法</h2>
112 </hgroup>
113 <article>
114 <h3>Intel のマニュアルを参照</h3>
115 <ul>
116 <li>segment descriptor CS の L ビット をクリアして、64 bit mode から compatibility mode へ</li>
117 <li>CR0.PG をクリアして Paging を disable</li>
118 <li>CR3 に、初期化したページテーブルのアドレスを入れる</li>
119 <li>CR0.PG に 1 をセットして Paging を enable する</li>
120 <li>64 bit mode に戻す</li>
121 <ul>
122 </article>
123 </slide>
124
125 <slide>
126 <hgroup>
127 <h2>Page Table を登録する方法</h2>
128 </hgroup>
129 <article>
130 <h3>UEFI のマニュアルを参照</h3>
131 <ul>
132 <li>……っていうのを、SetVirtualAddressMap() がやってくれるんじゃないか</li>
133 <li>つまり、EFI用の Memory map を設定すれば、仮想メモリが作れるんじゃ?</li>
134 <ul>
135 </article>
136 </slide>
137
138 <slide>
139 <hgroup>
140 <h2>今週すること</h2>
141 </hgroup>
142 <article>
143 <ul>
144 <li>以上の2つを試す</li>
145 <ul>
146 </article>
147 </slide>
148
149
150
151 <slide class="backdrop"></slide>
152
153 </slides>
154
155 <script>
156 var _gaq = _gaq || [];
157 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
158 _gaq.push(['_trackPageview']);
159
160 (function() {
161 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
162 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
163 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
164 })();
165 </script>
166
167 <!--[if IE]>
168 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
169 <script>CFInstall.check({mode: 'overlay'});</script>
170 <![endif]-->
171 </body>
172 </html>