Mercurial > hg > Papers > 2022 > matac-thesis
changeset 25:b16f42511c3e
add appendix
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 27 Jan 2022 11:03:59 +0900 |
parents | 83399f3cd88a |
children | 5c3d34bd2633 |
files | paper/figs/gearsDirectoryMM.PNG paper/figs/gearsDirectoryMM.html paper/figs/gearsDirectoryMM.json paper/figs/gearsDirectoryMM.md paper/src/GearsDirectoryImpl.cbc paper/thesis.pdf paper/thesis.tex |
diffstat | 7 files changed, 3221 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figs/gearsDirectoryMM.html Thu Jan 27 11:03:59 2022 +0900 @@ -0,0 +1,1127 @@ +<!DOCTYPE html><html><head><meta charset="utf-8"><title>GearsOSにおけるinodeを用いたFile systemの設計 - Brainio</title><style data-critical="true">body,button,h1,h2,h3,h4,h5,h6,hr,html,li,p,pre,ul{padding:0px;margin:0px}html{box-sizing:border-box;-webkit-font-smoothing:antialiased}:focus,button,input,textarea{outline:none}a{cursor:pointer}:root{--bgDarker:#e7e9f2;--bgElevated1:#f3f4f8;--bgElevated2:#e2e5ef;--bgElevated3:#d4dbf9;--textLowEmphasis:#8f8f8f;--textMediumEmphasis:#575757;--textHighEmphasis:#121212;--colorAccent:#3668e8;--colorOnAccent:#f4f4f5;--colorInverse_RGB:40,44,52;--colorInfo:#96a7f1;--colorError:#ffd7db;--colorSuccess:#d3edd5;--colorPrimary_400:#3668e8;--colorPrimary_200:#96a7f1;--colorOnPrimary:#f4f4f5;--colorOnLightBg:#121212;--fontFamilySans:"Open Sans",sans-serif;--fontFamilyMono:"Courier New",monospace;--fontSizeSmall2:0.75rem;--fontSizeSmall1:0.8125rem;--fontSizeNormal:0.875rem;--fontSizeBig1:1rem;--fontSizeBig2:1.25rem;--fontSizeBig3:1.5rem;--fontSizeBig4:2rem;--fontWeightLight:300;--fontWeightRegular:400;--fontWeightBold:600;--disabled:0.38;--red_RGB:241,146,143;--orange_RGB:247,195,148;--yellow_RGB:247,232,138;--green_RGB:180,219,167;--blue_RGB:176,252,254;--lineHeightNormal:1.5;--borderRadius:3px;--padding:0.75rem}.modal,.popover,:root{--bg:#fff}app-mindmap{--linkStrokeColor:#c2c2c2;--nodeStrokeColor:#686868;--nodeBgColor:#d7d7d7;--nodeRootBgColor:#fff}.mindmapNode{user-select:none}.mindmapNode .ghostRect{fill:transparent}.mindmapNode foreignobject{overflow:visible;position:relative;box-sizing:border-box}.mindmapNode foreignobject > div{overflow-wrap:break-word;padding:5px 10px 4px;border-bottom:2px solid var(--nodeStrokeColor);box-sizing:border-box}.mindmapNode foreignobject > div:not(.paddingBottom):not(.paddingTop){height:100%}.nodeRoot foreignobject.mainText > div{border-radius:var(--borderRadius);border:none;padding:10px 15px;background:var(--nodeRootBgColor)}.nodeRoot foreignobject::after{content:"";position:fixed;left:0px;top:0px;width:100%;height:100%;border-radius:var(--borderRadius);border:2px solid var(--nodeStrokeColor);z-index:1;box-sizing:border-box;pointer-events:none}.nodeNormal.depth_1 foreignobject.text > div{border-radius:var(--borderRadius);padding:5px 10px;border:none;background:var(--nodeBgColor)}.nodeNormal circle{stroke-width:1;cursor:pointer;pointer-events:bounding-box;stroke:var(--nodeStrokeColor);fill:rgb(255,255,255)}.nodeNormal .circleIcon{stroke-width:1;pointer-events:none;stroke:rgb(0,0,0)}foreignobject.mainText div,foreignobject.text div{overflow-wrap:break-word}.text{font-size:var(--fontSizeNormal)}.text a{text-decoration:underline;color:var(--colorPrimary_400)}.mainText{font-size:var(--fontSizeBig1);font-weight:700}.link{fill:none;stroke-opacity:1;stroke-width:1;stroke:var(--linkStrokeColor)}.editHelperWrapper{pointer-events:none}.textareaWrapper{overflow:visible}.editHelper,.textareaWrapper textarea{font-size:var(--fontSizeNormal);font-family:var(--fontFamilySans);padding:5px 10px;margin:0px;border:none;box-sizing:content-box;max-width:320px;overflow-wrap:break-word;transition:height 0.05s linear 0s,width 0.05s linear 0s}.editHelper{display:inline-block;pointer-events:none}.textareaWrapper textarea{width:100%;height:100%;position:fixed;overflow:hidden;border-radius:5px}html{background:var(--bg)}body,html{height:100%}body{font-family:var(--fontFamilySans);font-size:var(--fontSizeNormal);color:var(--textHighEmphasis);box-sizing:border-box;overflow:hidden}</style></head><body style="overflow: auto;"><app-mindmap id="editor" style="width: 2533px; height: 3925px;"><app-svg-container><div class="svgWrapper"><div _ngcontent-lkb-c107="" class="svgWrapper"><svg width="2533" height="3925"><g _ngcontent-lkb-c107="" class="gWrapper" style="transform: translate(815px, 2007.0001220703125px)"><g _ngcontent-lkb-c107="" class="nodes"><path class="link" opacity="1" d="M198.5,0 + C93.5,0 + 93.5,0 + -11.5,0"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,-174 + -113,-174"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,-141 + -113,-141"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,-106 + -113,-106"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,-55.5 + -113,-55.5L-202,-55.5"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,-3 + -113,-3L-264,-3"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,32 + -113,32L-358,32"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,102 + -113,102L-236,102"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,135 + -113,135"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,170 + -113,170L-180,170"></path><path class="link" opacity="1" d="M-88.5,0 + C-100.75,0 + -100.75,205 + -113,205"></path><path class="link" opacity="1" d="M-198,-55.5 + C-210,-55.5 + -210,-71 + -222,-71"></path><path class="link" opacity="1" d="M-198,-55.5 + C-210,-55.5 + -210,-38 + -222,-38"></path><path class="link" opacity="1" d="M-260,-3 + C-272,-3 + -272,-4 + -284,-4"></path><path class="link" opacity="1" d="M-354,32 + C-366,32 + -366,-3 + -378,-3"></path><path class="link" opacity="1" d="M-354,32 + C-366,32 + -366,31 + -378,31L-477,31"></path><path class="link" opacity="1" d="M-354,32 + C-366,32 + -366,67 + -378,67"></path><path class="link" opacity="1" d="M-232,102 + C-244,102 + -244,102 + -256,102L-323,102"></path><path class="link" opacity="1" d="M-176,170 + C-188,170 + -188,170 + -200,170"></path><path class="link" opacity="1" d="M-473,31 + C-485,31 + -485,32 + -497,32"></path><path class="link" opacity="1" d="M-319,102 + C-331,102 + -331,102 + -343,102"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,-1837.5 + 385.5,-1837.5"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,-1443.375 + 385.5,-1443.375"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,-971.25 + 385.5,-971.25"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,-309.625 + 385.5,-309.625"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,127.25 + 385.5,127.25"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,327.25 + 385.5,327.25"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,755.625 + 385.5,755.625"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,993 + 385.5,993"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,1350.125 + 385.5,1350.125"></path><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,1685.25 + 385.5,1685.25"></path><g class="mindmapNode nodeNormal depth_1 left" data-id="node_61bd6eee5bcd5ed0a0af1256" opacity="1" transform="translate(-101, 0)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 章立て + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-200" width="101" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eee0911dbe7b7d7ea93" opacity="1" transform="translate(-463, -189.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSにおける分散ファイルシステム(研究目的) + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="377" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd720cf5cfa71158bb6904" opacity="1" transform="translate(-172, -155.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="47" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + CbC + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="86" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="86" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd72035b94de0af9492447" opacity="1" transform="translate(-258, -121.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="133" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSについて + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="172" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="172" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd722847329a365903b5b9" opacity="1" transform="translate(-210, -70)"><g class="rectGroup" transform="translate(27, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Christie + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd738a05248a1080f1fa57" opacity="1" transform="translate(-272, -18.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + UnixのFilesystem + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eeeb2d485455be37677" opacity="1" transform="translate(-366, 16.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="226" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsFileSystemのディレクトリ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="265" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="265" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7a4717b65125f28f82c8" opacity="1" transform="translate(-244, 86.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ファイル構造 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7b7d7cb32300e3728968" opacity="1" transform="translate(-221, 120.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + WordCount + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="135" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7c267e88358724a40c74" opacity="1" transform="translate(-188, 154.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 考察 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eeebc58d5f7d2bcfe6d" opacity="1" transform="translate(-201, 189.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 参考文献 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="115" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd72dbad08459fd71629f2" opacity="1" transform="translate(-314, -86.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="80" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Gear概念 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="119" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="119" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd72ed2804860b15f05212" opacity="1" transform="translate(-375, -52.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="141" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + DataGearManager + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="180" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="180" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7396b3f6fb3d9f8917af" opacity="1" transform="translate(-353, -18.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + inode + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="96" height="0" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7416bb61e7c7708e074f" opacity="1" transform="translate(-728, -18.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Treeによるディレクトリ構造(図などでここ詳しく) + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="377" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd736431b0e11782ffb3e8" opacity="1" transform="translate(-485, 16.5)"><g class="rectGroup" transform="translate(27, -14.5)"><foreignObject class="text" width="80" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Unix Like + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="119" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="119" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd77b132fab1d70dd2d706" opacity="1" transform="translate(-586, 51.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="196" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 非破壊的編集によるBackUp + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="235" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="235" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7a75b218958c802740a4" opacity="1" transform="translate(-331, 86.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 構成 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="68" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7c37ea8e4203d97e4380" opacity="1" transform="translate(-302, 154.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 今後の課題 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="129" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 left" data-id="node_61bd74e283894925fc5923fb" opacity="1" transform="translate(-762, 16.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="253" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + inodeを用いたディレクトリエントリ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="292" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="292" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 left" data-id="node_61bd7acc25ef3a10832a0a91" opacity="1" transform="translate(-535, 86.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="180" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + logによるバージョン管理 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="219" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="219" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d5ef27a2481729a148e" opacity="1" transform="translate(374, -1837.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 研究目的 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="394.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-200" width="115" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee68807d207b1860b4" opacity="1" transform="translate(374, -1443.375)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="47" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + CbC + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="86" height="472.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="86" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee91557f93863ec9e3" opacity="1" transform="translate(374, -971.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="133" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + GearsOSについて + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="172" height="661.625" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="172" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="152" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(154, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee17ae95c54b8fef48" opacity="1" transform="translate(374, -309.625)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + Christie + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="436.875" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="89" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(91, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d7779c61d02f1175edc" opacity="1" transform="translate(374, 127.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + UnixのFilesystem + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="151" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(153, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eeee97188a7b0a1bfa5" opacity="1" transform="translate(374, 327.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="225" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + GearsFileSystemのディレクトリ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="265" height="428.375" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="265" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="245" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(247, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d93f175524b7adc791c" opacity="1" transform="translate(374, 755.625)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + ファイル構造 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="237.375" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="123" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(125, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d9bdb674cd7340d3562" opacity="1" transform="translate(374, 993)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + WordCount + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="135" height="357.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="115" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(117, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7da2fc8b65820b6d1100" opacity="1" transform="translate(374, 1350.125)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 考察 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="335.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee1149cd6355b65f5f" opacity="1" transform="translate(374, 1685.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 参考文献 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="152.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M175.5,0 + C280.5,0 + 280.5,1837.5 + 385.5,1837.5"></path><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61f0b2ad1972e22223b6951f" opacity="1" transform="translate(374, 1837.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 付録 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 0)" style="display: inline;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M477.5,-1837.5 + C489.25,-1837.5 + 489.25,-1908.5 + 501,-1908.5L625,-1908.5"></path><path class="link" opacity="1" d="M477.5,-1837.5 + C489.25,-1837.5 + 489.25,-1856 + 501,-1856L694,-1856"></path><path class="link" opacity="1" d="M477.5,-1837.5 + C489.25,-1837.5 + 489.25,-1786 + 501,-1786L751,-1786"></path><path class="link" opacity="1" d="M477.5,-1837.5 + C489.25,-1837.5 + 489.25,-1735.5 + 501,-1735.5L652,-1735.5"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1608 + 472,-1608L581,-1608"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1463 + 472,-1463L580,-1463"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1429 + 472,-1429"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1395 + 472,-1395L592,-1395"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1362 + 472,-1362L579,-1362"></path><path class="link" opacity="1" d="M448.5,-1443.375 + C460.25,-1443.375 + 460.25,-1247.75 + 472,-1247.75L553,-1247.75"></path><path class="link" opacity="1" d="M534.5,-971.25 + C546.25,-971.25 + 546.25,-1134.5 + 558,-1134.5L682,-1134.5"></path><path class="link" opacity="1" d="M534.5,-971.25 + C546.25,-971.25 + 546.25,-810 + 558,-810L648,-810"></path><path class="link" opacity="1" d="M534.5,-971.25 + C546.25,-971.25 + 546.25,-777 + 558,-777"></path><path class="link" opacity="1" d="M471.5,-309.625 + C483.25,-309.625 + 483.25,-476.5 + 495,-476.5L612,-476.5"></path><path class="link" opacity="1" d="M471.5,-309.625 + C483.25,-309.625 + 483.25,-365.5 + 495,-365.5L655,-365.5"></path><path class="link" opacity="1" d="M471.5,-309.625 + C483.25,-309.625 + 483.25,-111.75 + 495,-111.75L653,-111.75"></path><path class="link" opacity="1" d="M533.5,127.25 + C545.25,127.25 + 545.25,99 + 557,99L619,99"></path><path class="link" opacity="1" d="M533.5,127.25 + C545.25,127.25 + 545.25,184.5 + 557,184.5"></path><path class="link" opacity="1" d="M627.5,327.25 + C639.25,327.25 + 639.25,219.5 + 651,219.5L1008,219.5"></path><path class="link" opacity="1" d="M627.5,327.25 + C639.25,327.25 + 639.25,330.5 + 651,330.5L750,330.5"></path><path class="link" opacity="1" d="M627.5,327.25 + C639.25,327.25 + 639.25,466 + 651,466L866,466"></path><path class="link" opacity="1" d="M505.5,755.625 + C517.25,755.625 + 517.25,771.125 + 529,771.125L596,771.125"></path><path class="link" opacity="1" d="M497.5,993 + C509.25,993 + 509.25,914 + 521,914"></path><path class="link" opacity="1" d="M497.5,993 + C509.25,993 + 509.25,984 + 521,984L588,984"></path><path class="link" opacity="1" d="M497.5,993 + C509.25,993 + 509.25,1103 + 521,1103L701,1103"></path><path class="link" opacity="1" d="M449.5,1350.125 + C461.25,1350.125 + 461.25,1241.25 + 473,1241.25L540,1241.25"></path><path class="link" opacity="1" d="M449.5,1350.125 + C461.25,1350.125 + 461.25,1378.75 + 473,1378.75L582,1378.75"></path><path class="link" opacity="1" d="M449.5,1350.125 + C461.25,1350.125 + 461.25,1490 + 473,1490L610,1490"></path><path class="link" opacity="1" d="M477.5,1685.25 + C489.25,1685.25 + 489.25,1599 + 501,1599L596,1599"></path><path class="link" opacity="1" d="M477.5,1685.25 + C489.25,1685.25 + 489.25,1708.5 + 501,1708.5L624,1708.5"></path><path class="link" opacity="1" d="M477.5,1685.25 + C489.25,1685.25 + 489.25,1743.5 + 501,1743.5"></path><path class="link" opacity="1" d="M477.5,1685.25 + C489.25,1685.25 + 489.25,1802.5 + 501,1802.5L563,1802.5"></path><path class="link" opacity="1" d="M449.5,1837.5 + C461.25,1837.5 + 461.25,1835.5 + 473,1835.5"></path><path class="link" opacity="1" d="M449.5,1837.5 + C461.25,1837.5 + 461.25,1868.5 + 473,1868.5"></path><path class="link" opacity="1" d="M621,-1908.5 + C633,-1908.5 + 633,-1926 + 645,-1926"></path><path class="link" opacity="1" d="M621,-1908.5 + C633,-1908.5 + 633,-1891 + 645,-1891L894,-1891"></path><path class="link" opacity="1" d="M690,-1856 + C702,-1856 + 702,-1856 + 714,-1856"></path><path class="link" opacity="1" d="M747,-1786 + C759,-1786 + 759,-1821 + 771,-1821"></path><path class="link" opacity="1" d="M747,-1786 + C759,-1786 + 759,-1786 + 771,-1786"></path><path class="link" opacity="1" d="M747,-1786 + C759,-1786 + 759,-1751 + 771,-1751"></path><path class="link" opacity="1" d="M648,-1735.5 + C660,-1735.5 + 660,-1753 + 672,-1753"></path><path class="link" opacity="1" d="M648,-1735.5 + C660,-1735.5 + 660,-1720 + 672,-1720"></path><path class="link" opacity="1" d="M577,-1608 + C589,-1608 + 589,-1685 + 601,-1685L719,-1685"></path><path class="link" opacity="1" d="M577,-1608 + C589,-1608 + 589,-1650 + 601,-1650L878,-1650"></path><path class="link" opacity="1" d="M577,-1608 + C589,-1608 + 589,-1604.5 + 601,-1604.5L738,-1604.5"></path><path class="link" opacity="1" d="M577,-1608 + C589,-1608 + 589,-1531 + 601,-1531L960,-1531"></path><path class="link" opacity="1" d="M576,-1463 + C588,-1463 + 588,-1496 + 600,-1496"></path><path class="link" opacity="1" d="M576,-1463 + C588,-1463 + 588,-1461 + 600,-1461"></path><path class="link" opacity="1" d="M576,-1463 + C588,-1463 + 588,-1428 + 600,-1428"></path><path class="link" opacity="1" d="M588,-1395 + C600,-1395 + 600,-1395 + 612,-1395"></path><path class="link" opacity="1" d="M575,-1362 + C587,-1362 + 587,-1362 + 599,-1362"></path><path class="link" opacity="1" d="M549,-1247.75 + C561,-1247.75 + 561,-1293 + 573,-1293L642,-1293"></path><path class="link" opacity="1" d="M549,-1247.75 + C561,-1247.75 + 561,-1204.5 + 573,-1204.5L668,-1204.5"></path><path class="link" opacity="1" d="M678,-1134.5 + C690,-1134.5 + 690,-1134.5 + 702,-1134.5L867,-1134.5"></path><path class="link" opacity="1" d="M644,-810 + C656,-810 + 656,-991 + 668,-991L934,-991"></path><path class="link" opacity="1" d="M644,-810 + C656,-810 + 656,-865 + 668,-865L866,-865"></path><path class="link" opacity="1" d="M644,-810 + C656,-810 + 656,-795 + 668,-795L735,-795"></path><path class="link" opacity="1" d="M644,-810 + C656,-810 + 656,-627 + 668,-627L828,-627"></path><path class="link" opacity="1" d="M608,-476.5 + C620,-476.5 + 620,-494 + 632,-494"></path><path class="link" opacity="1" d="M608,-476.5 + C620,-476.5 + 620,-459 + 632,-459L841,-459"></path><path class="link" opacity="1" d="M651,-365.5 + C663,-365.5 + 663,-424 + 675,-424"></path><path class="link" opacity="1" d="M651,-365.5 + C663,-365.5 + 663,-379.5 + 675,-379.5L812,-379.5"></path><path class="link" opacity="1" d="M651,-365.5 + C663,-365.5 + 663,-342.25 + 675,-342.25"></path><path class="link" opacity="1" d="M651,-365.5 + C663,-365.5 + 663,-305 + 675,-305L879,-305"></path><path class="link" opacity="1" d="M649,-111.75 + C661,-111.75 + 661,-224.5 + 673,-224.5L965,-224.5"></path><path class="link" opacity="1" d="M649,-111.75 + C661,-111.75 + 661,-189.5 + 673,-189.5"></path><path class="link" opacity="1" d="M649,-111.75 + C661,-111.75 + 661,-98.5 + 673,-98.5L797,-98.5"></path><path class="link" opacity="1" d="M649,-111.75 + C661,-111.75 + 661,3 + 673,3L797,3"></path><path class="link" opacity="1" d="M615,99 + C627,99 + 627,48.5 + 639,48.5"></path><path class="link" opacity="1" d="M615,99 + C627,99 + 627,83.5 + 639,83.5"></path><path class="link" opacity="1" d="M615,99 + C627,99 + 627,116.5 + 639,116.5L744,116.5"></path><path class="link" opacity="1" d="M615,99 + C627,99 + 627,151.5 + 639,151.5"></path><path class="link" opacity="1" d="M1004,219.5 + C1016,219.5 + 1016,151 + 1028,151L1156,151"></path><path class="link" opacity="1" d="M1004,219.5 + C1016,219.5 + 1016,286 + 1028,286L1174,286"></path><path class="link" opacity="1" d="M746,330.5 + C758,330.5 + 758,297.5 + 770,297.5"></path><path class="link" opacity="1" d="M746,330.5 + C758,330.5 + 758,330.5 + 770,330.5"></path><path class="link" opacity="1" d="M746,330.5 + C758,330.5 + 758,363.5 + 770,363.5L820,363.5"></path><path class="link" opacity="1" d="M862,466 + C874,466 + 874,431 + 886,431"></path><path class="link" opacity="1" d="M862,466 + C874,466 + 874,522 + 886,522L1108,522"></path><path class="link" opacity="1" d="M592,771.125 + C604,771.125 + 604,661.25 + 616,661.25L725,661.25"></path><path class="link" opacity="1" d="M592,771.125 + C604,771.125 + 604,879 + 616,879L815,879"></path><path class="link" opacity="1" d="M584,984 + C596,984 + 596,949 + 608,949L815,949"></path><path class="link" opacity="1" d="M584,984 + C596,984 + 596,984 + 608,984"></path><path class="link" opacity="1" d="M584,984 + C596,984 + 596,1019 + 608,1019"></path><path class="link" opacity="1" d="M697,1103 + C709,1103 + 709,1054 + 721,1054"></path><path class="link" opacity="1" d="M697,1103 + C709,1103 + 709,1089 + 721,1089"></path><path class="link" opacity="1" d="M697,1103 + C709,1103 + 709,1152 + 721,1152L845,1152"></path><path class="link" opacity="1" d="M536,1241.25 + C548,1241.25 + 548,1215 + 560,1215L697,1215"></path><path class="link" opacity="1" d="M536,1241.25 + C548,1241.25 + 548,1267.5 + 560,1267.5L627,1267.5"></path><path class="link" opacity="1" d="M578,1378.75 + C590,1378.75 + 590,1320 + 602,1320"></path><path class="link" opacity="1" d="M578,1378.75 + C590,1378.75 + 590,1371.5 + 602,1371.5L683,1371.5"></path><path class="link" opacity="1" d="M578,1378.75 + C590,1378.75 + 590,1404.5 + 602,1404.5"></path><path class="link" opacity="1" d="M578,1378.75 + C590,1378.75 + 590,1437.5 + 602,1437.5"></path><path class="link" opacity="1" d="M606,1490 + C618,1490 + 618,1472.5 + 630,1472.5L739,1472.5"></path><path class="link" opacity="1" d="M606,1490 + C618,1490 + 618,1507.5 + 630,1507.5"></path><path class="link" opacity="1" d="M592,1599 + C604,1599 + 604,1578.5 + 616,1578.5"></path><path class="link" opacity="1" d="M592,1599 + C604,1599 + 604,1655.5 + 616,1655.5"></path><path class="link" opacity="1" d="M620,1708.5 + C632,1708.5 + 632,1726.5 + 644,1726.5"></path><path class="link" opacity="1" d="M559,1802.5 + C571,1802.5 + 571,1795.5 + 583,1795.5"></path><path class="link" opacity="1" d="M559,1802.5 + C571,1802.5 + 571,1828.5 + 583,1828.5"></path><path class="link" opacity="1" d="M890,-1891 + C902,-1891 + 902,-1891 + 914,-1891L995,-1891"></path><path class="link" opacity="1" d="M715,-1685 + C727,-1685 + 727,-1685 + 739,-1685"></path><path class="link" opacity="1" d="M874,-1650 + C886,-1650 + 886,-1650 + 898,-1650"></path><path class="link" opacity="1" d="M734,-1604.5 + C746,-1604.5 + 746,-1604.5 + 758,-1604.5L853,-1604.5"></path><path class="link" opacity="1" d="M956,-1531 + C968,-1531 + 968,-1559 + 980,-1559"></path><path class="link" opacity="1" d="M956,-1531 + C968,-1531 + 968,-1524 + 980,-1524"></path><path class="link" opacity="1" d="M638,-1293 + C650,-1293 + 650,-1327 + 662,-1327"></path><path class="link" opacity="1" d="M638,-1293 + C650,-1293 + 650,-1292 + 662,-1292"></path><path class="link" opacity="1" d="M638,-1293 + C650,-1293 + 650,-1257 + 662,-1257"></path><path class="link" opacity="1" d="M664,-1204.5 + C676,-1204.5 + 676,-1222 + 688,-1222L825,-1222"></path><path class="link" opacity="1" d="M664,-1204.5 + C676,-1204.5 + 676,-1187 + 688,-1187L934,-1187"></path><path class="link" opacity="1" d="M863,-1134.5 + C875,-1134.5 + 875,-1152 + 887,-1152"></path><path class="link" opacity="1" d="M863,-1134.5 + C875,-1134.5 + 875,-1117 + 887,-1117"></path><path class="link" opacity="1" d="M930,-991 + C942,-991 + 942,-1061 + 954,-1061"></path><path class="link" opacity="1" d="M930,-991 + C942,-991 + 942,-1026 + 954,-1026"></path><path class="link" opacity="1" d="M930,-991 + C942,-991 + 942,-991 + 954,-991"></path><path class="link" opacity="1" d="M930,-991 + C942,-991 + 942,-935 + 954,-935"></path><path class="link" opacity="1" d="M930,-991 + C942,-991 + 942,-900 + 954,-900"></path><path class="link" opacity="1" d="M862,-865 + C874,-865 + 874,-865 + 886,-865"></path><path class="link" opacity="1" d="M731,-795 + C743,-795 + 743,-831 + 755,-831L891,-831"></path><path class="link" opacity="1" d="M731,-795 + C743,-795 + 743,-796 + 755,-796L880,-796"></path><path class="link" opacity="1" d="M731,-795 + C743,-795 + 743,-761 + 755,-761L877,-761"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-725 + 848,-725"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-690 + 848,-690"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-634 + 848,-634"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-599 + 848,-599"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-564 + 848,-564"></path><path class="link" opacity="1" d="M824,-627 + C836,-627 + 836,-529 + 848,-529"></path><path class="link" opacity="1" d="M837,-459 + C849,-459 + 849,-476.5 + 861,-476.5L963,-476.5"></path><path class="link" opacity="1" d="M837,-459 + C849,-459 + 849,-443.5 + 861,-443.5"></path><path class="link" opacity="1" d="M808,-379.5 + C820,-379.5 + 820,-368 + 832,-368"></path><path class="link" opacity="1" d="M875,-305 + C887,-305 + 887,-333 + 899,-333"></path><path class="link" opacity="1" d="M875,-305 + C887,-305 + 887,-277 + 899,-277"></path><path class="link" opacity="1" d="M961,-224.5 + C973,-224.5 + 973,-242 + 985,-242"></path><path class="link" opacity="1" d="M961,-224.5 + C973,-224.5 + 973,-207 + 985,-207"></path><path class="link" opacity="1" d="M793,-98.5 + C805,-98.5 + 805,-154.5 + 817,-154.5"></path><path class="link" opacity="1" d="M793,-98.5 + C805,-98.5 + 805,-98.5 + 817,-98.5"></path><path class="link" opacity="1" d="M793,-98.5 + C805,-98.5 + 805,-42.5 + 817,-42.5"></path><path class="link" opacity="1" d="M793,3 + C805,3 + 805,13.5 + 817,13.5"></path><path class="link" opacity="1" d="M740,116.5 + C752,116.5 + 752,116.5 + 764,116.5"></path><path class="link" opacity="1" d="M1152,151 + C1164,151 + 1164,119 + 1176,119"></path><path class="link" opacity="1" d="M1152,151 + C1164,151 + 1164,185 + 1176,185L1237,185"></path><path class="link" opacity="1" d="M1170,286 + C1182,286 + 1182,253 + 1194,253L1352,253"></path><path class="link" opacity="1" d="M1170,286 + C1182,286 + 1182,319 + 1194,319L1338,319"></path><path class="link" opacity="1" d="M816,363.5 + C828,363.5 + 828,375 + 840,375"></path><path class="link" opacity="1" d="M1104,522 + C1116,522 + 1116,466 + 1128,466L1265,466"></path><path class="link" opacity="1" d="M1104,522 + C1116,522 + 1116,522 + 1128,522"></path><path class="link" opacity="1" d="M1104,522 + C1116,522 + 1116,578 + 1128,578"></path><path class="link" opacity="1" d="M721,661.25 + C733,661.25 + 733,578 + 745,578"></path><path class="link" opacity="1" d="M721,661.25 + C733,661.25 + 733,613 + 745,613L882,613"></path><path class="link" opacity="1" d="M721,661.25 + C733,661.25 + 733,746.5 + 745,746.5L864,746.5"></path><path class="link" opacity="1" d="M811,879 + C823,879 + 823,879 + 835,879"></path><path class="link" opacity="1" d="M811,949 + C823,949 + 823,931.5 + 835,931.5"></path><path class="link" opacity="1" d="M811,949 + C823,949 + 823,966.5 + 835,966.5"></path><path class="link" opacity="1" d="M841,1152 + C853,1152 + 853,1124 + 865,1124"></path><path class="link" opacity="1" d="M841,1152 + C853,1152 + 853,1180 + 865,1180"></path><path class="link" opacity="1" d="M693,1215 + C705,1215 + 705,1215 + 717,1215"></path><path class="link" opacity="1" d="M623,1267.5 + C635,1267.5 + 635,1250 + 647,1250"></path><path class="link" opacity="1" d="M623,1267.5 + C635,1267.5 + 635,1285 + 647,1285"></path><path class="link" opacity="1" d="M679,1371.5 + C691,1371.5 + 691,1353 + 703,1353"></path><path class="link" opacity="1" d="M679,1371.5 + C691,1371.5 + 691,1388 + 703,1388"></path><path class="link" opacity="1" d="M735,1472.5 + C747,1472.5 + 747,1472.5 + 759,1472.5"></path><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd84e74adf2fe590d82aaf" opacity="1" transform="translate(489, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd82128ac4bde03cf67c07" opacity="1" transform="translate(489, -1871.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ファイルシステム未実装 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="193" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(195, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd80eb2c27f8ecd00eb462" opacity="1" transform="translate(489, -1801.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="231" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSのファイルシステム設計 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="270" height="50.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="270" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="250" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(252, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd81108beb365d7d6e8059" opacity="1" transform="translate(489, -1751)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 取り入れたい要素 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="127.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="151" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(153, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d9444bf9cc8a535c11e892" opacity="1" transform="translate(460, -1623.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 簡単な説明 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="146" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d940dd468303afface1c8c" opacity="1" transform="translate(460, -1477.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="89" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Code Gear + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="128" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="128" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d940e378de9033898c1ad2" opacity="1" transform="translate(460, -1443.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Data Gear + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeb65c478cfc1c5635" opacity="1" transform="translate(460, -1409.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="101" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + normal level + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="140" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="140" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="120" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(122, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee6ae951fcba304d34" opacity="1" transform="translate(460, -1376.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="88" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + meta level + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="127" height="113.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="127" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="107" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(109, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee9b7b9970570bfc2a" opacity="1" transform="translate(460, -1263.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 継続性 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="113.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeef503ecd7e6e1cbe6" opacity="1" transform="translate(546, -1150)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="325.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd87437810c0b2b81c2279" opacity="1" transform="translate(546, -824.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="71" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Context + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="110" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="110" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd8208acb5e33d60f4c74c" opacity="1" transform="translate(546, -791.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="49" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + stub + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="88" height="299.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="88" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="53" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(55, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeed192c58ee18885d0" opacity="1" transform="translate(483, -492)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="98" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Christieとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="137" height="112" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="137" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="117" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(119, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeaa32c75435cc523e" opacity="1" transform="translate(483, -380)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="141" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + DataGearManager + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="180" height="253.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="180" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="160" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(162, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeb5bd988c147c8a1d" opacity="1" transform="translate(483, -126.25)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="139" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + topology manager + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="210.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="178" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="158" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(160, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61e93473eec5f2817f77e3f7" opacity="1" transform="translate(545, 84.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + xv6 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="85.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="62" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(64, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeef5fd3670c4313ae0" opacity="1" transform="translate(545, 170)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + inode + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="96" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="76" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(78, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0 M0,-3 L0,3"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7dd35657c20441dc6477" opacity="1" transform="translate(639, 204)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Treeによるディレクトリ構造(図などでここ詳しく) + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="377" height="112" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="357" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(359, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7e2e2aee2e9ec1aa35d2" opacity="1" transform="translate(639, 316)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="80" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Unix Like + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="119" height="134.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="119" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="99" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(101, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7e2201750a5b46788263" opacity="1" transform="translate(639, 450.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="196" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 非破壊的編集によるBackUp + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="235" height="305.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="235" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="215" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(217, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd831310901a30ea41aaad" opacity="1" transform="translate(517, 755.625)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 構成 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="142.875" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd8f38421a42a228760bbf" opacity="1" transform="translate(509, 898.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="140" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + APIの設計に用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="179" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="179" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="144" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(146, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61ed2c9d9b4680c8f3f4870e" opacity="1" transform="translate(509, 968.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 機能 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="119" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee9142dd18a39e748e" opacity="1" transform="translate(509, 1087.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="161" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearBox的に処理する + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="200" height="138.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="200" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="180" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(182, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee898ab912c0e04558" opacity="1" transform="translate(461, 1225.75)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 現状 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="137.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7ea31dc70438e3cfc0d4" opacity="1" transform="translate(461, 1363.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 今後の課題 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="111.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61e93489737618a185b2895f" opacity="1" transform="translate(461, 1474.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 信頼性について + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="109" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee543178ca256c0115" opacity="1" transform="translate(489, 1583.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 一木さん + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="109.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeec8784cbea1345755" opacity="1" transform="translate(489, 1693)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + アナグラさん + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="123" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(125, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee461ec06fe3419cf5" opacity="1" transform="translate(489, 1728)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="94" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + parusuさん + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="133" height="60" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="133" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="98" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(100, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61ee998ccd3316597ab10c0f" opacity="1" transform="translate(489, 1788)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + xv6 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="62" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(64, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61f0b2bef0aeee30303e9d00" opacity="1" transform="translate(461, 1821)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="83" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + mindmap + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="122" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="87" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(89, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61f0b2c3fe4222ef0c01051a" opacity="1" transform="translate(461, 1854)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="164" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + gearsDirectory source + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="203" height="29" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="203" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="168" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(170, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd855fe56bb6885ef70a72" opacity="1" transform="translate(633, -1941.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 信頼性と拡張性 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85337e9e91e8b09ba0cd" opacity="1" transform="translate(633, -1906.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="230" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ノーマルレベルメタレベルの分離 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="269" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="269" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="249" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(251, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2d852377960f9ee10fae" opacity="1" transform="translate(702, -1871.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="235" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + だがOSにおいて重要な機能である + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="274" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="274" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="239" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(241, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85a3983d508c3c27c4ff" opacity="1" transform="translate(759, -1836.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="230" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 基幹となるディレクトリシステム + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="269" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="269" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="234" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(236, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85cacdd556d948e31521" opacity="1" transform="translate(759, -1801.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ファイル構造 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8614e9e69e610454c606" opacity="1" transform="translate(759, -1766.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="84" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + API設計中 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="123" height="25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="123" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="88" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(90, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd81337fa21ffab49afc1d" opacity="1" transform="translate(660, -1767.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="68" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + backup + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="107" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="107" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="72" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(74, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd813787fb53c87b741609" opacity="1" transform="translate(660, -1734.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="40" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + log + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="79" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="79" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="44" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(46, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9445a5f453b2338fbd0f0" opacity="1" transform="translate(589, -1700.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Cの下位言語 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="118" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(120, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d944650417dd929d34bb38" opacity="1" transform="translate(589, -1665.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="258" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 関数呼び出しの代わりに継続を用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="297" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="297" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d944a718562880e7807481" opacity="1" transform="translate(589, -1620)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 環境を持たない + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9410f7ea17da01267bd3f" opacity="1" transform="translate(589, -1557)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + 関数型言語のtail callスタイルにあたるプログラミング + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="359" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(361, 14)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9451ad3b25e7b890da30b" opacity="1" transform="translate(588, -1511.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 関数の代わり + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9452208e89007f290cc3b" opacity="1" transform="translate(588, -1476.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="142" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + _codeで宣言を行う + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="181" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="181" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="146" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(148, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d946b3e9199d9885e6c634" opacity="1" transform="translate(588, -1442.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="131" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Input/Output DG + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="170" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="170" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="135" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(137, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee74908b9082004b8e" opacity="1" transform="translate(600, -1409.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="49" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + user + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="88" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="88" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="53" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(55, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee85791ef7e6470e8e" opacity="1" transform="translate(587, -1376.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="61" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + kernel + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="100" height="69" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="100" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="65" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(67, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeefe777feeb03a9469" opacity="1" transform="translate(561, -1307.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="50" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + goto + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="89" height="87.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="89" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="69" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(71, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee5052c329895cdd65" opacity="1" transform="translate(561, -1220)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 軽量継続 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd819780aaf162d2cc76f4" opacity="1" transform="translate(690, -1150)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="146" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 信頼性の保証が目的 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="185" height="143.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="185" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="165" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(167, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed3683b8405a0ba60b2245" opacity="1" transform="translate(656, -1006.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="247" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 全てのCG, DGを参照できるMetaDG + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="286" height="126" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="286" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="266" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(268, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed36a2798eac68471105eb" opacity="1" transform="translate(656, -880.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 従来OSのプロセスに相当 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="198" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(200, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed36b0ca39fce9d6219264" opacity="1" transform="translate(656, -810.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 種類 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="168" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee8f9784c414868c51f599" opacity="1" transform="translate(656, -642.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="141" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Context参照の流れ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="180" height="133" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="180" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="160" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(162, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeecfd64bc7de9f3fe5" opacity="1" transform="translate(620, -509.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="202" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 並列分散通信フレームワーク + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="241" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="241" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="206" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(208, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee4be85afc650f0d3c" opacity="1" transform="translate(620, -474.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="190" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + CbCとは異なるGearの概念 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="229" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="229" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="209" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(211, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3cd6b41e77cba715b59c9" opacity="1" transform="translate(663, -439.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="139" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + DGを管理している + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="178" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="143" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(145, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8c81b6b5039af448edb5" opacity="1" transform="translate(663, -394)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="118" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + key value store + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="36.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="157" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeea8d8ae3de903300a" opacity="1" transform="translate(663, -357.75)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Fileとして用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="37.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="131" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(133, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8d12e24b1cd8530b52eb" opacity="1" transform="translate(663, -320.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="185" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + LocalDGMとRemoteDGM + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="224" height="80.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="224" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="204" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(206, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc139eb29e9674202fe9" opacity="1" transform="translate(661, -240)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 任意のtopologyを生成することができる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="292" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(294, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3e3b1a936f5d0e748260b" opacity="1" transform="translate(661, -205)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="272" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 分散プログラムを簡潔に書くために必要 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="311" height="91" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="311" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="276" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(278, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc2cfe6b492376800946" opacity="1" transform="translate(661, -114)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 静的topology + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc35bb445111d12dc5ef" opacity="1" transform="translate(661, -12.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 動的topology + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9b8f426bad5d6e986a15" opacity="1" transform="translate(627, 33)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="245" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + MITで教育用の目的で開発されたOS + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="284" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="284" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="249" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(251, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9ba4900dff4dd99aef93" opacity="1" transform="translate(627, 68)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="162" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Unixの基本構造を持つ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="201" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="201" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="166" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(168, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9bbc45fc1c1de6e57f30" opacity="1" transform="translate(627, 102)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + filesystem + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="105" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(107, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9bd02f811a0f199cee3d" opacity="1" transform="translate(627, 136)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="251" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + CbCによるxv6の書き換えが行われた + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="290" height="0.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="290" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="255" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(257, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee0ac7e49e7c9717d9" opacity="1" transform="translate(1016, 136.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="109" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + RedBlackTree + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="148" height="134" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="148" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="128" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(130, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e8e9c40882cebe1a6de7c7" opacity="1" transform="translate(1016, 270.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 2つの木を用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="12.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="146" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(148, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d555bd111195a6af3c" opacity="1" transform="translate(758, 283)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="59" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + mkdir + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="98" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="98" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="63" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(65, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d73f63750534da42cf" opacity="1" transform="translate(758, 316)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="36" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + cd + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="75" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="75" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="40" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(42, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d8e726b13b92713d0c" opacity="1" transform="translate(758, 349)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="31" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + ls + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="70" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="70" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="50" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(52, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f12937d7e0c23c94f182e3" opacity="1" transform="translate(874, 405)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + バックアップ機能をOS自体に持たせたいという目的 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f129ce24c6eecfe50f5e5b" opacity="1" transform="translate(874, 506.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="203" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSにおける永続データ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="242" height="140.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="242" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="222" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(224, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeecf2259146277e593" opacity="1" transform="translate(604, 646.75)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="90" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + I/O stream + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="216.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="129" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd831e5aa20a0be6aeaf2a" opacity="1" transform="translate(604, 863.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="180" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + logによるバージョン管理 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="219" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="219" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="199" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(201, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2caf80fb0001ae0ce8f3" opacity="1" transform="translate(596, 933.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="188" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ファイルの中身を読み取り + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="227" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="227" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="207" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(209, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2cde180a221da2acf738" opacity="1" transform="translate(596, 968.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="160" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Unix Fileに対して行う + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="199" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="199" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="164" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(166, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2cec48821caff7c6467c" opacity="1" transform="translate(596, 1003.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 中間報告の時の図 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee42dd695b47fa0009" opacity="1" transform="translate(709, 1038.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 一木さん図5 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="103" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(105, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee50ea4324a8c982de" opacity="1" transform="translate(709, 1073.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + File操作の仕組み + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="131" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(133, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2c5dac6ab24a586380f6" opacity="1" transform="translate(709, 1136.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearBoxとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeeffd76a3022e6027f" opacity="1" transform="translate(548, 1199.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 実装できた部分 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee9894ca7b407b3f0d" opacity="1" transform="translate(548, 1252)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 課題 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd83693c151f3d7828adfa" opacity="1" transform="translate(590, 1304.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="160" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 分散ファイルシステム + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="199" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="199" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="164" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(166, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f15e126ccc6fb88a8e3570" opacity="1" transform="translate(590, 1356)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + 信頼性 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)" style="display: inline;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8f9b130c1664fab5c521" opacity="1" transform="translate(590, 1390)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="51" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + shell + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="90" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="90" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="55" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(57, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f0b323437298c8d12f3aa3" opacity="1" transform="translate(590, 1423)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="50" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + path + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="89" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="89" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="54" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(56, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd7f0210ffe636a76a4cde" opacity="1" transform="translate(618, 1457)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + モデル検査 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e93494be822d3e3afa2b28" opacity="1" transform="translate(618, 1492)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 定理証明 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="53" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeec4993d23c274064e" opacity="1" transform="translate(604, 1545)"><g class="rectGroup" transform="translate(12, -33.5)"><foreignObject class="text" width="340" height="67"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf" target="_blank">https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="74" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-33.5" width="379" height="33.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-35.5" width="100" height="71" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 21.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeeab13f367fec9c0ac" opacity="1" transform="translate(604, 1619)"><g class="rectGroup" transform="translate(12, -36.5)"><foreignObject class="text" width="340" height="73"><div xmlns="http://www.w3.org/2000/xmlns/"> + 一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="74" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-36.5" width="379" height="36.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-38.5" width="100" height="77" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 24.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee322cb267275d34d1" opacity="1" transform="translate(632, 1693)"><g class="rectGroup" transform="translate(12, -33.5)"><foreignObject class="text" width="340" height="67"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf" target="_blank">http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="78.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-33.5" width="379" height="33.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-35.5" width="100" height="71" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 21.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9992948c7ff47a116cc3" opacity="1" transform="translate(571, 1771.5)"><g class="rectGroup" transform="translate(12, -24)"><foreignObject class="text" width="340" height="48"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf" target="_blank">https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="42.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-24" width="379" height="24" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-26" width="100" height="52" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 12)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61eecd7f3b9eb68511c5569a" opacity="1" transform="translate(571, 1814)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="208" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Papers/2020/anatofuz-sigos/ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="247" height="29" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="247" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="212" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(214, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee08c7c7a1806ee0fc" opacity="1" transform="translate(902, -1906.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 信頼性 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="206" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94682c59fb3c974fb8de7" opacity="1" transform="translate(727, -1700.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Cとの違いは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="103" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(105, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9448e9cef2f6677bb759a" opacity="1" transform="translate(886, -1665.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 継続とは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9428ea39f2dce266bd209" opacity="1" transform="translate(746, -1620)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 環境とは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94648aebf3fc3dce220a3" opacity="1" transform="translate(968, -1574.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="153" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + tail call スタイルとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="192" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="192" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="157" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(159, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d947af90753a0e8f7379c9" opacity="1" transform="translate(968, -1539.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 末尾再帰とも言う + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="197" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94263d4adb76cdf86cec9" opacity="1" transform="translate(650, -1342.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="130" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + jmp命令を用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="169" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="169" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="134" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(136, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94b9d0ca35a34d7bde91f" opacity="1" transform="translate(650, -1307.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 引数付き + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94c072399543871b331f5" opacity="1" transform="translate(650, -1272.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="190" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 普通のgotoと違うところは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="229" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="229" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="194" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(196, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9413052ebca6a864ecefa" opacity="1" transform="translate(676, -1237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 環境を持たない + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94166e6f1868554b4111b" opacity="1" transform="translate(676, -1202.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="227" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 関数呼び出し(call)せず、jmpする + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="266" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="266" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="246" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(248, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd81ace80291bc0f83316e" opacity="1" transform="translate(875, -1167.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + モデル検査 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="94" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(96, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd81c24a34f76db1ebd827" opacity="1" transform="translate(875, -1132.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="328" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ノーマルレベルメタレベル切り分けがされている + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="367" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="367" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="332" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(334, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed377893daa8cdaddf55e8" opacity="1" transform="translate(942, -1087)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed375cd69a801cfe4b38af" opacity="1" transform="translate(942, -1041.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="269" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + Metaなのでnormalから直接参照しない + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="308" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="308" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="273" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(275, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed379f4a69a32ba8e8c96d" opacity="1" transform="translate(942, -1006.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="199" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 必ずMetaCGから参照される + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="238" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="238" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="203" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(205, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed37e901a43e8a3dd01eaf" opacity="1" transform="translate(942, -961)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed3f5aa24fbc88abd398d1" opacity="1" transform="translate(942, -915.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="200" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + CGとDGの接続に用いられる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="239" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="239" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="204" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(206, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed37bcf0b7a42f1a98e516" opacity="1" transform="translate(874, -880.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="318" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + UserプロセスにあたるUser Contextが存在する + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="357" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="357" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="322" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(324, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36b8a0405e837cf2d2f8" opacity="1" transform="translate(743, -845.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="117" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + Kernel Context + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="156" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="156" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36c0cca8e2f7245ed57f" opacity="1" transform="translate(743, -810.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="106" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + User Context + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="145" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="145" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="125" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(127, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36c658bb78e7a973cce3" opacity="1" transform="translate(743, -775.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="103" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + CPU Context + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="142" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="142" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee8fa0fe9bbb9ff64d47d3" opacity="1" transform="translate(836, -740.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="276" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + CGがOutputDataGearへデータをoutput + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="315" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="315" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="280" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(282, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee9054238e124e9fa4b9e7" opacity="1" transform="translate(836, -705.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="219" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 次のCGのstubCodeGearへgoto + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="258" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="258" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="223" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(225, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee906bc582d343442aaee5" opacity="1" transform="translate(836, -660)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee90c5896029e26c82b469" opacity="1" transform="translate(836, -614.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="83" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + CGへgoto + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="122" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="87" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(89, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee90f564075918aa041324" opacity="1" transform="translate(836, -579.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="148" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + OutputDGへOutput + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="187" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="187" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="152" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(154, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee910f3b125b56c2fb1ad5" opacity="1" transform="translate(836, -544.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="186" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 次のstubCodeGearへgoto + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="225" height="53.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="225" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="190" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(192, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eeebff8efc9e30d056a" opacity="1" transform="translate(849, -491)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="83" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + DataGear + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="122" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="102" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(104, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee2c321f8f4f4b036c" opacity="1" transform="translate(849, -458)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + CodeGear + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="64" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3cd2fb8249b54953c333f" opacity="1" transform="translate(820, -394)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3ccd7ff70f4db3c49cd21" opacity="1" transform="translate(887, -348.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="274" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + LocalはCGM自身が所持するDGのプール + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="313" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="313" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="278" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(280, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3ccf1716526f230cd4462" opacity="1" transform="translate(887, -303)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + RemoteはCGMが配線されている別のCGMがもつDGのプール + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e6ebe37d568d7cf779ef" opacity="1" transform="translate(973, -257.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + topologyのノードはCGM + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="183" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(185, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee9db8bb954c2884a4" opacity="1" transform="translate(973, -222.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="202" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ノード同士の通信接続を管理 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="241" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="241" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="206" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(208, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e44b86a3291fd8cbb4da" opacity="1" transform="translate(805, -170)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 任意のtopologyとノードの配線ができる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e5c120fe700bf4814331" opacity="1" transform="translate(805, -124.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + dotファイルに記述し,TopologyManagerに参照させる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e62a1f820b2af52c8e95" opacity="1" transform="translate(805, -68.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e6487834cb61c4189095" opacity="1" transform="translate(805, -12.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + 参加を表明したノードに対し,自動的に配線を行う + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="114.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee9bc9dc4ebd5fe5851bec" opacity="1" transform="translate(752, 102)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + inode + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="96" height="1.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="61" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(63, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee0fdad6a4a6f31a6b" opacity="1" transform="translate(1164, 103.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="294" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + DataGearManagerを格納してFileSystemに + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="333" height="67" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="333" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="298" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(300, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61eee83f397d07060865ecfd" opacity="1" transform="translate(1164, 170.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="42" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + API + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="81" height="67" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="81" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="61" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(63, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e8e9db791dcb4cd5bf0f12" opacity="1" transform="translate(1182, 237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="139" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + inumとfile pointer + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="66" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="178" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="158" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(160, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e8e9cdf0097700a35df555" opacity="1" transform="translate(1182, 303.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="125" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + inumとfilename + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="164" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="164" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="144" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(146, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e934ae2dc68ce72877295b" opacity="1" transform="translate(828, 349)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + filenameのlistを入れることでlsのリスト表示を実装できる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12a790ddfc40f14d278bb" opacity="1" transform="translate(1116, 450.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 木構造を用いる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12ab29a7a7dfc676e4014" opacity="1" transform="translate(1116, 496)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + ルートノードから変更ノードまでのパスを全てコピー + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12ae34f005bb22a25b8a4" opacity="1" transform="translate(1116, 552)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + コピーしたパス上に存在しないノードはコピー元の木構造と共有 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="10.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd8e487ac7542722a1f93d" opacity="1" transform="translate(733, 562.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="85" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + keyで参照 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="124" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="124" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="89" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(91, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee8c6deac442e1ba4e" opacity="1" transform="translate(733, 597.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 競合的アクセス + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="133.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e9334e397cd205eea4f9c0" opacity="1" transform="translate(733, 731)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="100" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 3つのQueue + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="139" height="132.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="139" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="119" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(121, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd8f01fd6f76de916ed893" opacity="1" transform="translate(823, 863.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="117" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + git mercurial的 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="156" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="156" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="121" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(123, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2cc44f1df81516689e2b" opacity="1" transform="translate(823, 916)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 文字数 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2cc91ca42df3ff4ec949" opacity="1" transform="translate(823, 951)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 行数 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="157.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="52" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(54, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2c644f4dab63b8ad1305" opacity="1" transform="translate(853, 1108.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="217" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSの機能を表現する手法 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="256" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="256" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="221" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(223, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2c71b4d2f92498f1af05" opacity="1" transform="translate(853, 1154)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + 状態遷移図とクラスダイアグラムを組み合わせたような図 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee9ca3b8ef3ec66f00" opacity="1" transform="translate(705, 1199.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="170" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + RBTreeの動作test(予定) + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="209" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="209" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="174" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(176, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee39e5cae1a45aff86" opacity="1" transform="translate(635, 1234.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="262" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSへのtopologyManagerの実装 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="301" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="301" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="266" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(268, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eeee00c797722567240" opacity="1" transform="translate(635, 1269.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + ディレクトリ構造の作成 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="69" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="178" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(180, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f15e6d22e90dbb520c9c1f" opacity="1" transform="translate(691, 1338.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="92" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + GearsAgda + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="131" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="131" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="96" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(98, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f15e76d4359e4feccabc88" opacity="1" transform="translate(691, 1372.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1"> + モデル検査 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="84.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="94" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(96, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd7f19e169603d1c277929" opacity="1" transform="translate(747, 1457)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="193" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + RedBlackTreeのモデル検査 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="232" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="232" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="197" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(199, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M991,-1891 + C1003,-1891 + 1003,-1908.5 + 1015,-1908.5L1124,-1908.5"></path><path class="link" opacity="1" d="M991,-1891 + C1003,-1891 + 1003,-1873.5 + 1015,-1873.5L1110,-1873.5"></path><path class="link" opacity="1" d="M849,-1604.5 + C861,-1604.5 + 861,-1594 + 873,-1594"></path><path class="link" opacity="1" d="M821,-1222 + C833,-1222 + 833,-1222 + 845,-1222"></path><path class="link" opacity="1" d="M930,-1187 + C942,-1187 + 942,-1187 + 954,-1187"></path><path class="link" opacity="1" d="M887,-831 + C899,-831 + 899,-830 + 911,-830"></path><path class="link" opacity="1" d="M876,-796 + C888,-796 + 888,-795 + 900,-795"></path><path class="link" opacity="1" d="M873,-761 + C885,-761 + 885,-760 + 897,-760"></path><path class="link" opacity="1" d="M959,-476.5 + C971,-476.5 + 971,-476.5 + 983,-476.5"></path><path class="link" opacity="1" d="M1233,185 + C1245,185 + 1245,152 + 1257,152"></path><path class="link" opacity="1" d="M1233,185 + C1245,185 + 1245,185 + 1257,185"></path><path class="link" opacity="1" d="M1233,185 + C1245,185 + 1245,218 + 1257,218"></path><path class="link" opacity="1" d="M1348,253 + C1360,253 + 1360,235.5 + 1372,235.5"></path><path class="link" opacity="1" d="M1348,253 + C1360,253 + 1360,268.5 + 1372,268.5"></path><path class="link" opacity="1" d="M1334,319 + C1346,319 + 1346,301.5 + 1358,301.5"></path><path class="link" opacity="1" d="M1334,319 + C1346,319 + 1346,334.5 + 1358,334.5"></path><path class="link" opacity="1" d="M1261,466 + C1273,466 + 1273,465 + 1285,465"></path><path class="link" opacity="1" d="M878,613 + C890,613 + 890,612 + 902,612L1072,612"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,647 + 884,647L958,647"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,682 + 884,682L968,682"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,717 + 884,717L956,717"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,753 + 884,753"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,788 + 884,788L1131,788"></path><path class="link" opacity="1" d="M860,746.5 + C872,746.5 + 872,844 + 884,844"></path><path class="link" opacity="1" d="M1120,-1908.5 + C1132,-1908.5 + 1132,-1908.5 + 1144,-1908.5"></path><path class="link" opacity="1" d="M1106,-1873.5 + C1118,-1873.5 + 1118,-1874.5 + 1130,-1874.5"></path><path class="link" opacity="1" d="M1068,612 + C1080,612 + 1080,613 + 1092,613"></path><path class="link" opacity="1" d="M954,647 + C966,647 + 966,648 + 978,648"></path><path class="link" opacity="1" d="M964,682 + C976,682 + 976,683 + 988,683L1323,683"></path><path class="link" opacity="1" d="M952,717 + C964,717 + 964,718 + 976,718"></path><path class="link" opacity="1" d="M1127,788 + C1139,788 + 1139,788 + 1151,788"></path><path class="link" opacity="1" d="M1319,683 + C1331,683 + 1331,693.5 + 1343,693.5"></path><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eee9d6e9956ae48ef78" opacity="1" transform="translate(1003, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + モデル検査 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeefcfde9a71e4e5b2e" opacity="1" transform="translate(1003, -1889)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 定理証明 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="269" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d942946f219b5048513f78" opacity="1" transform="translate(861, -1620)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + プログラムが実行される際、その出力に影響を与える変数やデータのこと + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="382.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d9423e49b16256983319a7" opacity="1" transform="translate(833, -1237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="209" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 必要なデータは毎回inputする + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="248" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="248" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="213" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(215, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d9419e147ca341ac5a09da" opacity="1" transform="translate(942, -1202.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 処理はcallよりjmpが軽量 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="357" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="183" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(185, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed373d6b24cd409ad2eabb" opacity="1" transform="translate(899, -845.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="244" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + OS上の全てのContextを参照できる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="283" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="283" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="248" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(250, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed373187563f7fd5e088ee" opacity="1" transform="translate(888, -810.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + ユーザーごとに存在する + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="178" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(180, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed4223b2eb05ae7307e372" opacity="1" transform="translate(885, -775.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 実行しているCPUやGPUごとに存在する + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="284.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeeff6b0351dab1fa13" opacity="1" transform="translate(971, -491)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="65" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + atomic + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="104" height="628.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="104" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="69" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(71, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee842d5b528b4a1beaa20" opacity="1" transform="translate(1245, 137.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + put + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="47" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(49, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee8792277046bdaf7a0e6" opacity="1" transform="translate(1245, 170.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="41" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + get + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="80" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="80" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="45" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(47, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee8bc6fdb1297f4d4d113" opacity="1" transform="translate(1245, 203.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + remove + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="17.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="74" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(76, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8eb987f8ddb9d4a2dcd74" opacity="1" transform="translate(1360, 221)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="84" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + key: inum + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="123" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="123" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="88" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(90, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8ec079f4d8083dd38966f" opacity="1" transform="translate(1360, 254)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="134" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + value: file pointer + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="173" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="173" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="138" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(140, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8ea002ff4c042699dbf38" opacity="1" transform="translate(1346, 287)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="107" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + key: filename + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="146" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="146" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="111" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(113, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8eb895348af436deb04f9" opacity="1" transform="translate(1346, 320)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + value: inum + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="135" height="130.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="100" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(102, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61f12a81d1adcbd019532ac0" opacity="1" transform="translate(1273, 450.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="109" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + RedBlackTree + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="148" height="147" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="148" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="113" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(115, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeec43c03061353ac5d" opacity="1" transform="translate(890, 597.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="151" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + synchronizedQueue + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="190" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="190" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="170" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(172, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e9335eec165d23dfdc8398" opacity="1" transform="translate(872, 632.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="55" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + input + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="94" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="94" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="74" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(76, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933628858d3b20926eff6" opacity="1" transform="translate(872, 667.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="65" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + output + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="104" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="104" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="84" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(86, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e93364eb0882d4d2aa4333" opacity="1" transform="translate(872, 702.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="53" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + main + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="92" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="92" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="72" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(74, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933a597e088d5c08e9f74" opacity="1" transform="translate(872, 737.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + input -> main -> output のような繋がり + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933bd8752462fa2f18d82" opacity="1" transform="translate(872, 772.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="228" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + queueの中身は共通してelement + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="267" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="267" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="247" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(249, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e99c4e334b95c9b14a0bb6" opacity="1" transform="translate(872, 818)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + これらのQueueはkeyとペアになっており,keyで参照することができる. + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="52" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eeecd235fed85307f45" opacity="1" transform="translate(1132, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + 継続性 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eee1bd3d88a8df6d3db" opacity="1" transform="translate(1118, -1889)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="52" height="29"><div xmlns="http://www.w3.org/2000/xmlns/"> + agda + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="91" height="2486.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="91" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="56" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(58, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eee4982fc08b5ca1aed" opacity="1" transform="translate(1080, 597.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="136" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + parusuさんの論文 + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="175" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="175" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="140" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(142, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e93367359023bf79e7368c" opacity="1" transform="translate(966, 632.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="303" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + データをinputしたい場合にこのQueueにput + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="342" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="342" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="307" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(309, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e9337c83e1e1d0a2e07f51" opacity="1" transform="translate(976, 667.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="316" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + データを取得したい場合にこのQueueからtake + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="355" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="355" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="335" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(337, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e93398d517334fec28637a" opacity="1" transform="translate(964, 702.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + データそのもの + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e933f8e5a474251fd9f24f" opacity="1" transform="translate(1139, 772.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="102" height="31"><div xmlns="http://www.w3.org/2000/xmlns/"> + elementとは + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="141" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="141" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="106" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(108, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_7 right" data-id="node_61e93408b69a88a07cd0834d" opacity="1" transform="translate(1331, 667.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/"> + Synchronized QueueかSingleLinkedQueueを選べる + </div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="52" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g></g><g _ngcontent-lkb-c107="" class="root"><g class="mindmapNode nodeRoot" data-id="node_61bd6eeee4f36694ca125b71"><g class="rootRectGroup" transform="translate(-12, -34)"><foreignObject class="mainText" x="27" width="350" height="68"><div xmlns="http://www.w3.org/2000/xmlns/"> + GearsOSにおけるinodeを用いたFile systemの設計 + </div></foreignObject></g><rect class="ghostRect ghostRectLeft" pointer-events="none" x="-190" y="-234" width="200" height="468" style="display: none;"></rect><rect class="ghostRect ghostRectRight" pointer-events="none" x="384" y="-234" width="200" height="468" style="display: none;"></rect></g></g><g _ngcontent-lkb-c107="" class="textareaWrapper" transform="translate(703,92.875)" style="display: none;"><foreignObject _ngcontent-lkb-c107="" width="345" height="500"><textarea _ngcontent-lkb-c107="" style="display: none; width: 115px; height: 31px;"></textarea></foreignObject></g><foreignObject _ngcontent-lkb-c107="" class="editHelperWrapper"><div _ngcontent-lkb-c107="" style="visibility: hidden; position: absolute; z-index: -1; width: 320px;"><div _ngcontent-lkb-c107="" class="editHelper" style="display: inline-block; pointer-events: none;">モデル検査</div></div></foreignObject></g></svg></div></div></app-svg-container></app-mindmap></body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figs/gearsDirectoryMM.json Thu Jan 27 11:03:59 2022 +0900 @@ -0,0 +1,1728 @@ +{ + "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" + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figs/gearsDirectoryMM.md Thu Jan 27 11:03:59 2022 +0900 @@ -0,0 +1,242 @@ +# GearsOSにおけるinodeを用いたFile systemの設計 +## 研究目的 +### GearsOSとは +#### 信頼性と拡張性 +#### ノーマルレベルメタレベルの分離 +##### 信頼性 +###### モデル検査 +継続性 +###### 定理証明 +agda +### ファイルシステム未実装 +だがOSにおいて重要な機能である +### GearsOSのファイルシステム設計 +基幹となるディレクトリシステム +ファイル構造 +API設計中 +### 取り入れたい要素 +backup +log +## CbC +### 簡単な説明 +#### Cの下位言語 +Cとの違いは +#### 関数呼び出しの代わりに継続を用いる +継続とは +#### 環境を持たない +##### 環境とは +プログラムが実行される際、その出力に影響を与える変数やデータのこと +#### 関数型言語のtail callスタイルにあたるプログラミング +tail call スタイルとは +末尾再帰とも言う +### Code Gear +関数の代わり +_codeで宣言を行う +Input/Output DG +### Data Gear +### normal level +user +### meta level +kernel +### 継続性 +#### goto +jmp命令を用いる +引数付き +普通のgotoと違うところは +#### 軽量継続 +##### 環境を持たない +必要なデータは毎回inputする +##### 関数呼び出し(call)せず、jmpする +処理はcallよりjmpが軽量 +## GearsOSについて +### GearsOSとは +#### 信頼性の保証が目的 +##### モデル検査 +##### ノーマルレベルメタレベル切り分けがされている +### Context +#### 全てのCG, DGを参照できるMetaDG +normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう +Metaなのでnormalから直接参照しない +必ずMetaCGから参照される +CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能 +CGとDGの接続に用いられる +#### 従来OSのプロセスに相当 +UserプロセスにあたるUser Contextが存在する +#### 種類 +##### Kernel Context +OS上の全てのContextを参照できる +##### User Context +ユーザーごとに存在する +##### CPU Context +実行しているCPUやGPUごとに存在する +#### Context参照の流れ +CGがOutputDataGearへデータをoutput +次のCGのstubCodeGearへgoto +stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照 +CGへgoto +OutputDGへOutput +次のstubCodeGearへgoto +### stub +## Christie +### Christieとは +#### 並列分散通信フレームワーク +#### CbCとは異なるGearの概念 +##### DataGear +atomic +##### CodeGear +### DataGearManager +#### DGを管理している +#### key value store +CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ +#### Fileとして用いる +#### LocalDGMとRemoteDGM +LocalはCGM自身が所持するDGのプール +RemoteはCGMが配線されている別のCGMがもつDGのプール +### topology manager +#### 任意のtopologyを生成することができる +topologyのノードはCGM +##### ノード同士の通信接続を管理 +#### 分散プログラムを簡潔に書くために必要 +#### 静的topology +任意のtopologyとノードの配線ができる +dotファイルに記述し,TopologyManagerに参照させる +dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する +#### 動的topology +参加を表明したノードに対し,自動的に配線を行う +## UnixのFilesystem +### xv6 +MITで教育用の目的で開発されたOS +Unixの基本構造を持つ +#### filesystem +inode +#### CbCによるxv6の書き換えが行われた +### inode +#### Fileの属性情報 +File Types +Permissions +UID +GID +File Size +Time Stamps +Number of link +Location on hard disk +#### inode number +inodeを識別するための番号 +ファイル名とinodeがペアになっている +Mac OSではls -iで確認可能 +ファイルシステム内で一意の番号 +ファイル数の上限がここで決まってくる +## GearsFileSystemのディレクトリ +### Treeによるディレクトリ構造(図などでここ詳しく) +#### RedBlackTree +DataGearManagerを格納してFileSystemに +##### API +put +get +remove +#### 2つの木を用いる +##### inumとfile pointer +key: inum +value: file pointer +##### inumとfilename +key: filename +value: inum +### Unix Like +mkdir +cd +#### ls +filenameのlistを入れることでlsのリスト表示を実装できる +### 非破壊的編集によるBackUp +#### バックアップ機能をOS自体に持たせたいという目的 +#### GearsOSにおける永続データ +##### 木構造を用いる +RedBlackTree +##### ルートノードから変更ノードまでのパスを全てコピー +##### コピーしたパス上に存在しないノードはコピー元の木構造と共有 +## ファイル構造 +### 構成 +#### I/O stream +##### keyで参照 +##### 競合的アクセス +###### synchronizedQueue +parusuさんの論文 +##### 3つのQueue +###### input +データをinputしたい場合にこのQueueにput +###### output +####### データを取得したい場合にこのQueueからtake +Synchronized QueueかSingleLinkedQueueを選べる +###### main +データそのもの +input -> main -> output のような繋がり +###### queueの中身は共通してelement +####### elementとは +###### これらのQueueはkeyとペアになっており,keyで参照することができる. +#### logによるバージョン管理 +git mercurial的 +## WordCount +### APIの設計に用いる +### 機能 +#### ファイルの中身を読み取り +文字数 +行数 +#### Unix Fileに対して行う +#### 中間報告の時の図 +### GearBox的に処理する +一木さん図5 +File操作の仕組み +#### GearBoxとは +GearsOSの機能を表現する手法 +状態遷移図とクラスダイアグラムを組み合わせたような図 +## 考察 +### 現状 +#### 実装できた部分 +RBTreeの動作test(予定) +#### 課題 +GearsOSへのtopologyManagerの実装 +ディレクトリ構造の作成 +### 今後の課題 +分散ファイルシステム +#### 信頼性 +GearsAgda +モデル検査 +#### shell +#### path +### 信頼性について +#### モデル検査 +RedBlackTreeのモデル検査 +#### 定理証明 +## 参考文献 +### 一木さん +https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf +一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021 +### アナグラさん +http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf +parusuさん +### xv6 +https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf +Papers/2020/anatofuz-sigos/ +## 付録 +mindmap +gearsDirectory source +## 章立て +### GearsOSにおける分散ファイルシステム(研究目的) +### CbC +### GearsOSについて +### Christie +Gear概念 +DataGearManager +### UnixのFilesystem +inode +### GearsFileSystemのディレクトリ +Treeによるディレクトリ構造(図などでここ詳しく) +#### Unix Like +inodeを用いたディレクトリエントリ +非破壊的編集によるBackUp +### ファイル構造 +#### 構成 +logによるバージョン管理 +### WordCount +### 考察 +今後の課題 +### 参考文献
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/GearsDirectoryImpl.cbc Thu Jan 27 11:03:59 2022 +0900 @@ -0,0 +1,113 @@ +#include "../../../context.h" +#interface "GearsDirectory.h" +#interface "Stack.h" +#interface "FTree.h" +#interface "Integer.h" +#impl "GearsDirectory.h" as "GearsDirectoryImpl.h" + +// ---- +// typedef struct GearsDirectoryImpl <> impl GearsDirectory { +// struct FTree* currentDirectory; +// struct Stack* directoryStack; +// } GearsDirectoryImpl; +// ---- + +GearsDirectory* createGearsDirectoryImpl(struct Context* context) { + struct GearsDirectory* gearsDirectory = new GearsDirectory(); + struct GearsDirectoryImpl* gears_directory_impl = new GearsDirectoryImpl(); + gearsDirectory->gearsDirectory = (union Data*)gears_directory_impl; + + struct FTree* firstDirectory = createFileSystemTree(context, NULL); + struct FTree* iNodeTree = createFileSystemTree(context, NULL); + gears_directory_impl->currentDirectory = firstDirectory; + gears_directory_impl->iNodeTree = iNodeTree; + gears_directory_impl->directoryStack = createSingleLinkedStack(context); + gears_directory_impl->INodeNumber = 0; + gearsDirectory->mkdir = C_mkdirGearsDirectoryImpl; + gearsDirectory->ls = C_lsGearsDirectoryImpl; + gearsDirectory->cd2Child = C_cd2ChildGearsDirectoryImpl; + gearsDirectory->cd2Parent = C_cd2ParentGearsDirectoryImpl; + return gearsDirectory; +} + +__code mkdir(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { + struct FTree* newDirectory = createFileSystemTree(context, gearsDirectory->currentDirectory); + Node* inode = new Node(); + inode->key = gearsDirectory->INodeNumber; + inode->value = newDirectory; + struct FTree* cDirectory = new FTree(); + cDirectory = gearsDirectory->iNodeTree; + goto cDirectory->put(inode, mkdir2); +} + +__code mkdir2(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { + Node* dir = new Node(); + dir->key = name->value; + Integer* iNum = new Integer(); + iNum->value = gearsDirectory->INodeNumber; + dir->value = iNum; + gearsDirectory->INodeNumber = gearsDirectory->INodeNumber + 1; + struct FTree* cDirectory = new FTree(); + cDirectory = gearsDirectory->currentDirectory; + goto cDirectory->put(dir, next(...)); +} + +__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { + Node* dir = new Node(); + dir->key = name->value; + struct FTree* cDirectory = new FTree(); + cDirectory = gearsDirectory->currentDirectory; + goto cDirectory->get(dir, ls2); +} + +__code ls2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { + printf("%d\n", node->key); + goto next(...); +} + +__code ls2_stub(struct Context* context) { + GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory); + Integer* name = Gearef(context, FTree)->node; + enum Code next = Gearef(context, GearsDirectory)->next; + goto ls2(context, gearsDirectory, name, next); +} + +__code cd2Child(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { + struct FTree* cDirectory = new FTree(); + cDirectory = gearsDirectory->currentDirectory; + struct Node* node = new Node(); + node->key = name->value; + goto cDirectory->get(node, cd2Child2); +} + +__code cd2Child2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { + struct FTree* iNodeTree = new FTree(); + iNodeTree = gearsDirectory->iNodeTree; + goto iNodeTree->get(node->value, cd2Child3); +} + +__code cd2Child2_stub(struct Context* context) { + GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory); + enum Code next = Gearef(context, GearsDirectory)->next; + Node* node0 = Gearef(context, FTree)->node; + goto cd2Child2(context, gearsDirectory, node0, next); +} + +__code cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { + gearsDirectory->currentDirectory = node->value; + goto next(...); +} + +__code cd2Child3_stub(struct Context* context) { + GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory); + Integer* name = Gearef(context, FTree)->node; + enum Code next = Gearef(context, GearsDirectory)->next; + goto ls2(context, gearsDirectory, name, next); +} + + + +__code cd2Parent(struct GearsDirectoryImpl* gearsDirectory, __code next(...)) { + gearsDirectory->currentDirectory = gearsDirectory->currentDirectory->treeParent; + goto next(...); +}
--- a/paper/thesis.tex Thu Jan 27 02:55:10 2022 +0900 +++ b/paper/thesis.tex Thu Jan 27 11:03:59 2022 +0900 @@ -86,5 +86,16 @@ %付録がある場合のみ \appendix %付録項目ごとに章構成する.章番号は本文とは独立に構成される. +\chapter{gearsDirectory source code} +\lstinputlisting[caption=gearsDirectory source code,label=src:gearsDirectory]{src/GearsDirectoryImpl.cbc} + +\chapter{MindMap} +\begin{figure}[ht] + \begin{center} + \includegraphics[width=111mm]{figs/gearsDirectoryMM.PNG} + \end{center} + \caption{本研究のMindMap} + \label{fig:mm} +\end{figure} \end{document} \ No newline at end of file