Mercurial > hg > Papers > 2023 > nana-sigos
changeset 0:977222ed78ab
first commit
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 14 Apr 2023 20:27:47 +0900 |
parents | |
children | 664ad87c2740 |
files | Gears OSの CodeGear Management.mm code-mangement.ind codedb.html codedb.ind |
diffstat | 4 files changed, 362 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Gears OSの CodeGear Management.mm Fri Apr 14 20:27:47 2023 +0900 @@ -0,0 +1,136 @@ +<map version="freeplane 1.9.13"> +<!--To view this file, download free mind mapping software Freeplane from https://www.freeplane.org --> +<node TEXT="Gears OS CodeGear Management" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1681372159278" STYLE="oval"> +<font SIZE="14"/> +<hook NAME="MapStyle"> + <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" fit_to_viewport="false" associatedTemplateLocation="template:/standard-1.6-noEdgeColor.mm"/> + +<map_styles> +<stylenode LOCALIZED_TEXT="styles.root_node" STYLE="oval" UNIFORM_SHAPE="true" VGAP_QUANTITY="24 pt"> +<font SIZE="24"/> +<stylenode LOCALIZED_TEXT="styles.predefined" POSITION="right" STYLE="bubble"> +<stylenode LOCALIZED_TEXT="default" ID="ID_207122690" COLOR="#000000" STYLE="fork"> +<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="200" DASH="" FONT_SIZE="9" FONT_FAMILY="SansSerif" DESTINATION="ID_207122690" STARTARROW="NONE" ENDARROW="DEFAULT"/> +<font NAME="SansSerif" SIZE="10" BOLD="false" ITALIC="false"/> +<richcontent CONTENT-TYPE="plain/auto" TYPE="DETAILS"/> +<richcontent TYPE="NOTE" CONTENT-TYPE="plain/auto"/> +</stylenode> +<stylenode LOCALIZED_TEXT="defaultstyle.details"/> +<stylenode LOCALIZED_TEXT="defaultstyle.attributes"> +<font SIZE="9"/> +</stylenode> +<stylenode LOCALIZED_TEXT="defaultstyle.note" COLOR="#000000" BACKGROUND_COLOR="#ffffff" TEXT_ALIGN="LEFT"/> +<stylenode LOCALIZED_TEXT="defaultstyle.floating"> +<edge STYLE="hide_edge"/> +<cloud COLOR="#f0f0f0" SHAPE="ROUND_RECT"/> +</stylenode> +<stylenode LOCALIZED_TEXT="defaultstyle.selection" BACKGROUND_COLOR="#afd3f7" BORDER_COLOR_LIKE_EDGE="false" BORDER_COLOR="#afd3f7"/> +</stylenode> +<stylenode LOCALIZED_TEXT="styles.user-defined" POSITION="right" STYLE="bubble"> +<stylenode LOCALIZED_TEXT="styles.topic" COLOR="#18898b" STYLE="fork"> +<font NAME="Liberation Sans" SIZE="10" BOLD="true"/> +</stylenode> +<stylenode LOCALIZED_TEXT="styles.subtopic" COLOR="#cc3300" STYLE="fork"> +<font NAME="Liberation Sans" SIZE="10" BOLD="true"/> +</stylenode> +<stylenode LOCALIZED_TEXT="styles.subsubtopic" COLOR="#669900"> +<font NAME="Liberation Sans" SIZE="10" BOLD="true"/> +</stylenode> +<stylenode LOCALIZED_TEXT="styles.important" ID="ID_3752836"> +<icon BUILTIN="yes"/> +<arrowlink COLOR="#003399" TRANSPARENCY="255" DESTINATION="ID_3752836"/> +</stylenode> +</stylenode> +<stylenode LOCALIZED_TEXT="styles.AutomaticLayout" POSITION="right" STYLE="bubble"> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level.root" COLOR="#000000" STYLE="oval" SHAPE_HORIZONTAL_MARGIN="10 pt" SHAPE_VERTICAL_MARGIN="10 pt"> +<font SIZE="18"/> +</stylenode> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,1" COLOR="#0033ff"> +<font SIZE="16"/> +</stylenode> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,2" COLOR="#00b439"> +<font SIZE="14"/> +</stylenode> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,3" COLOR="#990000"> +<font SIZE="12"/> +</stylenode> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,4" COLOR="#111111"> +<font SIZE="10"/> +</stylenode> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,5"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,6"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,7"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,8"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,9"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,10"/> +<stylenode LOCALIZED_TEXT="AutomaticLayout.level,11"/> +</stylenode> +</stylenode> +</map_styles> +</hook> +<node TEXT="GearsOS" POSITION="right" ID="ID_1209471000" CREATED="1681371443097" MODIFIED="1681371459412"> +<node TEXT="continuation based C" ID="ID_1048704547" CREATED="1681371459889" MODIFIED="1681371493050"/> +<node TEXT="GearsAgda" ID="ID_1591439330" CREATED="1681371493725" MODIFIED="1681371498945"/> +</node> +<node TEXT="Meta computation" POSITION="right" ID="ID_1092574687" CREATED="1681371512626" MODIFIED="1681371517677"/> +<node TEXT="codeGear" POSITION="right" ID="ID_698104319" CREATED="1681371525690" MODIFIED="1681371528897"> +<node TEXT="input Gear" ID="ID_1106396784" CREATED="1681371529197" MODIFIED="1681371554839"/> +<node TEXT="output Gear" ID="ID_1003326184" CREATED="1681371555323" MODIFIED="1681371560594"/> +<node TEXT="meta Data Gear" ID="ID_1337852641" CREATED="1681371561174" MODIFIED="1681371568186"/> +<node TEXT="code reference" ID="ID_1930437714" CREATED="1681371570218" MODIFIED="1681371575259"/> +</node> +<node TEXT="context" POSITION="right" ID="ID_30397377" CREATED="1681371587316" MODIFIED="1681371591793"> +<node TEXT="all data gear" ID="ID_187337123" CREATED="1681371592222" MODIFIED="1681371597419"/> +<node TEXT="codeGear number" ID="ID_396075987" CREATED="1681371602699" MODIFIED="1681371612783"/> +<node TEXT="single thread" ID="ID_430560795" CREATED="1681371613181" MODIFIED="1681371621074"/> +<node TEXT="like a process" ID="ID_450048059" CREATED="1681371624953" MODIFIED="1681371630294"/> +<node TEXT="shared dataGear" ID="ID_1079812736" CREATED="1681371631460" MODIFIED="1681371637147"/> +<node TEXT="atomic operation" ID="ID_487790087" CREATED="1681371639503" MODIFIED="1681371643719"/> +</node> +<node TEXT="code table" POSITION="right" ID="ID_347214631" CREATED="1681371647055" MODIFIED="1681371652155"> +<node TEXT="compiled code" ID="ID_1737134172" CREATED="1681371688632" MODIFIED="1681371702166"/> +<node TEXT="proofs in meta" ID="ID_684490562" CREATED="1681371702598" MODIFIED="1681371707559"/> +<node TEXT="input and output" ID="ID_1363414467" CREATED="1681371710129" MODIFIED="1681371715683"/> +<node TEXT="stub" ID="ID_928312191" CREATED="1681371716029" MODIFIED="1681371723335"> +<node TEXT="read write to context" ID="ID_1111536448" CREATED="1681371723553" MODIFIED="1681371733934"/> +</node> +<node TEXT="common in entire system" ID="ID_426293677" CREATED="1681371740626" MODIFIED="1681371760745"/> +</node> +<node TEXT="Operating system should control
 all the code" POSITION="left" ID="ID_472841100" CREATED="1681371764698" MODIFIED="1681371800835"> +<node TEXT="code is in db" ID="ID_1555760462" CREATED="1681371803618" MODIFIED="1681371848202"/> +<node TEXT="managed" ID="ID_1344558154" CREATED="1681371849579" MODIFIED="1681371852479"/> +<node TEXT="proved" ID="ID_306373986" CREATED="1681371852962" MODIFIED="1681371871978"> +<node TEXT="invariant" ID="ID_269444037" CREATED="1681371880530" MODIFIED="1681371885206"/> +<node TEXT="unit" ID="ID_1850061130" CREATED="1681371886195" MODIFIED="1681371888759"/> +<node TEXT="combined" ID="ID_802152721" CREATED="1681371889945" MODIFIED="1681371895592"/> +<node TEXT="type" ID="ID_1378698363" CREATED="1681371897709" MODIFIED="1681371899430"/> +</node> +<node TEXT="not a user space problem" ID="ID_545777939" CREATED="1681371810811" MODIFIED="1681371823038"/> +</node> +<node TEXT="code implementation" POSITION="left" ID="ID_1209228255" CREATED="1681371913200" MODIFIED="1681371920102"> +<node TEXT="as .o" ID="ID_1713085072" CREATED="1681371920567" MODIFIED="1681371923856"/> +<node TEXT="as .llvm" ID="ID_851495595" CREATED="1681371926115" MODIFIED="1681371952852"> +<node TEXT="qemu code" ID="ID_125902484" CREATED="1681371954478" MODIFIED="1681371971284"/> +</node> +<node TEXT="combimed optimization" ID="ID_265813727" CREATED="1681371980111" MODIFIED="1681371988257"/> +</node> +<node TEXT="debug support" POSITION="left" ID="ID_964369983" CREATED="1681371990473" MODIFIED="1681371995356"> +<node TEXT="codeGear boundary" ID="ID_1897368522" CREATED="1681371995742" MODIFIED="1681372006823"/> +<node TEXT="no stack trace" ID="ID_1062171457" CREATED="1681372008067" MODIFIED="1681372012852"/> +<node TEXT="write history" ID="ID_1635013180" CREATED="1681372034005" MODIFIED="1681372041936"> +<node TEXT="as monad" ID="ID_1580182271" CREATED="1681372042304" MODIFIED="1681372045758"/> +</node> +</node> +<node TEXT="load and link" POSITION="left" ID="ID_1936441891" CREATED="1681372053398" MODIFIED="1681372058087"> +<node TEXT="into code DB" ID="ID_756472874" CREATED="1681372058930" MODIFIED="1681372064364"/> +<node TEXT="context / stab generation" ID="ID_273905541" CREATED="1681372065318" MODIFIED="1681372076956"/> +<node TEXT="regident and swapouted" ID="ID_71055113" CREATED="1681372087137" MODIFIED="1681372095940"/> +</node> +<node TEXT="correctness" POSITION="left" ID="ID_308732862" CREATED="1681372098909" MODIFIED="1681372104641"> +<node TEXT="runtime check" ID="ID_571420353" CREATED="1681372105208" MODIFIED="1681372117325"/> +<node TEXT="model checking" ID="ID_891256701" CREATED="1681372121434" MODIFIED="1681372125542"> +<node TEXT="an easy way" ID="ID_1007196071" CREATED="1681372125881" MODIFIED="1681372129597"/> +</node> +</node> +</node> +</map>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code-mangement.ind Fri Apr 14 20:27:47 2023 +0900 @@ -0,0 +1,19 @@ +-title: Gears OSの CodeGear Management + +-author: 河野真治 + +--Gears OS + +--Normal and Meta computation + +--並列実行 + +--code table + +--dynamic loading + +--実装 + +--linkの方法 + +--まとめ
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/codedb.html Fri Apr 14 20:27:47 2023 +0900 @@ -0,0 +1,138 @@ +<html> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> +<head> +<STYLE type="text/css"> +.main { width:100%; } +.side { top:0px; width:0%; position:fixed; left:80%; display:none} +</STYLE> +<script type="text/javascript"> +function showElement(layer){ + var myLayer = document.getElementById(layer); + var main = document.getElementById('mmm'); + if(myLayer.style.display=="none"){ + myLayer.style.width="20%"; + main.style.width="80%"; + myLayer.style.display="block"; + myLayer.backgroundPosition="top"; + } else { + myLayer.style.width="0%"; + main.style.width="100%"; + myLayer.style.display="none"; + } +} +</script> +<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> +<script type="text/javascript" id="MathJax-script" async + src="https://cdn.jsdelivr.net/npm/mathjax/es5/tex-chtml.js"> +</script> +<title>Gears OS の Code Database</title> +</head> +<body> +<div class="main" id="mmm"> +<h1>Gears OS の Code Database</h1> +<a href="#" right="0px" onclick="javascript:showElement('menu')"> +<span>Menu</span> +</a> +<a href="#" left="0px" onclick="javascript:showElement('menu')"> +<span>Menu</span> +</a> + +<p> + +<hr/> +<h2><a name="content000">従来のOS</a></h2> +a.out にいろいろ入ってる +<p> +shared library +<p> +同じものがそこら中に +<p> +関数は実行前に linker が接続する +<p> + +<hr/> +<h2><a name="content001">Smalltalk / Lisp machine</a></h2> +byte code method が meory 上にある +<p> +同じものが重複しても良い +<p> +oblist に名前と関数の対応が入ってる +<p> + +<hr/> +<h2><a name="content002">code Gear</a></h2> +context から番号で参照される +<p> +引数は context から stub 経由で取り込まれる +<p> + +<hr/> +<h2><a name="content003">code gear database</a></h2> +番号で参照される codeGear を入れる database +<p> + +<hr/> +<h2><a name="content004">code set</a></h2> +context に入れて動かす code Gear を決める +<p> +実行時に変更されるかも知れない +<p> +番号と関数のアドレスの対応を用意する必要がある +<p> + +<pre> + これが a.out に対応する + +</pre> +対応表は構造をもっていても良い +<p> + +<hr/> +<h2><a name="content005">Linker / Loader が不要</a></h2> +かなり簡単になる +<p> +context の表を設定するものを書けば良い -- もちろん codeGear / dataGear +<p> + +<hr/> +<h2><a name="content006">現在の Gears OS</a></h2> +context の表はコンパイル時に構成されて最適化されている +<p> +実行時に構築すると最適化されない +<p> + +<pre> + JIT変換する方が望ましい + +</pre> +context の実行時再構成が必要になる +<p> + +<hr/> +<h2><a name="content007">code gear databas の検索</a></h2> +どうやって検索する? +<p> + +<pre> + interface name は ad-hoc + +</pre> +中身で検索する? code 自体と型自体 +<p> +code 自体の記述は? +<p> +とりあえずは ad-hoc でよいが...</div> +<ol class="side" id="menu"> +Gears OS の Code Database +<li><a href="#content000"> 従来のOS</a> +<li><a href="#content001"> Smalltalk / Lisp machine</a> +<li><a href="#content002"> code Gear</a> +<li><a href="#content003"> code gear database</a> +<li><a href="#content004"> code set</a> +<li><a href="#content005"> Linker / Loader が不要</a> +<li><a href="#content006"> 現在の Gears OS</a> +<li><a href="#content007"> code gear databas の検索</a> +</ol> + +<hr/> Shinji KONO <kono@ie.u-ryukyu.ac.jp> / Tue Jun 29 17:57:23 2021 +</body></html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/codedb.ind Fri Apr 14 20:27:47 2023 +0900 @@ -0,0 +1,69 @@ +-title: Gears OS の Code Database + +--従来のOS + +a.out にいろいろ入ってる + +shared library + +同じものがそこら中に + +関数は実行前に linker が接続する + +--Smalltalk / Lisp machine + +byte code method が meory 上にある + +同じものが重複しても良い + +oblist に名前と関数の対応が入ってる + +--code Gear + +context から番号で参照される + +引数は context から stub 経由で取り込まれる + +--code gear database + +番号で参照される codeGear を入れる database + +--code set + +context に入れて動かす code Gear を決める + +実行時に変更されるかも知れない + +番号と関数のアドレスの対応を用意する必要がある + + これが a.out に対応する + +対応表は構造をもっていても良い + +--Linker / Loader が不要 + +かなり簡単になる + +context の表を設定するものを書けば良い -- もちろん codeGear / dataGear + +--現在の Gears OS + +context の表はコンパイル時に構成されて最適化されている + +実行時に構築すると最適化されない + + JIT変換する方が望ましい + +context の実行時再構成が必要になる + +--code gear databas の検索 + +どうやって検索する? + + interface name は ad-hoc + +中身で検索する? code 自体と型自体 + +code 自体の記述は? + +とりあえずは ad-hoc でよいが...