comparison codedb.html @ 0:977222ed78ab

first commit
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 14 Apr 2023 20:27:47 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:977222ed78ab
1 <html>
2 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
3 <head>
4 <STYLE type="text/css">
5 .main { width:100%; }
6 .side { top:0px; width:0%; position:fixed; left:80%; display:none}
7 </STYLE>
8 <script type="text/javascript">
9 function showElement(layer){
10 var myLayer = document.getElementById(layer);
11 var main = document.getElementById('mmm');
12 if(myLayer.style.display=="none"){
13 myLayer.style.width="20%";
14 main.style.width="80%";
15 myLayer.style.display="block";
16 myLayer.backgroundPosition="top";
17 } else {
18 myLayer.style.width="0%";
19 main.style.width="100%";
20 myLayer.style.display="none";
21 }
22 }
23 </script>
24 <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
25 <script type="text/javascript" id="MathJax-script" async
26 src="https://cdn.jsdelivr.net/npm/mathjax/es5/tex-chtml.js">
27 </script>
28 <title>Gears OS の Code Database</title>
29 </head>
30 <body>
31 <div class="main" id="mmm">
32 <h1>Gears OS の Code Database</h1>
33 <a href="#" right="0px" onclick="javascript:showElement('menu')">
34 <span>Menu</span>
35 </a>
36 <a href="#" left="0px" onclick="javascript:showElement('menu')">
37 <span>Menu</span>
38 </a>
39
40 <p>
41
42 <hr/>
43 <h2><a name="content000">従来のOS</a></h2>
44 a.out にいろいろ入ってる
45 <p>
46 shared library
47 <p>
48 同じものがそこら中に
49 <p>
50 関数は実行前に linker が接続する
51 <p>
52
53 <hr/>
54 <h2><a name="content001">Smalltalk / Lisp machine</a></h2>
55 byte code method が meory 上にある
56 <p>
57 同じものが重複しても良い
58 <p>
59 oblist に名前と関数の対応が入ってる
60 <p>
61
62 <hr/>
63 <h2><a name="content002">code Gear</a></h2>
64 context から番号で参照される
65 <p>
66 引数は context から stub 経由で取り込まれる
67 <p>
68
69 <hr/>
70 <h2><a name="content003">code gear database</a></h2>
71 番号で参照される codeGear を入れる database
72 <p>
73
74 <hr/>
75 <h2><a name="content004">code set</a></h2>
76 context に入れて動かす code Gear を決める
77 <p>
78 実行時に変更されるかも知れない
79 <p>
80 番号と関数のアドレスの対応を用意する必要がある
81 <p>
82
83 <pre>
84 これが a.out に対応する
85
86 </pre>
87 対応表は構造をもっていても良い
88 <p>
89
90 <hr/>
91 <h2><a name="content005">Linker / Loader が不要</a></h2>
92 かなり簡単になる
93 <p>
94 context の表を設定するものを書けば良い -- もちろん codeGear / dataGear
95 <p>
96
97 <hr/>
98 <h2><a name="content006">現在の Gears OS</a></h2>
99 context の表はコンパイル時に構成されて最適化されている
100 <p>
101 実行時に構築すると最適化されない
102 <p>
103
104 <pre>
105 JIT変換する方が望ましい
106
107 </pre>
108 context の実行時再構成が必要になる
109 <p>
110
111 <hr/>
112 <h2><a name="content007">code gear databas の検索</a></h2>
113 どうやって検索する?
114 <p>
115
116 <pre>
117 interface name は ad-hoc
118
119 </pre>
120 中身で検索する? code 自体と型自体
121 <p>
122 code 自体の記述は?
123 <p>
124 とりあえずは ad-hoc でよいが...</div>
125 <ol class="side" id="menu">
126 Gears OS の Code Database
127 <li><a href="#content000"> 従来のOS</a>
128 <li><a href="#content001"> Smalltalk / Lisp machine</a>
129 <li><a href="#content002"> code Gear</a>
130 <li><a href="#content003"> code gear database</a>
131 <li><a href="#content004"> code set</a>
132 <li><a href="#content005"> Linker / Loader が不要</a>
133 <li><a href="#content006"> 現在の Gears OS</a>
134 <li><a href="#content007"> code gear databas の検索</a>
135 </ol>
136
137 <hr/> Shinji KONO <kono@ie.u-ryukyu.ac.jp> / Tue Jun 29 17:57:23 2021
138 </body></html>