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&#xa; 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 でよいが...