Mercurial > hg > Papers > 2022 > matac-thesis
changeset 46:8fbd88035545
...
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 02 Feb 2022 20:55:43 +0900 |
parents | d40d5c4e392f |
children | a56209284c1f |
files | paper/text/introduction.tex paper/thesis.pdf paper/thesis.tex slide/figs/cd.svg slide/figs/inode.svg slide/figs/ls.svg slide/figs/mkdir.svg slide/slide.html slide/slide.md slide/slide.pdf.html |
diffstat | 10 files changed, 214 insertions(+), 205 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/text/introduction.tex Tue Feb 01 14:11:38 2022 +0900 +++ b/paper/text/introduction.tex Wed Feb 02 20:55:43 2022 +0900 @@ -20,7 +20,7 @@ Unixのファイルシステムではファイルのメタデータをinodeの形式で保持している. 同様にinodeの仕組みを用いてGearsOSのファイルシステムを実装を行いたい. interfaceについても,cd,ls,mkdirというようにUnix likeに実装したい. -当研究室ではxv6のCbCでの実装を行なっているが,今回はxv6のルーチンをCbCで書き換えるのではなく +当研究室ではxv6のCbCでの書き換えを行なっているが,今回はxv6のルーチンをCbCで書き換えるのではなく GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとりたい. それはGearsOSとCbCで書き換えたxv6の比較や, 互いにファイルシステムの機能の移植が行える様にするためである.
--- a/paper/thesis.tex Tue Feb 01 14:11:38 2022 +0900 +++ b/paper/thesis.tex Wed Feb 02 20:55:43 2022 +0900 @@ -2,8 +2,8 @@ \usepackage{ie-thesis} \usepackage{listings} -\jtitle{GearsOSにおけるinodeを用いた\\File systemの設計} -\title{Design of a File system using inodes in GearsOS} +\jtitle{GearsOSにおけるinodeを用いた\\File systemの構築} +\title{Building a File system using inode in GearsOS} \affiliation{琉球大学工学部工学科知能情報コース} \studentid{185742J}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/figs/cd.svg Wed Feb 02 20:55:43 2022 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="833px" height="383px" viewBox="-0.5 -0.5 833 383" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:30:32.936Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="XAATmcEUyCgARJJNp3-O" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I6EP41PBbFSQjwWGi350hUW52utNtHlxjirRMjxxTYX3/GiU2uQLbLJYsqIRFPxsb+5hvPeEzHGYfrB4EXwSP3CevYlr/uOHcd20au7cGXkmxSSd8bpoK5oL5WygTP9BfRQktLl9QncUFRcs4kXRSFUx5FZCoLMiwEXxXVZpwVf3WB56QieJ5iVpV+p74MUunA7mfyfwidB+aXkVlfiI2yXkkcYJ+vciLnvuOMBecyfQrXY8IUeAaXtN+XHW+3ExMkkk06zH6+/PuNT1dSPt4+PDk3XydfJzdIm+cds6VesZ6t3BgIBF9GPlGjWB1ntAqoJM8LPFVvV2B0kAUyZNBC8DijjI054wLaEY9AaVSdqJ77OxGSrHMiPfEHwkMixQZUzFtLg6hZ5OnmKjMJMrIgb46BFmJNg/l26AwpeNBg/Q5wh3GDUYCl5DBmOF6k1J3RtcL5KIh5RcQGVcTcGsDcU+Fltx0vu4gXqqHYeQFzqgD5sDXpJhcy4HMeYXafSUdFV810JpwvNHg/iZQbvc/ipeRFaMmayh+55xc1VLenW3drPXLS2JhGBOtVnW6sroVsI0m7el7fCLLeSavQ/YkICrgRoYU7LRrzpZiSPbhp2CQWcyL34asNp0DdSxBBGJb0vRgPjm5up+X+YVst848GgYtE/q1KAbJQlAOp6CpbDmuyGwKjQ+TV/pL5yEveRWr95ePcthtyGzWkds52vRrbGVljD9C/8MQprGxLHWdYpI7jlTiRrlv3ymcwpYFctzQQKg2UAlMZKOHXdtkfp1z/uJSrpQ5qttWWaGodoOnHKWdy7kOUcz4pdwrKDSqUoxGcsZRFBCEV+sFmLouci6Xgb6SUkdck6ZjReQTNKTBEReGRCg0UzkG3+kVIfZ/tCj5FZh8h3DiDIu5uNdrU5fvOqaLNsMYOPizl2u1QPnhd2g7G/VqbJ5U3jEufu1DbD6pu2xJL1PajqjtoG2JNDi/XloujppmR2bJakhp5/SOlRn37sqkRco/Lur8jHbeass7+ZN1JWNersO6NwIC3IAO5x1Te9yrgaa6etJp6a64BrjFLLB23tou9WJo4rG4FLS+eWoUNpGsNnPPWTdGg6c7iNdxZzlM4RdUjspq/beXd8mod7+C12FndzuzNLb9NLBcXLn+baHDaTeIrjh52KXrUnWfOS+NqZpm3w54YnxTnrthUTr93MNAPz2qqak1+hw3iFQ0ZTnHmkTSpgAJmGlDmT/CGL9V0Y4mnb6Y1Crigv0AfZ5bDQuoUwLEKGs+qpx5TkBh0ngzYqCR6xOuC4gTH0syGM4YXMX1N5qc6hhCSaTTiUvJQK+Wp4pMZXiacPMHeWFfAQnXVhe0F+vFtXI3wXyhTNfBvm8XO2uvvehgjM7nPv2JwLRrNJ4nanZtJ/tMYKBGH7jOWnDcD6EhghNFCHUUSTHoj+ABKY5UU9mCuY2ijrA0fpS7kmEcwfUwTKxKgxoooeoA/Syzx65a4VXvvd5LDLDCnqoZGP51fVwvukOqGNI4pjz5NfgKT1yVBZzW5U00eu93up61PYOvhxW1draJUDH2+2p098C58+DYZ5+F/LWlbt6SsV75n3+aDf3rPjnqlgT5c1oNm9h/bVD37p7Jz/z8=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6eggARyKbdkpA8b4N5KgJtEQ22hR6MgIcRkOiuCU+D6asgIGKSXLYrcZcYuzBtBBFWA8hW4V/YltNk/QLuhk+GeEnbmaWbd6yRMPqs5yJ4s5tMkyBxmjljGghLDkkxcNkCvIU7z86Oq/tf6D9jyMNH84+/V12PGvksFu/+SVdAsU+WzPQ3eTsV+hG0rCWsBy+Sz9GeGTCbu4hMZPrJdQbLXfAsZspvG/PKQt2EpSrkAxwNUiFsQN76B3gijumr1kOeJ/EDI154TuNJIahpOQrD6Bn9EqedGHHrriKPQCDsfPko0D7cMMu0g8/7intUhGRR8HQboYYsrlTeiqtIAvd9zl7kJvgqiUWTolYCgSXebMczmg848LRskzGkib+MRHYknYdUsQdLHj86aLZvFiEGWY+8SNhD1s22KS/nKOGRoHcCpmXPIIwDFKQt9GQjWa3K/0ar2TrkC5khHvuJE6pYrFUlCU802p1k+IeIjRFe8inwJNOp6MPEZXtpeZH4OexOY5HzYkBmXocNKhM/fgH6SH1HvL6LPzcL/87oHJeBmS8OVq8m2UbiHvLCWTZeTpa+jNWVNwO0j9y7i9jb2q1qDHo13vmUXarSrthlZDe+dQtGv/Au1AL9Ku19AOugeivXYLKkWuzw3NouPaMH2QDLMpvZTyQj7Sb0wgCrbx6+67XgTQX8PEX46c5rfmiWbjNjlct0gOxwTsc+m5LOmjZbr0tQs8wwR5xBABiglRr0uInQMlxPoQ8SeRWWsQmU8ZgU2tGIFTKnP0plE5T28K7p1fYzu/fBReSq2Tao5buAiS+mqGI2GPYzJrlZjtVZlt1xDbPhSv7TfCKygd1WoUe1RerbfBq6WdGa91J7Eyr759I65LssiZ47IYhDlbdPUgGtemaj7KnnFjGOV7DleqFWGWe423HnNPspdEQ72zq9EWJKRTtN2VGaQO2jSeDKXILlwXVSWQM7FZY2KFUeRChl+Ll0x1dpcz3BMcn5OkwjqlIsssn+KTfcu38rc6pYG67dJAoDRQQkxloFiG6bb/Xpl190c7KLNWYfpGha1Ts7ZFzQdXptFQmda7Mg+hzF5FmdjnFZCwCEWootLdS4kplw2vrS70ts3UwHXRYO1q0uuaVd0drLjQq/c+mFMVvVuwqQVPb8IGN6aXcCAsFzCnrl/Ud3AXz2upgNFPfdDW30jFXa5gTk9sk5L7Hy1hlDdvPSmqcHqmR0VjX0dF48hHRfXVy3sVs15z28V53hX2JYjzyX0Jb4fe3dR/ep2YxurxW9BXFxx5KXKGx7JJKJsTh/jQHWVoSY9Zn6+EBFKKT4ixlTyowpCRoqCVhPV8lEzlvFXCRqco4msLmNsis2jdI4o5X+IMfiR1dxuqu91Q3I1Vu1s2rRa3FZVc7hcvR/3epdbn9AqbZ+pzB3cQ9SOA/Qm/Psqa6uSpDqwqfO8cZXkz+41e0j37paMx+h8=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbd6o4FP41rjXz0C4SLuJjr6dz6/RMZ9ZpzxuVqJwiwRAr9tdPIuESQI2KWHvsS8mG7JC9v30ldvSrcfyFOOHoL+wivwM1N+7o1x0IgQEt9o9T5gmlC2BCGBLPFQ/lhEfvHQmiJqhTz0WR9CDF2KdeKBP7OAhQn0o0hxA8kx8bYF9eNXSGqEJ47Dt+lfrNc+koodqwm9PvkDccpSsDq5fcGTvpw2In0chx8axA0m86+hXBmCZX4/gK+Vx4qVwevd+1t/fb2eMFRC4mN0/Rf+gsYXa7yZRsCwQFdGvWD1/f9Zd/gnhyd9G7/ePH091kgs+AnfB+c/ypEFgHWj5b5XKA2WJs13QuRGlNpji9cRYtFH3BHgDdMM5vsquh+F/k0sc+JhKXDtQHA439FUnbrjZENF2QCSBZU36PF5JSXtE8YRU4Y3TGqM445Cz4vUQMUPtl4PmI3/91KVsovS2kKOb0ER37jADYpeN7w4Bd+2iwYI0I9RgsLwR57Lkun3w5G3kUPYZOn3OaMSNkNIKngYu44jQ2iijBrxl69Wz5tYAQwOFLo7hgDgIgXxAeI0rm7BFxVxdQT21dDGe54WTWMCoYTTrNEbY6zBjneGQXApIbwDNdbDk8mwXWAi9bYWuHBVJACiAGL1FYYB6FTrDj+zskuvYIc66YzEuA/+2eOfz76fgFkcImkzWVkZ7g80poIsABhzWzIL9Eas4i+N5FqAHdVi0E9GQT0a0aG+mabdqIUWMjJZ3l0gNL5FtQJxfuVWZW+u3twphqNXpAPdglPZg1erBrfJW5Nz3oh9NDe3KHstjr0K+3KfW6ALFU6JqC0A8pXBOa6+IvsGqkmxlD4+IFn0m8mTw/jHjhevEyLqxUWhYWi/lmFCb108CLuTraTBtLeWOvKlijRq7GvsSq4ImPQaywlGuAGsC2KlejKkaXFdtiiAkd4SEOHP8mp5YSt/yZPzEOhYh/IErnIo1wphTLCkCxR5/49HNTjJ4Ld65jwXkxmKeDgG03mWSBXkp4Lt7NJy5G0swHRDwmMUQEcWmmuisWIjwlfbRC4iIeUIfwMmSFnxZdGq6PldAiyHeo9yY3RxoHivk5DFDvfjADtBTkGrgXvG2WB9iCLGVjLFiJWbQRsM5Gai1SW2mRe7cUXdFSoKKhFFRsrkhole1JrPCAvUXfIs34rFIZ0y1BJ9m3mFXs7pUYWaDECJYYJYKpMFrAMNv29sjsNovM3Xy+uYnH3zsyoSIyzRMy94HMaofbC7DLu7yUIFRB6e7trT6DDU8djrPBVa5BjWrIs9tsb/Vq1OeyrZzUp1Tj1qmvzQ5+avzHngqatmwWLZa4vddwMrrEf1s3T/f2LJzE3+/+TfteR1WKAUMKzGfauWZ1t6nHVM2rFEobjOnpR/D16eZB67D0NY/e+gzZ+g5eiIFP0mKy4EcTrMLXrJ+1xFV2OmnQ/SClhA1kkG1dSthWiVHLpQRQ6Wv9pFVuirn14NRP4NwLOOuagw2dIdn6zJR8kqSR4zKNbUoIij9zOiPTZFJRPptRVyxltHaq0G7VT7dXLqXXz5KvX+ffJe9+rtn6NpXS/t2+rer2Fb1+S4VR7+gAwctlzToOVEDVZEA1UW0HFSnjQgjNIt+mIWLHKJcHJ/lYaIBm2Uucws7KzrUOasJOu0czVdoveb3Q950o8vqrSoZlZwLzUsKChnoxwQbrfUPxMIUhO6BtnE/TAaj+5INKa844ZN1hrPssplp36D0gMyqftdxz3QGrRfFKX9mfEq76ghfTFrO0Pbu2pr7rFMxP09IjuQdzekbpe49ek2vrrX7xgZsdUtnc6WVSz50eMK2i0ztvwu01nRKpJsCHcT/ZeFP3Y1p2PQDbcj/VkyfegMs59iJ6ciOq3wG0Uu5U83OKuqPRW3gRNsx/M5mgIP/lqX7zPw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="11" y="31" width="220" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 218px; height: 1px; padding-top: 46px; margin-left: 13px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">get</font><br />key: name->value (filename)</font></div></div></div></foreignObject><text x="13" y="50" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="171" y="321" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 336px; margin-left: 173px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">get</font><br style="font-size: 17px" />key: <span style="font-size: 17px">gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="173" y="341" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><rect x="161" y="311" width="280" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="1" y="21" width="230" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="506" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="251" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="331" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="291" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 371 171 L 371 211 L 340.5 211 L 340.51 240.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340.51 247.65 L 336.01 238.65 L 340.51 240.9 L 345.01 238.64 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="371" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 291 131 L 331 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 331 91 L 371 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="506" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 507px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="549" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="251" y="1" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 16px; margin-left: 252px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="291" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="586" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 171 L 546 221 L 545.9 258.89" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 545.88 265.64 L 541.41 256.62 L 545.9 258.89 L 550.41 256.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="546" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="626" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 131 L 586 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 586 91 L 626 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="161" y="251" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 266px; margin-left: 163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 17px">key: name->value (filename)</span><br style="font-size: 17px" /><span style="font-size: 17px">value: gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="163" y="271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: name->value (filename)...</text></switch></g><path d="M 231 46 L 240.9 46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 247.65 46 L 238.65 50.5 L 240.9 46 L 238.65 41.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 446 336 L 476 336 L 476 45.9 L 494.94 45.93" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501.69 45.94 L 492.68 50.42 L 494.94 45.93 L 492.69 41.42 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="506" y="271" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 286px; margin-left: 508px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: gearsDirectory->INodeNumber<br style="font-size: 17px" />value: newDirectory</div></div></div></foreignObject><text x="508" y="291" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: gearsDirectory->INodeNumber...</text></switch></g><path d="M 341.96 281 L 341.91 300.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.89 307.65 L 337.41 298.63 L 341.91 300.9 L 346.41 298.66 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="451" y="351" width="380" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 378px; height: 1px; padding-top: 366px; margin-left: 452px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">gearsDirectory->currentDirectory = newDirectory</div></div></div></foreignObject><text x="641" y="371" fill="#000000" font-family="Helvetica" font-size="17px" text-anchor="middle">gearsDirectory->currentDirectory = newDirecto...</text></switch></g><path d="M 548.9 304 L 548.98 340.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 548.99 347.65 L 544.47 338.66 L 548.98 340.9 L 553.47 338.64 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="586" y="311" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 326px; margin-left: 587px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">if exist</div></div></div></foreignObject><text x="616" y="331" fill="#000000" font-family="Helvetica" font-size="17px" text-anchor="middle">if exist</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/figs/inode.svg Wed Feb 02 20:55:43 2022 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="733px" height="241px" viewBox="-0.5 -0.5 733 241" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:36:53.965Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="1jRXcbQc3vkI_H-Bh0vf" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I4FP41PBblRgiPhV5mJapW29Hs9NElhnhqYtYxBfrr9zixSeKEkrZcyrYSEvHJsbG/8/lcbFruYLq85mgW3bAQ05ZjhcuWe9FyHNtzfPiSklUm6dpOJphwEiqlXHBPXrASWko6JyFOSoqCMSrIrCwcsTjGI1GSIc7Zoqw2ZrT8qzM0wRXB/QjRqvQfEoookwZON5f/wGQS6V+2/V72Zoq0slpJEqGQLQoi97LlDjhjInuaLgeYSvA0Llm/qw1v1xPjOBZNOoz/PPz1k40WQtycX9+5Z7fD2+GZrczzjOhcrVjNVqw0BJzN4xDLUayW219EROD7GRrJtwswOsgiMaXQsuFxTCgdMMo4tGMWg1I/EZw9rdFzQVKdulrNM+YCLwsitZRrzKZY8BWo6LeWglXxylfNRW4ku6tkUdFAPSVEihiT9dA5dvCg4HsLlNuRhFGAt3g7iiiZZWQek6VEfk8Y+mUMgyqGXg2E3r4QdE4PQaeMoF1Dw4NC6J4chI71ySBs4BFxHJ7L2JL7uAJsZXcJwPDVb9lod3TzQWmmjYtlUfNipVtLIgrdoPVQeJN3kg3d5w32Sdicj/D2vSgQn2Cx3evhsBRGq9YuWLNTY00t45giQZ7LwbfOxOoX7hiBla3J5PbKZHJ9gyXZulWvYrA0BvI8YyDbGCgDpjJQyrj1st9Pwu5uSVhLJvtVMm0irrWFuLskoU74tpHQ/SbhPkgYVEhIYkjwpUU4xhVCgsMXZRZmXDDSwZoMEVEyiaE5AoZgkPdl+CCQhJ+rF1MShnRTyCpzfcxiocoIu7uvoOUGhmWqMSuoIZi7r5jVq7FUCEv5tpRZJxzbUnoLn1CGZrqhY5cJ9ulVWt5nS3L1KcwpYRh8NgybFFv//0rBbpqladf3SdI0v7ujNK3rHDdNs73d8vBUiwWrKQ+dbx7uhYedCg+fMAx4DjKQ+1TmnI+8REz/37k8/05zwbMkTQalut2dLVMy6PfwNJHfamypo4/Vv2Zaa9SY6/uSo+W1varPgf11r5qMi4hNWIzoZS41gMt1hozNlAX/YCFWCk40F6xsX+2r7IKnyv3WNl9V8lRtK3C3RVrZusOcAGSSJbt3YUFTF+Y3dGGNfdPHjF89KZDzd6zi/v/Cm3XrVZV/yK2qw8TJ3fmZpy51d351SO7vzk8jt5n4XzpKOUaUsjuHi1L4V2dxFVxePItu8KMz+PWyjG/PqkQ/YJA6RELd1KxG4HjnHZHXMFxl/5b4QHRKu0IBg1YFhZlMZJPNibXnueUcyTf+IGHod4xE/K36+qhxk76Z6Bv68JCtcKdJuVMtDou+6c1J+WsZeXo7sA+HR/FYnIC7My9+6pJy2+ocMtRX7xE3GClZkClFmSEkVuqNxG4UERoO0YrN5XQTgUZPutWPGCcvoI9y0yKukXatksa97KnG5Fjy6k6jbRuiG7QsKQ5RIvRsGKVolpDHdH6y4xTcD4n7TAg21eYucCnEYzSn4lAk8M2jXqeGBHXnlGvF3bOgmp5fESrv8X6uZhtvh3a9SRPYnySeDFO1Cy+X/K0wkCIG3cc0PaeKoCOGEfrKz8PcOn34AEoDGRU7MNcBtO28DR+pzsWAxTB9RFIrYiDPAksCgVMQSKDHNbXfw4jXN9p2nmy+iKqlxf58Q/XSEGrbKUkSwuJvUhyFFHUVzUFJoQcukKLdbn+z4Shs6B2QDbXlknvMcul9Z3ptOwjK53q+67znXO+glZTbtJCy6gnz0WM+aOZ/RM9Kj/zv/O7lfw==</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6eggARyKbdkpA8b4N5KgJtEQ22hR6MgIcRkOiuCU+D6asgIGKSXLYrcZcYuzBtBBFWA8hW4V/YltNk/QLuhk+GeEnbmaWbd6yRMPqs5yJ4s5tMkyBxmjljGghLDkkxcNkCvIU7z86Oq/tf6D9jyMNH84+/V12PGvksFu/+SVdAsU+WzPQ3eTsV+hG0rCWsBy+Sz9GeGTCbu4hMZPrJdQbLXfAsZspvG/PKQt2EpSrkAxwNUiFsQN76B3gijumr1kOeJ/EDI154TuNJIahpOQrD6Bn9EqedGHHrriKPQCDsfPko0D7cMMu0g8/7intUhGRR8HQboYYsrlTeiqtIAvd9zl7kJvgqiUWTolYCgSXebMczmg848LRskzGkib+MRHYknYdUsQdLHj86aLZvFiEGWY+8SNhD1s22KS/nKOGRoHcCpmXPIIwDFKQt9GQjWa3K/0ar2TrkC5khHvuJE6pYrFUlCU802p1k+IeIjRFe8inwJNOp6MPEZXtpeZH4OexOY5HzYkBmXocNKhM/fgH6SH1HvL6LPzcL/87oHJeBmS8OVq8m2UbiHvLCWTZeTpa+jNWVNwO0j9y7i9jb2q1qDHo13vmUXarSrthlZDe+dQtGv/Au1AL9Ku19AOugeivXYLKkWuzw3NouPaMH2QDLMpvZTyQj7Sb0wgCrbx6+67XgTQX8PEX46c5rfmiWbjNjlct0gOxwTsc+m5LOmjZbr0tQs8wwR5xBABiglRr0uInQMlxPoQ8SeRWWsQmU8ZgU2tGIFTKnP0plE5T28K7p1fYzu/fBReSq2Tao5buAiS+mqGI2GPYzJrlZjtVZlt1xDbPhSv7TfCKygd1WoUe1RerbfBq6WdGa91J7Eyr759I65LssiZ47IYhDlbdPUgGtemaj7KnnFjGOV7DleqFWGWe423HnNPspdEQ72zq9EWJKRTtN2VGaQO2jSeDKXILlwXVSWQM7FZY2KFUeRChl+Ll0x1dpcz3BMcn5OkwjqlIsssn+KTfcu38rc6pYG67dJAoDRQQkxloFiG6bb/Xpl190c7KLNWYfpGha1Ts7ZFzQdXptFQmda7Mg+hzF5FmdjnFZCwCEWootLdS4kplw2vrS70ts3UwHXRYO1q0uuaVd0drLjQq/c+mFMVvVuwqQVPb8IGN6aXcCAsFzCnrl/Ud3AXz2upgNFPfdDW30jFXa5gTk9sk5L7Hy1hlDdvPSmqcHqmR0VjX0dF48hHRfXVy3sVs15z28V53hX2JYjzyX0Jb4fe3dR/ep2YxurxW9BXFxx5KXKGx7JJKJsTh/jQHWVoSY9Zn6+EBFKKT4ixlTyowpCRoqCVhPV8lEzlvFXCRqco4msLmNsis2jdI4o5X+IMfiR1dxuqu91Q3I1Vu1s2rRa3FZVc7hcvR/3epdbn9AqbZ+pzB3cQ9SOA/Qm/Psqa6uSpDqwqfO8cZXkz+41e0j37paMx+h8=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbd6o4FP41rjXz0C4SLuJjr6dz6/RMZ9ZpzxuVqJwiwRAr9tdPIuESQI2KWHvsS8mG7JC9v30ldvSrcfyFOOHoL+wivwM1N+7o1x0IgQEt9o9T5gmlC2BCGBLPFQ/lhEfvHQmiJqhTz0WR9CDF2KdeKBP7OAhQn0o0hxA8kx8bYF9eNXSGqEJ47Dt+lfrNc+koodqwm9PvkDccpSsDq5fcGTvpw2In0chx8axA0m86+hXBmCZX4/gK+Vx4qVwevd+1t/fb2eMFRC4mN0/Rf+gsYXa7yZRsCwQFdGvWD1/f9Zd/gnhyd9G7/ePH091kgs+AnfB+c/ypEFgHWj5b5XKA2WJs13QuRGlNpji9cRYtFH3BHgDdMM5vsquh+F/k0sc+JhKXDtQHA439FUnbrjZENF2QCSBZU36PF5JSXtE8YRU4Y3TGqM445Cz4vUQMUPtl4PmI3/91KVsovS2kKOb0ER37jADYpeN7w4Bd+2iwYI0I9RgsLwR57Lkun3w5G3kUPYZOn3OaMSNkNIKngYu44jQ2iijBrxl69Wz5tYAQwOFLo7hgDgIgXxAeI0rm7BFxVxdQT21dDGe54WTWMCoYTTrNEbY6zBjneGQXApIbwDNdbDk8mwXWAi9bYWuHBVJACiAGL1FYYB6FTrDj+zskuvYIc66YzEuA/+2eOfz76fgFkcImkzWVkZ7g80poIsABhzWzIL9Eas4i+N5FqAHdVi0E9GQT0a0aG+mabdqIUWMjJZ3l0gNL5FtQJxfuVWZW+u3twphqNXpAPdglPZg1erBrfJW5Nz3oh9NDe3KHstjr0K+3KfW6ALFU6JqC0A8pXBOa6+IvsGqkmxlD4+IFn0m8mTw/jHjhevEyLqxUWhYWi/lmFCb108CLuTraTBtLeWOvKlijRq7GvsSq4ImPQaywlGuAGsC2KlejKkaXFdtiiAkd4SEOHP8mp5YSt/yZPzEOhYh/IErnIo1wphTLCkCxR5/49HNTjJ4Ld65jwXkxmKeDgG03mWSBXkp4Lt7NJy5G0swHRDwmMUQEcWmmuisWIjwlfbRC4iIeUIfwMmSFnxZdGq6PldAiyHeo9yY3RxoHivk5DFDvfjADtBTkGrgXvG2WB9iCLGVjLFiJWbQRsM5Gai1SW2mRe7cUXdFSoKKhFFRsrkhole1JrPCAvUXfIs34rFIZ0y1BJ9m3mFXs7pUYWaDECJYYJYKpMFrAMNv29sjsNovM3Xy+uYnH3zsyoSIyzRMy94HMaofbC7DLu7yUIFRB6e7trT6DDU8djrPBVa5BjWrIs9tsb/Vq1OeyrZzUp1Tj1qmvzQ5+avzHngqatmwWLZa4vddwMrrEf1s3T/f2LJzE3+/+TfteR1WKAUMKzGfauWZ1t6nHVM2rFEobjOnpR/D16eZB67D0NY/e+gzZ+g5eiIFP0mKy4EcTrMLXrJ+1xFV2OmnQ/SClhA1kkG1dSthWiVHLpQRQ6Wv9pFVuirn14NRP4NwLOOuagw2dIdn6zJR8kqSR4zKNbUoIij9zOiPTZFJRPptRVyxltHaq0G7VT7dXLqXXz5KvX+ffJe9+rtn6NpXS/t2+rer2Fb1+S4VR7+gAwctlzToOVEDVZEA1UW0HFSnjQgjNIt+mIWLHKJcHJ/lYaIBm2Uucws7KzrUOasJOu0czVdoveb3Q950o8vqrSoZlZwLzUsKChnoxwQbrfUPxMIUhO6BtnE/TAaj+5INKa844ZN1hrPssplp36D0gMyqftdxz3QGrRfFKX9mfEq76ghfTFrO0Pbu2pr7rFMxP09IjuQdzekbpe49ek2vrrX7xgZsdUtnc6WVSz50eMK2i0ztvwu01nRKpJsCHcT/ZeFP3Y1p2PQDbcj/VkyfegMs59iJ6ciOq3wG0Uu5U83OKuqPRW3gRNsx/M5mgIP/lqX7zPw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-595-121-132-30-0"><rect x="595" y="121" width="132" height="30"/></clipPath><clipPath id="mx-clip-595-151-132-30-0"><rect x="595" y="151" width="132" height="30"/></clipPath><clipPath id="mx-clip-595-181-132-30-0"><rect x="595" y="181" width="132" height="30"/></clipPath></defs><g><rect x="91" y="31" width="170" height="190" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="171" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="131" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="211" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 131 131 L 171 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 171 91 L 211 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="371" y="1" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 16px; margin-left: 372px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="411" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="91" y="1" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 16px; margin-left: 92px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="131" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="451" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="411" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="491" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 411 131 L 451 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 451 91 L 491 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="181" y="181" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 196px; margin-left: 182px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: 2<br style="font-size: 17px" />value: 0</div></div></div></foreignObject><text x="221" y="201" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">key: 2...</text></switch></g><path d="M 61 46 L 80.9 46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 87.65 46 L 78.65 50.5 L 80.9 46 L 78.65 41.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="1" y="31" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 46px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get key: 2</div></div></div></foreignObject><text x="31" y="51" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">get key...</text></switch></g><rect x="371" y="31" width="160" height="190" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="281" y="121" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 136px; margin-left: 282px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get key: 0</div></div></div></foreignObject><text x="321" y="141" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">get key: 0</text></switch></g><path d="M 433.5 211 L 433.5 231 L 561 231 L 561 71 L 661 71 L 661 80.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661 87.65 L 656.5 78.65 L 661 80.9 L 665.5 78.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="381" y="181" width="105" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 103px; height: 1px; padding-top: 196px; margin-left: 383px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: 0<br style="font-size: 17px" />value: inode0</div></div></div></foreignObject><text x="383" y="201" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: 0...</text></switch></g><path d="M 591 121 L 591 91 L 731 91 L 731 121" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 591 121 L 591 211 L 731 211 L 731 121" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 591 121 L 731 121" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="17px"><text x="660.5" y="113">inode0</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-595-121-132-30-0)" font-size="17px"><text x="596.5" y="143">File Type</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-595-151-132-30-0)" font-size="17px"><text x="596.5" y="173">Permission</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-595-181-132-30-0)" font-size="17px"><text x="596.5" y="203">...</text></g><path d="M 231 151 L 301 151 L 390.98 151.07" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 397.73 151.08 L 388.72 155.57 L 390.98 151.07 L 388.73 146.57 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/figs/ls.svg Wed Feb 02 20:55:43 2022 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="773px" height="383px" viewBox="-0.5 -0.5 773 383" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:25:12.943Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="65F9Z1BfKCBLWuhlnJo7" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I6EP41PBbFSQjwWGi350hUW52utNtHlxjirRMjxxTYX3/GiU2uQLbLJYsqIRFPxsb+5hvPeEzHGYfrB4EXwSP3CevYlr/uOHcd20au7cGXkmxSSd8bpoK5oL5WygTP9BfRQktLl9QncUFRcs4kXRSFUx5FZCoLMiwEXxXVZpwVf3WB56QieJ5iVpV+p74MUunA7mfyfwidB+aXkVlfiI2yXkkcYJ+vciLnvuOMBecyfQrXY8IUeAaXtN+XHW+3ExMkkk06zH6+/PuNT1dSPt4+PDk3XydfJzdIm+cds6VesZ6t3BgIBF9GPlGjWB1ntAqoJM8LPFVvV2B0kAUyZNBC8DijjI054wLaEY9AaVSdqJ77OxGSrHMiPfEHwkMixQZUzFtLg6hZ5OnmKjMJMrIgb46BFmJNg/l26AwpeNBg/Q5wh3GDUYCl5DBmOF6k1J3RtcL5KIh5RcQGVcTcGsDcU+Fltx0vu4gXqqHYeQFzqgD5sDXpJhcy4HMeYXafSUdFV810JpwvNHg/iZQbvc/ipeRFaMmayh+55xc1VLenW3drPXLS2JhGBOtVnW6sroVsI0m7el7fCLLeSavQ/YkICrgRoYU7LRrzpZiSPbhp2CQWcyL34asNp0DdSxBBGJb0vRgPjm5up+X+YVst848GgYtE/q1KAbJQlAOp6CpbDmuyGwKjQ+TV/pL5yEveRWr95ePcthtyGzWkds52vRrbGVljD9C/8MQprGxLHWdYpI7jlTiRrlv3ymcwpYFctzQQKg2UAlMZKOHXdtkfp1z/uJSrpQ5qttWWaGodoOnHKWdy7kOUcz4pdwrKDSqUoxGcsZRFBCEV+sFmLouci6Xgb6SUkdck6ZjReQTNKTBEReGRCg0UzkG3+kVIfZ/tCj5FZh8h3DiDIu5uNdrU5fvOqaLNsMYOPizl2u1QPnhd2g7G/VqbJ5U3jEufu1DbD6pu2xJL1PajqjtoG2JNDi/XloujppmR2bJakhp5/SOlRn37sqkRco/Lur8jHbeass7+ZN1JWNersO6NwIC3IAO5x1Te9yrgaa6etJp6a64BrjFLLB23tou9WJo4rG4FLS+eWoUNpGsNnPPWTdGg6c7iNdxZzlM4RdUjspq/beXd8mod7+C12FndzuzNLb9NLBcXLn+baHDaTeIrjh52KXrUnWfOS+NqZpm3w54YnxTnrthUTr93MNAPz2qqak1+hw3iFQ0ZTnHmkTSpgAJmGlDmT/CGL9V0Y4mnb6Y1Crigv0AfZ5bDQuoUwLEKGs+qpx5TkBh0ngzYqCR6xOuC4gTH0syGM4YXMX1N5qc6hhCSaTTiUvJQK+Wp4pMZXiacPMHeWFfAQnXVhe0F+vFtXI3wXyhTNfBvm8XO2uvvehgjM7nPv2JwLRrNJ4nanZtJ/tMYKBGH7jOWnDcD6EhghNFCHUUSTHoj+ABKY5UU9mCuY2ijrA0fpS7kmEcwfUwTKxKgxoooeoA/Syzx65a4VXvvd5LDLDCnqoZGP51fVwvukOqGNI4pjz5NfgKT1yVBZzW5U00eu93up61PYOvhxW1draJUDH2+2p098C58+DYZ5+F/LWlbt6SsV75n3+aDf3rPjnqlgT5c1oNm9h/bVD37p7Jz/z8=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6eggARyKbdkpA8b4N5KgJtEQ22hR6MgIcRkOiuCU+D6asgIGKSXLYrcZcYuzBtBBFWA8hW4V/YltNk/QLuhk+GeEnbmaWbd6yRMPqs5yJ4s5tMkyBxmjljGghLDkkxcNkCvIU7z86Oq/tf6D9jyMNH84+/V12PGvksFu/+SVdAsU+WzPQ3eTsV+hG0rCWsBy+Sz9GeGTCbu4hMZPrJdQbLXfAsZspvG/PKQt2EpSrkAxwNUiFsQN76B3gijumr1kOeJ/EDI154TuNJIahpOQrD6Bn9EqedGHHrriKPQCDsfPko0D7cMMu0g8/7intUhGRR8HQboYYsrlTeiqtIAvd9zl7kJvgqiUWTolYCgSXebMczmg848LRskzGkib+MRHYknYdUsQdLHj86aLZvFiEGWY+8SNhD1s22KS/nKOGRoHcCpmXPIIwDFKQt9GQjWa3K/0ar2TrkC5khHvuJE6pYrFUlCU802p1k+IeIjRFe8inwJNOp6MPEZXtpeZH4OexOY5HzYkBmXocNKhM/fgH6SH1HvL6LPzcL/87oHJeBmS8OVq8m2UbiHvLCWTZeTpa+jNWVNwO0j9y7i9jb2q1qDHo13vmUXarSrthlZDe+dQtGv/Au1AL9Ku19AOugeivXYLKkWuzw3NouPaMH2QDLMpvZTyQj7Sb0wgCrbx6+67XgTQX8PEX46c5rfmiWbjNjlct0gOxwTsc+m5LOmjZbr0tQs8wwR5xBABiglRr0uInQMlxPoQ8SeRWWsQmU8ZgU2tGIFTKnP0plE5T28K7p1fYzu/fBReSq2Tao5buAiS+mqGI2GPYzJrlZjtVZlt1xDbPhSv7TfCKygd1WoUe1RerbfBq6WdGa91J7Eyr759I65LssiZ47IYhDlbdPUgGtemaj7KnnFjGOV7DleqFWGWe423HnNPspdEQ72zq9EWJKRTtN2VGaQO2jSeDKXILlwXVSWQM7FZY2KFUeRChl+Ll0x1dpcz3BMcn5OkwjqlIsssn+KTfcu38rc6pYG67dJAoDRQQkxloFiG6bb/Xpl190c7KLNWYfpGha1Ts7ZFzQdXptFQmda7Mg+hzF5FmdjnFZCwCEWootLdS4kplw2vrS70ts3UwHXRYO1q0uuaVd0drLjQq/c+mFMVvVuwqQVPb8IGN6aXcCAsFzCnrl/Ud3AXz2upgNFPfdDW30jFXa5gTk9sk5L7Hy1hlDdvPSmqcHqmR0VjX0dF48hHRfXVy3sVs15z28V53hX2JYjzyX0Jb4fe3dR/ep2YxurxW9BXFxx5KXKGx7JJKJsTh/jQHWVoSY9Zn6+EBFKKT4ixlTyowpCRoqCVhPV8lEzlvFXCRqco4msLmNsis2jdI4o5X+IMfiR1dxuqu91Q3I1Vu1s2rRa3FZVc7hcvR/3epdbn9AqbZ+pzB3cQ9SOA/Qm/Psqa6uSpDqwqfO8cZXkz+41e0j37paMx+h8=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIcMA2kMvGL7YGMUKfvpnRDHIHjlfhJbW85RdiI6cDNDvswEkHAL0HDPbFJdtIMtBBJFhQbItOieAa/4eEUBPSNbaRr3QMCHEC7KnCGXFdNAsUmUUp2ajd5sRRR/WsBcoJrmeWk5f+wHawjKQmGCTy3xBeLOXIujGMrqws2VnMxF9aNtmkRHDagWNKSBD9WoVj5HDwJC7hzZ+TzXRLnnz30nlc3Y9v4KgbKbs45JZ4ChS5Qb2q5dyeLWctAOsAw2GjjOaEDcbXxSF0d8X4d82nOuoAOJ9r7JMWaX6wFZBLIVfQ9XeEOGcd9IEX7romNxkL/r1AgRyTPX00bHRFih/oSQM8oe2uh2GtPNZ0H3wvpdz3LPfE57eoP8GUsZfQbTceZ3fx96/Mor6uVw+IpiYZjSknCZThQYBCLl8GK4cJdP6IASVPaCxWwiUu4o+HHScjshy8cFnTQXOu4RnRADNLOBfiFbZtPshos8QBuvasGR9xw+yeyShZuzbiXNHE3IUt64P4CaQBwfixSzkpuMsfBYUpixQcvURkhQK6ZV3k1aGgpPA30BTtTWK9YNCPZMuU5ULRzxIOYxGrToyC/RB2cYj5mWU2Uo07OeI0amlHmplqMZprrVCG0REMQPuFERDx67/uVVtK7PoI2x5BocrPQQE9pVetm550rHn/PBq0d3v7Y3VzP3r+W8NdWMDODPAJVPoeMFNrwpdwHFMRXlzsCFjob1r0CmZf9QpFsJsFsPebgh38DLADletGAeiwIdCLJzA8BHWtAuqviW4fqKQu4LRuFMCrm03hexCp3zq8sT94M/BWcNVMC8uM9sW8dOj0vShdmuOQL0ebEbCnAjvMA9srwLXXFKy9DwKrpsKqFxC2VVyND4Kr+cZwHVTA1bXPefEj8ZspLFUXzNCi21veOOvL5p3ouWtMwnTPyVa2QhykbmOtu9SV5CbekPecumg+WdMZKjflwKI8XSn1pMhWij95CqSWuP/CRoUixwrws1oyKlp3McI3gncpmwzkA5Vh8e5UqojmLe5K12gyiozMhguCjKIImJyiHQ3jaR/PzKJM9wRmFjJMf5Fh+9islbC5cWbCisw0PpnZBDPzG3/sEpvXIQKKUI6lp9fQZow2iL7XKlo2tejlQ57Zag0tX2fGDKjwc/325C5G6foNC7xGc+un59bvXe4F+5k6UoupS2EVScujyALHtWgSGizJgriWM02kGY4mfa4I8QTCjygItoK51jogKv4nxmWgx1tLfl9XOyvdavLWN0QxA43bZGxcRQWvxiO5fIFZGspluC2N5acGaROe9VjElx+gUBQMh2daRmfDwVYi9O6tvada+6tnfvoHqQAZ4K0BW6UG9JPm1JX9nV7V37WTu5j6nnc+h+YuZmYz1XbuIufxmVbv51w5Od9WyefjkLOoylvTyZijjxGo52NqOQRU26QEULzP58mfOjcVeqZOH78PSb9ubjfrHeT9dHvpmfx9p/j6Mv+uePczzYTH5GbNu32zotsHFb1+ZXdelRD699HVHxje3KPF1V+aBTa4v5XF3XfEB5ada5rxPkghI1/5XmD4Wqx4sU5Q+wHBOH4eGmiSk3xJtFJPv7poE+s7/vxe++GpxeKBltmYFYWjporohcXCKjXYJI2YOZbv49lLmUT1ElwqfzCAeUgGUehKDluzjJmrDmL/mcjXSg2goavEyVY9qqYGcJhRlD1XV19qYE697+HscTa5fnj+YoHhud+dVjkNdjjfXt5bnpjbGiBbmtbgUbFuD/HqC3VVI53xqkzOnsU3jmRyL3NiDOp1MZk1k3/gRN2T/zHB6f8=</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbc+o2EP41zLQPycgSNvBILjS9nUnLdJo8OliAzjEWkUWA/PpKWLIs24Ch2IFJ8hJrba2tb7/d1UqihW5nq1+YP5/+SQMctiAIVi1014LQgT0o/knJOpF0vF4imDASqIeMYEjesRICJV2QAMfWg5zSkJO5LRzRKMIjbsl8xujSfmxMQ/utc3+CC4LhyA+L0n9JwKeJtAs7Rv6AyWSq3+zo8c18/bAaSTz1A7rMiNB9C90ySnlyNVvd4lCCp3EZkt/A2/tgOexDHFB2/xT/g68SZYNDuqRDYDjiR6t+/OsdvfwdrV4f+r3B79+fHl5fqeoC3vxwofBSY+VrDSCjiyjAUglooZvllHA8nPsjeXcpKCNkUz4LRcsRl2MShrc0pEy0IxqJh27UGzDjeJUzyZ7xOCnIgp2YzjBna9FPaXGBm+jRxFRjWRorO56STbMW7iqhr5g1SVUb9MSFAvAAMJ3LBVOgeWZgwv1gCi0iiuD9QPrxPAktY7KS4NcGI3JsGHtFGNslKLbrAhFdIogp+RSITgkZG0WxXQQtEDlGNSnjUzqhkR/eG+mN7ejmmT8onStAv2PO1yph+gtObbjxivAn2f3aVa3nzJ27ldK8aax1IxLDTTp5Tk8LnrN3TcdNy+r5iBkRiGGmhNK0RGTSfkgmkZDNSBCEJgpJEI6wuwCSLtgI7wBcBXbuswnmuwKuV04khkOfkzf7605OC/cSnQu5Z+ZcXgUUo6AvZ4ImDWaQsx0t4wFulv/OPv6XehvY6W11ewGq6AWw3OAZg7olBtWyyr6i3vBIiRidmYW1bT6hTo4oyTBVr+z0NK+ol1MEc4oSHAqKNqRLh308Dzun5eH/i97uIbG7bh7Cijx0v3h4Ah52CzwkkSjKpQEYxgVOivTAbSLGnNEfOFc3lJQSvsrqI8ESmfK3p/uy3GXTva5sla/x3GKyKqtKUF3JqldinEAM+VMaJ18zfrRxdO11WRMy17Mp/tElo+MUQTv7agcCK2NegWuA0DElz5hGXLtiC6LBAIi/BnKsUzXJwi1saqbk0Z95YS4GbRf78JrHuch1GQ+cG4ztCjB+ztqxcjxxQLnNm5m1d3o2pY6etXfbOUUNz9qdKotBn7N81NOy/VREX1Q8BRXLVtS8UBYi8dyPLE56rwu5e3ljXU3k/x9YfENfPBz5M3wlpP5M5p3NvUQzBD+JwgXL+z/rF4gPTt6RKNHiF1bxrUd8qBqm/NQJ9ll8R5hIh5Stcx/96zdRRX9bzF7EXG/b1568fAvxmJ9p8ZZbLymrO9I9/GbKt04xYjZXeOjrZyvq7ou0Vpy9Bt2jao7aA3C3agAuZ0xDpUVx4Uv7qSzKWvKEiK7LTAxA4/GmQiuEBTlS4+aJhmJQOi7W7Q0T5+/+uS3Wqtv99Tl/7+KcXy4yAO8iIgCsOgXbUgw0EwFg2fpdsxFAeX70Es8LsxGt9WuOUX2OkZsJeyVzDNBkmNEDy1AsDf6HWtawx0xBbf5EeJnq+1SGz2/bIFCSX3S91Yzhqyxcmvp8FPpxTEa7SvRtK8WmdPdgu3rxLhqNzwu3nJ5ppt5G+/ZZq9bbqOPYitxm621YYTHXUMfZ4pjZY59bmNXgcdBzmx7CCiu9l4ZxlezYcJAsLmLuTIqjBZMIZHIc2PQCNSe+U2yK5wgAgLXRV0dKtF2qXZISUz9rxtqHnbw7PCWmmJqUqPZpdUq8Bl7n4LSYWed2ku7ZbV8jOasCTP/yZe/27oceosrn5LZzZE5u509jeQ3n5OJpPjKWFl6RmH9FpIQzeRvVd35HNM3PpBIbmx+bofv/AA==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="171" y="341" width="275" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 356px; margin-left: 173px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">get</font><br style="font-size: 17px" />key: <span style="font-size: 17px">gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="173" y="361" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">get...</text></switch></g><rect x="11" y="31" width="220" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 218px; height: 1px; padding-top: 46px; margin-left: 13px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">get</font><br />key: name->value (filename)</font></div></div></div></foreignObject><text x="13" y="50" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="166" y="331" width="280" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="1" y="21" width="230" height="50" rx="7.5" ry="7.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="506" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="261" y="31" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="341" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="301" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="381" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 301 131 L 341 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341 91 L 381 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="506" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 507px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="549" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="246" y="1" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 16px; margin-left: 247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="291" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="586" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 171 L 546 214.5 L 546.1 247.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 546.12 254.65 L 541.6 245.66 L 546.1 247.9 L 550.6 245.63 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="546" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="626" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 546 131 L 586 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 586 91 L 626 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="161" y="261" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 276px; margin-left: 163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 17px">key: name->value (filename)</span><br style="font-size: 17px" /><span style="font-size: 17px">value: gearsDirectory->INodeNumber</span></div></div></div></foreignObject><text x="163" y="281" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">key: name->value (filename)...</text></switch></g><path d="M 231 46 L 250.9 46" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 257.65 46 L 248.65 50.5 L 250.9 46 L 248.65 41.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 446 356 L 476 356 L 476 45.9 L 494.94 45.93" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501.69 45.94 L 492.68 50.42 L 494.94 45.93 L 492.69 41.42 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="486" y="261" width="285" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 283px; height: 1px; padding-top: 276px; margin-left: 488px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px">key: gearsDirectory->INodeNumber<br />value: newDirectory</font></div></div></div></foreignObject><text x="488" y="280" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: gearsDirectory->INodeNumber...</text></switch></g><path d="M 342 301 L 341.89 320.9" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.86 327.65 L 337.41 318.62 L 341.89 320.9 L 346.41 318.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 341 211 L 341.07 249.91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 341.08 256.66 L 336.57 247.66 L 341.07 249.91 L 345.57 247.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/figs/mkdir.svg Wed Feb 02 20:55:43 2022 +0900 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="473px" height="393px" viewBox="-0.5 -0.5 473 393" content="<mxfile host="app.diagrams.net" modified="2022-02-02T06:18:21.388Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" etag="NKbh3uQ0TRyomS7yze6d" version="16.5.2" type="device" pages="4"><diagram id="AAaulOYO_kfhROZJ8ttr" name="Page-1">7Vpbb+I6EP41PBbFSQjwWGi350hUW52utNtHlxjirRMjxxTYX3/GiU2uQLbLJYsqIRFPxsb+5hvPeEzHGYfrB4EXwSP3CevYlr/uOHcd20au7cGXkmxSSd8bpoK5oL5WygTP9BfRQktLl9QncUFRcs4kXRSFUx5FZCoLMiwEXxXVZpwVf3WB56QieJ5iVpV+p74MUunA7mfyfwidB+aXkVlfiI2yXkkcYJ+vciLnvuOMBecyfQrXY8IUeAaXtN+XHW+3ExMkkk06zH6+/PuNT1dSPt4+PDk3XydfJzdIm+cds6VesZ6t3BgIBF9GPlGjWB1ntAqoJM8LPFVvV2B0kAUyZNBC8DijjI054wLaEY9AaVSdqJ77OxGSrHMiPfEHwkMixQZUzFtLg6hZ5OnmKjMJMrIgb46BFmJNg/l26AwpeNBg/Q5wh3GDUYCl5DBmOF6k1J3RtcL5KIh5RcQGVcTcGsDcU+Fltx0vu4gXqqHYeQFzqgD5sDXpJhcy4HMeYXafSUdFV810JpwvNHg/iZQbvc/ipeRFaMmayh+55xc1VLenW3drPXLS2JhGBOtVnW6sroVsI0m7el7fCLLeSavQ/YkICrgRoYU7LRrzpZiSPbhp2CQWcyL34asNp0DdSxBBGJb0vRgPjm5up+X+YVst848GgYtE/q1KAbJQlAOp6CpbDmuyGwKjQ+TV/pL5yEveRWr95ePcthtyGzWkds52vRrbGVljD9C/8MQprGxLHWdYpI7jlTiRrlv3ymcwpYFctzQQKg2UAlMZKOHXdtkfp1z/uJSrpQ5qttWWaGodoOnHKWdy7kOUcz4pdwrKDSqUoxGcsZRFBCEV+sFmLouci6Xgb6SUkdck6ZjReQTNKTBEReGRCg0UzkG3+kVIfZ/tCj5FZh8h3DiDIu5uNdrU5fvOqaLNsMYOPizl2u1QPnhd2g7G/VqbJ5U3jEufu1DbD6pu2xJL1PajqjtoG2JNDi/XloujppmR2bJakhp5/SOlRn37sqkRco/Lur8jHbeass7+ZN1JWNersO6NwIC3IAO5x1Te9yrgaa6etJp6a64BrjFLLB23tou9WJo4rG4FLS+eWoUNpGsNnPPWTdGg6c7iNdxZzlM4RdUjspq/beXd8mod7+C12FndzuzNLb9NLBcXLn+baHDaTeIrjh52KXrUnWfOS+NqZpm3w54YnxTnrthUTr93MNAPz2qqak1+hw3iFQ0ZTnHmkTSpgAJmGlDmT/CGL9V0Y4mnb6Y1Crigv0AfZ5bDQuoUwLEKGs+qpx5TkBh0ngzYqCR6xOuC4gTH0syGM4YXMX1N5qc6hhCSaTTiUvJQK+Wp4pMZXiacPMHeWFfAQnXVhe0F+vFtXI3wXyhTNfBvm8XO2uvvehgjM7nPv2JwLRrNJ4nanZtJ/tMYKBGH7jOWnDcD6EhghNFCHUUSTHoj+ABKY5UU9mCuY2ijrA0fpS7kmEcwfUwTKxKgxoooeoA/Syzx65a4VXvvd5LDLDCnqoZGP51fVwvukOqGNI4pjz5NfgKT1yVBZzW5U00eu93up61PYOvhxW1draJUDH2+2p098C58+DYZ5+F/LWlbt6SsV75n3+aDf3rPjnqlgT5c1oNm9h/bVD37p7Jz/z8=</diagram><diagram id="s08jDtw-m_Aoh3yq8LbV" name="Page-2">7Vpbc9o8EP01zLQPydgyNvAYLmk70y+TKZ02eeoILIwS23KEHEx//SfZku+AW+5p8hJ0LOty9uyuVtAyBl70icJg/h+xkdsCmh21jGELAL0NLP5PIKsE6Vi9BHAotmWnDBjj30iCmkRDbKNFoSMjxGU4KIJT4vtoygoYpJQsi91mxC3OGkAHVYDxFLpV9Ce22TxBu6CT4Z8RduZqZl3tz4Oqs9zJYg5tssxBxqhlDCghLPnkRQPkCvIULz+6+m+t/6A9DyPNH85+fR12/KtksNs/eSXdAkU+2/PQ3WTsV+iGkrAWsFw+S39G+GTCLi6h8RPrJRRb7beAMZtp/C8PaQu2kpQrUAxwtYgFccM76J0girtmL1mO+B+ETM05oTuNpIbhJCSrT+BntEpe9KGHrjgKvYDD8bNk40D7MMMuEs8/7mktklHRx0GQLoaYcnkTuiot4Msdd7m70JsgKmWWTgkYikSXOfNcDuj844JR8owG0iY+8ZFYEnbdEgRd7Pi86aJZvBhEGeY+cSNhD9u2mKS/nGOGxgGcihmXPAJwjJLQt5FQjSb3K71a76QrUK5kxDtupE6pYrEUFOV8U6r1EyIeYnTFu8inQJOOJyOP0ZXtZebHoCexec6HDYlBGTqcdOjMPfgH6SH13jL67DzcL797YDJehiR8uZp8G6VbyDtLyWQZefoaenPWFNwOUv8ybm9jr6o16PFo13tmkXarSruh1dDeORTt2r9AO9CLtOs1tIPugWiv3YJKketzQ7PouDZMHyTDbEovpbyQj/QbE4iCbfy6+64XAfTXMPGXI6f5rXmi2bhNDtctksMxAftcei5L+miZLn3tAs8wQR4xRIBiQtTrEmLnQAmxPkT8SWTWGkTmU0ZgUytG4JTKHL1pVM7Tm4J759fYzi8fhZdS66Sa4xYugqS+muFI2OOYzFolZntVZts1xLYPxWv7jfAKSke1GsUelVfrbfBqaWfGa91JrMyrb9+I65Iscua4LAZhzhZdPYjGtamaj7Jn3BhG+Z7DlWpFmOVe463H3JPsJdFQ7+xqtAUJ6RRtd2UGqYM2jSdDKbIL10VVCeRMbNaYWGEUuZDh1+IlU53d5Qz3BMfnJKmwTqnIMsun+GTf8q38rU5poG67NBAoDZQQUxkolmG67b9XZt390Q7KrFWYvlFh69SsbVHzwZVpNFSm9a7MQyizV1Em9nkFJCxCEaqodPdSYsplw2urC71tMzVwXTRYu5r0umZVdwcrLvTqvQ/mVEXvFmxqwdObsMGN6SUcCMsFzKnrF71B4X0RvJYKGP3UB239jVTc5Qrm9MQ2Kbn/0RJGefPWk6IKp2d6VDT2dVQ0jnxUVF+9vFcx6zW3XZznXWFfgjif3JfwdujdTf2n14lprB6/BX11wZGXImd4LJuEsjlxiA/dUYaW9Jj1+UpIIKX4hBhbyYMqDBkpClpJWM9HyVTOWyVsdIoivraAuS0yi9Y9opjzJc7gR1J3t6G62w3F3Vi1u2XTanFbUcnlfvFy1O9dan1Or7B5pj53cAdRPwLYn/Dro6ypTp7qwKrC985Rljez3+gl3bNfOhqj/wE=</diagram><diagram id="_SMWdJT_P9braKPgiXsX" name="Page-3">7Vpdc+I2FP01zLQPZGwLG3gMJNl2mu5sm6ab9CWjYGGU2BaVRYD99ZWwhC1bxIaCgc3mJejavpbOPfdLcgsMo8UnCqeT34mPwpZj+YsWuGo5ju30Hf5PSJappOv1U0FAsS9vygR3+BuSQktKZ9hHiXYjIyRkeKoLRySO0YhpMkgpmeu3jUmov3UKA1QS3I1gWJZ+xT6bpNKe083kvyAcTNSbbbW+CKqb5UqSCfTJPCcC1y0wpISw9Fe0GKJQgKdwWdz/cTW/XpLXJP4UvkRPw3swaKfKbrZ5ZL0EimK2Z9VysW8wnEnA5GLZUiFIySz2kdBitcBgPsEM3U3hSFydc85w2YRFIR/Z/OcYh+GQhITycUxiftNAvgFRhhYFm1QsyF6jzOmJSIQYXfLnpBbXclM9ipnSTvPMzLYnZZO8iXtSCCW1grXqDD7+QyK4BZrO+YLJ0TwxMEE1mFwLDyOoGkiYTNPYMsYLAf7BYAS2DmO/DGPHgGLnUCB2zhHENfkkiLaBjIdC0f5rcPsbBvdPKLj904LOHLvLtgE0nycZOSSUTUhAYhheZ9KB7ujZPbeETCWgL4ixpcyYcMaIDjdaYPYgHr9w5egxd+VqITWvBks1iPly04c8Htql4DF/NXtwNdKe/IIo5oghKoXCtJin0ssQBzGXRdj3wywKCRB2sDsHkszoCL1znycLBUgD9K4+z0wkikLI8Js+u707l3eOzgXc4zmXcbrdGijG/qUoBbM0mENOd7ScB7h5/ttV/Dd6m/Wutx3aCzo1vQCYDZ4zqGswqJLV9hX5hi8E89VlVVhH5xPoFoiSLlM+la9Pi4r6BUVOQVGKQ0nRinTrZe/Ow95+efj/ore7Tew+NA9BTR5uCMY/eLgVD8sdGY55Vy4MQBEqcZKnB6YTMWGUvKJC32BoJaDM6iPOEpHyN6d7U+7S6X6obFXs8dxysjJ1JeBQyUqV95p1fL7mD2mdYtN4dOvY51iRuZ7O8QZ7Rjq0pv+8eLTz8PA1un8avP1t4bZVxuzkux3H0jJm27qwANil5RmTmClPbDng5sbifw3kWNupmWSdDWRqpuVR0zwzD3N0Dzt6z2Of5eaWZ50ajHW2tz5m71g7ntgbbN5M1d7t65TauWrvdQqKGq7abXe/VPyO2kdVlVVT8agbGd8PFU37kl4o+pBkCmONk96/M3F8OdB+BeL/K+JzuOQ3xzBCbS6Fkcg7q2upZsf6ifctSFz/Wb2ATzh9R6pEiZ9pzbfuMFG5TDHVAEGaXGHK0yGhy8Kkf/3Mu+jPs+iZ13qbZrv37i1EY3aivVthv8TUdqwP8Zvp3rrliNlc46F+P2pRtyrSanH2wurt1HMcPAD3agZgx8yYhloL0wZs6qeiKWuJT0RUX5bFADAerzq0UlgQK83cPNVQDkq7xbrKMHH67l84Yq173L8P5zcesXpn5/tij8HyziIAqAKkugLrHzMCqGkeMQJIz4+fk2mpGlFaf9QY9WuMQiXsGWoMq8kawynvEK+D/7aWzdiTlaA6f2I0X+v7UIYvHtsAy5BfVL+1b8MbN7XrnAxk7fkohEmCR+916Js2irPO3XM69Xt3Pmi8LDzqeS2oOmat226Drq0rcg/WbhuZ5VQzK2OOvcEt8x99biBWgx+DHrE4NEJcY7f83CCukxr3FSH5MPtKPaV99q0/uP4P</diagram><diagram id="HHLeNmLiLjBSiti2kdQe" name="Page-4">7Vtbc+o2EP41zLQPycgSNvBILjS9nUnLdJo8OliAzjEWkUWA/PpKWLIs24Ch2IFJ8hJrba2tb7/d1UqihW5nq1+YP5/+SQMctiAIVi1014LQgT0o/knJOpF0vF4imDASqIeMYEjesRICJV2QAMfWg5zSkJO5LRzRKMIjbsl8xujSfmxMQ/utc3+CC4LhyA+L0n9JwKeJtAs7Rv6AyWSq3+zo8c18/bAaSTz1A7rMiNB9C90ySnlyNVvd4lCCp3EZkt/A2/tgOexDHFB2/xT/g68SZYNDuqRDYDjiR6t+/OsdvfwdrV4f+r3B79+fHl5fqeoC3vxwofBSY+VrDSCjiyjAUglooZvllHA8nPsjeXcpKCNkUz4LRcsRl2MShrc0pEy0IxqJh27UGzDjeJUzyZ7xOCnIgp2YzjBna9FPaXGBm+jRxFRjWRorO56STbMW7iqhr5g1SVUb9MSFAvAAMJ3LBVOgeWZgwv1gCi0iiuD9QPrxPAktY7KS4NcGI3JsGHtFGNslKLbrAhFdIogp+RSITgkZG0WxXQQtEDlGNSnjUzqhkR/eG+mN7ejmmT8onStAv2PO1yph+gtObbjxivAn2f3aVa3nzJ27ldK8aax1IxLDTTp5Tk8LnrN3TcdNy+r5iBkRiGGmhNK0RGTSfkgmkZDNSBCEJgpJEI6wuwCSLtgI7wBcBXbuswnmuwKuV04khkOfkzf7605OC/cSnQu5Z+ZcXgUUo6AvZ4ImDWaQsx0t4wFulv/OPv6XehvY6W11ewGq6AWw3OAZg7olBtWyyr6i3vBIiRidmYW1bT6hTo4oyTBVr+z0NK+ol1MEc4oSHAqKNqRLh308Dzun5eH/i97uIbG7bh7Cijx0v3h4Ah52CzwkkSjKpQEYxgVOivTAbSLGnNEfOFc3lJQSvsrqI8ESmfK3p/uy3GXTva5sla/x3GKyKqtKUF3JqldinEAM+VMaJ18zfrRxdO11WRMy17Mp/tElo+MUQTv7agcCK2NegWuA0DElz5hGXLtiC6LBAIi/BnKsUzXJwi1saqbk0Z95YS4GbRf78JrHuch1GQ+cG4ztCjB+ztqxcjxxQLnNm5m1d3o2pY6etXfbOUUNz9qdKotBn7N81NOy/VREX1Q8BRXLVtS8UBYi8dyPLE56rwu5e3ljXU3k/x9YfENfPBz5M3wlpP5M5p3NvUQzBD+JwgXL+z/rF4gPTt6RKNHiF1bxrUd8qBqm/NQJ9ll8R5hIh5Stcx/96zdRRX9bzF7EXG/b1568fAvxmJ9p8ZZbLymrO9I9/GbKt04xYjZXeOjrZyvq7ou0Vpy9Bt2jao7aA3C3agAuZ0xDpUVx4Uv7qSzKWvKEiK7LTAxA4/GmQiuEBTlS4+aJhmJQOi7W7Q0T5+/+uS3Wqtv99Tl/7+KcXy4yAO8iIgCsOgXbUgw0EwFg2fpdsxFAeX70Es8LsxGt9WuOUX2OkZsJeyVzDNBkmNEDy1AsDf6HWtawx0xBbf5EeJnq+1SGz2/bIFCSX3S91Yzhqyxcmvp8FPpxTEa7SvRtK8WmdPdgu3rxLhqNzwu3nJ5ppt5G+/ZZq9bbqOPYitxm621YYTHXUMfZ4pjZY59bmNXgcdBzmx7CCiu9l4ZxlezYcJAsLmLuTIqjBZMIZHIc2PQCNSe+U2yK5wgAgLXRV0dKtF2qXZISUz9rxtqHnbw7PCWmmJqUqPZpdUq8Bl7n4LSYWed2ku7ZbV8jOasCTP/yZe/27oceosrn5LZzZE5u509jeQ3n5OJpPjKWFl6RmH9FpIQzeRvVd35HNM3PpBIbmx+bofv/AA==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="6" y="341" width="290" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 356px; margin-left: 8px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000" style="font-size: 17px">put<br style="font-size: 17px" /></font>key: name->value (filename)<br style="font-size: 17px" />value: gearsDirectory->INodeNumber</div></div></div></foreignObject><text x="8" y="361" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px">put...</text></switch></g><rect x="1" y="321" width="300" height="70" rx="10.5" ry="10.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="21" y="121" width="280" height="70" rx="10.5" ry="10.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><rect x="26" y="141" width="270" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 156px; margin-left: 28px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 17px"><font color="#ff0000" style="font-size: 17px">put</font><br /></font><div style="font-size: 17px"><span><font style="font-size: 17px">key: gearsDirectory->INodeNumber</font></span></div><font style="font-size: 17px">value: newDirectory</font></div></div></div></foreignObject><text x="28" y="160" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">put...</text></switch></g><rect x="311" y="231" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="391" cy="271" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="351" cy="351" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="431" cy="351" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 351 331 L 391 291" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 391 291 L 431 331" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="308.5" y="1" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 16px; margin-left: 310px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="351" y="21" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">inode tree</text></switch></g><rect x="308.5" y="201" width="85" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 83px; height: 1px; padding-top: 216px; margin-left: 310px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="351" y="221" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">index tree</text></switch></g><ellipse cx="391" cy="71" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="351" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><ellipse cx="431" cy="151" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 351 131 L 391 91" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 391 91 L 431 131" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296 356 L 316 356 L 311 356 L 335.9 356" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 342.65 356 L 333.65 360.5 L 335.9 356 L 333.65 351.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="311" y="31" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 296 156 L 335.9 156" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 342.65 156 L 333.65 160.5 L 335.9 156 L 333.65 151.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
--- a/slide/slide.html Tue Feb 01 14:11:38 2022 +0900 +++ b/slide/slide.html Wed Feb 02 20:55:43 2022 +0900 @@ -7,7 +7,7 @@ <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> - <title>GearsOSにおけるinodeを用いたFile systemの設計</title> + <title>GearsOSにおけるinodeを用いたFile systemの実装</title> <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 3.0.3 (2021-11-24) [arm64-darwin21]"> <meta name="author" content="又吉 雄斗" > @@ -70,7 +70,7 @@ <tr> <td> <div align="center"> - <h1><font color="#808db5">GearsOSにおけるinodeを用いたFile systemの設計</font></h1> + <h1><font color="#808db5">GearsOSにおけるinodeを用いたFile systemの実装</font></h1> </div> </td> </tr> @@ -78,7 +78,7 @@ <td> <div align="left"> 又吉 雄斗 - 河野研 + 並列信頼研 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> </div> </td> @@ -101,7 +101,7 @@ </li> <li>当研究室では,信頼性の保証を目的としたGearsOSを開発している</li> <li>GearsOSで未実装の機能であるファイルシステムの実装を目指す</li> - <li>今回はUnix likeにディレクトリシステムを実装した</li> + <li><span style="color: red; ">今回はUnix likeにディレクトリシステムを実装した</span></li> <li>GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとる</li> <li>GearsOSのディレクトリシステムであるgearsDirectoryについて説明する</li> </ul> @@ -121,7 +121,7 @@ <li>ノーマルレベルとメタレベルの処理を切り分けることが可能である</li> <li>function callの継続の代わりにgotoによる継続を用いる <ul> - <li>function callの継続と区別して軽量継続と呼ぶ</li> + <li>呼び出し履歴を持たないことから軽量継続と呼ぶ</li> </ul> </li> </ul> @@ -141,7 +141,7 @@ <ul> <li>当研究室にて,信頼性と拡張性の両立を目的として開発している</li> <li>Gearという概念があり,実行の単位をCodeGear,データの単位をDataGearと呼ぶ</li> - <li>同様にGearの概念を持つCbC(Continuation based C)で記述されている.</li> + <li>同様にGearの概念を持つCbC(Continuation based C)で記述されている</li> <li>軽量継続を基本とし,stackを持たない代わりに全てを従来OSのプロセスに当たるContext経由で実行する</li> <li>ノーマルレベルとメタレベルの処理を切り分けることができる</li> <li>OSとして動作するために今後実装しなければならない機能がいくつか残っている</li> @@ -217,6 +217,8 @@ <!-- _S9SLIDE_ --> <h2 id="unixのfile-system">UnixのFile system</h2> +<p>UnixのFile systemはinodeのBTreeで構成されており,xv6もその仕組みを用いている</p> + <h3 id="xv6">xv6</h3> <ul> @@ -243,16 +245,17 @@ <h2 id="gearsfilesystemにおけるdirectoryの構成">GearsFileSystemにおけるdirectoryの構成</h2> <ul> - <li>2つのFileSystemTreeを用いる + <li>2つのRedBlackTreeを用いる <ol> <li>inode numberとfileのポインタのペアを持つTree</li> <li>filenameとinode numberのペアを持つTree</li> </ol> </li> + <li>カレントディレクトリはgearsDirectory->currentDirectoryに保存される</li> </ul> <div style="text-align: center;"> - <img src="../paper/figs/inode.svg" width="800" /> + <img src="figs/inode.svg" width="1000" /> </div> @@ -299,32 +302,71 @@ <h3 id="mkdir-1">mkdir</h3> <div style="text-align: center;"> - <img src="../paper/figs/mkdir.svg" width="600" /> -</div> - - - + <img src="figs/mkdir.svg" width="700" /> </div> -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-2">Unix Like な interface</h2> +<!-- +## Unix Like な interface -<h3 id="ls">ls</h3> +### ls -<pre><code class="language-c">__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { +```c +__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { Node* dir = new Node(); - dir->key = name->value; + dir->key = name->value; struct FTree* cDirectory = new FTree(); - cDirectory = gearsDirectory->currentDirectory; - goto cDirectory->get(dir, ls2); + cDirectory = gearsDirectory->currentDirectory; + goto cDirectory->get(dir, ls2); } __code ls2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { - printf("%d\n", node->key); + printf("%d\n", node->key); goto next(...); } -</code></pre> +``` + +## Unix Like な interface + +### ls + +<div style="text-align: center;"> + <img src="figs/ls.svg" width="1000"> +</div> + +## Unix Like な interface + +### cd + +```c +__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 cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { + gearsDirectory->currentDirectory = node->value; + goto next(...); +} +``` + +## Unix Like な interface + +### cd + +<div style="text-align: center;"> + <img src="figs/cd.svg" width="1200"> +</div> + +--> @@ -332,65 +374,7 @@ <div class='slide'> <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-3">Unix Like な interface</h2> - -<h3 id="ls-1">ls</h3> - -<div style="text-align: center;"> - <img src="../paper/figs/ls.svg" width="800" /> -</div> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-4">Unix Like な interface</h2> - -<h3 id="cd">cd</h3> - -<pre><code class="language-c">__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 cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { - gearsDirectory->currentDirectory = node->value; - goto next(...); -} -</code></pre> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-5">Unix Like な interface</h2> - -<h3 id="cd-1">cd</h3> - -<div style="text-align: center;"> - <img src="../paper/figs/cd.svg" width="800" /> -</div> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="gearsdirectoryの非破壊的編集によるバックアップ">GearsDirectoryの非破壊的編集によるバックアップ</h2> +<h2 id="gearsdirectoryの非破壊的編集による">GearsDirectoryの非破壊的編集による</h2> <ul> <li>GearsOSにおける永続データは非破壊的な編集を行う木構造を用いて保存する</li> @@ -409,11 +393,12 @@ <!-- _S9SLIDE_ --> <h2 id="gearsfilesystemの今後">GearsFileSystemの今後</h2> -<h3 id="gearsshell">GearsShell</h3> +<h3 id="gearsdirectory-path">gearsDirectory path</h3> <ul> - <li>現状のGearsOSはユーザーの入力を受け付けることが出来ず,プログラミングインターフェースの様に機能している.</li> - <li>gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい.</li> + <li>gearsDirectoryにはpathの機能が実装されていない</li> + <li>full path指定のlsなどが実装できない状態である</li> + <li>FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある</li> </ul> <h3 id="gearsdirectory-filename">gearsDirectory filename</h3> @@ -431,12 +416,18 @@ <!-- _S9SLIDE_ --> <h2 id="gearsfilesystemの今後-1">GearsFileSystemの今後</h2> -<h3 id="gearsdirectory-path">gearsDirectory path</h3> +<h3 id="gearsdirectory-on-disk">gearsDirectory on disk</h3> <ul> - <li>gearsDirectoryにはpathの機能が実装されていない</li> - <li>full path指定のlsなどが実装できない状態である</li> - <li>FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある</li> + <li>現状はgearsDirectoryはon memoryで実装されている</li> + <li>inodeをdisk上に構築する必要がある</li> +</ul> + +<h3 id="gearsshell">GearsShell</h3> + +<ul> + <li>現状のGearsOSはユーザーの入力を受け付けることが出来ず,言語フレームワークの様に機能している</li> + <li>gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい</li> </ul> <h3 id="ファイルのバックアップ">ファイルのバックアップ</h3> @@ -451,14 +442,14 @@ <div class='slide'> <!-- _S9SLIDE_ --> -<h2 id="まとめ">まとめ</h2> +<h2 id="gearsdirectoryまとめ">gearsDirectoryまとめ</h2> <ul> <li>gearsDirectoryの実装について説明した</li> <li>RedBlackTreeのシンプルなinterfaceにより比較的容易に実装を行うことができた</li> <li>形式手法とファイルシステムの機能の両面で信頼性の向上が図れると考える</li> <li>RedBlackTreeを用いてinodeの仕組みを構築し,ls,cd,mkdirを作成するなどして, -Unix Likeに構築することが出来た.</li> +Unix Likeに構築することが出来た</li> </ul> </div>
--- a/slide/slide.md Tue Feb 01 14:11:38 2022 +0900 +++ b/slide/slide.md Wed Feb 02 20:55:43 2022 +0900 @@ -1,6 +1,6 @@ -title: GearsOSにおけるinodeを用いたFile systemの設計 +title: GearsOSにおけるinodeを用いたFile systemの実装 author: 又吉 雄斗 -profile: 河野研 +profile: 並列信頼研 ## inodeを用いたgearsDirectoryの実装 @@ -9,7 +9,7 @@ - 信頼性確保の方法として定理証明やモデル検査がある - 当研究室では,信頼性の保証を目的としたGearsOSを開発している - GearsOSで未実装の機能であるファイルシステムの実装を目指す -- 今回はUnix likeにディレクトリシステムを実装した +- <span style="color: red; ">今回はUnix likeにディレクトリシステムを実装した</span> - GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとる - GearsOSのディレクトリシステムであるgearsDirectoryについて説明する @@ -20,7 +20,7 @@ - データはDataGearと呼ばれる単位を用いる - ノーマルレベルとメタレベルの処理を切り分けることが可能である - function callの継続の代わりにgotoによる継続を用いる - - function callの継続と区別して軽量継続と呼ぶ + - 呼び出し履歴を持たないことから軽量継続と呼ぶ <div style="text-align: center;"> <img src="../paper/figs/dgcgdg.svg" width="1000"> @@ -30,7 +30,7 @@ - 当研究室にて,信頼性と拡張性の両立を目的として開発している - Gearという概念があり,実行の単位をCodeGear,データの単位をDataGearと呼ぶ -- 同様にGearの概念を持つCbC(Continuation based C)で記述されている. +- 同様にGearの概念を持つCbC(Continuation based C)で記述されている - 軽量継続を基本とし,stackを持たない代わりに全てを従来OSのプロセスに当たるContext経由で実行する - ノーマルレベルとメタレベルの処理を切り分けることができる - OSとして動作するために今後実装しなければならない機能がいくつか残っている @@ -72,6 +72,8 @@ ## UnixのFile system +UnixのFile systemはinodeのBTreeで構成されており,xv6もその仕組みを用いている + ### xv6 - MITで教育用の目的で開発されたOS @@ -87,12 +89,13 @@ ## GearsFileSystemにおけるdirectoryの構成 -- 2つのFileSystemTreeを用いる +- 2つのRedBlackTreeを用いる 1. inode numberとfileのポインタのペアを持つTree 1. filenameとinode numberのペアを持つTree +- カレントディレクトリはgearsDirectory-\>currentDirectoryに保存される <div style="text-align: center;"> - <img src="../paper/figs/inode.svg" width="800"> + <img src="figs/inode.svg" width="1000"> </div> ## Unix Like な interface @@ -129,9 +132,10 @@ <div style="text-align: center;"> - <img src="../paper/figs/mkdir.svg" width="600"> + <img src="figs/mkdir.svg" width="700"> </div> +<!-- ## Unix Like な interface ### ls @@ -156,7 +160,7 @@ ### ls <div style="text-align: center;"> - <img src="../paper/figs/ls.svg" width="800"> + <img src="figs/ls.svg" width="1000"> </div> ## Unix Like な interface @@ -189,10 +193,12 @@ ### cd <div style="text-align: center;"> - <img src="../paper/figs/cd.svg" width="800"> + <img src="figs/cd.svg" width="1200"> </div> -## GearsDirectoryの非破壊的編集によるバックアップ +--> + +## GearsDirectoryの非破壊的編集による - GearsOSにおける永続データは非破壊的な編集を行う木構造を用いて保存する - ディレクトリシステム自体にバックアップの機能を搭載することが可能と考える @@ -203,10 +209,11 @@ ## GearsFileSystemの今後 -### GearsShell +### gearsDirectory path -- 現状のGearsOSはユーザーの入力を受け付けることが出来ず,プログラミングインターフェースの様に機能している. -- gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい. +- gearsDirectoryにはpathの機能が実装されていない +- full path指定のlsなどが実装できない状態である +- FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある ### gearsDirectory filename @@ -215,20 +222,24 @@ ## GearsFileSystemの今後 -### gearsDirectory path +### gearsDirectory on disk + +- 現状はgearsDirectoryはon memoryで実装されている +- inodeをdisk上に構築する必要がある -- gearsDirectoryにはpathの機能が実装されていない -- full path指定のlsなどが実装できない状態である -- FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある +### GearsShell + +- 現状のGearsOSはユーザーの入力を受け付けることが出来ず,言語フレームワークの様に機能している +- gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい ### ファイルのバックアップ - レコードのDataをファイルの差分履歴として保持し,日時情報を付け加えることでVersion Control Systemのような機能を持たせることが可能であると考えられる -## まとめ +## gearsDirectoryまとめ - gearsDirectoryの実装について説明した - RedBlackTreeのシンプルなinterfaceにより比較的容易に実装を行うことができた - 形式手法とファイルシステムの機能の両面で信頼性の向上が図れると考える - RedBlackTreeを用いてinodeの仕組みを構築し,ls,cd,mkdirを作成するなどして, -Unix Likeに構築することが出来た. +Unix Likeに構築することが出来た
--- a/slide/slide.pdf.html Tue Feb 01 14:11:38 2022 +0900 +++ b/slide/slide.pdf.html Wed Feb 02 20:55:43 2022 +0900 @@ -7,7 +7,7 @@ <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> - <title>GearsOSにおけるinodeを用いたFile systemの設計</title> + <title>GearsOSにおけるinodeを用いたFile systemの実装</title> <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 3.0.3 (2021-11-24) [arm64-darwin21]"> <meta name="author" content="又吉 雄斗" > @@ -55,7 +55,7 @@ <tr> <td> <div align="center"> - <h1><font color="#808db5">GearsOSにおけるinodeを用いたFile systemの設計</font></h1> + <h1><font color="#808db5">GearsOSにおけるinodeを用いたFile systemの実装</font></h1> </div> </td> </tr> @@ -63,7 +63,7 @@ <td> <div align="left"> 又吉 雄斗 - 河野研 + 並列信頼研 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> </div> </td> @@ -85,7 +85,7 @@ </li> <li>当研究室では,信頼性の保証を目的としたGearsOSを開発している</li> <li>GearsOSで未実装の機能であるファイルシステムの実装を目指す</li> - <li>今回はUnix likeにディレクトリシステムを実装した</li> + <li><span style="color: red; ">今回はUnix likeにディレクトリシステムを実装した</span></li> <li>GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとる</li> <li>GearsOSのディレクトリシステムであるgearsDirectoryについて説明する</li> </ul> @@ -105,7 +105,7 @@ <li>ノーマルレベルとメタレベルの処理を切り分けることが可能である</li> <li>function callの継続の代わりにgotoによる継続を用いる <ul> - <li>function callの継続と区別して軽量継続と呼ぶ</li> + <li>呼び出し履歴を持たないことから軽量継続と呼ぶ</li> </ul> </li> </ul> @@ -125,7 +125,7 @@ <ul> <li>当研究室にて,信頼性と拡張性の両立を目的として開発している</li> <li>Gearという概念があり,実行の単位をCodeGear,データの単位をDataGearと呼ぶ</li> - <li>同様にGearの概念を持つCbC(Continuation based C)で記述されている.</li> + <li>同様にGearの概念を持つCbC(Continuation based C)で記述されている</li> <li>軽量継続を基本とし,stackを持たない代わりに全てを従来OSのプロセスに当たるContext経由で実行する</li> <li>ノーマルレベルとメタレベルの処理を切り分けることができる</li> <li>OSとして動作するために今後実装しなければならない機能がいくつか残っている</li> @@ -201,6 +201,8 @@ <!-- _S9SLIDE_ --> <h2 id="unixのfile-system">UnixのFile system</h2> +<p>UnixのFile systemはinodeのBTreeで構成されており,xv6もその仕組みを用いている</p> + <h3 id="xv6">xv6</h3> <ul> @@ -227,16 +229,17 @@ <h2 id="gearsfilesystemにおけるdirectoryの構成">GearsFileSystemにおけるdirectoryの構成</h2> <ul> - <li>2つのFileSystemTreeを用いる + <li>2つのRedBlackTreeを用いる <ol> <li>inode numberとfileのポインタのペアを持つTree</li> <li>filenameとinode numberのペアを持つTree</li> </ol> </li> + <li>カレントディレクトリはgearsDirectory->currentDirectoryに保存される</li> </ul> <div style="text-align: center;"> - <img src="../paper/figs/inode.svg" width="800" /> + <img src="figs/inode.svg" width="1000" /> </div> @@ -283,32 +286,71 @@ <h3 id="mkdir-1">mkdir</h3> <div style="text-align: center;"> - <img src="../paper/figs/mkdir.svg" width="600" /> -</div> - - - + <img src="figs/mkdir.svg" width="700" /> </div> -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-2">Unix Like な interface</h2> +<!-- +## Unix Like な interface -<h3 id="ls">ls</h3> +### ls -<pre><code class="language-c">__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { +```c +__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { Node* dir = new Node(); - dir->key = name->value; + dir->key = name->value; struct FTree* cDirectory = new FTree(); - cDirectory = gearsDirectory->currentDirectory; - goto cDirectory->get(dir, ls2); + cDirectory = gearsDirectory->currentDirectory; + goto cDirectory->get(dir, ls2); } __code ls2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { - printf("%d\n", node->key); + printf("%d\n", node->key); goto next(...); } -</code></pre> +``` + +## Unix Like な interface + +### ls + +<div style="text-align: center;"> + <img src="figs/ls.svg" width="1000"> +</div> + +## Unix Like な interface + +### cd + +```c +__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 cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { + gearsDirectory->currentDirectory = node->value; + goto next(...); +} +``` + +## Unix Like な interface + +### cd + +<div style="text-align: center;"> + <img src="figs/cd.svg" width="1200"> +</div> + +--> @@ -316,65 +358,7 @@ <div class='slide'> <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-3">Unix Like な interface</h2> - -<h3 id="ls-1">ls</h3> - -<div style="text-align: center;"> - <img src="../paper/figs/ls.svg" width="800" /> -</div> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-4">Unix Like な interface</h2> - -<h3 id="cd">cd</h3> - -<pre><code class="language-c">__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 cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) { - gearsDirectory->currentDirectory = node->value; - goto next(...); -} -</code></pre> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="unix-like-な-interface-5">Unix Like な interface</h2> - -<h3 id="cd-1">cd</h3> - -<div style="text-align: center;"> - <img src="../paper/figs/cd.svg" width="800" /> -</div> - - - -</div> - -<div class='slide'> - <!-- _S9SLIDE_ --> -<h2 id="gearsdirectoryの非破壊的編集によるバックアップ">GearsDirectoryの非破壊的編集によるバックアップ</h2> +<h2 id="gearsdirectoryの非破壊的編集による">GearsDirectoryの非破壊的編集による</h2> <ul> <li>GearsOSにおける永続データは非破壊的な編集を行う木構造を用いて保存する</li> @@ -393,11 +377,12 @@ <!-- _S9SLIDE_ --> <h2 id="gearsfilesystemの今後">GearsFileSystemの今後</h2> -<h3 id="gearsshell">GearsShell</h3> +<h3 id="gearsdirectory-path">gearsDirectory path</h3> <ul> - <li>現状のGearsOSはユーザーの入力を受け付けることが出来ず,プログラミングインターフェースの様に機能している.</li> - <li>gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい.</li> + <li>gearsDirectoryにはpathの機能が実装されていない</li> + <li>full path指定のlsなどが実装できない状態である</li> + <li>FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある</li> </ul> <h3 id="gearsdirectory-filename">gearsDirectory filename</h3> @@ -415,12 +400,18 @@ <!-- _S9SLIDE_ --> <h2 id="gearsfilesystemの今後-1">GearsFileSystemの今後</h2> -<h3 id="gearsdirectory-path">gearsDirectory path</h3> +<h3 id="gearsdirectory-on-disk">gearsDirectory on disk</h3> <ul> - <li>gearsDirectoryにはpathの機能が実装されていない</li> - <li>full path指定のlsなどが実装できない状態である</li> - <li>FileSystemTreeを拡張し,ノードをたどりpathを生成する様な機能を実装する必要がある</li> + <li>現状はgearsDirectoryはon memoryで実装されている</li> + <li>inodeをdisk上に構築する必要がある</li> +</ul> + +<h3 id="gearsshell">GearsShell</h3> + +<ul> + <li>現状のGearsOSはユーザーの入力を受け付けることが出来ず,言語フレームワークの様に機能している</li> + <li>gearsFileSystemなどGearsOSの各機能と接続し,今回作成したcdやlsの様なコマンドを受け付けるGearsShellを作成したい</li> </ul> <h3 id="ファイルのバックアップ">ファイルのバックアップ</h3> @@ -435,14 +426,14 @@ <div class='slide'> <!-- _S9SLIDE_ --> -<h2 id="まとめ">まとめ</h2> +<h2 id="gearsdirectoryまとめ">gearsDirectoryまとめ</h2> <ul> <li>gearsDirectoryの実装について説明した</li> <li>RedBlackTreeのシンプルなinterfaceにより比較的容易に実装を行うことができた</li> <li>形式手法とファイルシステムの機能の両面で信頼性の向上が図れると考える</li> <li>RedBlackTreeを用いてinodeの仕組みを構築し,ls,cd,mkdirを作成するなどして, -Unix Likeに構築することが出来た.</li> +Unix Likeに構築することが出来た</li> </ul> </div>