view Paper/figs/gearsDirectoryMM.json @ 16:661c35912701

no image version
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Mon, 17 Apr 2023 10:27:01 +0900
parents 466b958a3419
children
line wrap: on
line source

{
  "name": "GearsOSにおけるinodeを用いたFile systemの設計",
  "children": [
    {
      "name": "研究目的",
      "children": [
        {
          "name": "GearsOSとは",
          "children": [
            {
              "name": "信頼性と拡張性",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "ノーマルレベルメタレベルの分離",
              "children": [
                {
                  "name": "信頼性",
                  "children": [
                    {
                      "name": "モデル検査",
                      "children": [
                        {
                          "name": "継続性",
                          "children": [],
                          "metadata": {}
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    },
                    {
                      "name": "定理証明",
                      "children": [
                        {
                          "name": "agda",
                          "children": [],
                          "metadata": {}
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    }
                  ],
                  "collapsed": false,
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "ファイルシステム未実装",
          "children": [
            {
              "name": "だがOSにおいて重要な機能である",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "GearsOSのファイルシステム設計",
          "children": [
            {
              "name": "基幹となるディレクトリシステム",
              "children": [],
              "metadata": {}
            },
            {
              "name": "ファイル構造",
              "children": [],
              "metadata": {}
            },
            {
              "name": "API設計中",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "取り入れたい要素",
          "children": [
            {
              "name": "backup",
              "children": [],
              "metadata": {}
            },
            {
              "name": "log",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "CbC",
      "children": [
        {
          "name": "簡単な説明",
          "children": [
            {
              "name": "Cの下位言語",
              "children": [
                {
                  "name": "Cとの違いは",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "関数呼び出しの代わりに継続を用いる",
              "children": [
                {
                  "name": "継続とは",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "環境を持たない",
              "children": [
                {
                  "name": "環境とは",
                  "children": [
                    {
                      "name": "プログラムが実行される際、その出力に影響を与える変数やデータのこと",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "関数型言語のtail callスタイルにあたるプログラミング",
              "children": [
                {
                  "name": "tail call スタイルとは",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "末尾再帰とも言う",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "Code Gear",
          "children": [
            {
              "name": "関数の代わり",
              "children": [],
              "metadata": {}
            },
            {
              "name": "_codeで宣言を行う",
              "children": [],
              "metadata": {}
            },
            {
              "name": "Input/Output DG",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "Data Gear",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "normal level",
          "children": [
            {
              "name": "user",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "meta level",
          "children": [
            {
              "name": "kernel",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "継続性",
          "children": [
            {
              "name": "goto",
              "children": [
                {
                  "name": "jmp命令を用いる",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "引数付き",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "普通のgotoと違うところは",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "軽量継続",
              "children": [
                {
                  "name": "環境を持たない",
                  "children": [
                    {
                      "name": "必要なデータは毎回inputする",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "関数呼び出し(call)せず、jmpする",
                  "children": [
                    {
                      "name": "処理はcallよりjmpが軽量",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "GearsOSについて",
      "children": [
        {
          "name": "GearsOSとは",
          "children": [
            {
              "name": "信頼性の保証が目的",
              "children": [
                {
                  "name": "モデル検査",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "ノーマルレベルメタレベル切り分けがされている",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "collapsed": false,
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "Context",
          "children": [
            {
              "name": "全てのCG, DGを参照できるMetaDG",
              "children": [
                {
                  "name": "normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Metaなのでnormalから直接参照しない",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "必ずMetaCGから参照される",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "CGとDGの接続に用いられる",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "従来OSのプロセスに相当",
              "children": [
                {
                  "name": "UserプロセスにあたるUser Contextが存在する",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "種類",
              "children": [
                {
                  "name": "Kernel Context",
                  "children": [
                    {
                      "name": "OS上の全てのContextを参照できる",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "User Context",
                  "children": [
                    {
                      "name": "ユーザーごとに存在する",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "CPU Context",
                  "children": [
                    {
                      "name": "実行しているCPUやGPUごとに存在する",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "Context参照の流れ",
              "children": [
                {
                  "name": "CGがOutputDataGearへデータをoutput",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "次のCGのstubCodeGearへgoto",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "CGへgoto",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "OutputDGへOutput",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "次のstubCodeGearへgoto",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "collapsed": false,
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "stub",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "Christie",
      "children": [
        {
          "name": "Christieとは",
          "children": [
            {
              "name": "並列分散通信フレームワーク",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "CbCとは異なるGearの概念",
              "children": [
                {
                  "name": "DataGear",
                  "children": [
                    {
                      "name": "atomic",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "CodeGear",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "DataGearManager",
          "children": [
            {
              "name": "DGを管理している",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "key value store",
              "children": [
                {
                  "name": "CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "Fileとして用いる",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "LocalDGMとRemoteDGM",
              "children": [
                {
                  "name": "LocalはCGM自身が所持するDGのプール",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "RemoteはCGMが配線されている別のCGMがもつDGのプール",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "topology manager",
          "children": [
            {
              "name": "任意のtopologyを生成することができる",
              "children": [
                {
                  "name": "topologyのノードはCGM",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "ノード同士の通信接続を管理",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "分散プログラムを簡潔に書くために必要",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "静的topology",
              "children": [
                {
                  "name": "任意のtopologyとノードの配線ができる",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "dotファイルに記述し,TopologyManagerに参照させる",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "動的topology",
              "children": [
                {
                  "name": "参加を表明したノードに対し,自動的に配線を行う",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "UnixのFilesystem",
      "children": [
        {
          "name": "xv6",
          "children": [
            {
              "name": "MITで教育用の目的で開発されたOS",
              "children": [],
              "metadata": {}
            },
            {
              "name": "Unixの基本構造を持つ",
              "children": [],
              "metadata": {}
            },
            {
              "name": "filesystem",
              "children": [
                {
                  "name": "inode",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "CbCによるxv6の書き換えが行われた",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "inode",
          "children": [
            {
              "name": "Fileの属性情報",
              "children": [
                {
                  "name": "File Types",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Permissions",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "UID",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "GID",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "File Size",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Time Stamps",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Number of link",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Location on hard disk",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "inode number",
              "children": [
                {
                  "name": "inodeを識別するための番号",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "ファイル名とinodeがペアになっている",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "Mac OSではls -iで確認可能",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "ファイルシステム内で一意の番号",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "ファイル数の上限がここで決まってくる",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "collapsed": true,
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "GearsFileSystemのディレクトリ",
      "children": [
        {
          "name": "Treeによるディレクトリ構造(図などでここ詳しく)",
          "children": [
            {
              "name": "RedBlackTree",
              "children": [
                {
                  "name": "DataGearManagerを格納してFileSystemに",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "API",
                  "children": [
                    {
                      "name": "put",
                      "children": [],
                      "metadata": {}
                    },
                    {
                      "name": "get",
                      "children": [],
                      "metadata": {}
                    },
                    {
                      "name": "remove",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "2つの木を用いる",
              "children": [
                {
                  "name": "inumとfile pointer",
                  "children": [
                    {
                      "name": "key: inum",
                      "children": [],
                      "metadata": {}
                    },
                    {
                      "name": "value: file pointer",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "inumとfilename",
                  "children": [
                    {
                      "name": "key: filename",
                      "children": [],
                      "metadata": {}
                    },
                    {
                      "name": "value: inum",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "Unix Like",
          "children": [
            {
              "name": "mkdir",
              "children": [],
              "metadata": {}
            },
            {
              "name": "cd",
              "children": [],
              "metadata": {}
            },
            {
              "name": "ls",
              "children": [
                {
                  "name": "filenameのlistを入れることでlsのリスト表示を実装できる",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "非破壊的編集によるBackUp",
          "children": [
            {
              "name": "バックアップ機能をOS自体に持たせたいという目的",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "GearsOSにおける永続データ",
              "children": [
                {
                  "name": "木構造を用いる",
                  "children": [
                    {
                      "name": "RedBlackTree",
                      "children": [],
                      "metadata": {}
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "ルートノードから変更ノードまでのパスを全てコピー",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "コピーしたパス上に存在しないノードはコピー元の木構造と共有",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "ファイル構造",
      "children": [
        {
          "name": "構成",
          "children": [
            {
              "name": "I/O stream",
              "children": [
                {
                  "name": "keyで参照",
                  "children": [],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "競合的アクセス",
                  "children": [
                    {
                      "name": "synchronizedQueue",
                      "children": [
                        {
                          "name": "parusuさんの論文",
                          "children": [],
                          "metadata": {}
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                },
                {
                  "name": "3つのQueue",
                  "children": [
                    {
                      "name": "input",
                      "children": [
                        {
                          "name": "データをinputしたい場合にこのQueueにput",
                          "children": [],
                          "metadata": {}
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    },
                    {
                      "name": "output",
                      "children": [
                        {
                          "name": "データを取得したい場合にこのQueueからtake",
                          "children": [
                            {
                              "name": "Synchronized QueueかSingleLinkedQueueを選べる",
                              "children": [],
                              "metadata": {}
                            }
                          ],
                          "metadata": {
                            "type": "header",
                            "level": 7
                          }
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    },
                    {
                      "name": "main",
                      "children": [
                        {
                          "name": "データそのもの",
                          "children": [],
                          "metadata": {}
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    },
                    {
                      "name": "input -> main -> output のような繋がり",
                      "children": [],
                      "metadata": {}
                    },
                    {
                      "name": "queueの中身は共通してelement",
                      "children": [
                        {
                          "name": "elementとは",
                          "children": [],
                          "metadata": {
                            "type": "header",
                            "level": 7
                          }
                        }
                      ],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    },
                    {
                      "name": "これらのQueueはkeyとペアになっており,keyで参照することができる.",
                      "children": [],
                      "metadata": {
                        "type": "header",
                        "level": 6
                      }
                    }
                  ],
                  "metadata": {
                    "type": "header",
                    "level": 5
                  }
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "logによるバージョン管理",
              "children": [
                {
                  "name": "git mercurial的",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "collapsed": false,
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "WordCount",
      "children": [
        {
          "name": "APIの設計に用いる",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "機能",
          "children": [
            {
              "name": "ファイルの中身を読み取り",
              "children": [
                {
                  "name": "文字数",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "行数",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "Unix Fileに対して行う",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "中間報告の時の図",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "GearBox的に処理する",
          "children": [
            {
              "name": "一木さん図5",
              "children": [],
              "metadata": {}
            },
            {
              "name": "File操作の仕組み",
              "children": [],
              "metadata": {}
            },
            {
              "name": "GearBoxとは",
              "children": [
                {
                  "name": "GearsOSの機能を表現する手法",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "状態遷移図とクラスダイアグラムを組み合わせたような図",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "考察",
      "children": [
        {
          "name": "現状",
          "children": [
            {
              "name": "実装できた部分",
              "children": [
                {
                  "name": "RBTreeの動作test(予定)",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "課題",
              "children": [
                {
                  "name": "GearsOSへのtopologyManagerの実装",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "ディレクトリ構造の作成",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "collapsed": false,
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "今後の課題",
          "children": [
            {
              "name": "分散ファイルシステム",
              "children": [],
              "metadata": {}
            },
            {
              "name": "信頼性",
              "children": [
                {
                  "name": "GearsAgda",
                  "children": [],
                  "metadata": {}
                },
                {
                  "name": "モデル検査",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "shell",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "path",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "信頼性について",
          "children": [
            {
              "name": "モデル検査",
              "children": [
                {
                  "name": "RedBlackTreeのモデル検査",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "定理証明",
              "children": [],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "参考文献",
      "children": [
        {
          "name": "一木さん",
          "children": [
            {
              "name": "https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf",
              "children": [],
              "metadata": {}
            },
            {
              "name": "一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "アナグラさん",
          "children": [
            {
              "name": "http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "parusuさん",
          "children": [],
          "metadata": {}
        },
        {
          "name": "xv6",
          "children": [
            {
              "name": "https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf",
              "children": [],
              "metadata": {}
            },
            {
              "name": "Papers/2020/anatofuz-sigos/",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "付録",
      "children": [
        {
          "name": "mindmap",
          "children": [],
          "metadata": {}
        },
        {
          "name": "gearsDirectory source",
          "children": [],
          "metadata": {}
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    },
    {
      "name": "章立て",
      "children": [
        {
          "name": "GearsOSにおける分散ファイルシステム(研究目的)",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "CbC",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "GearsOSについて",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "Christie",
          "children": [
            {
              "name": "Gear概念",
              "children": [],
              "metadata": {}
            },
            {
              "name": "DataGearManager",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "UnixのFilesystem",
          "children": [
            {
              "name": "inode",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "GearsFileSystemのディレクトリ",
          "children": [
            {
              "name": "Treeによるディレクトリ構造(図などでここ詳しく)",
              "children": [],
              "metadata": {}
            },
            {
              "name": "Unix Like",
              "children": [
                {
                  "name": "inodeを用いたディレクトリエントリ",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            },
            {
              "name": "非破壊的編集によるBackUp",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "ファイル構造",
          "children": [
            {
              "name": "構成",
              "children": [
                {
                  "name": "logによるバージョン管理",
                  "children": [],
                  "metadata": {}
                }
              ],
              "metadata": {
                "type": "header",
                "level": 4
              }
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "WordCount",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "考察",
          "children": [
            {
              "name": "今後の課題",
              "children": [],
              "metadata": {}
            }
          ],
          "metadata": {
            "type": "header",
            "level": 3
          }
        },
        {
          "name": "参考文献",
          "children": [],
          "metadata": {
            "type": "header",
            "level": 3
          }
        }
      ],
      "collapsed": false,
      "metadata": {
        "type": "header",
        "level": 2
      }
    }
  ],
  "metadata": {
    "type": "header",
    "level": 1,
    "mode": "mindmap"
  }
}