changeset 80:6b630ccd9480

backup 2021-07-21
author autobackup
date Wed, 21 Jul 2021 00:10:04 +0900
parents fd6e47a205cb
children 267fb8b09876
files user/Itsuki/2021/7-20.md user/aosskaito/seminer/2021/07/20.md user/masato/メモ/2021/07/15.md user/matac42/note/2021/07/20.md user/pine/note/2021/07/20.md
diffstat 5 files changed, 278 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/Itsuki/2021/7-20.md	Wed Jul 21 00:10:04 2021 +0900
@@ -0,0 +1,28 @@
+# 進捗報告 
+## 研究目的
+- 当研究室ではOSの信頼性の検証に重きを置いた、GearsOSを開発している。
+    - GearsOSはノーマルレベルとメタレベルを分離して記述が行えるCの拡張言語CbC(Continuation based C)で構成されている。
+- GearsOSは現在開発途上であり、OSとして実際に機能するために開発しなくてはならない機能が残っている。
+- 未実装の機能の一つとしてファイルシステムが挙げられる。
+    - 当研究室では、CbCとは異なるGearという概念を用いて分散処理を記述することができる分散フレームワークChristieを開発している。
+    - GearsOSのファイルシステムをChristieと同様の仕組みを用いて実装したい。
+    - そのためにjavaで構成されているChristieをCbCで構成し直していく。 
+- GearsOSのファイルシステムは現在使われているOSの問題点を改良した形で構成したい
+    - 書き足していく
+
+
+
+## 進捗内容
+- Christieのリフレクション関係を勉強してました
+    - リフレクションを用いてアノテーション(DG)を読み取っている
+    - またゆーくんの書いてくれたコードをいじりつつ検証してた感じ
+    
+- ~~自分だけGearsOSでバグが発覚~~
+    ~~- rbtreeをmakeしようとするとエラーがループする。~~
+    ~~- またゆーくんのは問題なく動いてる。~~
+- どこかいじったらしくpullしなおしたら直った。
+
+- rbtreeの問題を作りたい
+    - wcのように研究と関係ある例題が作りたい
+        - 先生の意見お聞きしたいです。
+    
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/aosskaito/seminer/2021/07/20.md	Wed Jul 21 00:10:04 2021 +0900
@@ -0,0 +1,57 @@
+
+# **研究目的**
+- 編集者がそれぞれ好きなエディタを使い作業を行えるアプリケーションの作成を目指す。
+    - 自身が使い慣れたエディタを使用し作業を行えることで効率を落とさずペアプログラミングやリモートワークを行える。
+- 本研究室で開発している分散フレームワークChristieを使って開発を行う。
+    - ChristieはGearというプログラミング概念の性質上、リモートエディタと相性がよい。
+- 最低限の動作を行うまでは実装されていないためその実装を目指す。
+    - 編集ファイルの共有方法
+    - emacs viなどを相互接続して相互操作
+
+## 進捗
+そろそろHelloWorld書いてみようと思い調べながら書いてました.
+
+### HelloWorld.java
+```
+public class HelloWorld extends StartCodeGear {
+
+    public HelloWorld(CodeGearManager cgm) {
+        super(cgm);
+    }
+
+    public static void main(String[] args){
+        CodeGearManager cgm = createCGM(1000);
+
+        cgm.setup(new HelloWorldCG());
+        cgm.getLocalDGM().put("key_hello","HelloWorld");
+    }
+}
+```
+```
+HelloWorld
+```
+まずcreateCGMで起動ポートを指定しCGMを起動し,CGMでテキスト出力用のHelloWorldCG()というCGをsetupしておく.<br>
+DGMにHelloWorldというDGをputすることでkey_helloというkeyにデータが格納される.<br>
+
+### HelloWorldCG
+```
+public class HelloWorldCG extends CodeGear {
+
+    @Take
+    String key_hello;
+
+    @Override
+    protected void run(CodeGearManager cgm) {
+        System.out.print(key_hello);
+        cgm.getLocalDGM().finish();
+    }
+}
+```
+ここではTakeによってDGを取り出している.TakeがkeyからDGの抜き出しで,Peekがkeyの参照?DGが残るか残らないかの違いだと思われ,DGが複数ある場合に有効だと思われる.<br>
+出力した後止まらなかったためcgmをfinish()を使い強制的に終了させたがこんな方法で良かったのか
+
+## 今後の課題
+- 今度はTopologyManagerを利用した何か書いてみよう思う.
+
+## 余談
+- 
--- a/user/masato/メモ/2021/07/15.md	Sun Jul 18 00:10:04 2021 +0900
+++ b/user/masato/メモ/2021/07/15.md	Wed Jul 21 00:10:04 2021 +0900
@@ -30,7 +30,7 @@
 ### 解決策
 1については問題の適応範囲外として考えない(よかった、これで解決ですね!
 
-2については考えるしかない、おそらくこれが研究の肝になりそう
+2について
 
 3は将来ヘッドセットが小型化することを祈る
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/matac42/note/2021/07/20.md	Wed Jul 21 00:10:04 2021 +0900
@@ -0,0 +1,163 @@
+# 研究目的
+
+アプリケーションの信頼性を保証するために、アプリケーションが動作するOSの信頼性を高める必要がある。
+
+本研究室では、信頼性に重きを置いたGearsOSを開発している。
+
+GearsOSはノーマルレベル、メタレベルの処理を切り分けることができるCbC(Continuation Based C)で記述されている。
+
+信頼性とは
+
+- どのユーザーがどのようなファイル操作をしたかわかること
+- logが残ること
+- item 操作の辻褄があっていること
+
+を指す。
+
+また、GearsOSには現在未実装の機能があり、その一つにファイルシステムが挙げられる。信頼性を確保するため、ファイルシステムは
+
+- ファイルシステム全体のトランザクション化
+- ファイルシステム全体のバックアップ\&ロギング
+
+を取り入れたDataGearManagerとして実装したい。
+
+本卒業研究では、GearsOSへファイルシステムの実装を目指す。
+
+# Christie
+
+## reflection と annotation
+
+reflectionの役割がわかった
+
+- reflectionはclassの情報を取得する
+- ChristieではCGにあるannotationを読み取るために使っている
+- 結構強力な機能かも
+- isAnnotationPresent
+
+annotationの作り方がわかった
+
+```java
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+# 自作のannotationはこうやって作る
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@interface Take {
+}
+
+public class ReflectionTest {
+
+    String hello;
+
+    int num;
+
+    @Take
+    private String huga() {
+        return hello;
+    }
+}
+
+class Main {
+    public static void main(String[] args) {
+        ReflectionTest target = new ReflectionTest();
+
+        try {
+            Class<? extends ReflectionTest> clazz = target.getClass();
+            Method method = clazz.getDeclaredMethod("huga", null);
+            method.setAccessible(true);
+            String result = (String) method.invoke(target, null);
+//            System.out.println(result);
+        } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
+            System.out.println(e);
+        }
+
+        for (Method field : target.getClass().getDeclaredMethods()) {
+            System.out.println("---");
+            System.out.println(field);
+//            System.out.println(field.getType());
+            System.out.println(Arrays.toString(field.getDeclaredAnnotations()));
+//            if (field.isAnnotationPresent(Take.class)) {
+//                System.out.println("Take is exist");
+//            }
+        }
+    }
+}
+```
+
+## commandList
+
+![commandList.svg](/attachment/60f69e720a7b37004aeff124)
+
+annotationを読み取った後、setCommandでaddが行われcommandListのArrayに突っ込まれる
+
+## 赤黒木
+
+
+このサイトはかなりわかりやすいがinsertの場合分けが4つ
+
+- http://wwwa.pikara.ne.jp/okojisan/rb-tree/index.html
+
+insertの場合分けが6つのものがあるらしい
+
+アルゴリズムとデータ構造の第6章読んでもうちょっと理解進めたいところ
+
+### 操作
+
+- member
+- insert
+- delete
+
+### nodeのメンバ
+
+- key
+- parent
+- left
+- right
+- rank
+
+# syskan
+
+## Wireless Diagnostics
+
+`$open /System/Library/CoreServices/Applications/Wireless\ Diagnostics.app`
+
+macにデフォで入ってる。wifiのスキャンができる。楽しい!便利!
+
+@hsrmy_ie さんに教えてもらった
+
+電波強度(RSSI)、チャンネル、バンド、プロトコルとか結構いろいろみれる
+
+wifiルータがたくさんある環境でルーターの生死が特定できる
+
+こういうのをiPhoneでささっとやりたいが、なかなか良いappが見つからない
+
+Androidだと割とありそうな感じ
+
+## 台風対策
+
+あまり強い台風ではなさそうだが、とりあえずサーバー室の窓から雨が入ってこないように雑巾とか突っ込んどいた
+
+停電しないよう祈る
+
+## VMの監査
+
+なんかスクリプト書くかして自動的に行いたい
+
+## 報告
+
+yahoooのインターン落ちた わー
+
+大学院受かった いえい
+
+## その他
+
+小林さんちのメイドラゴンsの作画がとても良い
+
+サマーウォーズはシス管のモチベがあがる
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/pine/note/2021/07/20.md	Wed Jul 21 00:10:04 2021 +0900
@@ -0,0 +1,29 @@
+# 研究目的
+- アプリケーションの信頼性を保証するために、アプリケーションが動作するOSの信頼性を高める必要がある。
+
+- 本研究室では、Continuation Based C(CbC)を用いて、信頼性と拡張性を両立するOSであるGearsOSを開発している。
+
+- ソフトウェア開発においてエラー・バグは付き物であり、その発見が重要である。現在GearsOSにはデバッガーが未実装であるため、円滑なOS開発を行うために、GearsOSのデバッガーを作成する。
+
+## やったこと
+- デバッガー実装の最初としてDataGearの表示をしたい。
+
+- ということで、コードを見ていたが全然意味がわからなかった。。。
+
+- 理解するためにアナグラさんや東恩納先輩の論文を読んでいた。
+    - GearsOSで出てくる用語についてはふんわり理解した。
+
+- 次はコードリーディングしながら、DataGearの表示機能の実装を行う。
+    - 実装方法としてはModelCheckingと同じような感じで書く?
+    - DataGearを表示するというWorkerを作成して、DataGearの表示を行う感じ?
+    - 7月中にはDataGearの表示をさせたい感じ
+
+
+## やること
+- 論文読み
+- コードリーディング
+- DataGearの表示機能の作成
+- 活動計画書・報告書の作成
+
+## その他
+