0
|
1 -title: Gears OS の Code Database
|
|
2
|
|
3 --従来のOS
|
|
4
|
|
5 a.out にいろいろ入ってる
|
|
6
|
|
7 shared library
|
|
8
|
|
9 同じものがそこら中に
|
|
10
|
|
11 関数は実行前に linker が接続する
|
|
12
|
|
13 --Smalltalk / Lisp machine
|
|
14
|
|
15 byte code method が meory 上にある
|
|
16
|
|
17 同じものが重複しても良い
|
|
18
|
|
19 oblist に名前と関数の対応が入ってる
|
|
20
|
|
21 --code Gear
|
|
22
|
|
23 context から番号で参照される
|
|
24
|
|
25 引数は context から stub 経由で取り込まれる
|
|
26
|
|
27 --code gear database
|
|
28
|
|
29 番号で参照される codeGear を入れる database
|
|
30
|
|
31 --code set
|
|
32
|
|
33 context に入れて動かす code Gear を決める
|
|
34
|
|
35 実行時に変更されるかも知れない
|
|
36
|
|
37 番号と関数のアドレスの対応を用意する必要がある
|
|
38
|
|
39 これが a.out に対応する
|
|
40
|
|
41 対応表は構造をもっていても良い
|
|
42
|
|
43 --Linker / Loader が不要
|
|
44
|
|
45 かなり簡単になる
|
|
46
|
|
47 context の表を設定するものを書けば良い -- もちろん codeGear / dataGear
|
|
48
|
|
49 --現在の Gears OS
|
|
50
|
|
51 context の表はコンパイル時に構成されて最適化されている
|
|
52
|
|
53 実行時に構築すると最適化されない
|
|
54
|
|
55 JIT変換する方が望ましい
|
|
56
|
|
57 context の実行時再構成が必要になる
|
|
58
|
|
59 --code gear databas の検索
|
|
60
|
|
61 どうやって検索する?
|
|
62
|
|
63 interface name は ad-hoc
|
|
64
|
|
65 中身で検索する? code 自体と型自体
|
|
66
|
|
67 code 自体の記述は?
|
|
68
|
|
69 とりあえずは ad-hoc でよいが...
|