From ed3ef2978887eed0538711baf379764b70d12fcf Mon Sep 17 00:00:00 2001 From: duguosheng Date: Thu, 19 Aug 2021 18:38:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + SUMMARY.md | 65 +- _book/.gitignore | 2 - .../gitbook/fonts/fontawesome/FontAwesome.otf | Bin 124988 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.eot | Bin 76518 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.svg | 685 ---------- .../fonts/fontawesome/fontawesome-webfont.ttf | Bin 152796 -> 0 bytes .../fontawesome/fontawesome-webfont.woff | Bin 90412 -> 0 bytes .../fontawesome/fontawesome-webfont.woff2 | Bin 71896 -> 0 bytes .../lib/config.js | 57 - .../lib/log.js | 16 - .../lib/plugin.js | 227 ---- .../style/plugin.css | 203 --- .../chapter-fold.css | 29 - .../chapter-fold.js | 67 - .../gitbook-plugin-code-optimize/plugin.css | 37 - .../gitbook-plugin-code-optimize/plugin.js | 93 -- .../gitbook/gitbook-plugin-donate/plugin.css | 120 -- _book/gitbook/gitbook-plugin-donate/plugin.js | 56 - .../gitbook-plugin-flexible-alerts/plugin.js | 9 - .../plugin.js.map | 1 - .../gitbook-plugin-flexible-alerts/style.css | 126 -- .../fontsettings.js | 240 ---- .../gitbook-plugin-fontsettings/website.css | 291 ---- _book/gitbook/gitbook-plugin-github/plugin.js | 14 - .../gitbook-plugin-pageview-count/plugin.css | 8 - .../gitbook-plugin-pageview-count/plugin.js | 45 - .../jquery.mark.min.js | 7 - .../gitbook-plugin-search-pro/search.css | 41 - .../gitbook-plugin-search-pro/search.js | 261 ---- .../gitbook/gitbook-plugin-sharing/buttons.js | 90 -- .../gitbook-plugin-splitter/splitter.css | 22 - .../gitbook-plugin-splitter/splitter.js | 128 -- .../footer.css | 15 - _book/gitbook/gitbook.js | 4 - .../apple-touch-icon-precomposed-152.png | Bin 4817 -> 0 bytes _book/gitbook/images/favicon.ico | Bin 4286 -> 0 bytes _book/gitbook/style.css | 9 - _book/gitbook/theme.js | 4 - _book/images/alipay.png | Bin 27815 -> 0 bytes _book/images/readme.png | Bin 78344 -> 0 bytes _book/images/wechatpay.png | Bin 59164 -> 0 bytes _book/index.html | 858 ------------ _book/labs/requirements/images/p1.png | Bin 17953 -> 0 bytes _book/labs/requirements/lab1.html | 1169 ----------------- _book/labs/requirements/lab1.md | 398 ------ _book/labs/requirements/summary.html | 892 ------------- _book/labs/requirements/summary.md | 43 - _book/labs/use_git/git1.html | 919 ------------- _book/labs/use_git/git1.md | 101 -- _book/labs/use_git/images/p1.png | Bin 65854 -> 0 bytes _book/labs/use_git/images/p2.png | Bin 60804 -> 0 bytes _book/labs/use_git/images/p3.png | Bin 197938 -> 0 bytes _book/labs/use_git/images/p4.png | Bin 390600 -> 0 bytes _book/package-lock.json | 27 - _book/package.json | 5 - _book/search_plus_index.json | 1 - .../tranlate_books/book-riscv-rev1/c1/s0.html | 958 -------------- _book/tranlate_books/book-riscv-rev1/c1/s0.md | 53 - .../tranlate_books/book-riscv-rev1/c1/s1.html | 887 ------------- _book/tranlate_books/book-riscv-rev1/c1/s1.md | 56 - .../tranlate_books/book-riscv-rev1/c1/s2.html | 936 ------------- _book/tranlate_books/book-riscv-rev1/c1/s2.md | 88 -- .../tranlate_books/book-riscv-rev1/c1/s3.html | 892 ------------- _book/tranlate_books/book-riscv-rev1/c1/s3.md | 54 - .../tranlate_books/book-riscv-rev1/c1/s4.html | 903 ------------- _book/tranlate_books/book-riscv-rev1/c1/s4.md | 76 -- .../tranlate_books/book-riscv-rev1/c1/s5.html | 858 ------------ _book/tranlate_books/book-riscv-rev1/c1/s5.md | 13 - .../tranlate_books/book-riscv-rev1/c1/s6.html | 853 ------------ _book/tranlate_books/book-riscv-rev1/c1/s6.md | 4 - .../tranlate_books/book-riscv-rev1/c2/s0.html | 856 ------------ _book/tranlate_books/book-riscv-rev1/c2/s0.md | 9 - .../tranlate_books/book-riscv-rev1/c2/s1.html | 859 ------------ _book/tranlate_books/book-riscv-rev1/c2/s1.md | 15 - .../tranlate_books/book-riscv-rev1/c2/s2.html | 861 ------------ _book/tranlate_books/book-riscv-rev1/c2/s2.md | 15 - .../tranlate_books/book-riscv-rev1/c2/s3.html | 864 ------------ _book/tranlate_books/book-riscv-rev1/c2/s3.md | 20 - .../tranlate_books/book-riscv-rev1/c2/s4.html | 972 -------------- _book/tranlate_books/book-riscv-rev1/c2/s4.md | 36 - .../tranlate_books/book-riscv-rev1/c2/s5.html | 862 ------------ _book/tranlate_books/book-riscv-rev1/c2/s5.md | 21 - .../tranlate_books/book-riscv-rev1/c2/s6.html | 863 ------------ _book/tranlate_books/book-riscv-rev1/c2/s6.md | 18 - .../tranlate_books/book-riscv-rev1/c2/s7.html | 854 ------------ _book/tranlate_books/book-riscv-rev1/c2/s7.md | 5 - .../tranlate_books/book-riscv-rev1/c2/s8.html | 860 ------------ _book/tranlate_books/book-riscv-rev1/c2/s8.md | 10 - .../tranlate_books/book-riscv-rev1/c3/s0.html | 853 ------------ _book/tranlate_books/book-riscv-rev1/c3/s0.md | 3 - .../tranlate_books/book-riscv-rev1/c3/s1.html | 862 ------------ _book/tranlate_books/book-riscv-rev1/c3/s1.md | 23 - .../book-riscv-rev1/c3/s10.html | 860 ------------ .../tranlate_books/book-riscv-rev1/c3/s10.md | 8 - .../tranlate_books/book-riscv-rev1/c3/s2.html | 864 ------------ _book/tranlate_books/book-riscv-rev1/c3/s2.md | 20 - .../tranlate_books/book-riscv-rev1/c3/s3.html | 860 ------------ _book/tranlate_books/book-riscv-rev1/c3/s3.md | 17 - .../tranlate_books/book-riscv-rev1/c3/s4.html | 853 ------------ _book/tranlate_books/book-riscv-rev1/c3/s4.md | 4 - .../tranlate_books/book-riscv-rev1/c3/s5.html | 862 ------------ _book/tranlate_books/book-riscv-rev1/c3/s5.md | 16 - .../tranlate_books/book-riscv-rev1/c3/s6.html | 859 ------------ _book/tranlate_books/book-riscv-rev1/c3/s6.md | 15 - .../tranlate_books/book-riscv-rev1/c3/s7.html | 854 ------------ _book/tranlate_books/book-riscv-rev1/c3/s7.md | 6 - .../tranlate_books/book-riscv-rev1/c3/s8.html | 876 ------------ _book/tranlate_books/book-riscv-rev1/c3/s8.md | 36 - .../tranlate_books/book-riscv-rev1/c3/s9.html | 858 ------------ _book/tranlate_books/book-riscv-rev1/c3/s9.md | 13 - .../tranlate_books/book-riscv-rev1/c4/s0.html | 856 ------------ _book/tranlate_books/book-riscv-rev1/c4/s0.md | 9 - .../tranlate_books/book-riscv-rev1/c4/s1.html | 875 ------------ _book/tranlate_books/book-riscv-rev1/c4/s1.md | 28 - .../tranlate_books/book-riscv-rev1/c4/s2.html | 863 ------------ _book/tranlate_books/book-riscv-rev1/c4/s2.md | 23 - .../tranlate_books/book-riscv-rev1/c4/s3.html | 856 ------------ _book/tranlate_books/book-riscv-rev1/c4/s3.md | 9 - .../tranlate_books/book-riscv-rev1/c4/s4.html | 856 ------------ _book/tranlate_books/book-riscv-rev1/c4/s4.md | 9 - .../tranlate_books/book-riscv-rev1/c4/s5.html | 859 ------------ _book/tranlate_books/book-riscv-rev1/c4/s5.md | 15 - .../tranlate_books/book-riscv-rev1/c4/s6.html | 860 ------------ _book/tranlate_books/book-riscv-rev1/c4/s6.md | 17 - .../tranlate_books/book-riscv-rev1/c4/s7.html | 853 ------------ _book/tranlate_books/book-riscv-rev1/c4/s7.md | 3 - .../tranlate_books/book-riscv-rev1/c4/s8.html | 857 ------------ _book/tranlate_books/book-riscv-rev1/c4/s8.md | 6 - .../book-riscv-rev1/images/c1/p1.png | Bin 29056 -> 0 bytes .../book-riscv-rev1/images/c2/p1.png | Bin 24175 -> 0 bytes .../book-riscv-rev1/images/c2/p2.png | Bin 21297 -> 0 bytes .../book-riscv-rev1/images/c3/p1.png | Bin 69559 -> 0 bytes .../book-riscv-rev1/images/c3/p2.png | Bin 90527 -> 0 bytes .../book-riscv-rev1/images/c3/p3.png | Bin 66043 -> 0 bytes .../book-riscv-rev1/images/c3/p4.png | Bin 31547 -> 0 bytes .../book-riscv-rev1/images/c3/p5.png | Bin 37156 -> 0 bytes .../book-riscv-rev1/images/c3/p6.png | Bin 193826 -> 0 bytes .../book-riscv-rev1/summary.html | 854 ------------ .../tranlate_books/book-riscv-rev1/summary.md | 6 - book.json | 4 +- images/book.ico | Bin 0 -> 67646 bytes labs/answers/images/p1.png | Bin 0 -> 13726 bytes labs/answers/images/p2.png | Bin 0 -> 11562 bytes labs/answers/lab4.md | 195 +++ labs/answers/lab5.md | 247 ++++ labs/answers/lab6.md | 269 ++++ labs/answers/lab7.md | 163 +++ labs/answers/lab8.md | 303 +++++ labs/answers/lab9.md | 222 ++++ labs/answers/summary.md | 6 + labs/requirements/images/p2.png | Bin 0 -> 186063 bytes labs/requirements/lab1.md | 2 +- labs/requirements/lab2.md | 100 ++ labs/requirements/lab3.md | 105 ++ labs/requirements/lab4.md | 215 +++ labs/requirements/lab5.md | 98 ++ labs/requirements/lab6.md | 80 ++ labs/requirements/lab7.md | 186 +++ labs/requirements/lab8.md | 184 +++ labs/requirements/lab9.md | 116 ++ labs/use_git/git1.md | 2 +- tranlate_books/C Pointers, gdb.md | 226 ++++ tranlate_books/Calling Convention.md | 82 ++ tranlate_books/Introduction.md | 597 +++++++++ tranlate_books/Use GUN Debugger.md | 126 ++ tranlate_books/book-riscv-rev1/c10/s0.md | 7 + tranlate_books/book-riscv-rev1/c10/s1.md | 17 + .../book-riscv-rev1/c10/s10.md | 0 .../book-riscv-rev1/c10/s2.md | 0 tranlate_books/book-riscv-rev1/c10/s3.md | 0 tranlate_books/book-riscv-rev1/c10/s4.md | 0 tranlate_books/book-riscv-rev1/c10/s5.md | 0 tranlate_books/book-riscv-rev1/c10/s6.md | 0 tranlate_books/book-riscv-rev1/c10/s7.md | 0 tranlate_books/book-riscv-rev1/c10/s8.md | 0 tranlate_books/book-riscv-rev1/c10/s9.md | 0 tranlate_books/book-riscv-rev1/c5/s0.md | 7 + tranlate_books/book-riscv-rev1/c5/s1.md | 17 + tranlate_books/book-riscv-rev1/c5/s2.md | 8 + tranlate_books/book-riscv-rev1/c5/s3.md | 6 + tranlate_books/book-riscv-rev1/c5/s4.md | 11 + tranlate_books/book-riscv-rev1/c5/s5.md | 11 + tranlate_books/book-riscv-rev1/c5/s6.md | 5 + tranlate_books/book-riscv-rev1/c6/s0.md | 10 + tranlate_books/book-riscv-rev1/c6/s1.md | 68 + tranlate_books/book-riscv-rev1/c6/s2.md | 26 + tranlate_books/book-riscv-rev1/c6/s3.md | 31 + tranlate_books/book-riscv-rev1/c6/s4.md | 7 + tranlate_books/book-riscv-rev1/c6/s5.md | 11 + tranlate_books/book-riscv-rev1/c6/s6.md | 20 + tranlate_books/book-riscv-rev1/c6/s7.md | 9 + tranlate_books/book-riscv-rev1/c6/s8.md | 11 + tranlate_books/book-riscv-rev1/c6/s9.md | 8 + tranlate_books/book-riscv-rev1/c7/s0.md | 3 + tranlate_books/book-riscv-rev1/c7/s1.md | 5 + tranlate_books/book-riscv-rev1/c7/s10.md | 27 + tranlate_books/book-riscv-rev1/c7/s2.md | 42 + tranlate_books/book-riscv-rev1/c7/s3.md | 17 + tranlate_books/book-riscv-rev1/c7/s4.md | 11 + tranlate_books/book-riscv-rev1/c7/s5.md | 92 ++ tranlate_books/book-riscv-rev1/c7/s6.md | 19 + tranlate_books/book-riscv-rev1/c7/s7.md | 15 + tranlate_books/book-riscv-rev1/c7/s8.md | 17 + tranlate_books/book-riscv-rev1/c7/s9.md | 21 + tranlate_books/book-riscv-rev1/c8/s0.md | 18 + tranlate_books/book-riscv-rev1/c8/s1.md | 20 + tranlate_books/book-riscv-rev1/c8/s10.md | 17 + tranlate_books/book-riscv-rev1/c8/s11.md | 7 + tranlate_books/book-riscv-rev1/c8/s12.md | 13 + tranlate_books/book-riscv-rev1/c8/s13.md | 13 + tranlate_books/book-riscv-rev1/c8/s14.md | 13 + tranlate_books/book-riscv-rev1/c8/s15.md | 21 + tranlate_books/book-riscv-rev1/c8/s16.md | 21 + tranlate_books/book-riscv-rev1/c8/s2.md | 10 + tranlate_books/book-riscv-rev1/c8/s3.md | 21 + tranlate_books/book-riscv-rev1/c8/s4.md | 11 + tranlate_books/book-riscv-rev1/c8/s5.md | 11 + tranlate_books/book-riscv-rev1/c8/s6.md | 41 + tranlate_books/book-riscv-rev1/c8/s7.md | 9 + tranlate_books/book-riscv-rev1/c8/s8.md | 17 + tranlate_books/book-riscv-rev1/c8/s9.md | 23 + tranlate_books/book-riscv-rev1/c9/s0.md | 7 + tranlate_books/book-riscv-rev1/c9/s1.md | 17 + tranlate_books/book-riscv-rev1/c9/s10.md | 0 tranlate_books/book-riscv-rev1/c9/s2.md | 0 tranlate_books/book-riscv-rev1/c9/s3.md | 0 tranlate_books/book-riscv-rev1/c9/s4.md | 0 tranlate_books/book-riscv-rev1/c9/s5.md | 0 tranlate_books/book-riscv-rev1/c9/s6.md | 0 tranlate_books/book-riscv-rev1/c9/s7.md | 0 tranlate_books/book-riscv-rev1/c9/s8.md | 0 tranlate_books/book-riscv-rev1/c9/s9.md | 0 .../book-riscv-rev1/images/c6/p1.png | Bin 0 -> 29621 bytes .../book-riscv-rev1/images/c6/p2.png | Bin 0 -> 30199 bytes .../book-riscv-rev1/images/c7/p1.png | Bin 0 -> 118313 bytes .../book-riscv-rev1/images/c8/p1.png | Bin 0 -> 21092 bytes .../book-riscv-rev1/images/c8/p2.png | Bin 0 -> 47384 bytes tranlate_books/images/p1.png | Bin 0 -> 30508 bytes tranlate_books/images/p2.png | Bin 0 -> 142727 bytes 240 files changed, 4457 insertions(+), 40293 deletions(-) delete mode 100644 _book/.gitignore delete mode 100644 _book/gitbook/fonts/fontawesome/FontAwesome.otf delete mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.eot delete mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.svg delete mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf delete mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.woff delete mode 100644 _book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 delete mode 100644 _book/gitbook/gitbook-plugin-ancre-navigation/lib/config.js delete mode 100644 _book/gitbook/gitbook-plugin-ancre-navigation/lib/log.js delete mode 100644 _book/gitbook/gitbook-plugin-ancre-navigation/lib/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-ancre-navigation/style/plugin.css delete mode 100644 _book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.css delete mode 100644 _book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.js delete mode 100644 _book/gitbook/gitbook-plugin-code-optimize/plugin.css delete mode 100644 _book/gitbook/gitbook-plugin-code-optimize/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-donate/plugin.css delete mode 100644 _book/gitbook/gitbook-plugin-donate/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-flexible-alerts/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-flexible-alerts/plugin.js.map delete mode 100644 _book/gitbook/gitbook-plugin-flexible-alerts/style.css delete mode 100644 _book/gitbook/gitbook-plugin-fontsettings/fontsettings.js delete mode 100644 _book/gitbook/gitbook-plugin-fontsettings/website.css delete mode 100644 _book/gitbook/gitbook-plugin-github/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-pageview-count/plugin.css delete mode 100644 _book/gitbook/gitbook-plugin-pageview-count/plugin.js delete mode 100644 _book/gitbook/gitbook-plugin-search-pro/jquery.mark.min.js delete mode 100644 _book/gitbook/gitbook-plugin-search-pro/search.css delete mode 100644 _book/gitbook/gitbook-plugin-search-pro/search.js delete mode 100644 _book/gitbook/gitbook-plugin-sharing/buttons.js delete mode 100644 _book/gitbook/gitbook-plugin-splitter/splitter.css delete mode 100644 _book/gitbook/gitbook-plugin-splitter/splitter.js delete mode 100644 _book/gitbook/gitbook-plugin-tbfed-pagefooter/footer.css delete mode 100644 _book/gitbook/gitbook.js delete mode 100644 _book/gitbook/images/apple-touch-icon-precomposed-152.png delete mode 100644 _book/gitbook/images/favicon.ico delete mode 100644 _book/gitbook/style.css delete mode 100644 _book/gitbook/theme.js delete mode 100644 _book/images/alipay.png delete mode 100644 _book/images/readme.png delete mode 100644 _book/images/wechatpay.png delete mode 100644 _book/index.html delete mode 100644 _book/labs/requirements/images/p1.png delete mode 100644 _book/labs/requirements/lab1.html delete mode 100644 _book/labs/requirements/lab1.md delete mode 100644 _book/labs/requirements/summary.html delete mode 100644 _book/labs/requirements/summary.md delete mode 100644 _book/labs/use_git/git1.html delete mode 100644 _book/labs/use_git/git1.md delete mode 100644 _book/labs/use_git/images/p1.png delete mode 100644 _book/labs/use_git/images/p2.png delete mode 100644 _book/labs/use_git/images/p3.png delete mode 100644 _book/labs/use_git/images/p4.png delete mode 100644 _book/package-lock.json delete mode 100644 _book/package.json delete mode 100644 _book/search_plus_index.json delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s0.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s0.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s1.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s1.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s2.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s2.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s3.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s3.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s4.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s4.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s5.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s5.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s6.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c1/s6.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s0.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s0.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s1.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s1.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s2.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s2.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s3.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s3.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s4.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s4.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s5.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s5.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s6.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s6.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s7.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s7.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s8.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c2/s8.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s0.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s0.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s1.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s1.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s10.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s10.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s2.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s2.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s3.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s3.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s4.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s4.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s5.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s5.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s6.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s6.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s7.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s7.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s8.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s8.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s9.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c3/s9.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s0.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s0.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s1.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s1.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s2.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s2.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s3.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s3.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s4.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s4.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s5.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s5.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s6.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s6.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s7.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s7.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s8.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/c4/s8.md delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c1/p1.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c2/p1.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c2/p2.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p1.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p2.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p3.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p4.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p5.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/images/c3/p6.png delete mode 100644 _book/tranlate_books/book-riscv-rev1/summary.html delete mode 100644 _book/tranlate_books/book-riscv-rev1/summary.md create mode 100644 images/book.ico create mode 100644 labs/answers/images/p1.png create mode 100644 labs/answers/images/p2.png create mode 100644 labs/answers/lab4.md create mode 100644 labs/answers/lab5.md create mode 100644 labs/answers/lab6.md create mode 100644 labs/answers/lab7.md create mode 100644 labs/answers/lab8.md create mode 100644 labs/answers/lab9.md create mode 100644 labs/answers/summary.md create mode 100644 labs/requirements/images/p2.png create mode 100644 labs/requirements/lab2.md create mode 100644 labs/requirements/lab3.md create mode 100644 labs/requirements/lab4.md create mode 100644 labs/requirements/lab5.md create mode 100644 labs/requirements/lab6.md create mode 100644 labs/requirements/lab7.md create mode 100644 labs/requirements/lab8.md create mode 100644 labs/requirements/lab9.md create mode 100644 tranlate_books/C Pointers, gdb.md create mode 100644 tranlate_books/Calling Convention.md create mode 100644 tranlate_books/Introduction.md create mode 100644 tranlate_books/Use GUN Debugger.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s0.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s1.md rename _book/tranlate_books/book-riscv-rev1/c5/s0.md => tranlate_books/book-riscv-rev1/c10/s10.md (100%) rename _book/tranlate_books/book-riscv-rev1/c5/s1.md => tranlate_books/book-riscv-rev1/c10/s2.md (100%) create mode 100644 tranlate_books/book-riscv-rev1/c10/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s7.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s8.md create mode 100644 tranlate_books/book-riscv-rev1/c10/s9.md create mode 100644 tranlate_books/book-riscv-rev1/c5/s2.md create mode 100644 tranlate_books/book-riscv-rev1/c5/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c5/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c5/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c5/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s0.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s1.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s2.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s7.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s8.md create mode 100644 tranlate_books/book-riscv-rev1/c6/s9.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s0.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s1.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s10.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s2.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s7.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s8.md create mode 100644 tranlate_books/book-riscv-rev1/c7/s9.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s0.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s1.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s10.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s11.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s12.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s13.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s14.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s15.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s16.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s2.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s7.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s8.md create mode 100644 tranlate_books/book-riscv-rev1/c8/s9.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s0.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s1.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s10.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s2.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s3.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s4.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s5.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s6.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s7.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s8.md create mode 100644 tranlate_books/book-riscv-rev1/c9/s9.md create mode 100644 tranlate_books/book-riscv-rev1/images/c6/p1.png create mode 100644 tranlate_books/book-riscv-rev1/images/c6/p2.png create mode 100644 tranlate_books/book-riscv-rev1/images/c7/p1.png create mode 100644 tranlate_books/book-riscv-rev1/images/c8/p1.png create mode 100644 tranlate_books/book-riscv-rev1/images/c8/p2.png create mode 100644 tranlate_books/images/p1.png create mode 100644 tranlate_books/images/p2.png diff --git a/README.md b/README.md index 82745e4..29f28d8 100644 --- a/README.md +++ b/README.md @@ -17,3 +17,4 @@ 更好的浏览体验,请查看[6.S081-All-In-One-Gitbook(xv6.dgs.zone)](http://xv6.dgs.zone/) +这些笔记开始时写在了飞书上,飞书不支持导出markdown,因此是从飞书上逐篇复制下来的,二者存在一些格式差异,我已经进行了修改,但仍然可能有部分没有注意到~ diff --git a/SUMMARY.md b/SUMMARY.md index deaac01..7dd38ca 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -39,9 +39,72 @@ * [4.6 页面错误异常](tranlate_books/book-riscv-rev1/c4/s6.md) * [4.7 真实世界](tranlate_books/book-riscv-rev1/c4/s7.md) * [4.8 练习](tranlate_books/book-riscv-rev1/c4/s8.md) + * [第五章 中断和设备驱动](tranlate_books/book-riscv-rev1/c5/s0.md) + * [5.1 代码:控制台输入](tranlate_books/book-riscv-rev1/c5/s1.md) + * [5.2 代码:控制台输出](tranlate_books/book-riscv-rev1/c5/s2.md) + * [5.3 驱动中的并发](tranlate_books/book-riscv-rev1/c5/s3.md) + * [5.4 定时器中断](tranlate_books/book-riscv-rev1/c5/s4.md) + * [5.5 真实世界](tranlate_books/book-riscv-rev1/c5/s5.md) + * [5.6 练习](tranlate_books/book-riscv-rev1/c5/s6.md) + * [第六章 锁](tranlate_books/book-riscv-rev1/c6/s0.md) + * [6.1 竞态条件](tranlate_books/book-riscv-rev1/c6/s1.md) + * [6.2 代码:Locks](tranlate_books/book-riscv-rev1/c6/s2.md) + * [6.3 代码:使用锁](tranlate_books/book-riscv-rev1/c6/s3.md) + * [6.4 死锁和锁排序](tranlate_books/book-riscv-rev1/c6/s4.md) + * [6.5 锁和中断处理函数](tranlate_books/book-riscv-rev1/c6/s5.md) + * [6.6 指令和内存访问排序](tranlate_books/book-riscv-rev1/c6/s6.md) + * [6.7 睡眠锁](tranlate_books/book-riscv-rev1/c6/s7.md) + * [6.8 真实世界](tranlate_books/book-riscv-rev1/c6/s8.md) + * [6.9 练习](tranlate_books/book-riscv-rev1/c6/s9.md) + * [第七章 调度](tranlate_books/book-riscv-rev1/c7/s0.md) + * [7.1 多路复用](tranlate_books/book-riscv-rev1/c7/s1.md) + * [7.2 代码:上下文切换](tranlate_books/book-riscv-rev1/c7/s2.md) + * [7.3 代码:调度](tranlate_books/book-riscv-rev1/c7/s3.md) + * [7.4 代码:mycpu和myproc](tranlate_books/book-riscv-rev1/c7/s4.md) + * [7.5 sleep与wakeup](tranlate_books/book-riscv-rev1/c7/s5.md) + * [7.6 代码:sleep和wakeup](tranlate_books/book-riscv-rev1/c7/s6.md) + * [7.7 代码:Pipes](tranlate_books/book-riscv-rev1/c7/s7.md) + * [7.8 代码:wait, exit和kill](tranlate_books/book-riscv-rev1/c7/s8.md) + * [7.9 真实世界](tranlate_books/book-riscv-rev1/c7/s9.md) + * [7.10 练习](tranlate_books/book-riscv-rev1/c7/s10.md) + * [第八章 文件系统](tranlate_books/book-riscv-rev1/c8/s0.md) + * [8.1 概述](tranlate_books/book-riscv-rev1/c8/s1.md) + * [8.2 Buffer cache层](tranlate_books/book-riscv-rev1/c8/s2.md) + * [8.3 代码:Buffer cache](tranlate_books/book-riscv-rev1/c8/s3.md) + * [8.4 日志层](tranlate_books/book-riscv-rev1/c8/s4.md) + * [8.5 日志设计](tranlate_books/book-riscv-rev1/c8/s5.md) + * [8.6 代码:日志](tranlate_books/book-riscv-rev1/c8/s6.md) + * [8.7 代码:块分配器](tranlate_books/book-riscv-rev1/c8/s7.md) + * [8.8 索引结点层](tranlate_books/book-riscv-rev1/c8/s8.md) + * [8.9 代码:Inodes](tranlate_books/book-riscv-rev1/c8/s9.md) + * [8.10 代码: Inode包含内容](tranlate_books/book-riscv-rev1/c8/s10.md) + * [8.11 代码:目录层](tranlate_books/book-riscv-rev1/c8/s11.md) + * [8.12 代码:路径名](tranlate_books/book-riscv-rev1/c8/s12.md) + * [8.13 文件描述符层](tranlate_books/book-riscv-rev1/c8/s13.md) + * [8.14 代码:系统调用](tranlate_books/book-riscv-rev1/c8/s14.md) + * [8.15 真实世界](tranlate_books/book-riscv-rev1/c8/s15.md) + * [8.16 练习](tranlate_books/book-riscv-rev1/c8/s16.md) +* [Introduction](tranlate_books\Introduction.md) +* [使用GNU Debugger](tranlate_books\Use GUN Debugger.md) +* [C Pointers, gdb](tranlate_books\C Pointers, gdb.md) +* [Calling Convention](tranlate_books\Calling Convention.md) ## 实验记录 * [版本控制](labs/use_git/git1.md) * [实验内容](labs/requirements/summary.md) * [Lab1: Xv6 and Unix utilities](labs/requirements/lab1.md) - + * [Lab2: system calls](labs/requirements/lab2.md) + * [Lab3: page tables](labs/requirements/lab3.md) + * [Lab4: traps](labs/requirements/lab4.md) + * [Lab5: xv6 lazy page allocation](labs/requirements/lab5.md) + * [Lab6: Copy-on-Write Fork for xv6](labs/requirements/lab6.md) + * [Lab7: Multithreading](labs/requirements/lab7.md) + * [Lab8: locks](labs/requirements/lab8.md) + * [Lab9: file system](labs/requirements/lab9.md) +* [实验解析](labs/answers/summary.md) + * [Lab4: traps](labs/answers/lab4.md) + * [Lab5: xv6 lazy page allocation](labs/answers/lab5.md) + * [Lab6: Copy-on-Write Fork for xv6](labs/answers/lab6.md) + * [Lab7: Multithreading](labs/answers/lab7.md) + * [Lab8: locks](labs/answers/lab8.md) + * [Lab9: file system](labs/answers/lab9.md) \ No newline at end of file diff --git a/_book/.gitignore b/_book/.gitignore deleted file mode 100644 index c9a45e5..0000000 --- a/_book/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -_book/ \ No newline at end of file diff --git a/_book/gitbook/fonts/fontawesome/FontAwesome.otf b/_book/gitbook/fonts/fontawesome/FontAwesome.otf deleted file mode 100644 index d4de13e832d567ff29c5b4e9561b8c370348cc9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124988 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ÐT?>-5aYhU|+1c>&YMpPK5x#-mbV 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'NS^o{z1ZKlHsAybrl=JE7AP369ntV%vB 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 CDx5C> diff --git a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot deleted file mode 100644 index c7b00d2ba8896fd29de846b19f89fcf0d56ad152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76518 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%0DyT{kunD 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⋙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 z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf deleted file mode 100644 index f221e50a2ef60738ba30932d834530cdfe55cb3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152796 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

=v_rA!CPE#mM^4@)}X7qf;At+v)G*FZd&; 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 ALjV8( diff --git a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff deleted file mode 100644 index 6e7483cf61b490c08ed644d6ef802c69472eb247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp 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 IH>08b4`|GD*#H0l diff --git a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 deleted file mode 100644 index 7eb74fd127ee5eddf3b95fee6a20dc1684b0963b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71896 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≠dR0E9ICQ{-tcR;@{R^I5P#1GUH!p=-{c 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 diff --git a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/config.js b/_book/gitbook/gitbook-plugin-ancre-navigation/lib/config.js deleted file mode 100644 index 64aa3ba..0000000 --- a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/config.js +++ /dev/null @@ -1,57 +0,0 @@ -require('./log'); - -const defaultConfig = { - showLevel: true, - associatedWithSummary: true, - printLog: false, - multipleH1: true, - mode: "float", - float: { - showLevelIcon: false, - level1Icon: "fa fa-hand-o-right", - level2Icon: "fa fa-hand-o-right", - level3Icon: "fa fa-hand-o-right" - }, - pageTop: { - showLevelIcon: false, - level1Icon: "fa fa-hand-o-right", - level2Icon: "fa fa-hand-o-right", - level3Icon: "fa fa-hand-o-right" - }, - - themeDefault: { - showLevel: false - } -} - -function handler(defaultConfig, config) { - if (config) { - for (var item in defaultConfig) { - if (item in config) { - defaultConfig[item] = config[item]; - } - } - } -} - -function handlerAll(bookIns) { - var config = bookIns.config.get('pluginsConfig')['ancre-navigation']; - var themeDefaultConfig = bookIns.config.get('pluginsConfig')['theme-default']; - handler(defaultConfig, config); - handler(defaultConfig.themeDefault, themeDefaultConfig); - - if (config.isRewritePageTitle) { - console.error("error:".error + - "plugins[anchor-navigation-ex]:isRewritePageTitle," + - "https://github.com/zq99299/gitbook-plugin-anchor-navigation"); - console.log(""); - console.error("error:".error + - "Please check here https://github.com/zq99299/gitbook-plugin-anchor-navigation for the latest version of the configuration item"); - } -} - -module.exports = { - config: defaultConfig, - handler: handler, - handlerAll: handlerAll -} diff --git a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/log.js b/_book/gitbook/gitbook-plugin-ancre-navigation/lib/log.js deleted file mode 100644 index 4af71d3..0000000 --- a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/log.js +++ /dev/null @@ -1,16 +0,0 @@ -var colors = require('colors'); -colors.setTheme({ - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}); - -module.exports = colors; - diff --git a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/plugin.js b/_book/gitbook/gitbook-plugin-ancre-navigation/lib/plugin.js deleted file mode 100644 index ad45a12..0000000 --- a/_book/gitbook/gitbook-plugin-ancre-navigation/lib/plugin.js +++ /dev/null @@ -1,227 +0,0 @@ -var cheerio = require('cheerio'); -var slug = require('github-slugid'); -var Config = require('./config.js'); - - -function handlerTocs($, page) { - var config = Config.config; - var tocs = []; - var count = { - h1: 0, - h2: 0, - h3: 0 - }; - var titleCountMap = {}; - var h1 = 0, h2 = 0, h3 = 0; - $(':header').each(function (i, elem) { - var header = $(elem); - var id = addId(header, titleCountMap); - - if (id) { - switch (elem.tagName) { - case "h1": - handlerH1Toc(config, count, header, tocs, page.level); - break; - case "h2": - handlerH2Toc(config, count, header, tocs, page.level); - break; - case "h3": - handlerH3Toc(config, count, header, tocs, page.level); - break; - default: - titleAddAnchor(header, id); - break; - } - } - }); - page.content = $.html(); - return tocs; -} - -function addId(header, titleCountMap) { - var id = header.attr('id') || slug(header.text()); - var titleCount = titleCountMap[id] || 0; - titleCountMap[id] = titleCount + 1; - if (titleCount) { - id = id + '_' + titleCount; - } - header.attr("id", id); - return id; -} - -function titleAddAnchor(header, id) { - header.prepend('' - + '' - + ''); -} - -function handlerH1Toc(config, count, header, tocs, pageLevel) { - var title = header.text(); - var id = header.attr('id'); - var level = ''; - titleAddAnchor(header, id); - tocs.push({ - name: title, - level: level, - url: id, - children: [] - }); -} - -function handlerH2Toc(config, count, header, tocs, pageLevel) { - var title = header.text(); - var id = header.attr('id'); - var level = ''; - - if (tocs.length <= 0) { - titleAddAnchor(header, id); - return; - } - - var h1Index = tocs.length - 1; - var h1Toc = tocs[h1Index]; - titleAddAnchor(header, id); - h1Toc.children.push({ - name: title, - level: level, - url: id, - children: [] - }); -} - -function handlerH3Toc(config, count, header, tocs, pageLevel) { - var title = header.text(); - var id = header.attr('id'); - var level = ''; - - if (tocs.length <= 0) { - titleAddAnchor(header, id); - return; - } - var h1Index = tocs.length - 1; - var h1Toc = tocs[h1Index]; - var h2Tocs = h1Toc.children; - if (h2Tocs.length <= 0) { - titleAddAnchor(header, id); - return; - } - var h2Toc = h1Toc.children[h2Tocs.length - 1]; - titleAddAnchor(header, id); - h2Toc.children.push({ - name: title, - level: level, - url: id, - children: [] - }); -} - -function handlerFloatNavbar($, tocs, page) { - var config = Config.config; - var float = config.float; - var level1Icon = ''; - var level2Icon = ''; - var level3Icon = ''; - if (float.showLevelIcon) { - level1Icon = float.level1Icon; - level2Icon = float.level2Icon; - level3Icon = float.level3Icon; - } - - var html = "

"; - - page.content = html + $.html(); -} - -function handlerPageTopNavbar($, tocs, page) { - var html = buildTopNavbar($, tocs, page); - html += ""; - page.content = html + $.html(); -} - -function buildTopNavbar($, tocs, page) { - var config = Config.config; - var pageTop = config.pageTop; - var level1Icon = ''; - var level2Icon = ''; - var level3Icon = ''; - if (pageTop.showLevelIcon) { - level1Icon = pageTop.level1Icon; - level2Icon = pageTop.level2Icon; - level3Icon = pageTop.level3Icon; - } - - var html = "
"; - - return html; -} - -function start(bookIns, page) { - var $ = cheerio.load(page.content); - - var tocs = handlerTocs($, page); - - if (tocs.length == 0) { - page.content = $.html(); - return; - } - if(!//.test(page.content)){ - var config = Config.config; - var mode = config.mode; - if (mode == 'float') { - handlerFloatNavbar($, tocs, page); - } else if (mode == 'pageTop') { - handlerPageTopNavbar($, tocs, page); - } - } - - var $x = cheerio.load(page.content); - $x('extoc').replaceWith($x(buildTopNavbar($, tocs, page))); - page.content = $x.html(); -} - -module.exports = start; diff --git a/_book/gitbook/gitbook-plugin-ancre-navigation/style/plugin.css b/_book/gitbook/gitbook-plugin-ancre-navigation/style/plugin.css deleted file mode 100644 index 2183c77..0000000 --- a/_book/gitbook/gitbook-plugin-ancre-navigation/style/plugin.css +++ /dev/null @@ -1,203 +0,0 @@ -#anchor-navigation-ex-navbar { - background-color: #fafafa; - border: 1px solid rgba(0, 0, 0, .07); - border-radius: 1px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - background-clip: padding-box; - padding: 5px 10px; - position: fixed; - /*background-color: rgba(255,255,255,0.98);*/ - right: 50px; - top: 68px; - font-size: 12px; - white-space: nowrap; - z-index: 999; - cursor: pointer; - text-align: right; - max-height: 70%; - overflow-y: auto; - overflow-x: hidden; -} - -#anchor-navigation-ex-navbar ul { - display: none; - text-align: left; - padding-right: 10px; - padding-left: 10px; - list-style-type: none; -} - -#anchor-navigation-ex-navbar:hover ul { - display: block; -} - -#anchor-navigation-ex-navbar ul li a { - text-decoration: none; - border-bottom: none; - font-size: 14px; - color: #364149; - background: 0 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - position: relative; -} - -#anchor-navigation-ex-navbar ul li a:hover { - text-decoration: underline; -} - -#anchor-navigation-ex-navbar ul li .title-icon { - padding-right: 4px; -} - - -.book.color-theme-1 #anchor-navigation-ex-navbar { - background-color: #111111; - border-color: #7e888b; - color: #afa790; -} - -.book.color-theme-1 #anchor-navigation-ex-navbar ul li a { - color: #877f6a; -} - -.book.color-theme-2 #anchor-navigation-ex-navbar { - background-color: #2d3143; - border-color: #272a3a; - color: #bcc1d2; -} - -.book.color-theme-2 #anchor-navigation-ex-navbar ul li a { - color: #c1c6d7; -} - - -#anchorNavigationExGoTop { - position: fixed; - right: 50px; - bottom: 68px; - background-color: #fafafa; - border: 1px solid rgba(0, 0, 0, .07); - border-radius: 1px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - background-clip: padding-box; - z-index: 999; - cursor: pointer; - font-size: 12px; - padding: 5px 10px; - color: #364149; -} - -.book.color-theme-1 #anchorNavigationExGoTop { - background-color: #111111; - border-color: #7e888b; - color: #afa790; -} - -.book.color-theme-2 #anchorNavigationExGoTop { - background-color: #2d3143; - border-color: #272a3a; - color: #bcc1d2; -} - -a.anchor-navigation-ex-anchor { - color: inherit !important; - display: none; - margin-left: -30px; - padding-left: 40px; - cursor: pointer; - position: absolute; - top: 0; - left: 0; - bottom: 0; -} - -a.anchor-navigation-ex-anchor i { - margin-left: -30px; - vertical-align: middle; - font-size: 16px !important; -} - -h1, h2, h3, h4, h5, h6 { - position: relative; -} - -h1:hover a.anchor-navigation-ex-anchor, h2:hover a.anchor-navigation-ex-anchor, h3:hover a.anchor-navigation-ex-anchor, -h4:hover a.anchor-navigation-ex-anchor, h5:hover a.anchor-navigation-ex-anchor, h6:hover a.anchor-navigation-ex-anchor { - display: inline-block; -} - -.book .book-body .page-wrapper .page-inner section.normal { - overflow: visible; -} - - -#anchor-navigation-ex-pagetop-navbar{ - border: 1px solid rgba(0, 0, 0, .07); - border-radius: 1px; - background-clip: padding-box; - padding: 5px 10px; - background-color: #fafafa; - font-size: 12px; -} - -#anchor-navigation-ex-pagetop-navbar ul { - text-align: left; - padding-right: 10px; - padding-left: 10px; - list-style-type: none; -} - -#anchor-navigation-ex-pagetop-navbar:hover ul { - display: block; -} - -#anchor-navigation-ex-pagetop-navbar ul li a { - text-decoration: none; - border-bottom: none; - font-size: 14px; - color: #364149; - background: 0 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - position: relative; -} - -#anchor-navigation-ex-pagetop-navbar ul li a:hover { - text-decoration: underline; -} - -#anchor-navigation-ex-pagetop-navbar ul li .title-icon { - padding-right: 4px; -} - - -.book.color-theme-1 #anchor-navigation-ex-pagetop-navbar { - background-color: #111111; - border-color: #7e888b; - color: #afa790; -} - -.book.color-theme-1 #anchor-navigation-ex-pagetop-navbar ul li a { - color: #877f6a; -} - -.book.color-theme-2 #anchor-navigation-ex-pagetop-navbar { - background-color: #2d3143; - border-color: #272a3a; - color: #bcc1d2; -} - -.book.color-theme-2 #anchor-navigation-ex-pagetop-navbar ul li a { - color: #c1c6d7; -} - - - - - - diff --git a/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.css b/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.css deleted file mode 100644 index 1f7bb95..0000000 --- a/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.css +++ /dev/null @@ -1,29 +0,0 @@ -.book .book-summary .chapter > .articles { - overflow: hidden; - max-height: 0px; -} - -.book .book-summary .chapter.expanded > .articles { - max-height: 9999px; -} - -.book .book-summary .exc-trigger { - position: absolute; - left: 12px; - top: 12px; -} - -.book .book-summary ul.summary li a, -.book .book-summary ul.summary li span { - padding-left: 30px; -} - -.book .book-summary .exc-trigger:before { - content: "\f105"; -} - -.book .book-summary .expanded > a .exc-trigger:before, -.book .book-summary .expanded > span .exc-trigger:before { - content: "\f107"; -} - diff --git a/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.js b/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.js deleted file mode 100644 index 0a75189..0000000 --- a/_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.js +++ /dev/null @@ -1,67 +0,0 @@ -require(['gitbook', 'jQuery'], function(gitbook, $) { - var TOGGLE_CLASSNAME = 'expanded', - CHAPTER = '.chapter', - ARTICLES = '.articles', - TRIGGER_TEMPLATE = '', - LS_NAMESPACE = 'expChapters'; - var init = function () { - // adding the trigger element to each ARTICLES parent and binding the event - var chapterLink = $(ARTICLES).parent(CHAPTER).children('a'); - chapterLink.append($(TRIGGER_TEMPLATE)); - chapterLink.on('click', function (e) { - e.preventDefault(); - //e.stopPropagation(); - toggle($(e.target).closest(CHAPTER)); - }); - - expand(lsItem()); - //expand current selected chapter with it's parents - collapse($(CHAPTER)); - var activeChapter = $(CHAPTER + '.active'); - expand(activeChapter); - expand(activeChapter.parents(CHAPTER)); - } - //on page.change will happend the function. - - var toggle = function ($chapter) { - if ($chapter.hasClass('expanded')) { - collapse($chapter); - } else { - expand($chapter); - //$chapter.addClass('active').siblings().removeClass('active'); - } - } - var collapse = function ($chapter) { - if ($chapter.length && $chapter.hasClass(TOGGLE_CLASSNAME)) { - $chapter.removeClass(TOGGLE_CLASSNAME); - lsItem($chapter); - } - } - var expand = function ($chapter) { - if ($chapter.length && !$chapter.hasClass(TOGGLE_CLASSNAME)) { - $chapter.addClass(TOGGLE_CLASSNAME); - lsItem($chapter); - } - } - var lsItem = function () { - var map = JSON.parse(localStorage.getItem(LS_NAMESPACE)) || {} - if (arguments.length) { - var $chapters = arguments[0]; - $chapters.each(function (index, element) { - var level = $(this).data('level'); - var value = $(this).hasClass(TOGGLE_CLASSNAME); - map[level] = value; - }) - localStorage.setItem(LS_NAMESPACE, JSON.stringify(map)); - } else { - return $(CHAPTER).map(function(index, element){ - if (map[$(this).data('level')]) { - return this; - } - }) - } - } - gitbook.events.bind('page.change', function() { - init() - }); -}); diff --git a/_book/gitbook/gitbook-plugin-code-optimize/plugin.css b/_book/gitbook/gitbook-plugin-code-optimize/plugin.css deleted file mode 100644 index a68fcdc..0000000 --- a/_book/gitbook/gitbook-plugin-code-optimize/plugin.css +++ /dev/null @@ -1,37 +0,0 @@ -#code-textarea { - height: 0; - position: fixed; - top: -1000px; - width: 0; -} - -.code-wrapper { - position: relative; -} - -.code-wrapper i { - color: #c1c7cd; - cursor: pointer; - font-size: 12px; - font-weight: bold; - position: absolute; - right: 1em; - top: 1em; -} - -.code-wrapper pre { - background: #f7f8f9; - border-radius: 3px; - counter-reset: line; - font-size: 15px; -} - -.code-wrapper pre > code > span.code-line:before { - counter-increment: line; - color: #c1c7cd; - content: counter(line); - display: inline-block; - font-size: 12px; - margin-right: 1.5em; - width: 1em; -} diff --git a/_book/gitbook/gitbook-plugin-code-optimize/plugin.js b/_book/gitbook/gitbook-plugin-code-optimize/plugin.js deleted file mode 100644 index 75eea2c..0000000 --- a/_book/gitbook/gitbook-plugin-code-optimize/plugin.js +++ /dev/null @@ -1,93 +0,0 @@ -require(['gitbook', 'jQuery'], function(gitbook, $) { - - const TERMINAL_HOOK = '**[terminal]' - - var pluginConfig = {}; - var timeouts = {}; - - function addCopyButton(wrapper) { - wrapper.append( - $('') - .click(function() { - copyCommand($(this)); - }) - ); - } - - function addCopyTextarea() { - - /* Add also the text area that will allow to copy */ - $('body').append('",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Qe=te.documentElement,Je=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;de.event={global:{},add:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.get(e);if(m)for(n.handler&&(i=n,n=i.handler,o=i.selector),o&&de.find.matchesSelector(Qe,o),n.guid||(n.guid=de.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return"undefined"!=typeof de&&de.event.triggered!==t.type?de.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(qe)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h&&(f=de.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=de.event.special[h]||{},l=de.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&de.expr.match.needsContext.test(o),namespace:d.join(".")},i),(p=u[h])||(p=u[h]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,d,s)!==!1||e.addEventListener&&e.addEventListener(h,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,l):p.push(l),de.event.global[h]=!0)},remove:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.hasData(e)&&Fe.get(e);if(m&&(u=m.events)){for(t=(t||"").match(qe)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){for(f=de.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=i=p.length;i--;)l=p[i],!o&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(p.splice(i,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||de.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)de.event.remove(e,h+t[c],n,r,!0);de.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,i,s,a=de.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=de.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||c.disabled!==!0)){for(i=[],s={},n=0;n-1:de.find(o,this,null,[c]).length),s[o]&&i.push(r);i.length&&a.push({elem:c,handlers:i})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;de.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,o,i,s,a=e.cloneNode(!0),u=de.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||de.isXMLDoc(e)))for(s=v(a),i=v(e),r=0,o=i.length;r0&&y(s,!u&&v(e,"script")),a},cleanData:function(e){for(var t,n,r,o=de.event.special,i=0;void 0!==(n=e[i]);i++)if(He(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)o[r]?de.event.remove(n,r):de.removeEvent(n,r,t.handle);n[Fe.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),de.fn.extend({detach:function(e){return q(this,e,!0)},remove:function(e){return q(this,e)},text:function(e){return Le(this,function(e){return void 0===e?de.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.appendChild(e)}})},prepend:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(de.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return de.clone(this,e,t)})},html:function(e){return Le(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Ge[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=de.htmlPrefilter(e);try{for(;n1)}}),de.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||de.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(de.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=de.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=de.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){de.fx.step[e.prop]?de.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[de.cssProps[e.prop]]&&!de.cssHooks[e.prop]?e.elem[e.prop]=e.now:de.style(e.elem,e.prop,e.now+e.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},de.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},de.fx=I.prototype.init,de.fx.step={};var ht,dt,gt=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;de.Animation=de.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){de.isFunction(e)?(t=e,e=["*"]):e=e.match(qe);for(var n,r=0,o=e.length;r1)},removeAttr:function(e){return this.each(function(){de.removeAttr(this,e)})}}),de.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return"undefined"==typeof e.getAttribute?de.prop(e,t,n):(1===i&&de.isXMLDoc(e)||(o=de.attrHooks[t.toLowerCase()]||(de.expr.match.bool.test(t)?vt:void 0)),void 0!==n?null===n?void de.removeAttr(e,t):o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=de.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&de.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(qe);if(o&&1===e.nodeType)for(;n=o[r++];)e.removeAttribute(n)}}),vt={set:function(e,t,n){return t===!1?de.removeAttr(e,n):e.setAttribute(n,n),n}},de.each(de.expr.match.bool.source.match(/\w+/g),function(e,t){var n=yt[t]||de.find.attr;yt[t]=function(e,t,r){var o,i,s=t.toLowerCase();return r||(i=yt[s],yt[s]=o,o=null!=n(e,t,r)?s:null,yt[s]=i),o}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;de.fn.extend({prop:function(e,t){return Le(this,de.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[de.propFix[e]||e]})}}),de.extend({prop:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&de.isXMLDoc(e)||(t=de.propFix[t]||t,o=de.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=de.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),pe.optSelected||(de.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),de.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){de.propFix[this.toLowerCase()]=this}),de.fn.extend({addClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).addClass(e.call(this,t,X(this)))});if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).removeClass(e.call(this,t,X(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):de.isFunction(e)?this.each(function(n){de(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,r,o,i;if("string"===n)for(r=0,o=de(this),i=e.match(qe)||[];t=i[r++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(X(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;de.fn.extend({val:function(e){var t,n,r,o=this[0];{if(arguments.length)return r=de.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,de(this).val()):e,null==o?o="":"number"==typeof o?o+="":de.isArray(o)&&(o=de.map(o,function(e){return null==e?"":e+""})),t=de.valHooks[this.type]||de.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))});if(o)return t=de.valHooks[o.type]||de.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(wt,""):null==n?"":n)}}}),de.extend({valHooks:{option:{get:function(e){var t=de.find.attr(e,"value");return null!=t?t:z(de.text(e))}},select:{get:function(e){var t,n,r,o=e.options,i=e.selectedIndex,s="select-one"===e.type,a=s?null:[],u=s?i+1:o.length;for(r=i<0?u:s?i:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),de.each(["radio","checkbox"],function(){de.valHooks[this]={set:function(e,t){if(de.isArray(t))return e.checked=de.inArray(de(e).val(),t)>-1}},pe.checkOn||(de.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Tt=/^(?:focusinfocus|focusoutblur)$/;de.extend(de.event,{trigger:function(t,n,r,o){var i,s,a,u,c,l,f,p=[r||te],h=ce.call(t,"type")?t.type:t,d=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||te,3!==r.nodeType&&8!==r.nodeType&&!Tt.test(h+de.event.triggered)&&(h.indexOf(".")>-1&&(d=h.split("."),h=d.shift(),d.sort()),c=h.indexOf(":")<0&&"on"+h,t=t[de.expando]?t:new de.Event(h,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=d.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:de.makeArray(n,[t]),f=de.event.special[h]||{},o||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!o&&!f.noBubble&&!de.isWindow(r)){for(u=f.delegateType||h,Tt.test(u+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||te)&&p.push(a.defaultView||a.parentWindow||e)}for(i=0;(s=p[i++])&&!t.isPropagationStopped();)t.type=i>1?u:f.bindType||h,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),l=c&&s[c],l&&l.apply&&He(s)&&(t.result=l.apply(s,n),t.result===!1&&t.preventDefault());return t.type=h,o||t.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!He(r)||c&&de.isFunction(r[h])&&!de.isWindow(r)&&(a=r[c],a&&(r[c]=null),de.event.triggered=h,r[h](),de.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=de.extend(new de.Event,n,{type:e,isSimulated:!0});de.event.trigger(r,null,t)}}),de.fn.extend({trigger:function(e,t){return this.each(function(){de.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return de.event.trigger(e,t,n,!0)}}),de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){de.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),de.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||de.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){de.event.simulate(t,e.target,de.event.fix(e))};de.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=Fe.access(r,t);o||r.addEventListener(e,n,!0),Fe.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=Fe.access(r,t)-1;o?Fe.access(r,t,o):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}});var Ct=e.location,jt=de.now(),kt=/\?/;de.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||de.error("Invalid XML: "+t),n};var Et=/\[\]$/,St=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;de.param=function(e,t){var n,r=[],o=function(e,t){var n=de.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(de.isArray(e)||e.jquery&&!de.isPlainObject(e))de.each(e,function(){o(this.name,this.value)});else for(n in e)V(n,e[n],t,o);return r.join("&")},de.fn.extend({serialize:function(){return de.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=de.prop(this,"elements");return e?de.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!de(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!ze.test(e))}).map(function(e,t){var n=de(this).val();return null==n?null:de.isArray(n)?de.map(n,function(e){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}});var qt=/%20/g,Dt=/#.*$/,Ot=/([?&])_=[^&]*/,Lt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ft=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Pt={},Mt="*/".concat("*"),$t=te.createElement("a");$t.href=Ct.href,de.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Ht.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Mt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":de.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Q(Q(e,de.ajaxSettings),t):Q(de.ajaxSettings,e)},ajaxPrefilter:G(It),ajaxTransport:G(Pt),ajax:function(t,n){function r(t,n,r,a){var c,p,h,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),o=void 0,s=a||"",C.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=J(d,C,r)),b=K(d,b,C,c),c?(d.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(de.lastModified[i]=w),w=C.getResponseHeader("etag"),w&&(de.etag[i]=w)),204===t||"HEAD"===d.type?T="nocontent":304===t?T="notmodified":(T=b.state,p=b.data,h=b.error,c=!h)):(h=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(n||T)+"",c?v.resolveWith(g,[p,T,C]):v.rejectWith(g,[C,T,h]),C.statusCode(x),x=void 0,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[C,d,c?p:h]),y.fireWith(g,[C,T]),f&&(m.trigger("ajaxComplete",[C,d]),--de.active||de.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var o,i,s,a,u,c,l,f,p,h,d=de.ajaxSetup({},n),g=d.context||d,m=d.context&&(g.nodeType||g.jquery)?de(g):de.event,v=de.Deferred(),y=de.Callbacks("once memory"),x=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Lt.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return o&&o.abort(t),r(0,t),this}};if(v.promise(C),d.url=((t||d.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(qe)||[""],null==d.crossDomain){c=te.createElement("a");try{c.href=d.url,c.href=c.href,d.crossDomain=$t.protocol+"//"+$t.host!=c.protocol+"//"+c.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=de.param(d.data,d.traditional)),Y(It,d,n,C),l)return C;f=de.event&&d.global,f&&0===de.active++&&de.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Ft.test(d.type),i=d.url.replace(Dt,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(qt,"+")):(h=d.url.slice(i.length),d.data&&(i+=(kt.test(i)?"&":"?")+d.data,delete d.data),d.cache===!1&&(i=i.replace(Ot,"$1"),h=(kt.test(i)?"&":"?")+"_="+jt++ +h),d.url=i+h),d.ifModified&&(de.lastModified[i]&&C.setRequestHeader("If-Modified-Since",de.lastModified[i]),de.etag[i]&&C.setRequestHeader("If-None-Match",de.etag[i])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Mt+"; q=0.01":""):d.accepts["*"]);for(p in d.headers)C.setRequestHeader(p,d.headers[p]);if(d.beforeSend&&(d.beforeSend.call(g,C,d)===!1||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),o=Y(Pt,d,n,C)){if(C.readyState=1,f&&m.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(u=e.setTimeout(function(){C.abort("timeout")},d.timeout));try{l=!1,o.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return C},getJSON:function(e,t,n){return de.get(e,t,n,"json")},getScript:function(e,t){return de.get(e,void 0,t,"script")}}),de.each(["get","post"],function(e,t){de[t]=function(e,n,r,o){return de.isFunction(n)&&(o=o||r,r=n,n=void 0),de.ajax(de.extend({url:e,type:t,dataType:o,data:n,success:r},de.isPlainObject(e)&&e))}}),de._evalUrl=function(e){return de.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},de.fn.extend({wrapAll:function(e){var t;return this[0]&&(de.isFunction(e)&&(e=e.call(this[0])),t=de(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return de.isFunction(e)?this.each(function(t){de(this).wrapInner(e.call(this,t))}):this.each(function(){var t=de(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=de.isFunction(e);return this.each(function(n){de(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){de(this).replaceWith(this.childNodes)}),this}}),de.expr.pseudos.hidden=function(e){return!de.expr.pseudos.visible(e)},de.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},de.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=de.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,de.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(o,i){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?i(0,"error"):i(a.status,a.statusText):i(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),de.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),de.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return de.globalEval(e),e}}}),de.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),de.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,o){t=de(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/labs/requirements/images/p1.png b/_book/labs/requirements/images/p1.png deleted file mode 100644 index 06948e806c4adea7a08705c7bd195046d96de0c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17953 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 diff --git a/_book/labs/requirements/lab1.html b/_book/labs/requirements/lab1.html deleted file mode 100644 index 12ad2ef..0000000 --- a/_book/labs/requirements/lab1.html +++ /dev/null @@ -1,1169 +0,0 @@ - - - - - - - Lab1: Xv6 and Unix utilities · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
- -
- - - - - - - - -
-
- -
-
- -
- -

Lab1: Xv6 and Unix utilities

-

实验任务

-

启动xv6(难度:Easy)

-

获取实验室的xv6源代码并切换到util分支

-
$ git clone git://g.csail.mit.edu/xv6-labs-2020
-Cloning into 'xv6-labs-2020'...
-...
-$ cd xv6-labs-2020
-$ git checkout util
-Branch 'util' set up to track remote branch 'util' from 'origin'.
-Switched to a new branch 'util'
-
-

Xv6-labs-2020存储库与本书的xv6-riscv稍有不同;它主要添加一些文件。如果你好奇的话,可以执行git log:

-
$ git log
-
-

您将需要使用Git版本控制系统管理和提交文件以及后续的实验室作业。接下来,切换到一个分支(执行git checkout util),其中包含针对该实验室定制的xv6版本。要了解关于Git的更多信息,请查看Git用户手册。Git允许您跟踪对代码所做的更改。例如,如果你完成了其中一个练习,并且想检查你的进度,你可以通过运行以下命令来提交你的变化:

-
$ git commit -am 'my solution for util lab exercise 1'
-Created commit 60d2135: my solution for util lab exercise 1
- 1 files changed, 1 insertions(+), 0 deletions(-)
-$
-
-

您可以使用git diff命令跟踪您的更改。运行git diff将显示自上次提交以来对代码的更改,git diff origin/util将显示相对于初始xv6-labs-2020代码的更改。这里,origin/xv6-labs-2020是git分支的名称,它是包含您下载的初始代码分支。

-
    -
  • 构建并运行xv6
  • -
-
$ make qemu
-riscv64-unknown-elf-gcc    -c -o kernel/entry.o kernel/entry.S
-riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -DSOL_UTIL -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/start.o kernel/start.c
-...  
-riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_zombie user/zombie.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
-riscv64-unknown-elf-objdump -S user/_zombie > user/zombie.asm
-riscv64-unknown-elf-objdump -t user/_zombie | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/zombie.sym
-mkfs/mkfs fs.img README  user/xargstest.sh user/_cat user/_echo user/_forktest user/_grep user/_init user/_kill user/_ln user/_ls user/_mkdir user/_rm user/_sh user/_stressfs user/_usertests user/_grind user/_wc user/_zombie 
-nmeta 46 (boot, super, log blocks 30 inode blocks 13, bitmap blocks 1) blocks 954 total 1000
-balloc: first 591 blocks have been allocated
-balloc: write bitmap block at sector 45
-qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0
-
-xv6 kernel is booting
-
-hart 2 starting
-hart 1 starting
-init: starting sh
-$
-
-

如果你在提示符下输入 ls,你会看到类似如下的输出:

-
$ ls
-.              1 1 1024
-..             1 1 1024
-README         2 2 2059
-xargstest.sh   2 3 93
-cat            2 4 24256
-echo           2 5 23080
-forktest       2 6 13272
-grep           2 7 27560
-init           2 8 23816
-kill           2 9 23024
-ln             2 10 22880
-ls             2 11 26448
-mkdir          2 12 23176
-rm             2 13 23160
-sh             2 14 41976
-stressfs       2 15 24016
-usertests      2 16 148456
-grind          2 17 38144
-wc             2 18 25344
-zombie         2 19 22408
-console        3 20 0
-
-

这些是mkfs在初始文件系统中包含的文件;大多数是可以运行的程序。你刚刚跑了其中一个:ls

-

xv6没有ps命令,但是如果您键入Ctrl-p,内核将打印每个进程的信息。如果现在尝试,您将看到两行:一行用于init,另一行用于sh。

-

退出 qemu : Ctrl-a x

-

sleep(难度:Easy)

-
-

[!TIP|label:YOUR JOB] -实现xv6的UNIX程序sleep:您的sleep应该暂停到用户指定的计时数。一个滴答(tick)是由xv6内核定义的时间概念,即来自定时器芯片的两个中断之间的时间。您的解决方案应该在文件user/sleep.c

-
-

提示:

-
    -
  • 在你开始编码之前,请阅读《book-riscv-rev1》的第一章

    -
  • -
  • 看看其他的一些程序(如/user/echo.c, /user/grep.c, /user/rm.c)查看如何获取传递给程序的命令行参数

    -
  • -
  • 如果用户忘记传递参数,sleep应该打印一条错误信息

    -
  • -
  • 命令行参数作为字符串传递; 您可以使用atoi将其转换为数字(详见/user/ulib.c

    -
  • -
  • 使用系统调用sleep

    -
  • -
  • 请参阅kernel/sysproc.c以获取实现sleep系统调用的xv6内核代码(查找sys_sleep),user/user.h提供了sleep的声明以便其他程序调用,用汇编程序编写的user/usys.S可以帮助sleep从用户区跳转到内核区。

    -
  • -
  • 确保main函数调用exit()以退出程序。

    -
  • -
  • 将你的sleep程序添加到Makefile中的UPROGS中;完成之后,make qemu将编译您的程序,并且您可以从xv6的shell运行它。

    -
  • -
  • 看看Kernighan和Ritchie编著的《C程序设计语言》(第二版)来了解C语言。

    -
  • -
-

从xv6 shell运行程序:

-
$ make qemu
-...
-init: starting sh
-$ sleep 10
-(nothing happens for a little while)
-$
-
-

如果程序在如上所示运行时暂停,则解决方案是正确的。运行make grade看看你是否真的通过了睡眠测试。

-

请注意,make grade运行所有测试,包括下面作业的测试。如果要对一项作业运行成绩测试,请键入(不要启动XV6,在外部终端下使用):

-
$ ./grade-lab-util sleep
-
-

这将运行与sleep匹配的成绩测试。或者,您可以键入:

-
$ make GRADEFLAGS=sleep grade
-
-

效果是一样的。

-

pingpong(难度:Easy)

-
-

[!TIP|label:YOUR JOB] -编写一个使用UNIX系统调用的程序来在两个进程之间“ping-pong”一个字节,请使用两个管道,每个方向一个。父进程应该向子进程发送一个字节;子进程应该打印“: received ping”,其中是进程ID,并在管道中写入字节发送给父进程,然后退出;父级应该从读取从子进程而来的字节,打印“: received pong”,然后退出。您的解决方案应该在文件user/pingpong.c中。

-
-

提示:

-
    -
  • 使用pipe来创造管道

    -
  • -
  • 使用fork创建子进程

    -
  • -
  • 使用read从管道中读取数据,并且使用write向管道中写入数据

    -
  • -
  • 使用getpid获取调用进程的pid

    -
  • -
  • 将程序加入到MakefileUPROGS

    -
  • -
  • xv6上的用户程序有一组有限的可用库函数。您可以在user/user.h中看到可调用的程序列表;源代码(系统调用除外)位于user/ulib.cuser/printf.cuser/umalloc.c中。

    -
  • -
-

运行程序应得到下面的输出

-
$ make qemu
-...
-init: starting sh
-$ pingpong
-4: received ping
-3: received pong
-$
-
-

如果您的程序在两个进程之间交换一个字节并产生如上所示的输出,那么您的解决方案是正确的。

-

Primes(素数,难度:Moderate/Hard)

-
-

[!TIP|label:YOUR JOB] -使用管道编写prime sieve(筛选素数)的并发版本。这个想法是由Unix管道的发明者Doug McIlroy提出的。请查看这个网站(翻译在下面),该网页中间的图片和周围的文字解释了如何做到这一点。您的解决方案应该在user/primes.c文件中。

-
-

您的目标是使用pipefork来设置管道。第一个进程将数字2到35输入管道。对于每个素数,您将安排创建一个进程,该进程通过一个管道从其左邻居读取数据,并通过另一个管道向其右邻居写入数据。由于xv6的文件描述符和进程数量有限,因此第一个进程可以在35处停止。

-

提示:

-
    -
  • 请仔细关闭进程不需要的文件描述符,否则您的程序将在第一个进程达到35之前就会导致xv6系统资源不足。

    -
  • -
  • 一旦第一个进程达到35,它应该使用wait等待整个管道终止,包括所有子孙进程等等。因此,主primes进程应该只在打印完所有输出之后,并且在所有其他primes进程退出之后退出。

    -
  • -
  • 提示:当管道的write端关闭时,read返回零。

    -
  • -
  • 最简单的方法是直接将32位(4字节)int写入管道,而不是使用格式化的ASCII I/O。

    -
  • -
  • 您应该仅在需要时在管线中创建进程。

    -
  • -
  • 将程序添加到Makefile中的UPROGS

    -
  • -
-

如果您的解决方案实现了基于管道的筛选并产生以下输出,则是正确的:

-
$ make qemu
-...
-init: starting sh
-$ primes
-prime 2
-prime 3
-prime 5
-prime 7
-prime 11
-prime 13
-prime 17
-prime 19
-prime 23
-prime 29
-prime 31
-$
-
-

参考资料翻译:

-
-

考虑所有小于1000的素数的生成。Eratosthenes的筛选法可以通过执行以下伪代码的进程管线来模拟:

-
-
p = get a number from left neighbor
-print p
-=loop:
-    n = get a number from left neighbor
-    if (p does not divide n)
-        send n to right neighbor
-p = 从左邻居中获取一个数
-print p
-loop:
-    n = 从左邻居中获取一个数
-    if (n不能被p整除)
-        将n发送给右邻居
-
-

img

-
-

生成进程可以将数字2、3、4、…、1000输入管道的左端:行中的第一个进程消除2的倍数,第二个进程消除3的倍数,第三个进程消除5的倍数,依此类推。

-
-

find(难度:Moderate)

-
-

[!TIP|label:YOUR JOB] -写一个简化版本的UNIX的find程序:查找目录树中具有特定名称的所有文件,你的解决方案应该放在user/find.c

-
-

提示:

-
    -
  • 查看user/ls.c文件学习如何读取目录
  • -
  • 使用递归允许find下降到子目录中
  • -
  • 不要在“.”和“..”目录中递归
  • -
  • 对文件系统的更改会在qemu的运行过程中一直保持;要获得一个干净的文件系统,请运行make clean,然后make qemu
  • -
  • 你将会使用到C语言的字符串,要学习它请看《C程序设计语言》(K&R),例如第5.5节
  • -
  • 注意在C语言中不能像python一样使用“==”对字符串进行比较,而应当使用strcmp()
  • -
  • 将程序加入到Makefile的UPROGS
  • -
-

如果你的程序输出下面的内容,那么它是正确的(当文件系统中包含文件ba/b的时候)

-
$ make qemu
-...
-init: starting sh
-$ echo > b
-$ mkdir a
-$ echo > a/b
-$ find . b
-./b
-./a/b
-$
-
-

xargs(难度:Moderate)

-
-

[!TIP|label:YOUR JOB] -编写一个简化版UNIX的xargs程序:它从标准输入中按行读取,并且为每一行执行一个命令,将行作为参数提供给命令。你的解决方案应该在user/xargs.c

-
-

下面的例子解释了xargs的行为

-
$ echo hello too | xargs echo bye
-bye hello too
-$
-
-

注意,这里的命令是echo bye,额外的参数是hello too,这样就组成了命令echo bye hello too,此命令输出bye hello too

-

请注意,UNIX上的xargs进行了优化,一次可以向该命令提供更多的参数。 我们不需要您进行此优化。 要使UNIX上的xargs表现出本实验所实现的方式,请将-n选项设置为1。例如

-
$ echo "1\n2" | xargs -n 1 echo line
-line 1
-line 2
-$
-
-

提示:

-
    -
  • 使用forkexec对每行输入调用命令,在父进程中使用wait等待子进程完成命令。
  • -
  • 要读取单个输入行,请一次读取一个字符,直到出现换行符('\n')。
  • -
  • kernel/param.h声明MAXARG,如果需要声明argv数组,这可能很有用。
  • -
  • 将程序添加到Makefile中的UPROGS
  • -
  • 对文件系统的更改会在qemu的运行过程中保持不变;要获得一个干净的文件系统,请运行make clean,然后make qemu
  • -
-

xargsfindgrep结合得很好

-
$ find . b | xargs grep hello
-
-

将对“.”下面的目录中名为b的每个文件运行grep hello

-

要测试您的xargs方案是否正确,请运行shell脚本xargstest.sh。如果您的解决方案产生以下输出,则是正确的:

-
$ make qemu
-...
-init: starting sh
-$ sh < xargstest.sh
-$ $ $ $ $ $ hello
-hello
-hello
-$ $
-
-

你可能不得不回去修复你的find程序中的bug。输出有许多$,因为xv6 shell没有意识到它正在处理来自文件而不是控制台的命令,并为文件中的每个命令打印$

-

提交实验

-

这就完成了实验。确保你通过了所有的成绩测试。如果这个实验有问题,别忘了把你的答案写在answers-lab-name.txt提交你的更改(包括answers-lab-name.txt),然后在实验目录中键入make handin以提交实验。

-

花费的时间

-

创建一个命名为time.txt的新文件,并在其中输入一个整数,即您在实验室花费的小时数。不要忘记git addgit commit文件。

-

提交

-

你将使用提交网站提交作业。您需要从提交网站请求一次API密钥,然后才能提交任何作业或实验。

-

将最终更改提交到实验后,键入make handin以提交实验。

-
$ git commit -am "ready to submit my lab"
-[util c2e3c8b] ready to submit my lab
- 2 files changed, 18 insertions(+), 2 deletions(-)
-
-$ make handin
-tar: Removing leading `/' from member names
-Get an API key for yourself by visiting https://6828.scripts.mit.edu/2020/handin.py/
-Please enter your API key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
-                                 Dload  Upload   Total   Spent    Left  Speed
-100 79258  100   239  100 79019    853   275k --:--:-- --:--:-- --:--:--  276k
-$
-
-

make handin将把你的API密钥存储在myapi.key中。如果需要更改API密钥,只需删除此文件并让make handin再次生成它(myapi.key不得包含换行符)。

-

如果你运行了make handin,并且你有未提交的更改或未跟踪的文件,则会看到类似于以下内容的输出:

-
 M hello.c
-?? bar.c
-?? foo.pyc
-Untracked files will not be handed in.  Continue? [y/N]
-

检查上述行,确保跟踪了您的实验解决方案所需的所有文件,即以??开头的行中所显示的文件。您可以使用git add filename命令使git追踪创建的新文件。

-

如果make handin无法正常工作,请尝试使用curl或Git命令修复该问题。或者你可以运行make tarball。这将为您制作一个tar文件,然后您可以通过我们的web界面上传。

-
    -
  • 请运行“make grade”以确保您的代码通过所有测试
  • -
  • 在运行“make handin”之前提交任何修改过的源代码`
  • -
  • 您可以检查提交的状态,并在以下位置下载提交的代码:https://6828.scripts.mit.edu/2020/handin.py/
  • -
-

可选的挑战练习

-
    -
  • 编写一个uptime程序,使用uptime系统调用以滴答为单位打印计算机正常运行时间。(easy)

    -
  • -
  • find程序的名称匹配中支持正则表达式。grep.c对正则表达式有一些基本的支持。(easy)

    -
  • -
  • xv6 shell(user/sh.c)只是另一个用户程序,您可以对其进行改进。它是一个最小的shell,缺少建立在真实shell中的许多特性。例如,

    -
      -
    • 在处理文件中的shell命令时,将shell修改为不打印$(moderate)
    • -
    • 将shell修改为支持wait(easy)
    • -
    • 将shell修改为支持用“;”分隔的命令列表(moderate)
    • -
    • 通过实现左括号“(” 以及右括号“)”来修改shell以支持子shell(moderate)
    • -
    • 将shell修改为支持tab键补全(easy)
    • -
    • 修改shell使其支持命令历史记录(moderate)
    • -
    • 或者您希望shell执行的任何其他操作。
    • -
    -
  • -
  • 如果您非常雄心勃勃,可能需要修改内核以支持所需的内核特性;xv6支持的并不多。

    -
  • -
-
copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 12:03:03 -
- -
- -
-
-
- -

results matching ""

-
    - -
    -
    - -

    No results matching ""

    - -
    -
    -
    - -
    -
    - -
    - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/labs/requirements/lab1.md b/_book/labs/requirements/lab1.md deleted file mode 100644 index e757dd4..0000000 --- a/_book/labs/requirements/lab1.md +++ /dev/null @@ -1,398 +0,0 @@ -# Lab1: Xv6 and Unix utilities - - - -# 实验任务 - -## 启动xv6(难度:Easy) - -获取实验室的xv6源代码并切换到util分支 - -```bash -$ git clone git://g.csail.mit.edu/xv6-labs-2020 -Cloning into 'xv6-labs-2020'... -... -$ cd xv6-labs-2020 -$ git checkout util -Branch 'util' set up to track remote branch 'util' from 'origin'. -Switched to a new branch 'util' -``` - -Xv6-labs-2020存储库与本书的xv6-riscv稍有不同;它主要添加一些文件。如果你好奇的话,可以执行`git log`: - -```bash -$ git log -``` - -您将需要使用Git版本控制系统管理和提交文件以及后续的实验室作业。接下来,切换到一个分支(执行`git checkout util`),其中包含针对该实验室定制的xv6版本。要了解关于Git的更多信息,请查看Git用户手册。Git允许您跟踪对代码所做的更改。例如,如果你完成了其中一个练习,并且想检查你的进度,你可以通过运行以下命令来提交你的变化: - -```bash -$ git commit -am 'my solution for util lab exercise 1' -Created commit 60d2135: my solution for util lab exercise 1 - 1 files changed, 1 insertions(+), 0 deletions(-) -$ -``` - -您可以使用`git diff`命令跟踪您的更改。运行`git diff`将显示自上次提交以来对代码的更改,`git diff origin/util`将显示相对于初始xv6-labs-2020代码的更改。这里,***origin/xv6-labs-2020***是git分支的名称,它是包含您下载的初始代码分支。 - -- **构建并运行xv6** - -```bash -$ make qemu -riscv64-unknown-elf-gcc -c -o kernel/entry.o kernel/entry.S -riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -DSOL_UTIL -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie -c -o kernel/start.o kernel/start.c -... -riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_zombie user/zombie.o user/ulib.o user/usys.o user/printf.o user/umalloc.o -riscv64-unknown-elf-objdump -S user/_zombie > user/zombie.asm -riscv64-unknown-elf-objdump -t user/_zombie | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/zombie.sym -mkfs/mkfs fs.img README user/xargstest.sh user/_cat user/_echo user/_forktest user/_grep user/_init user/_kill user/_ln user/_ls user/_mkdir user/_rm user/_sh user/_stressfs user/_usertests user/_grind user/_wc user/_zombie -nmeta 46 (boot, super, log blocks 30 inode blocks 13, bitmap blocks 1) blocks 954 total 1000 -balloc: first 591 blocks have been allocated -balloc: write bitmap block at sector 45 -qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 - -xv6 kernel is booting - -hart 2 starting -hart 1 starting -init: starting sh -$ -``` - -如果你在提示符下输入 `ls`,你会看到类似如下的输出: - -```bash -$ ls -. 1 1 1024 -.. 1 1 1024 -README 2 2 2059 -xargstest.sh 2 3 93 -cat 2 4 24256 -echo 2 5 23080 -forktest 2 6 13272 -grep 2 7 27560 -init 2 8 23816 -kill 2 9 23024 -ln 2 10 22880 -ls 2 11 26448 -mkdir 2 12 23176 -rm 2 13 23160 -sh 2 14 41976 -stressfs 2 15 24016 -usertests 2 16 148456 -grind 2 17 38144 -wc 2 18 25344 -zombie 2 19 22408 -console 3 20 0 -``` - -这些是`mkfs`在初始文件系统中包含的文件;大多数是可以运行的程序。你刚刚跑了其中一个:`ls`。 - -xv6没有`ps`命令,但是如果您键入Ctrl-p,内核将打印每个进程的信息。如果现在尝试,您将看到两行:一行用于init,另一行用于sh。 - -退出 qemu : `Ctrl-a x`。 - -## sleep(难度:Easy) - -> [!TIP|label:YOUR JOB] -> **实现xv6的UNIX程序**`sleep`**:您的**`sleep`**应该暂停到用户指定的计时数。一个滴答(tick)是由xv6内核定义的时间概念,即来自定时器芯片的两个中断之间的时间。您的解决方案应该在文件*user/sleep.c*中** - -**提示:** - -- 在你开始编码之前,请阅读《book-riscv-rev1》的第一章 - -- 看看其他的一些程序(如***/user/echo.c, /user/grep.c, /user/rm.c***)查看如何获取传递给程序的命令行参数 - -- 如果用户忘记传递参数,`sleep`应该打印一条错误信息 - -- 命令行参数作为字符串传递; 您可以使用`atoi`将其转换为数字(详见***/user/ulib.c***) - -- 使用系统调用`sleep` - -- 请参阅***kernel/sysproc.c***以获取实现`sleep`系统调用的xv6内核代码(查找`sys_sleep`),***user/user.h***提供了`sleep`的声明以便其他程序调用,用汇编程序编写的***user/usys.S***可以帮助`sleep`从用户区跳转到内核区。 - -- 确保`main`函数调用`exit()`以退出程序。 - -- 将你的`sleep`程序添加到***Makefile***中的`UPROGS`中;完成之后,`make qemu`将编译您的程序,并且您可以从xv6的shell运行它。 - -- 看看Kernighan和Ritchie编著的《C程序设计语言》(第二版)来了解C语言。 - -从xv6 shell运行程序: - -```bash -$ make qemu -... -init: starting sh -$ sleep 10 -(nothing happens for a little while) -$ -``` - -如果程序在如上所示运行时暂停,则解决方案是正确的。运行`make grade`看看你是否真的通过了睡眠测试。 - -请注意,`make grade`运行所有测试,包括下面作业的测试。如果要对一项作业运行成绩测试,请键入(不要启动XV6,在外部终端下使用): - -```bash -$ ./grade-lab-util sleep -``` - -这将运行与`sleep`匹配的成绩测试。或者,您可以键入: - -```bash -$ make GRADEFLAGS=sleep grade -``` - -效果是一样的。 - -## pingpong(难度:Easy) - -> [!TIP|label:YOUR JOB] -> **编写一个使用UNIX系统调用的程序来在两个进程之间“ping-pong”一个字节,请使用两个管道,每个方向一个。父进程应该向子进程发送一个字节;子进程应该打印“`: received ping`”,其中``是进程ID,并在管道中写入字节发送给父进程,然后退出;父级应该从读取从子进程而来的字节,打印“`: received pong`”,然后退出。您的解决方案应该在文件*user/pingpong.c*中。** - -**提示:** - -- 使用`pipe`来创造管道 - -- 使用`fork`创建子进程 - -- 使用`read`从管道中读取数据,并且使用`write`向管道中写入数据 - -- 使用`getpid`获取调用进程的pid - -- 将程序加入到***Makefile***的`UPROGS` - -- xv6上的用户程序有一组有限的可用库函数。您可以在***user/user.h***中看到可调用的程序列表;源代码(系统调用除外)位于***user/ulib.c***、***user/printf.c***和***user/umalloc.c***中。 - -运行程序应得到下面的输出 - -```bash -$ make qemu -... -init: starting sh -$ pingpong -4: received ping -3: received pong -$ -``` - -如果您的程序在两个进程之间交换一个字节并产生如上所示的输出,那么您的解决方案是正确的。 - -## Primes(素数,难度:Moderate/Hard) - -> [!TIP|label:YOUR JOB] -> **使用管道编写**`prime sieve`**(筛选素数)的并发版本。这个想法是由Unix管道的发明者Doug McIlroy提出的。请查看[这个网站](http://swtch.com/~rsc/thread/)(翻译在下面),该网页中间的图片和周围的文字解释了如何做到这一点。您的解决方案应该在*user/primes.c*文件中。** - -您的目标是使用`pipe`和`fork`来设置管道。第一个进程将数字2到35输入管道。对于每个素数,您将安排创建一个进程,该进程通过一个管道从其左邻居读取数据,并通过另一个管道向其右邻居写入数据。由于xv6的文件描述符和进程数量有限,因此第一个进程可以在35处停止。 - -**提示:** - -- 请仔细关闭进程不需要的文件描述符,否则您的程序将在第一个进程达到35之前就会导致xv6系统资源不足。 - -- 一旦第一个进程达到35,它应该使用`wait`等待整个管道终止,包括所有子孙进程等等。因此,主`primes`进程应该只在打印完所有输出之后,并且在所有其他`primes`进程退出之后退出。 - -- 提示:当管道的`write`端关闭时,`read`返回零。 - -- 最简单的方法是直接将32位(4字节)int写入管道,而不是使用格式化的ASCII I/O。 - -- 您应该仅在需要时在管线中创建进程。 - -- 将程序添加到***Makefile***中的`UPROGS` - -如果您的解决方案实现了基于管道的筛选并产生以下输出,则是正确的: - -```bash -$ make qemu -... -init: starting sh -$ primes -prime 2 -prime 3 -prime 5 -prime 7 -prime 11 -prime 13 -prime 17 -prime 19 -prime 23 -prime 29 -prime 31 -$ -``` - - - -**参考资料翻译:** - -> 考虑所有小于1000的素数的生成。Eratosthenes的筛选法可以通过执行以下伪代码的进程管线来模拟: - -```c -p = get a number from left neighbor -print p -=loop: - n = get a number from left neighbor - if (p does not divide n) - send n to right neighbor -p = 从左邻居中获取一个数 -print p -loop: - n = 从左邻居中获取一个数 - if (n不能被p整除) - 将n发送给右邻居 -``` - -![img](images/p1.png) - -> 生成进程可以将数字2、3、4、…、1000输入管道的左端:行中的第一个进程消除2的倍数,第二个进程消除3的倍数,第三个进程消除5的倍数,依此类推。 - -## find(难度:Moderate) - -> [!TIP|label:YOUR JOB] -> **写一个简化版本的UNIX的`find`程序:查找目录树中具有特定名称的所有文件,你的解决方案应该放在*user/find.c*** - -提示: - -- 查看***user/ls.c***文件学习如何读取目录 -- 使用递归允许`find`下降到子目录中 -- 不要在“`.`”和“`..`”目录中递归 -- 对文件系统的更改会在qemu的运行过程中一直保持;要获得一个干净的文件系统,请运行`make clean`,然后`make qemu` -- 你将会使用到C语言的字符串,要学习它请看《C程序设计语言》(K&R),例如第5.5节 -- 注意在C语言中不能像python一样使用“`==`”对字符串进行比较,而应当使用`strcmp()` -- 将程序加入到Makefile的`UPROGS` - -如果你的程序输出下面的内容,那么它是正确的(当文件系统中包含文件***b***和***a/b***的时候) - -```bash -$ make qemu -... -init: starting sh -$ echo > b -$ mkdir a -$ echo > a/b -$ find . b -./b -./a/b -$ -``` - -## xargs(难度:Moderate) - -> [!TIP|label:YOUR JOB] -> 编写一个简化版UNIX的`xargs`程序:它从标准输入中按行读取,并且为每一行执行一个命令,将行作为参数提供给命令。你的解决方案应该在***user/xargs.c*** - -下面的例子解释了`xargs`的行为 - -```bash -$ echo hello too | xargs echo bye -bye hello too -$ -``` - -注意,这里的命令是`echo bye`,额外的参数是`hello too`,这样就组成了命令`echo bye hello too`,此命令输出`bye hello too` - -请注意,UNIX上的`xargs`进行了优化,一次可以向该命令提供更多的参数。 我们不需要您进行此优化。 要使UNIX上的`xargs`表现出本实验所实现的方式,请将`-n`选项设置为1。例如 - -```bash -$ echo "1\n2" | xargs -n 1 echo line -line 1 -line 2 -$ -``` - -**提示:** - -- 使用`fork`和`exec`对每行输入调用命令,在父进程中使用`wait`等待子进程完成命令。 -- 要读取单个输入行,请一次读取一个字符,直到出现换行符('\n')。 -- ***kernel/param.h***声明`MAXARG`,如果需要声明`argv`数组,这可能很有用。 -- 将程序添加到***Makefile***中的`UPROGS`。 -- 对文件系统的更改会在qemu的运行过程中保持不变;要获得一个干净的文件系统,请运行`make clean`,然后`make qemu` - - - -`xargs`、`find`和`grep`结合得很好 - -```bash -$ find . b | xargs grep hello -``` - -将对“`.`”下面的目录中名为***b***的每个文件运行`grep hello`。 - -要测试您的`xargs`方案是否正确,请运行shell脚本***xargstest.sh***。如果您的解决方案产生以下输出,则是正确的: - -```bash -$ make qemu -... -init: starting sh -$ sh < xargstest.sh -$ $ $ $ $ $ hello -hello -hello -$ $ -``` - -你可能不得不回去修复你的`find`程序中的bug。输出有许多`$`,因为xv6 shell没有意识到它正在处理来自文件而不是控制台的命令,并为文件中的每个命令打印`$`。 - -# 提交实验 - -**这就完成了实验**。确保你通过了所有的成绩测试。如果这个实验有问题,别忘了把你的答案写在***answers-lab-name.txt***中***。***提交你的更改(包括***answers-lab-name.txt***),然后在实验目录中键入`make handin`以提交实验。 - -**花费的时间** - -创建一个命名为***time.txt***的新文件,并在其中输入一个整数,即您在实验室花费的小时数。不要忘记`git add`和`git commit`文件。 - -**提交** - -你将使用**[提交网站](https://6828.scripts.mit.edu/2020/handin.py/)**提交作业。您需要从提交网站请求一次API密钥,然后才能提交任何作业或实验。 - -将最终更改提交到实验后,键入`make handin`以提交实验。 - -```bash -$ git commit -am "ready to submit my lab" -[util c2e3c8b] ready to submit my lab - 2 files changed, 18 insertions(+), 2 deletions(-) - -$ make handin -tar: Removing leading `/' from member names -Get an API key for yourself by visiting https://6828.scripts.mit.edu/2020/handin.py/ -Please enter your API key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed -100 79258 100 239 100 79019 853 275k --:--:-- --:--:-- --:--:-- 276k -$ -``` - -`make handin`将把你的API密钥存储在***myapi.key***中。如果需要更改API密钥,只需删除此文件并让`make handin`再次生成它(***myapi.key***不得包含换行符)。 - -如果你运行了`make handin`,并且你有未提交的更改或未跟踪的文件,则会看到类似于以下内容的输出: - -``` - M hello.c -?? bar.c -?? foo.pyc -Untracked files will not be handed in. Continue? [y/N] -``` - -检查上述行,确保跟踪了您的实验解决方案所需的所有文件,即以??开头的行中所显示的文件。您可以使用`git add filename`命令使git追踪创建的新文件。 - -如果`make handin`无法正常工作,请尝试使用curl或Git命令修复该问题。或者你可以运行`make tarball`。这将为您制作一个tar文件,然后您可以通过我们的web界面上传。 - -- 请运行“`make grade`”以确保您的代码通过所有测试 -- 在运行“`make handin`”之前提交任何修改过的源代码` -- 您可以检查提交的状态,并在以下位置下载提交的代码:https://6828.scripts.mit.edu/2020/handin.py/ - -# 可选的挑战练习 - -- 编写一个`uptime`程序,使用`uptime`系统调用以滴答为单位打印计算机正常运行时间。(easy) - -- 在`find`程序的名称匹配中支持正则表达式。***grep.c***对正则表达式有一些基本的支持。(easy) - -- xv6 shell(***user/sh.c***)只是另一个用户程序,您可以对其进行改进。它是一个最小的shell,缺少建立在真实shell中的许多特性。例如, - - - 在处理**文件中的**shell命令时,将shell修改为不打印$(moderate) - - 将shell修改为支持`wait`(easy) - - 将shell修改为支持用“`;`”分隔的命令列表(moderate) - - 通过实现左括号“`(`” 以及右括号“`)`”来修改shell以支持子shell(moderate) - - 将shell修改为支持`tab`键补全(easy) - - 修改shell使其支持命令历史记录(moderate) - - 或者您希望shell执行的任何其他操作。 - -- 如果您非常雄心勃勃,可能需要修改内核以支持所需的内核特性;xv6支持的并不多。 \ No newline at end of file diff --git a/_book/labs/requirements/summary.html b/_book/labs/requirements/summary.html deleted file mode 100644 index cee2e40..0000000 --- a/_book/labs/requirements/summary.html +++ /dev/null @@ -1,892 +0,0 @@ - - - - - - - 实验内容 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    -
    - -
    - -

    实验说明

    -

    实验难度

    -

    每个实验都具有相应的难度

    -
      -
    • Easy:不到一个小时。这些锻炼通常是为后续锻炼做的热身运动。

      -
    • -
    • Moderate:1-2小时。

      -
    • -
    • Hard:超过2个小时。这些练习通常不需要很多代码,但是代码很难正确。

      -
    • -
    -

    实验往往不需要很多行代码(几十到几百行) ,但是代码在概念上很复杂,而且细节往往很重要。所以,在你写任何代码之前,一定要完成实验室指定的阅读,通读相关文件,查阅文档(RISC-V手册等存放在了参考页面上)。只有当你确定掌握了任务和解决方案,再开始编码。当你开始编写代码的时候,一小步一小步地实现你的解决方案(作业通常会建议如何将问题分解为更小的步骤),并且在继续下一个步骤之前测试每个步骤是否正常工作。

    -

    调试技巧

    -

    确保你理解了c和指针。Kernighan和Ritchie的《c程序设计语言》一书对C语言进行了简要的描述。这里有一些有用的指针练习。除非你已经完全掌握了C语言,不要跳过或略读上面的指针练习。如果你不能真正理解C语言中的指针,你将在实验室中遭受难以言喻的痛苦,然后最终以一种艰难的方式来理解它们。相信我们,你不会想知道什么是“艰难的路”的。

    -

    一些常见的习惯用法特别值得记住:

    -
      -
    • 如果int *p = (int*)100,那么(int)p + 1(int)(p + 1)是不同的数字,第一个是101,但第二个是104。当向指针添加一个整数时,如第二种情况,整数被隐式地乘以指针指向的对象的大小。

      -
    • -
    • p[i]被定义为与*(p+i)相同,指向内存中p指向的第i个对象,当对象大于1字节时,上面所说的加法规则有利于此定义工作

      -
    • -
    -

    虽然大多数C程序不需要在指针和整数之间进行强制转换,但操作系统经常需要这样做。每当您看到一个包含内存地址的加法时,问问自己它是整数加法还是指针加法,并确保所添加的值是否适当地相乘。

    -
      -
    • 如果你有一个部分工作的练习,请通过提交代码来检查你的进度。如果您稍后破坏了某些东西,那么您可以回滚到您的检查点,然后以较小的步骤继续前进。要了解关于Git的更多信息,请查看Git用户手册,或者您可能会发现这个面向计算机科学家的Git概述非常有用。

      -
    • -
    • 如果您没有通过测试,确保您了解为什么您的代码没有通过测试。插入打印(printf)语句,直到您理解正在发生的事情。

      -
    • -
    • 您可能会发现您的print语句可能会产生许多您想要搜索的输出;其中一种方法是在script内部运行make qemu(在您的机器上运行man script),它将所有控制台输出记录到一个文件中,然后您可以搜索该文件。别忘了退出script

      -
    • -
    • 在许多情况下,print语句就足够了,但有时能够单步遍历一些汇编代码或检查堆栈上的变量是有帮助的。要在xv6中使用gdb,请在一个窗口中运行make qemu-gdb,在另一个窗口中运行gdb(或riscv64-linux-gnu-gdb),设置断点,后跟“c”(continue),xv6将一直运行,直到到达断点。(有关有用的GDB提示,请参阅使用GNU调试器。)

      -
    • -
    • 如果要查看编译器为内核生成的程序集是什么,或者要找出特定内核地址的指令是什么,请参阅文件kernel.asm,该文件在编译内核时由Makefile生成。(Makefile同时也为所有用户程序生成.asm文件。)

      -
    • -
    • 如果内核崩溃,它将打印一条错误消息,列出崩溃时程序计数器的值;您可以进行搜索kernel.asm找出程序计数器崩溃时在哪个函数中,或者可以运行addr2line -e kernel/kernel pc-value(有关详细信息,请运行man addr2line)。如果要获取回溯,请使用gdb重新启动:在一个窗口中运行'make qemu-gdb',在另一个窗口中运行gdb(或riscv64-linux-gnu-gdb),在panic中设置断点(“b panic”),后跟“c”(continue)。当内核到达断点时,键入“bt”以获取回溯跟踪。

      -
    • -
    • 如果您的内核挂起(例如,由于死锁)或无法进一步执行(例如,由于在执行内核指令时出现页面错误),您可以使用gdb查找挂起的位置。在一个窗口中运行“ make qemu-gdb”,在另一个窗口中运行 gdb (riscv64-linux-gnu-gdb) ,后跟“c”(continue)。当内核出现挂起时,在 qemu-gdb 窗口中按 Ctrl-C 并键入“bt”以获得回溯跟踪。

      -
    • -
    • qemu有一个“监视器”,允许您查询模拟机器的状态。您可以通过键入+a c(c表示控制台)来获得它。一个特别有用的monitor命令是info mem,用于打印页表。您可能需要使用cpu命令来选择info mem查看哪一个核心,或者可以使用make CPUS=1 qemu启动qemu,以使其只有一个核心。

      -
    • -
    -

    花时间学习上述工具是非常值得的

    -
    copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:08:45 -
    - -
    - -
    -
    -
    - -

    results matching ""

    -
      - -
      -
      - -

      No results matching ""

      - -
      -
      -
      - -
      -
      - -
      - - - - - - - - - - - - - - -
      - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/labs/requirements/summary.md b/_book/labs/requirements/summary.md deleted file mode 100644 index c11f04f..0000000 --- a/_book/labs/requirements/summary.md +++ /dev/null @@ -1,43 +0,0 @@ -# 实验说明 - -## 实验难度 - -每个实验都具有相应的难度 - -- Easy:不到一个小时。这些锻炼通常是为后续锻炼做的热身运动。 - -- Moderate:1-2小时。 - -- Hard:超过2个小时。这些练习通常不需要很多代码,但是代码很难正确。 - -实验往往不需要很多行代码(几十到几百行) ,但是代码在概念上很复杂,而且细节往往很重要。所以,在你写任何代码之前,一定要完成实验室指定的阅读,通读相关文件,查阅文档(RISC-V手册等存放在了[参考页面](https://pdos.csail.mit.edu/6.828/2020/reference.html)上)。只有当你确定掌握了任务和解决方案,再开始编码。当你开始编写代码的时候,一小步一小步地实现你的解决方案(作业通常会建议如何将问题分解为更小的步骤),并且在继续下一个步骤之前测试每个步骤是否正常工作。 - -## 调试技巧 - -确保你理解了c和指针。Kernighan和Ritchie的《c程序设计语言》一书对C语言进行了简要的描述。这里有一些有用的指针练习。除非你已经完全掌握了C语言,不要跳过或略读上面的指针练习。如果你不能真正理解C语言中的指针,你将在实验室中遭受难以言喻的痛苦,然后最终以一种艰难的方式来理解它们。相信我们,你不会想知道什么是“艰难的路”的。 - -一些常见的习惯用法特别值得记住: - -- 如果`int *p = (int*)100`,那么`(int)p + 1`及`(int)(p + 1)`是不同的数字,第一个是101,但第二个是104。当向指针添加一个整数时,如第二种情况,整数被隐式地乘以指针指向的对象的大小。 - -- `p[i]`被定义为与`*(p+i)`相同,指向内存中p指向的第i个对象,当对象大于1字节时,上面所说的加法规则有利于此定义工作 - -虽然大多数C程序不需要在指针和整数之间进行强制转换,但操作系统经常需要这样做。每当您看到一个包含内存地址的加法时,问问自己它是整数加法还是指针加法,并确保所添加的值是否适当地相乘。 - -- 如果你有一个部分工作的练习,请通过提交代码来检查你的进度。如果您稍后破坏了某些东西,那么您可以回滚到您的检查点,然后以较小的步骤继续前进。要了解关于Git的更多信息,请查看[Git用户手册](http://www.kernel.org/pub/software/scm/git/docs/user-manual.html),或者您可能会发现这个[面向计算机科学家的Git概述](http://eagain.net/articles/git-for-computer-scientists/)非常有用。 - -- 如果您没有通过测试,确保您了解为什么您的代码没有通过测试。插入打印(printf)语句,直到您理解正在发生的事情。 - -- 您可能会发现您的print语句可能会产生许多您想要搜索的输出;其中一种方法是在`script`内部运行`make qemu`(在您的机器上运行`man script`),它将所有控制台输出记录到一个文件中,然后您可以搜索该文件。别忘了退出`script`。 - -- 在许多情况下,print语句就足够了,但有时能够单步遍历一些汇编代码或检查堆栈上的变量是有帮助的。要在xv6中使用gdb,请在一个窗口中运行`make qemu-gdb`,在另一个窗口中运行`gdb`(或`riscv64-linux-gnu-gdb`),设置断点,后跟“`c`”(continue),xv6将一直运行,直到到达断点。(有关有用的GDB提示,请参阅[使用GNU调试器](https://pdos.csail.mit.edu/6.828/2019/lec/gdb_slides.pdf)。) - -- 如果要查看编译器为内核生成的程序集是什么,或者要找出特定内核地址的指令是什么,请参阅文件`kernel.asm`,该文件在编译内核时由Makefile生成。(Makefile同时也为所有用户程序生成.asm文件。) - -- 如果内核崩溃,它将打印一条错误消息,列出崩溃时程序计数器的值;您可以进行搜索`kernel.asm`找出程序计数器崩溃时在哪个函数中,或者可以运行`addr2line -e kernel/kernel pc-value`(有关详细信息,请运行`man addr2line`)。如果要获取回溯,请使用gdb重新启动:在一个窗口中运行'`make qemu-gdb`',在另一个窗口中运行gdb(或`riscv64-linux-gnu-gdb`),在`panic`中设置断点(“`b panic`”),后跟“`c`”(continue)。当内核到达断点时,键入“bt”以获取回溯跟踪。 - -- 如果您的内核挂起(例如,由于死锁)或无法进一步执行(例如,由于在执行内核指令时出现页面错误),您可以使用gdb查找挂起的位置。在一个窗口中运行“ `make qemu-gdb`”,在另一个窗口中运行 `gdb` (`riscv64-linux-gnu-gdb`) ,后跟“`c`”(continue)。当内核出现挂起时,在 `qemu-gdb` 窗口中按 `Ctrl-C` 并键入“`bt`”以获得回溯跟踪。 - -- qemu有一个“监视器”,允许您查询模拟机器的状态。您可以通过键入`+a c`(c表示控制台)来获得它。一个特别有用的monitor命令`是info mem`,用于打印页表。您可能需要使用`cpu`命令来选择`info mem`查看哪一个核心,或者可以使用`make CPUS=1 qemu`启动qemu,以使其只有一个核心。 - -花时间学习上述工具是非常值得的 \ No newline at end of file diff --git a/_book/labs/use_git/git1.html b/_book/labs/use_git/git1.html deleted file mode 100644 index 3860dde..0000000 --- a/_book/labs/use_git/git1.html +++ /dev/null @@ -1,919 +0,0 @@ - - - - - - - 版本控制 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - -
      - -
      - -
      - - - - - - - - -
      -
      - -
      -
      - -
      - -

      将实验代码提交到github

      -
      -

      [!DANGER] -MIT 6.S081 这门课程每个lab对应一个git分支,所以请不要擅自修改原有分支

      -
      -
        -
      1. 首先将mit的实验代码克隆到本地
      2. -
      -
      git clone git://g.csail.mit.edu/xv6-labs-2020
      -
      -
        -
      1. 在github创建一个新的空仓库
      2. -
      -

      创建完成后会有提示代码,请不要根据提示代码操作,并且记下右图中红色标注的仓库地址

      -

      imgimg

      -
        -
      1. 添加git仓库地址
      2. -
      -

      查看本地仓库的git配置文件,可以看到origin主机名下已经有了对应的上游仓库地址

      -
      cd xv6-labs-2020/
      -cat .git/config
      -
      -

      img

      -

      因此我们不要使用origin,可以使用其他主机名对应到github仓库,例如,我使用github

      -
      git remote add github 你的仓库地址
      -cat .git/config
      -
      -

      img

      -
        -
      1. git push命令

        -
      2. -
      3. 功能git push命令用于从将本地的分支版本上传到远程并合并。

        -
      4. -
      5. 命令格式
      6. -
      -
      git push <远程主机名> <本地分支名>:<远程分支名>
      -
      -

      如果本地分支名与远程分支名相同,则可以省略冒号:

      -
      git push <远程主机名> <本地分支名>
      -
      -

      更多用法请自行搜索

      -
        -
      1. 将实验代码推送github仓库
      2. -
      -

      例如:将实验1用到的util分支推送到github

      -
      git checkout util
      -git push github util:util
      -
      -

      需要你输入账户密码,提交就成功了

      -

      其他实验仓库的提交同理

      -
        -
      1. xv6实验git分支建议
      2. -
      -

      建议是每个实验创建一个测试分支,例如对于util来说

      -
      git checkout util         # 切换到util分支
      -git checkout -b util_test # 建立并切换到util的测试分支
      -
      -

      当你在util_test分支中每测试通过一个作业,请提交(git commit)你的代码,并将所做的修改合并(git merge)到util中,然后提交(git push)到github

      -
      git add .
      -git commit -m "完成了第一个作业"
      -git checkout util
      -git merge util_test
      -git push github util:util
      -
      -
        -
      1. 其他
      2. -
      -

      你还可以添加gitee,防止github有时无法访问的问题

      -
      copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:24:11 -
      - -
      - -
      -
      -
      - -

      results matching ""

      -
        - -
        -
        - -

        No results matching ""

        - -
        -
        -
        - -
        -
        - -
        - - - - - - - - - - - - - - -
        - - -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/labs/use_git/git1.md b/_book/labs/use_git/git1.md deleted file mode 100644 index 27f8658..0000000 --- a/_book/labs/use_git/git1.md +++ /dev/null @@ -1,101 +0,0 @@ -# 将实验代码提交到github - -> [!DANGER] -> MIT 6.S081 这门课程每个lab对应一个git分支,所以请不要擅自修改原有分支 - -1. **首先将mit的实验代码克隆到本地** - -```bash -git clone git://g.csail.mit.edu/xv6-labs-2020 -``` - - - -2. **在github创建一个新的空仓库** - -创建完成后会有提示代码,请**不要**根据提示代码操作,并且记下右图中红色标注的仓库地址 - -![img](images/p1.png)![img](images/p2.png) - - - -3. **添加git仓库地址** - -查看本地仓库的git配置文件,可以看到***origin***主机名下已经有了对应的上游仓库地址 - -```bash -cd xv6-labs-2020/ -cat .git/config -``` - -![img](images/p3.png) - -因此我们不要使用***origin***,可以使用其他主机名对应到github仓库,例如,我使用***github*** - -```bash -git remote add github 你的仓库地址 -cat .git/config -``` - -![img](images/p4.png) - - - -4. **`git push`命令** - -- **功能**:`git push`命令用于从将本地的分支版本上传到远程并合并。 -- **命令格式**: - -```bash -git push <远程主机名> <本地分支名>:<远程分支名> -``` - -如果本地分支名与远程分支名相同,则可以省略冒号: - -```bash -git push <远程主机名> <本地分支名> -``` - -更多用法请自行搜索 - - - -5. **将实验代码推送github仓库** - -例如:将实验1用到的***util***分支推送到github - -```bash -git checkout util -git push github util:util -``` - -需要你输入账户密码,提交就成功了 - -其他实验仓库的提交同理 - - - -6. **xv6实验git分支建议** - -建议是每个实验创建一个测试分支,例如对于***util***来说 - -```bash -git checkout util # 切换到util分支 -git checkout -b util_test # 建立并切换到util的测试分支 -``` - -当你在***util_test***分支中每测试通过一个作业,请提交(`git commit`)你的代码,并将所做的修改合并(`git merge`)到***util***中,然后提交(`git push`)到github - -```bash -git add . -git commit -m "完成了第一个作业" -git checkout util -git merge util_test -git push github util:util -``` - - - -7. **其他** - -你还可以添加gitee,防止github有时无法访问的问题 \ No newline at end of file diff --git a/_book/labs/use_git/images/p1.png b/_book/labs/use_git/images/p1.png deleted file mode 100644 index e9f3d9e25d4431c30458946bda6b27b357f52c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65854 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ⅅ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 diff --git a/_book/labs/use_git/images/p2.png b/_book/labs/use_git/images/p2.png deleted file mode 100644 index 4d0c245726c2925a55020ff0add14ad0063a657e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60804 zcmd3NWmg?d(CtYG5(w@NA-D(k;O_43?k)j>ySux)yB*x!Ik>wV^zyv#{R8*g?JrZS z)=W?L%2g(K)b%9c=3+P{$i@PcZGnPeC6uutNfPrZ#AzrZX2ev# z{%RnWwGV~A(A4ma3r4<^RbeHpI4O}V~QjHka`@H}qb zUhrJ5J6_(kuXrGS`5eV(vzkt}{=X)HRu3A)|2XyF83zBy0H{GoG5)W$2vGd-Kb9ZM z|IfEwxGGkhSGdjGzKYw1S!z^t2xgIOzra3qrSEIgXk3bD$D=ZdGw939IH$j3POu1@ zf7g$tSIO;!ii5? zlt1J9%AA2hJ_&~-YsBRuTq~_@Rmk9C`_1ymKew*6&F!`hdurDzd#bEXvkNdiR@+Ru zxLLuS)J&|ObYPAak;&<~66CF5>OFu3{G)WlL%8SBo3gwp(^}jEdE@4e(Q@@I;N;KQm~9cp*hy_{ zfl7IMUd&4;az&nS7FkAOieg#EU%pK<15F~p5##b4nq_-Tv%yUuwxr_CSQ(2fi2~bv z!a;R-CNj6>xxO;=&0QK6)9iPS=qPv`b5Zg3z=Qg@b?334D(I;$fIFfNe}fM8;T6+s zBl-d_2#&>`R?AuwQd^!z_0YO$VvI7B|=k*;?G(Sx4b6SA=T6a8Kvl3

        t#Yr53sc& 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

        -Ctp*W{;!=g_e?JHQ%V(()4@n;>w^~tP*H3y{V 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

        tyP*w|MfBs1M1wx9 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

        qh2V- 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 diff --git a/_book/labs/use_git/images/p4.png b/_book/labs/use_git/images/p4.png deleted file mode 100644 index e452cda41e40cb7c47b6bf1de49bd9d799552e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390600 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≈H>OuBM~0HR>7wCSFpK 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

        ~!mge*L^@1C3mc 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%0D5pubIXY<7 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 diff --git a/_book/package-lock.json b/_book/package-lock.json deleted file mode 100644 index 36fa7ea..0000000 --- a/_book/package-lock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "xv6book", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "gitbook-plugin-custom-favicon": "^0.0.4" - } - }, - "node_modules/gitbook-plugin-custom-favicon": { - "version": "0.0.4", - "resolved": "https://registry.nlark.com/gitbook-plugin-custom-favicon/download/gitbook-plugin-custom-favicon-0.0.4.tgz", - "integrity": "sha1-y3NynUdYy3xsVk6O+wNdH24Irs8=", - "engines": { - "gitbook": "*" - } - } - }, - "dependencies": { - "gitbook-plugin-custom-favicon": { - "version": "0.0.4", - "resolved": "https://registry.nlark.com/gitbook-plugin-custom-favicon/download/gitbook-plugin-custom-favicon-0.0.4.tgz", - "integrity": "sha1-y3NynUdYy3xsVk6O+wNdH24Irs8=" - } - } -} diff --git a/_book/package.json b/_book/package.json deleted file mode 100644 index ba99f53..0000000 --- a/_book/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "gitbook-plugin-custom-favicon": "^0.0.4" - } -} diff --git a/_book/search_plus_index.json b/_book/search_plus_index.json deleted file mode 100644 index cc6f157..0000000 --- a/_book/search_plus_index.json +++ /dev/null @@ -1 +0,0 @@ -{"./":{"url":"./","title":"课程介绍","keywords":"","body":"课程介绍 6.S081 Fall2020是麻省理工2020年秋季的操作系统课程,MIT将学习相关的资源全部公开并放到了官网。本课程中共涉及11个实验,需要花费一定时间来完成。由于是国外的课程,文档资料均为英文,为方便自己后续查阅和其他英文水平不足以流畅阅读英文文献的同学也能上手本课程,计划将资料全部翻译为中文。并分享课程笔记和实验记录。 由于水平有限,翻译中难免有错误或词不达意,还请见谅。 常用网址 课程官网:6.S081 Fall 2020 课程视频:6.S081--bilibili 视频翻译:6.S081课程翻译--gitbook 我的实验仓库:xv6-labs-2020--Github GITBOOK浏览 更好的浏览体验,请查看6.S081-All-In-One-Gitbook(xv6.dgs.zone) copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 13:20:20 "},"tranlate_books/book-riscv-rev1/summary.html":{"url":"tranlate_books/book-riscv-rev1/summary.html","title":"book-riscv-rev1","keywords":"","body":"BOOK-RISCV-REV1 XV6:一个简单,类UNIX的教学用操作系统 本书是6.S081最重要的参考书目,其中详细的介绍了XV6的设计细节,在课程前往往需要阅读对应章节,做实验时也要回来查看。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:43:44 "},"tranlate_books/book-riscv-rev1/c1/s0.html":{"url":"tranlate_books/book-riscv-rev1/c1/s0.html","title":"第一章 操作系统接口","keywords":"","body":"第一章 操作系统接口 操作系统的任务是在多个程序之间共享一台计算机,并提供比硬件本身支持的更有用的服务。操作系统管理和抽象底层硬件,例如文字处理器不需要关心使用哪种类型的磁盘硬件。一个操作系统在多个程序之间共享硬件,这样它们就可以(或者看起来可以)同时运行。最后,操作系统为程序提供了可控的交互方式,这样它们就可以共享数据或者一起工作。 操作系统通过接口向用户程序提供服务。设计良好的接口是很困难的。一方面,我们希望接口简单明了,因为这样更利于正确使用。另一方面,我们可能倾向于为应用程序提供许多复杂的特性。解决这个问题的诀窍在于设计接口时,依赖一些可结合的机制,以此来提供更好的通用性。 本书使用单一的操作系统作为具体的例子来说明操作系统的概念。xv6这个操作系统提供了Ken Thompson和Dennis Ritchie的Unix 介绍的基本接口,并且模仿了Unix的内部设计。Unix提供了一个窄接口,其机制表现突出,提供了令人惊讶的通用程度。这个接口非常成功,甚至现代操作系统BSD、Linux、Mac OSX、Solaris,甚至在一定程度上,Microsoft windows都有类Unix的接口。理解xv6是理解这些系统和其他系统的一个良好开端。 如下图1.1所示,xv6采用传统的内核形式(内核是一个特殊的程序,为正在运行的程序提供服务)。每个正在运行的程序,称为进程,都有包含指令、数据和堆栈的内存。指令实现了程序的运算,数据是计算所依赖的变量,堆栈组织程序的过程调用。一台给定的计算机通常有许多进程,但只有一个内核。 当一个进程需要调用一个内核服务时,它会调用一个系统调用,这是操作系统接口中的一个调用。系统调用进入内核;内核执行服务并返回。因此,一个进程在用户空间和内核空间之间交替执行。 内核使用CPU提供的硬件保护机制来确保每个在用户空间执行的进程只能访问它自己的内存。内核程序的执行拥有操控硬件的权限,它需要实现这些保护;而用户程序执行时没有这些特权。当用户程序调用系统调用时,硬件会提升权限级别,并开始执行内核中预先安排好的函数。 内核提供的系统调用集合是用户程序看到的接口。Xv6内核提供了Unix内核传统上提供的服务和系统调用的子集。表1.2列出了xv6的所有系统调用。 系统调用 描述 int fork() 创建一个进程,返回子进程的PID int exit(int status) 终止当前进程,并将状态报告给wait()函数。无返回 int wait(int *status) 等待一个子进程退出; 将退出状态存入*status; 返回子进程PID。 int kill(int pid) 终止对应PID的进程,返回0,或返回-1表示错误 int getpid() 返回当前进程的PID int sleep(int n) 暂停n个时钟节拍 int exec(char file, char argv[]) 加载一个文件并使用参数执行它; 只有在出错时才返回 char *sbrk(int n) 按n 字节增长进程的内存。返回新内存的开始 int open(char *file, int flags) 打开一个文件;flags表示read/write;返回一个fd(文件描述符) int write(int fd, char *buf, int n) 从buf 写n 个字节到文件描述符fd; 返回n int read(int fd, char *buf, int n) 将n 个字节读入buf;返回读取的字节数;如果文件结束,返回0 int close(int fd) 释放打开的文件fd int dup(int fd) 返回一个新的文件描述符,指向与fd 相同的文件 int pipe(int p[]) 创建一个管道,把write/read文件描述符放在p[0]和p[1]中 int chdir(char *dir) 改变当前的工作目录 int mkdir(char *dir) 创建一个新目录 int mknod(char *file, int, int) 创建一个设备文件 int fstat(int fd, struct stat *st) 将打开文件fd的信息放入*st int stat(char file, struct stat st) 将指定名称的文件信息放入*st int link(char file1, char file2) 为文件file1创建另一个名称(file2) int unlink(char *file) 删除一个文件 ​ 表1.2:xv6系统调用(除非另外声明,这些系统调用返回0表示无误,返回-1表示出错) 本章的其余部分概述了xv6的服务——进程、内存、文件描述符、管道和文件系统——并用代码片段和关于shell(Unix的命令行用户界面)如何使用它们的讨论来阐释。Shell对系统调用的使用说明了它们是如何被精心设计的。 Shell是一个普通的程序,它从用户那里读取命令并执行它们。Shell是一个用户程序,而不是内核的一部分,这一事实说明了系统调用接口的强大之处:shell没有什么特别之处。这也意味着shell很容易替换;因此,现代Unix系统有多种shell可供选择,每种shell都有自己的用户界面和脚本特性。Xv6 Shell是Unix Bourne shell本质的简单实现。它的实现可以在(user/sh.c:1)中找到. copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 12:24:36 "},"tranlate_books/book-riscv-rev1/c1/s1.html":{"url":"tranlate_books/book-riscv-rev1/c1/s1.html","title":"1.1 进程和内存","keywords":"","body":"1.1 进程和内存 Xv6进程由用户空间内存(指令、数据和堆栈)和对内核私有的每个进程状态组成。Xv6分时进程: 它透明地在等待执行的进程集合中切换可用的CPU。当一个进程没有执行时,xv6保存它的CPU寄存器,并在下一次运行该进程时恢复它们。内核利用进程id或PID标识每个进程。 一个进程可以使用fork系统调用创建一个新的进程。Fork创建了一个新的进程,其内存内容与调用进程(称为父进程)完全相同,称其为子进程。Fork在父子进程中都返回值。在父进程中,fork返回子类的PID;在子进程中,fork返回零。例如,考虑下面用C语言编写的程序片段 // fork()在父进程中返回子进程的PID // 在子进程中返回0 int pid = fork(); if(pid > 0) { printf(\"parent: child=%d\\n\", pid); pid = wait((int *) 0); printf(\"child %d is done\\n\", pid); } else if(pid == 0) { printf(\"child: exiting\\n\"); exit(0); } else { printf(\"fork error\\n\"); } exit系统调用导致调用进程停止执行并释放资源(如内存和打开的文件)。exit接受一个整数状态参数,通常0表示成功,1表示失败。wait系统调用返回当前进程的已退出(或已杀死)子进程的PID,并将子进程的退出状态复制到传递给wait的地址;如果调用方的子进程都没有退出,那么wait等待一个子进程退出。如果调用者没有子级,wait立即返回-1。如果父进程不关心子进程的退出状态,它可以传递一个0地址给wait。 在这个例子中,输出 parent: child=1234 child: exiting 可能以任何一种顺序出来,这取决于父或子谁先到达printf调用。子进程退出后,父进程的wait返回,导致父进程打印 parent: child 1234 is done 尽管最初子进程与父进程有着相同的内存内容,但是二者在运行中拥有不同的内存空间和寄存器:在一个进程中改变变量不会影响到另一个进程。例如当wait的返回值存入父进程的变量pid中时,并不会影响子进程中的pid,子进程中pid仍然为0。 exec系统调用使用从文件系统中存储的文件所加载的新内存映像替换调用进程的内存。(百度百科:根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件)该文件必须有特殊的格式,它指定文件的哪部分存放指令,哪部分是数据,以及哪一条指令用于启动等等。xv6使用ELF格式(将会在第三章详细讨论)。当exec执行成功,它不向调用进程返回数据,而是使加载自文件的指令在ELF header中声明的程序入口处开始执行。exec有两个参数:可执行文件的文件名和字符串参数数组。例如 char* argv[3]; argv[0] = \"echo\"; argv[1] = \"hello\"; argv[2] = 0; exec(\"/bin/echo\", argv); printf(\"exec error\\n\"); 这个代码片段将调用程序替换为了参数列表为echo hello的/bin/echo程序运行,多数程序忽略参数数组中的第一个元素,它通常是程序名。 xv6的shell使用上述调用为用户运行程序。shell的主要结构很简单,请参见main(user/sh.c:145)。主循环使用getcmd函数从用户的输入中读取一行,然后调用fork创建一个shell进程的副本。父进程调用wait,子进程执行命令。例如:当用户向shell输入echo hello时,runcmd(user/sh.c:58) 将以echo hello为参数被调用来执行实际命令。对于“echo hello”,它将调用exec(user/sh.c:78)。如果exec成功,那么子进程将从echo而不是runcmd执行命令,在某刻echo会调用exit,这将导致父进程从main(user/sh.c:78)中的wait返回。 你或许想知道为什么exec和fork没有组合成为一个系统调用,稍后我们将会看到shell在其I/O重定向的实现中利用了这种分离。为了避免创建一个重复的进程然后立即替换它(使用exec)的浪费,操作内核通过使用虚拟内存技术(如copy-on-write)优化 fork 在这个用例中的实现(见第 4.6 节)。 Xv6 隐式地分配大多数用户空间内存:fork分配父内存的子副本所需的内存,exec分配足够的内存来保存可执行文件。在运行时需要更多内存的进程(可能是malloc)可以调用 sbrk(n)将其数据内存增加n个字节; sbrk返回新内存的位置。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 11:55:13 "},"tranlate_books/book-riscv-rev1/c1/s2.html":{"url":"tranlate_books/book-riscv-rev1/c1/s2.html","title":"1.2 I/O和文件描述符","keywords":"","body":"1.2 I/O和文件描述符 文件描述符是一个小整数(small integer),表示进程可以读取或写入的由内核管理的对象。进程可以通过打开一个文件、目录、设备,或创建一个管道,或复制一个已存在的描述符来获得一个文件描述符。为了简单起见,我们通常将文件描述符所指的对象称为“文件”;文件描述符接口将文件、管道和设备之间的差异抽象出来,使它们看起来都像字节流。我们将输入和输出称为 I/O。 在内部,xv6内核使用文件描述符作为每个进程表的索引,这样每个进程都有一个从零开始的文件描述符的私有空间。按照惯例,进程从文件描述符0读取(标准输入),将输出写入文件描述符1(标准输出),并将错误消息写入文件描述符2(标准错误)。正如我们将看到的,shell利用这个约定来实现I/O重定向和管道。shell确保它始终有三个打开的文件描述符(user/sh.c:151),这是控制台的默认文件描述符。 read和write系统调用以字节为单位读取或写入已打开的以文件描述符命名的文件。read(fd,buf,n)从文件描述符fd读取最多n字节,将它们复制到buf,并返回读取的字节数,引用文件的每个文件描述符都有一个与之关联的偏移量。read从当前文件偏移量开始读取数据,然后将该偏移量前进所读取的字节数:(也就是说)后续读取将返回第一次读取返回的字节之后的字节。当没有更多的字节可读时,read返回0来表示文件的结束。 系统调用write(fd,buf,n)将buf中的n字节写入文件描述符,并返回写入的字节数。只有发生错误时才会写入小于n字节的数据。与读一样,write在当前文件偏移量处写入数据,然后将该偏移量向前推进写入的字节数:每个write从上一个偏移量停止的地方开始写入。 以下程序片段(构成程序cat的本质)将数据从其标准输入复制到其标准输出。如果发生错误,它将消息写入标准错误: char buf[512]; int n; for (;;) { n = read(0, buf, sizeof buf); if (n == 0) break; if (n < 0) { fprintf(2, \"read error\\n\"); exit(1); } if (write(1, buf, n) != n) { fprintf(2, \"write error\\n\"); exit(1); } } 代码片段中需要注意的重要一点是,cat不知道它是从文件、控制台还是管道读取。同样也不知道它是打印到控制台、文件还是其他什么地方。文件描述符的使用以及文件描述符0是输入而文件描述符1是输出的约定允许了cat的简单实现。 close系统调用释放一个文件描述符,使其可以被未来使用的open、pipe或dup系统调用重用(见下文)。新分配的文件描述符总是当前进程中编号最小的未使用描述符。 文件描述符和fork相互作用,使I/O重定向更容易实现。fork复制父进程的文件描述符表及其内存,以便子级以与父级在开始时拥有完全相同的打开文件。系统调用exec替换了调用进程的内存,但保留其文件表。此行为允许shell通过fork实现I/O重定向,在子进程中重新打开选定的文件描述符,然后调用exec来运行新程序。下面是shell运行命令cat 的代码的简化版本。 char* argv[2]; argv[0] = \"cat\"; argv[1] = 0; if (fork() == 0) { close(0); open(\"input.txt\", O_RDONLY); exec(\"cat\", argv); } 在子进程关闭文件描述符0之后,open保证使用新打开的input.txt:0的文件描述符作为最小的可用文件描述符。cat然后执行文件描述符0(标准输入),但引用的是input.txt。父进程的文件描述符不会被这个序列改变,因为它只修改子进程的描述符。 Xv6shell中的I/O重定向代码就是这样工作的(user/sh.c:82)。回想一下,在代码执行到这里时,shell已经fork出了子shell,runcmd将调用exec来加载新程序。 open的第二个参数由一组标志组成,这些标志以位表示,用于控制打开的操作。可能的值定义在文件控制(fcntl)头文件(kernel/fcntl.h:1-5)中 宏定义 功能说明 O_RDONLY 只读 O_WRONLY 只写 O_RDWR 可读可写 O_CREATE 如果文件不存在则创建文件 O_TRUNC 将文件截断为零长度 现在应该很清楚为什么fork和exec分离的用处了:在这两个调用之间,shell有机会对子进程进行I/O重定向,而不会干扰主shell的I/O设置。我们可以想象一个假设的forkexec系统调用组合,但是用这样的调用进行I/O重定向是很笨拙的。Shell可以在调用forkexec之前修改自己的I/O设置(然后撤销这些修改);或者forkexec可以将I/O重定向的指令作为参数;或者(最不吸引人的是)可以让每个程序(如cat)执行自己的I/O重定向。 尽管fork复制了文件描述符表,但是每个基础文件偏移量在父文件和子文件之间是共享的,比如下面的程序: if (fork() == 0) { write(1, \"hello \", 6); exit(0); } else { wait(0); write(1, \"world\\n\", 6); } 在这个片段的末尾,附加到文件描述符1的文件将包含数据hello world。父进程中的写操作(由于等待,只有在子进程完成后才运行)在子进程停止写入的位置进行。这种行为有助于从shell命令序列产生顺序输出,比如(echo hello;echo world) >output.txt。 dup系统调用复制一个现有的文件描述符,返回一个引用自同一个底层I/O对象的新文件描述符。两个文件描述符共享一个偏移量,就像fork复制的文件描述符一样。这是另一种将“hello world”写入文件的方法: fd = dup(1); write(1, \"hello \", 6); write(fd, \"world\\n\", 6); 如果两个文件描述符是通过一系列fork和dup调用从同一个原始文件描述符派生出来的,那么它们共享一个偏移量。否则,文件描述符不会共享偏移量,即使它们来自于对同一文件的打开调用。dup允许shell执行这样的命令:ls existing-file non-existing-file > tmp1 2>&1。2>&1告诉shell给命令的文件描述符2是描述符1的副本。现有文件的名称和不存在文件的错误信息都会显示在tmp1文件中。Xv6 shell不支持错误文件描述符的I/O重定向,但是现在你知道如何实现它了。 文件描述符是一个强大的抽象,因为它们隐藏了它们所连接的细节:写入文件描述符1的进程可能写入文件、设备(如控制台)或管道。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 11:58:39 "},"tranlate_books/book-riscv-rev1/c1/s3.html":{"url":"tranlate_books/book-riscv-rev1/c1/s3.html","title":"1.3 管道","keywords":"","body":"1.3 管道 管道是作为一对文件描述符公开给进程的小型内核缓冲区,一个用于读取,一个用于写入。将数据写入管道的一端使得这些数据可以从管道的另一端读取。管道为进程提供了一种通信方式。 下面的示例代码使用连接到管道读端的标准输入来运行程序wc。 int p[2]; char *argv[2]; argv[0] = \"wc\"; argv[1] = 0; pipe(p); if (fork() == 0) { close(0); dup(p[0]); close(p[0]); close(p[1]); exec(\"/bin/wc\", argv); } else { close(p[0]); write(p[1], \"hello world\\n\", 12); close(p[1]); } 程序调用pipe,创建一个新的管道,并在数组p中记录读写文件描述符。在fork之后,父子进程都有指向管道的文件描述符。子进程调用close和dup使文件描述符0指向管道的读取端(前面说过优先分配最小的未使用的描述符),然后关闭p中所存的文件描述符,并调用exec运行wc。当wc从它的标准输入读取时,就是从管道读取。父进程关闭管道的读取端,写入管道,然后关闭写入端。 如果没有可用的数据,则管道上的read操作等待写入数据或关闭所有指向写入端的文件描述符,在后一种情况下,read将返回0,就像到达数据文件的末尾一样。事实上,read在新数据不可能到达前会一直阻塞,这是子进程在执行上面的wc之前关闭管道的写入端非常重要的一个原因:如果wc的文件描述符之一指向管道的写入端,wc将永远看不到文件的结束。 Xv6 shell以类似于上面代码(user/sh.c:100)的方式实现了诸如grep fork sh.c | wc -l之类的管道。子进程创建一个管道将管道的左端和右端连接起来。然后对管道的左端调用fork和runcmd,对管道的右端调用fork和runcmd,并等待两者都完成。管道的右端可能是一个命令,该命令本身包含一个管道(例如,a | b | c),该管道本身fork为两个新的子进程(一个用于b,一个用于c)。因此,shell可以创建一个进程树。这个树的叶子是命令,内部节点是等待左右两个子进程完成的进程。 原则上,可以让内部节点在管道的左端运行,但是正确地这样做会使实现复杂化。考虑进行以下修改:将sh.c更改为不对p->left进行fork,并在内部进程中运行runcmd(p->left)。然后,例如,echo hi | wc将不会产生输出,因为当echo hi在runcmd中退出时,内部进程将退出,而不会调用fork来运行管道的右端。这个不正确的行为可以通过不调用内部进程的runcmd中的exit来修复,但是这个修复使代码复杂化:现在runcmd需要知道它是否是一个内部进程。同样的,当没有对(p->right)执行fork时也会更加复杂。例如,只需进行上述的修改,sleep 10 | echo hi将立即打印“hi”,而不是在10秒后,因为echo将立即运行并退出,而不是等待sleep完成。因为sh.c的目标是尽可能的简单,所以它不会试图避免创建内部进程。 管道看起来并不比临时文件更强大:下面的管道命令行 echo hello world | wc 可以不通过管道实现,如下 echo hello world > /tmp/xyz; wc 在这种情况下,管道相比临时文件至少有四个优势 首先,管道会自动清理自己;在文件重定向时,shell使用完/tmp/xyz后必须小心删除 其次,管道可以任意传递长的数据流,而文件重定向需要磁盘上足够的空闲空间来存储所有的数据。 第三,管道允许并行执行管道阶段,而文件方法要求第一个程序在第二个程序启动之前完成。 第四,如果实现进程间通讯,管道的块读写比文件的非块语义更有效率。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 12:01:58 "},"tranlate_books/book-riscv-rev1/c1/s4.html":{"url":"tranlate_books/book-riscv-rev1/c1/s4.html","title":"1.4 文件系统","keywords":"","body":"1.4 文件系统 Xv6文件系统提供数据文件(包含未解释的字节数组)和目录(包含对数据文件和其他目录的命名引用)。这些目录形成一个树,从一个叫做根的特殊目录开始。像/a/b/c这样的路径是指在根目录/下名为a的目录中名为b的目录中名为c的文件或目录。不以/开始的路径相对于调用进程的当前工作目录进行计算,当前工作目录可以通过chdir系统调用进行更改。下面两个代码片段打开相同的文件(假设所有相关的目录都存在) chdir(\"/a\"); chdir(\"b\"); open(\"c\", O_RDONLY); open(\"/a/b/c\", O_RDONLY); 上面代码将进程的当前目录更改为/a/b;下面代码既不引用也不更改进程的当前目录 还有创建新文件和目录的系统调用: mkdir创建一个新目录 open中若使用O_CREATE标志将会创建一个新的数据文件 mknod创建一个新的设备文件 这个例子说明了这三点: mkdir(\"/dir\"); fd = open(\"/dir/file\", O_CREATE | O_WRONLY); close(fd); mknod(\"/console\", 1, 1); mknod创建一个引用设备的特殊文件。与设备文件相关联的是主设备号和次设备号(mknod的两个参数),它们唯一地标识了一个内核设备。当进程稍后打开设备文件时,内核将使用内核设备实现read和write系统调用,而不是使用文件系统。 一个文件的名字和文件本身是不同的;同一个底层文件(叫做inode,索引结点)可以有多个名字(叫做link,链接)。每个链接都由目录中的一个条目组成;该条目包含一个文件名和一个inode引用。Inode保存有关文件的元数据(用于解释或帮助理解信息的数据),包括其类型(文件/目录/设备)、长度、文件内容在磁盘上的位置以及指向文件的链接数。 fstat系统调用从文件描述符所引用的inode中检索信息。它填充一个stat类型的结构体,struct stat在stat.h(kernel/stat.h)中定义为 #define T_DIR 1 // Directory #define T_FILE 2 // File #define T_DEVICE 3 // Device struct stat { int dev; // 文件系统的磁盘设备 uint ino; // Inode编号 short type; // 文件类型 short nlink; // 指向文件的链接数 uint64 size; // 文件字节数 }; link系统调用创建另一个文件名,该文件名指向与现有文件相同的inode。下面的代码片段创建了一个名字既为a又为b的新文件 open(\"a\", O_CREATE | O_WRONLY); link(\"a\", \"b\"); 从a读取或写入与从b读取或写入是相同的操作。每个inode由唯一的inode编号标识。在上面的代码序列之后,可以通过检查fstat的结果来确定a和b引用相同的底层内容:两者都将返回相同的inode号(ino),并且nlink计数将被设置为2。 unlink系统调用从文件系统中删除一个名称。只有当文件的链接数为零且没有文件描述符引用时,文件的inode和包含其内容的磁盘空间才会被释放,因此添加 unlink(\"a\"); 最后一行代码序列中会使inode和文件内容可以作为b访问。此外 fd = open(\"/tmp/xyz\", O_CREATE | O_RDWR); unlink(\"/tmp/xyz\"); 是创建没有名称的临时inode的惯用方法,该临时inode将在进程关闭fd或退出时被清理。 Unix以用户级程序的形式提供了可从shell调用的文件实用程序,例如mkdir、ln和rm。这种设计允许任何人通过添加新的用户级程序来扩展命令行接口。事后看来,这个计划似乎是显而易见的,但是在Unix时代设计的其他系统经常将这样的命令构建到shell中(并将shell构建到内核中) 一个例外是cd,它是内置在shell(user/sh.c:160)。cd必须更改shell本身的当前工作目录。如果cd作为常规命令运行,那么shell将分出一个子进程,子进程将运行cd,cd将更改子进程的工作目录。父目录(即shell的)的工作目录不会改变。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 12:04:10 "},"tranlate_books/book-riscv-rev1/c1/s5.html":{"url":"tranlate_books/book-riscv-rev1/c1/s5.html","title":"1.5 真实世界","keywords":"","body":"1.5 真实世界 Unix将“标准”文件描述符、管道和方便的shell语法结合起来进行操作,这是编写通用可重用程序方面的一大进步。这个想法引发了一种“软件工具”的文化,这种文化对Unix的强大和流行做出了卓越贡献,shell是第一个所谓的“脚本语言”。Unix系统调用接口今天仍然存在于BSD、Linux和MacOSx等系统中。 Unix系统调用接口已经通过便携式操作系统接口(POSIX)标准进行了标准化。Xv6与POSIX不兼容:它缺少许多系统调用(包括lseek等基本系统调用),并且它提供的许多系统调用与标准不同。我们xv6的主要目标是简单明了,同时提供一个简单的类unix系统调用接口。为了运行基本的Unix程序,有些人扩展了xv6,增加了一些系统调用和一个简单的c库。然而,现代内核比xv6提供了更多的系统调用和更多种类的内核服务。例如,它们支持网络工作、窗口系统、用户级线程、许多设备的驱动程序等等。现代内核不断快速发展,提供了许多超越POSIX的特性。 Unix通过一组文件名和文件描述符接口统一访问多种类型的资源(文件、目录和设备)。这个想法可以扩展到更多种类的资源;一个很好的例子是Plan9,它将“资源是文件”的概念应用到网络、图形等等。然而,大多数unix衍生的操作系统并没有遵循这条路。 文件系统和文件描述符是强大的抽象。即便如此,还有其他的操作系统接口模型。Multics,Unix的前身,以一种看起来像内存的方式抽象了文件存储,产生了一种非常不同的接口风格。Multics设计的复杂性直接影响了Unix的设计者,他们试图使设计更简单。 Xv6没有提供一个用户概念或者保护一个用户不受另一个用户的伤害;用Unix的术语来说,所有的Xv6进程都作为root运行。 本书研究了xv6如何实现其类Unix接口,但这些思想和概念不仅仅适用于Unix。任何操作系统都必须在底层硬件上复用进程,彼此隔离进程,并提供受控制的进程间通讯机制。在学习了xv6之后,你应该去看看更复杂的操作系统,以及这些系统中与xv6相同的底层基本概念。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 12:05:11 "},"tranlate_books/book-riscv-rev1/c1/s6.html":{"url":"tranlate_books/book-riscv-rev1/c1/s6.html","title":"1.6 练习","keywords":"","body":"1.6 练习 编写一个使用UNIX系统调用的程序,通过一对管道在两个进程之间“ping-pong”一个字节(也就是像打乒乓球一样来回传递),每个方向一个管道。以每秒的交换次数为单位,测量程序的性能。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 12:05:39 "},"tranlate_books/book-riscv-rev1/c2/s0.html":{"url":"tranlate_books/book-riscv-rev1/c2/s0.html","title":"第二章 操作系统架构","keywords":"","body":"第二章 操作系统架构 操作系统的一个关键要求是同时支持多个活动。例如,使用第1章中描述的系统调用接口,一个进程可以用fork启动新进程。操作系统必须在这些进程之间分时使用计算机资源。例如,即使进程比硬件处理器多,操作系统也必须确保所有进程都有机会执行。操作系统还必须安排进程之间的隔离。也就是说,如果一个进程有错误和故障,它不应该影响不依赖于有错误的进程的进程。然而,完全隔离又太过头了,进程之间应当可以进行刻意为之的交互;管道就是一个例子。因此,操作系统必须满足三个要求:多路复用、隔离和交互。 本章概述了如何组织操作系统来实现这三个要求。事实证明,有很多方法可以做到这一点,但是本文侧重于以宏内核为中心的主流设计,许多Unix操作系统都使用这种内核。本章还概述了xv6进程(它是xv6中的隔离单元)以及xv6启动时第一个进程的创建。 Xv6运行在多核RISC-V微处理器上,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的。RISC-V是一个64位的中央处理器,xv6是用基于“LP64”的C语言编写的,这意味着C语言中的long(L)和指针(P)变量都是64位的,但int是32位的。这本书假设读者已经在一些架构上做了一些机器级编程,并将在出现时介绍RISC-V特定的想法。RISC-V的一个有用的参考文献是《The RISC-V Reader: An Open Architecture Atlas》。用户级ISA和特权指令架构均是官方规范。 完整计算机中的CPU被支撑硬件包围,其中大部分是以I/O接口的形式。Xv6是以qemu的“-machine virt”选项模拟的支撑硬件编写的。这包括RAM、包含引导代码的ROM、一个到用户键盘/屏幕的串行连接,以及一个用于存储的磁盘。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-18 22:36:12 "},"tranlate_books/book-riscv-rev1/c2/s1.html":{"url":"tranlate_books/book-riscv-rev1/c2/s1.html","title":"2.1 抽象系统资源","keywords":"","body":"2.1 抽象系统资源 当谈及操作系统时,人们可能会问的第一个问题是为什么需要它?也就是说,我们可以将图1.2中的系统调用实现为一个库,应用程序可以与之链接。在此方案中,每个应用程序甚至可以根据自己的需求定制自己的库。应用程序可以直接与硬件资源交互,并以应用程序的最佳方式使用这些资源(例如,实现高性能或可预测的性能)。一些嵌入式设备或实时系统的操作系统就是这样组织的。 这种库函数方法的缺点是,如果有多个应用程序在运行,这些应用程序必须表现良好。例如,每个应用程序必须定期放弃中央处理器,以便其他应用程序能够运行。如果所有应用程序都相互信任并且没有错误,这种协同操作的分时方案可能是可以的。 然而更典型的情况是, 应用程序互不信任且存在bug,所以人们通常希望提供比合作方案更强的隔离。 为了实现强隔离, 最好禁止应用程序直接访问敏感的硬件资源,而是将资源抽象为服务。 例如,Unix应用程序只通过文件系统的open、read、write和close系统调用与存储交互,而不是直接读写磁盘。这为应用程序提供了方便实用的路径名,并允许操作系统(作为接口的实现者)管理磁盘。即使隔离不是一个问题,有意交互(或者只是希望互不干扰)的程序可能会发现文件系统比直接使用磁盘更方便。 同样,Unix在进程之间透明地切换硬件处理器,根据需要保存和恢复寄存器状态,这样应用程序就不必意识到分时共享的存在。这种透明性允许操作系统共享处理器,即使有些应用程序处于无限循环中。 另一个例子是,Unix进程使用exec来构建它们的内存映像,而不是直接与物理内存交互。这允许操作系统决定将一个进程放在内存中的哪里;如果内存很紧张,操作系统甚至可以将一个进程的一些数据存储在磁盘上。exec还为用户提供了存储可执行程序映像的文件系统的便利。 Unix进程之间的许多交互形式都是通过文件描述符实现的。文件描述符不仅抽象了许多细节(例如,管道或文件中的数据存储在哪里),而且还以简化交互的方式进行了定义。例如,如果流水线中的一个应用程序失败了,内核会为流水线中的下一个进程生成文件结束信号(EOF)。 图1.2中的系统调用接口是精心设计的,既为程序员提供了便利,又提供了强隔离的可能性。Unix接口不是抽象资源的唯一方法,但它已经被证明是一个非常好的方法 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:44:42 "},"tranlate_books/book-riscv-rev1/c2/s2.html":{"url":"tranlate_books/book-riscv-rev1/c2/s2.html","title":"2.2 用户态,核心态,以及系统调用","keywords":"","body":"2.2 用户态,核心态,以及系统调用 [!NOTE] 用户态=用户模式=目态 核心态=管理模式=管态 强隔离需要应用程序和操作系统之间的硬边界,如果应用程序出错,我们不希望操作系统失败或其他应用程序失败,相反,操作系统应该能够清理失败的应用程序,并继续运行其他应用程序,要实现强隔离,操作系统必须保证应用程序不能修改(甚至读取)操作系统的数据结构和指令,以及应用程序不能访问其他进程的内存。 CPU为强隔离提供硬件支持。例如,RISC-V有三种CPU可以执行指令的模式:机器模式(Machine Mode)、用户模式(User Mode)和管理模式(Supervisor Mode)。在机器模式下执行的指令具有完全特权;CPU在机器模式下启动。机器模式主要用于配置计算机。Xv6在机器模式下执行很少的几行代码,然后更改为管理模式。 在管理模式下,CPU被允许执行特权指令:例如,启用和禁用中断、读取和写入保存页表地址的寄存器等。如果用户模式下的应用程序试图执行特权指令,那么CPU不会执行该指令,而是切换到管理模式,以便管理模式代码可以终止应用程序,因为它做了它不应该做的事情。第1章中的图1.1说明了这种组织。应用程序只能执行用户模式的指令(例如,数字相加等),并被称为在用户空间中运行,而此时处于管理模式下的软件可以执行特权指令,并被称为在内核空间中运行。在内核空间(或管理模式)中运行的软件被称为内核。 想要调用内核函数的应用程序(例如xv6中的read系统调用)必须过渡到内核。CPU提供一个特殊的指令,将CPU从用户模式切换到管理模式,并在内核指定的入口点进入内核(RISC-V为此提供ecall指令)。一旦CPU切换到管理模式,内核就可以验证系统调用的参数,决定是否允许应用程序执行请求的操作,然后拒绝它或执行它。由内核控制转换到管理模式的入口点是很重要的;如果应用程序可以决定内核入口点, 那么恶意应用程序可以在跳过参数验证的地方进入内核。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:28:57 "},"tranlate_books/book-riscv-rev1/c2/s3.html":{"url":"tranlate_books/book-riscv-rev1/c2/s3.html","title":"2.3 内核组织","keywords":"","body":"2.3 内核组织 一个关键的设计问题是操作系统的哪些部分应该以管理模式运行。一种可能是整个操作系统都驻留在内核中,这样所有系统调用的实现都以管理模式运行。这种组织被称为宏内核(monolithic kernel)。 在这种组织中,整个操作系统以完全的硬件特权运行。这个组织很方便,因为操作系统设计者不必考虑操作系统的哪一部分不需要完全的硬件特权。此外,操作系统的不同部分更容易合作。例如,一个操作系统可能有一个可以由文件系统和虚拟内存系统共享的数据缓存区。 宏组织的一个缺点是操作系统不同部分之间的接口通常很复杂(正如我们将在本文的其余部分中看到的),因此操作系统开发人员很容易犯错误。在宏内核中,一个错误就可能是致命的,因为管理模式中的错误经常会导致内核失败。如果内核失败,计算机停止工作,因此所有应用程序也会失败。计算机必须重启才能再次使用。 为了降低内核出错的风险,操作系统设计者可以最大限度地减少在管理模式下运行的操作系统代码量,并在用户模式下执行大部分操作系统。这种内核组织被称为微内核(microkernel)。 图2.1说明了这种微内核设计。在图中,文件系统作为用户级进程运行。作为进程运行的操作系统服务被称为服务器。为了允许应用程序与文件服务器交互,内核提供了允许从一个用户态进程向另一个用户态进程发送消息的进程间通信机制。例如,如果像shell这样的应用程序想要读取或写入文件,它会向文件服务器发送消息并等待响应。 [!TIP|label:TIPS] 由于客户/服务器(Client/Server)模式,具有非常多的优点,故在单机微内核操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。 在微内核中,内核接口由一些用于启动应用程序、发送消息、访问设备硬件等的低级功能组成。这种组织允许内核相对简单,因为大多数操作系统驻留在用户级服务器中。 像大多数Unix操作系统一样,Xv6是作为一个宏内核实现的。因此,xv6内核接口对应于操作系统接口,内核实现了完整的操作系统。由于xv6不提供太多服务,它的内核可以比一些微内核还小,但从概念上说xv6属于宏内核 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:55:13 "},"tranlate_books/book-riscv-rev1/c2/s4.html":{"url":"tranlate_books/book-riscv-rev1/c2/s4.html","title":"2.4 代码:XV6架构篇","keywords":"","body":"2.4 代码(XV6架构篇) XV6的源代码位于kernel/子目录中,源代码按照模块化的概念划分为多个文件,图2.2列出了这些文件,模块间的接口都被定义在了def.h(kernel/defs.h)。 文件 描述 bio.c 文件系统的磁盘块缓存 console.c 连接到用户的键盘和屏幕 entry.S 首次启动指令 exec.c exec()系统调用 file.c 文件描述符支持 fs.c 文件系统 kalloc.c 物理页面分配器 kernelvec.S 处理来自内核的陷入指令以及计时器中断 log.c 文件系统日志记录以及崩溃修复 main.c 在启动过程中控制其他模块初始化 pipe.c 管道 plic.c RISC-V中断控制器 printf.c 格式化输出到控制台 proc.c 进程和调度 sleeplock.c Locks that yield the CPU spinlock.c Locks that don’t yield the CPU. start.c 早期机器模式启动代码 string.c 字符串和字节数组库 swtch.c 线程切换 syscall.c Dispatch system calls to handling function. sysfile.c 文件相关的系统调用 sysproc.c 进程相关的系统调用 trampoline.S 用于在用户和内核之间切换的汇编代码 trap.c 对陷入指令和中断进行处理并返回的C代码 uart.c 串口控制台设备驱动程序 virtio_disk.c 磁盘设备驱动程序 vm.c 管理页表和地址空间 ​ 图2.2:XV6内核源文件 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:50:27 "},"tranlate_books/book-riscv-rev1/c2/s5.html":{"url":"tranlate_books/book-riscv-rev1/c2/s5.html","title":"2.5 进程概述","keywords":"","body":"2.5 进程概述 Xv6(和其他Unix操作系统一样)中的隔离单位是一个进程。进程抽象防止一个进程破坏或监视另一个进程的内存、CPU、文件描述符等。它还防止一个进程破坏内核本身,这样一个进程就不能破坏内核的隔离机制。内核必须小心地实现进程抽象,因为一个有缺陷或恶意的应用程序可能会欺骗内核或硬件做坏事(例如,绕过隔离)。内核用来实现进程的机制包括用户/管理模式标志、地址空间和线程的时间切片。 为了帮助加强隔离,进程抽象给程序提供了一种错觉,即它有自己的专用机器。进程为程序提供了一个看起来像是私有内存系统或地址空间的东西,其他进程不能读取或写入。进程还为程序提供了看起来像是自己的CPU来执行程序的指令。 Xv6使用页表(由硬件实现)为每个进程提供自己的地址空间。RISC-V页表将虚拟地址(RISC-V指令操纵的地址)转换(或“映射”)为物理地址(CPU芯片发送到主存储器的地址)。 Xv6为每个进程维护一个单独的页表,定义了该进程的地址空间。如图2.3所示,以虚拟内存地址0开始的进程的用户内存地址空间。首先是指令,然后是全局变量,然后是栈区,最后是一个堆区域(用于malloc)以供进程根据需要进行扩展。有许多因素限制了进程地址空间的最大范围: RISC-V上的指针有64位宽;硬件在页表中查找虚拟地址时只使用低39位;xv6只使用这39位中的38位。因此,最大地址是2^38-1=0x3fffffffff,即MAXVA(定义在kernel/riscv.h:348)。在地址空间的顶部,xv6为trampoline(用于在用户和内核之间切换)和映射进程切换到内核的trapframe分别保留了一个页面,正如我们将在第4章中解释的那样。 xv6内核为每个进程维护许多状态片段,并将它们聚集到一个proc(kernel/proc.h:86)结构体中。一个进程最重要的内核状态片段是它的页表、内核栈区和运行状态。我们将使用符号p->xxx来引用proc结构体的元素;例如,p->pagetable是一个指向该进程页表的指针。 每个进程都有一个执行线程(或简称线程)来执行进程的指令。一个线程可以挂起并且稍后再恢复。为了透明地在进程之间切换,内核挂起当前运行的线程,并恢复另一个进程的线程。线程的大部分状态(本地变量、函数调用返回地址)存储在线程的栈区上。每个进程有两个栈区:一个用户栈区和一个内核栈区(p->kstack)。当进程执行用户指令时,只有它的用户栈在使用,它的内核栈是空的。当进程进入内核(由于系统调用或中断)时,内核代码在进程的内核堆栈上执行;当一个进程在内核中时,它的用户堆栈仍然包含保存的数据,只是不处于活动状态。进程的线程在主动使用它的用户栈和内核栈之间交替。内核栈是独立的(并且不受用户代码的保护),因此即使一个进程破坏了它的用户栈,内核依然可以正常运行。 一个进程可以通过执行RISC-V的ecall指令进行系统调用,该指令提升硬件特权级别,并将程序计数器(PC)更改为内核定义的入口点,入口点的代码切换到内核栈,执行实现系统调用的内核指令,当系统调用完成时,内核切换回用户栈,并通过调用sret指令返回用户空间,该指令降低了硬件特权级别,并在系统调用指令刚结束时恢复执行用户指令。进程的线程可以在内核中“阻塞”等待I/O,并在I/O完成后恢复到中断的位置。 p->state表明进程是已分配、就绪态、运行态、等待I/O中(阻塞态)还是退出。 p->pagetable以RISC-V硬件所期望的格式保存进程的页表。当在用户空间执行进程时,Xv6让分页硬件使用进程的p->pagetable。一个进程的页表也可以作为已分配给该进程用于存储进程内存的物理页面地址的记录。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:51:20 "},"tranlate_books/book-riscv-rev1/c2/s6.html":{"url":"tranlate_books/book-riscv-rev1/c2/s6.html","title":"2.6 代码:启动XV6和第一个进程","keywords":"","body":"2.6 代码(启动XV6和第一个进程) 为了使xv6更加具体,我们将概述内核如何启动和运行第一个进程。接下来的章节将更详细地描述本概述中显示的机制。 当RISC-V计算机上电时,它会初始化自己并运行一个存储在只读内存中的引导加载程序。引导加载程序将xv6内核加载到内存中。然后,在机器模式下,中央处理器从_entry (kernel/entry.S:6)开始运行xv6。Xv6启动时页式硬件(paging hardware)处于禁用模式:也就是说虚拟地址将直接映射到物理地址。 加载程序将xv6内核加载到物理地址为0x80000000的内存中。它将内核放在0x80000000而不是0x0的原因是地址范围0x0:0x80000000包含I/O设备。 _entry的指令设置了一个栈区,这样xv6就可以运行C代码。Xv6在start. c (kernel/start.c:11)文件中为初始栈stack0声明了空间。由于RISC-V上的栈是向下扩展的,所以_entry的代码将栈顶地址stack0+4096加载到栈顶指针寄存器sp中。现在内核有了栈区,_entry便调用C代码start(kernel/start.c:21)。 函数start执行一些仅在机器模式下允许的配置,然后切换到管理模式。RISC-V提供指令mret以进入管理模式,该指令最常用于将管理模式切换到机器模式的调用中返回。而start并非从这样的调用返回,而是执行以下操作:它在寄存器mstatus中将先前的运行模式改为管理模式,它通过将main函数的地址写入寄存器mepc将返回地址设为main,它通过向页表寄存器satp写入0来在管理模式下禁用虚拟地址转换,并将所有的中断和异常委托给管理模式。 在进入管理模式之前,start还要执行另一项任务:对时钟芯片进行编程以产生计时器中断。清理完这些“家务”后,start通过调用mret“返回”到管理模式。这将导致程序计数器(PC)的值更改为main(kernel/main.c:11)函数地址。 [!TIP|label:TIPS] 注:mret执行返回,返回到先前状态,由于start函数将前模式改为了管理模式且返回地址改为了main,因此mret将返回到main函数,并以管理模式运行 在main(kernel/main.c:11)初始化几个设备和子系统后,便通过调用userinit (kernel/proc.c:212)创建第一个进程,第一个进程执行一个用RISC-V程序集写的小型程序:initcode. S (user/initcode.S:1),它通过调用exec系统调用重新进入内核。正如我们在第1章中看到的,exec用一个新程序(本例中为 /init)替换当前进程的内存和寄存器。一旦内核完成exec,它就返回/init进程中的用户空间。如果需要,init(user/init.c:15)将创建一个新的控制台设备文件,然后以文件描述符0、1和2打开它。然后它在控制台上启动一个shell。系统就这样启动了。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:53:20 "},"tranlate_books/book-riscv-rev1/c2/s7.html":{"url":"tranlate_books/book-riscv-rev1/c2/s7.html","title":"2.7 真实世界","keywords":"","body":"2.7 真实世界 在现实中,人们可以同时看到宏内核和微内核。许多Unix都采用宏内核。例如,尽管Linux的一些操作系统功能作为用户级服务器运行(例如窗口系统),但它是宏内核架构。而如L4、Minix和QNX的内核都被组织成一个带有多个服务器的微内核,微内核在嵌入式设备中得到了广泛的应用。 大多数操作系统都采用了进程的概念,并且大多数操作系统的进程看起来与xv6相似。然而,现代操作系统支持在一个进程中创建多个线程,使得一个进程能够利用多个处理器。在一个进程中支持多个线程涉及许多XV6缺乏的机制,包括潜在的接口更改(例如,Linux下fork的变体clone),以控制进程线程共享哪些内容。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:55:46 "},"tranlate_books/book-riscv-rev1/c2/s8.html":{"url":"tranlate_books/book-riscv-rev1/c2/s8.html","title":"2.8 练习","keywords":"","body":"2.8 练习 你可以使用gdb来观察最开始的“内核空间到用户空间”的转换。 请运行make qemu-gdb(如果想以单线程方式,则输入make CPUS=1 qemu-gdb)。 打开另一个窗口,并在相同的目录下运行gdb(注:应当使用riscv64-linux-gnu-gdb)。 键入gdb命令break*0x3ffffff10e,这将在内核中的sret指令处设置一个断点,该指令从内核空间跳入用户空间。 键入gdb命令continue。gdb应当会停留在即将执行sret的断点处。 键入stepi。gdb现在应当会指示目前在地址为0x0处执行,该地址就是以initcode.S开始的用户空间的起始地址 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 09:56:24 "},"tranlate_books/book-riscv-rev1/c3/s0.html":{"url":"tranlate_books/book-riscv-rev1/c3/s0.html","title":"第三章 页表","keywords":"","body":"第三章 页表 页表是操作系统为每个进程提供自己的私有地址空间和内存的机制。页表决定了内存地址的含义,以及物理内存的哪些部分可以访问。它们允许xv6隔离不同进程的地址空间,并将它们复用到单个物理内存上。页表还提供了一层抽象(a level of indirection),这允许xv6执行一些特殊操作:在若干个地址空间中映射相同的内存(a trampoline page),并用一个未映射的页面保护内核和用户栈区。本章的其余部分解释了RISC-V硬件提供的页表以及xv6如何使用它们。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:43:11 "},"tranlate_books/book-riscv-rev1/c3/s1.html":{"url":"tranlate_books/book-riscv-rev1/c3/s1.html","title":"3.1 页式硬件","keywords":"","body":"3.1 页式硬件 提醒一下,RISC-V指令(用户和内核指令都包括)使用的是虚拟地址。而机器的RAM或物理内存是由物理地址索引的。RISC-V页表硬件通过将每个虚拟地址映射到物理地址来为这两种地址建立联系。 XV6基于Sv39 RISC-V运行,这意味着它只使用64位虚拟地址的低39位;而高25位不使用。在这种Sv39配置中,RISC-V页表在逻辑上是一个由$$2^{27}$$(134,217,728)个页表条目(Page Table Entries/PTE)组成的数组。每个PTE包含一个44位的物理页码(Physical Page Number/PPN)和一些标志。页式硬件通过使用虚拟地址39位中的前27位索引页表,以找到该虚拟地址对应的一个PTE,然后生成一个56位的物理地址,其前44位来自PTE中的PPN,其后12位来自原始虚拟地址。图3.1显示了这个过程,页表的逻辑视图是一个简单的PTE数组(参见图3.2进行更详细的了解)。页表通过逻辑到物理地址的转换给了操作系统控制权,转换的粒度是一个个对齐的物理块(一个物理块包含$$2^{12}=4096$$字节),这样的块称为页面。 在Sv39 RISC-V中,虚拟地址的前25位不用于转换;将来RISC-V可能会使用那些位来定义更多级别的转换。另外物理地址也是有增长空间的: PTE格式中有空间让物理地址长度再增长10个比特位。 如图3.2所示,实际的转换分三个步骤进行。页表以三级的树型结构存储在物理内存中。该树的根是一个4096字节的页表页,其中包含512个PTE,其中包含该树下一级页表页的物理地址。这些页中的每一个都包含该树最后一级的512个PTE(也就是说每个PTE占8个字节,正如图3.2最下面所描绘的)。分页硬件使用27位中的前9位在根页表页面中选择PTE,中间9位在树的下一级页表页面中选择PTE,最后9位选择最终的PTE。 如果转换地址所需的三个PTE中的任何一个不存在,页式硬件就会引发页面故障异常,并让内核来处理该异常(参见第4章)。这种三级结构允许页表在大范围虚拟地址没有映射的情况下忽略整个页表页面。 每个PTE包含标志位,这些标志位告诉分页硬件允许如何使用关联的虚拟地址。PTE_V指示PTE是否存在:如果它没有被设置,对页面的引用会导致异常(即不允许)。PTE_R控制是否允许指令读取到页面。PTE_W控制是否允许指令写入到页面。PTE_X控制CPU是否可以将页面内容解释为指令并执行它们。PTE_U控制用户模式下的指令是否被允许访问页面;如果没有设置PTE_U,PTE只能在管理模式下使用。图3.2显示了它是如何工作的。标志和所有其他与页面硬件相关的结构在(kernel/riscv.h)中定义。 为了告诉硬件使用页表,内核必须将根页表页的物理地址写入到satp寄存器中(satp的作用是存放根页表页在物理内存中的地址)。每个CPU都有自己的satp。一个CPU将使用自己的satp指向的页表转换后续指令生成的所有地址。每个CPU都有自己的satp,这样不同的CPU就可以运行不同的进程,每个CPU都有自己的页表描述的私有地址空间。 关于术语的一些注意事项。物理内存是指DRAM中的存储单元。物理内存以一个字节为单位划为地址,称为物理地址。指令只使用虚拟地址,页式硬件将其转换为物理地址,然后将其发送到DRAM硬件来进行读写。与物理内存和虚拟地址不同,虚拟内存不是物理对象,而是指内核提供的管理物理内存和虚拟地址的抽象和机制的集合。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:44:52 "},"tranlate_books/book-riscv-rev1/c3/s2.html":{"url":"tranlate_books/book-riscv-rev1/c3/s2.html","title":"3.2 内核地址空间","keywords":"","body":"3.2 内核地址空间 Xv6为每个进程维护一个页表,用以描述每个进程的用户地址空间,外加一个单独描述内核地址空间的页表。内核配置其地址空间的布局,以允许自己以可预测的虚拟地址访问物理内存和各种硬件资源。图3.3显示了这种布局如何将内核虚拟地址映射到物理地址。文件(kernel/memlayout.h) 声明了xv6内核内存布局的常量。 QEMU模拟了一台计算机,它包括从物理地址0x80000000开始并至少到0x86400000结束的RAM(物理内存),xv6称结束地址为PHYSTOP。QEMU模拟还包括I/O设备,如磁盘接口。QEMU将设备接口作为内存映射控制寄存器暴露给软件,这些寄存器位于物理地址空间0x80000000以下。内核可以通过读取/写入这些特殊的物理地址与设备交互;这种读取和写入与设备硬件而不是RAM通信。第4章解释了xv6如何与设备进行交互。 内核使用“直接映射”获取内存和内存映射设备寄存器;也就是说,将资源映射到等于物理地址的虚拟地址。例如,内核本身在虚拟地址空间和物理内存中都位于KERNBASE``=0x80000000。直接映射简化了读取或写入物理内存的内核代码。例如,当fork为子进程分配用户内存时,分配器返回该内存的物理地址;fork在将父进程的用户内存复制到子进程时直接将该地址用作虚拟地址。 有几个内核虚拟地址不是直接映射: 蹦床页面(trampoline page)。它映射在虚拟地址空间的顶部;用户页表具有相同的映射。第4章讨论了蹦床页面的作用,但我们在这里看到了一个有趣的页表用例;一个物理页面(持有蹦床代码)在内核的虚拟地址空间中映射了两次:一次在虚拟地址空间的顶部,一次直接映射。 内核栈页面。每个进程都有自己的内核栈,它将映射到偏高一些的地址,这样xv6在它之下就可以留下一个未映射的保护页(guard page)。保护页的PTE是无效的(也就是说PTE_V没有设置),所以如果内核溢出内核栈就会引发一个异常,内核触发panic。如果没有保护页,栈溢出将会覆盖其他内核内存,引发错误操作。恐慌崩溃(panic crash)是更可取的方案。(注:Guard page不会浪费物理内存,它只是占据了虚拟地址空间的一段靠后的地址,但并不映射到物理地址空间。) 虽然内核通过高地址内存映射使用内核栈,是它们也可以通过直接映射的地址进入内核。另一种设计可能只有直接映射,并在直接映射的地址使用栈。然而,在这种安排中,提供保护页将涉及取消映射虚拟地址,否则虚拟地址将引用物理内存,这将很难使用。 内核在权限PTE_R和PTE_X下映射蹦床页面和内核文本页面。内核从这些页面读取和执行指令。内核在权限PTE_R和PTE_W下映射其他页面,这样它就可以读写那些页面中的内存。对于保护页面的映射是无效的。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:48:06 "},"tranlate_books/book-riscv-rev1/c3/s3.html":{"url":"tranlate_books/book-riscv-rev1/c3/s3.html","title":"3.3 代码:创建一个地址空间","keywords":"","body":"3.3 代码:创建一个地址空间 大多数用于操作地址空间和页表的xv6代码都写在vm.c (kernel/vm.c:1)中。其核心数据结构是pagetable_t,它实际上是指向RISC-V根页表页的指针;一个pagetable_t可以是内核页表,也可以是一个进程页表。最核心的函数是walk和mappages,前者为虚拟地址找到PTE,后者为新映射装载PTE。名称以kvm开头的函数操作内核页表;以uvm开头的函数操作用户页表;其他函数用于二者。copyout和copyin复制数据到用户虚拟地址或从用户虚拟地址复制数据,这些虚拟地址作为系统调用参数提供; 由于它们需要显式地翻译这些地址,以便找到相应的物理内存,故将它们写在vm.c中。 在按序启动的前期,main调用kvminit (kernel/vm.c:22) 来创建内核的页表。这个调用发生在xv6使能RISC-V分页之前,所以地址直接引用物理内存。kvminit首先分配一个物理内存页面来保存根页表页。然后它调用kvmmap来装载内核需要的转换。转换包括内核的指令和数据、物理内存的上限是PHYSTOP,并包括实际上是设备的内存。 kvmmap(kernel/vm.c:118)调用mappages(kernel/vm.c:149),mappages将范围虚拟地址到同等范围物理地址的映射装载到一个页表中。它以页面大小为间隔,为范围内的每个虚拟地址单独执行此操作。对于要映射的每个虚拟地址,mappages调用walk来查找该地址的PTE地址。然后,它初始化PTE以保存相关的物理页号、所需权限(PTE_W、PTE_X和/或PTE_R)以及用于标记PTE有效的PTE_V(kernel/vm.c:161)。 在查找PTE中的虚拟地址(参见图3.2)时,walk(kernel/vm.c:72)模仿RISC-V分页硬件。walk一次从3级页表中获取9个比特位。它使用上一级的9位虚拟地址来查找下一级页表或最终页面的PTE (kernel/vm.c:78)。如果PTE无效,则所需的页面还没有分配;如果设置了alloc参数,walk就会分配一个新的页表页面,并将其物理地址放在PTE中。它返回树中最低一级的PTE地址(kernel/vm.c:88)。 上面的代码依赖于直接映射到内核虚拟地址空间中的物理内存。例如,当walk降低页表的级别时,它从PTE (kernel/vm.c:80)中提取下一级页表的(物理)地址,然后使用该地址作为虚拟地址来获取下一级的PTE (kernel/vm.c:78)。 main调用kvminithart (kernel/vm.c:53)来安装内核页表。它将根页表页的物理地址写入寄存器satp。之后,CPU将使用内核页表转换地址。由于内核使用标识映射,下一条指令的当前虚拟地址将映射到正确的物理内存地址。 main中调用的procinit (kernel/proc.c:26)为每个进程分配一个内核栈。它将每个栈映射到KSTACK生成的虚拟地址,这为无效的栈保护页面留下了空间。kvmmap将映射的PTE添加到内核页表中,对kvminithart的调用将内核页表重新加载到satp中,以便硬件知道新的PTE。 每个RISC-V CPU都将页表条目缓存在转译后备缓冲器(快表/TLB)中,当xv6更改页表时,它必须告诉CPU使相应的缓存TLB条目无效。如果没有这么做,那么在某个时候TLB可能会使用旧的缓存映射,指向一个在此期间已分配给另一个进程的物理页面,这样会导致一个进程可能能够在其他进程的内存上涂鸦。RISC-V有一个指令sfence.vma,用于刷新当前CPU的TLB。xv6在重新加载satp寄存器后,在kvminithart中执行sfence.vma,并在返回用户空间之前在用于切换至一个用户页表的trampoline代码中执行sfence.vma (kernel/trampoline.S:79)。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:44:27 "},"tranlate_books/book-riscv-rev1/c3/s4.html":{"url":"tranlate_books/book-riscv-rev1/c3/s4.html","title":"3.4 物理内存分配","keywords":"","body":"3.4 物理内存分配 内核必须在运行时为页表、用户内存、内核栈和管道缓冲区分配和释放物理内存。xv6使用内核末尾到PHYSTOP之间的物理内存进行运行时分配。它一次分配和释放整个4096字节的页面。它使用链表的数据结构将空闲页面记录下来。分配时需要从链表中删除页面;释放时需要将释放的页面添加到链表中。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:49:09 "},"tranlate_books/book-riscv-rev1/c3/s5.html":{"url":"tranlate_books/book-riscv-rev1/c3/s5.html","title":"3.5 代码:物理内存分配","keywords":"","body":"3.5 代码(物理内存分配) 分配器(allocator)位于kalloc.c(kernel/kalloc.c:1)中。分配器的数据结构是可供分配的物理内存页的空闲列表。每个空闲页的列表元素是一个struct run(kernel/kalloc.c:17)。分配器从哪里获得内存来填充该数据结构呢?它将每个空闲页的run结构存储在空闲页本身,因为在那里没有存储其他东西。空闲列表受到自旋锁(spin lock)的保护(kernel/kalloc.c:21-24)。列表和锁被封装在一个结构体中,以明确锁在结构体中保护的字段。现在,忽略锁以及对acquire和release的调用;第6章将详细查看有关锁的细节。 [!TIP] 对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,\"自旋\"一词就是因此而得名。 自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 main函数调用kinit(kernel/kalloc.c:27)来初始化分配器。kinit初始化空闲列表以保存从内核结束到PHYSTOP之间的每一页。xv6应该通过解析硬件提供的配置信息来确定有多少物理内存可用。然而,xv6假设机器有128兆字节的RAM。kinit调用freerange将内存添加到空闲列表中,在freerange中每页都会调用kfree。PTE只能引用在4096字节边界上对齐的物理地址(是4096的倍数),所以freerange使用PGROUNDUP来确保它只释放对齐的物理地址。分配器开始时没有内存;这些对kfree的调用给了它一些管理空间。 分配器有时将地址视为整数,以便对其执行算术运算(例如,在freerange中遍历所有页面),有时将地址用作读写内存的指针(例如,操纵存储在每个页面中的run结构);这种地址的双重用途是分配器代码充满C类型转换的主要原因。另一个原因是释放和分配从本质上改变了内存的类型。 函数kfree (kernel/kalloc.c:47)首先将内存中的每一个字节设置为1。这将导致使用释放后的内存的代码(使用“悬空引用”)读取到垃圾信息而不是旧的有效内容,从而希望这样的代码更快崩溃。然后kfree将页面前置(头插法)到空闲列表中:它将pa转换为一个指向struct run的指针r,在r->next中记录空闲列表的旧开始,并将空闲列表设置为等于r。 kalloc删除并返回空闲列表中的第一个元素。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:50:40 "},"tranlate_books/book-riscv-rev1/c3/s6.html":{"url":"tranlate_books/book-riscv-rev1/c3/s6.html","title":"3.6 进程地址空间","keywords":"","body":"3.6 进程地址空间 每个进程都有一个单独的页表,当xv6在进程之间切换时,也会更改页表。如图2.3所示,一个进程的用户内存从虚拟地址零开始,可以增长到MAXVA (kernel/riscv.h:348),原则上允许一个进程内存寻址空间为256G。 当进程向xv6请求更多的用户内存时,xv6首先使用kalloc来分配物理页面。然后,它将PTE添加到进程的页表中,指向新的物理页面。Xv6在这些PTE中设置PTE_W、PTE_X、PTE_R、PTE_U和PTE_V标志。大多数进程不使用整个用户地址空间;xv6在未使用的PTE中留空PTE_V。 我们在这里看到了一些使用页表的很好的例子。首先,不同进程的页表将用户地址转换为物理内存的不同页面,这样每个进程都拥有私有内存。第二,每个进程看到的自己的内存空间都是以0地址起始的连续虚拟地址,而进程的物理内存可以是非连续的。第三,内核在用户地址空间的顶部映射一个带有蹦床(trampoline)代码的页面,这样在所有地址空间都可以看到一个单独的物理内存页面。 图3.4更详细地显示了xv6中执行态进程的用户内存布局。栈是单独一个页面,显示的是由exec创建后的初始内容。包含命令行参数的字符串以及指向它们的指针数组位于栈的最顶部。再往下是允许程序在main处开始启动的值(即main的地址、argc、argv),这些值产生的效果就像刚刚调用了main(argc, argv)一样。 为了检测用户栈是否溢出了所分配栈内存,xv6在栈正下方放置了一个无效的保护页(guard page)。如果用户栈溢出并且进程试图使用栈下方的地址,那么由于映射无效(PTE_V为0)硬件将生成一个页面故障异常。当用户栈溢出时,实际的操作系统可能会自动为其分配更多内存。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:52:21 "},"tranlate_books/book-riscv-rev1/c3/s7.html":{"url":"tranlate_books/book-riscv-rev1/c3/s7.html","title":"3.7 代码:sbrk","keywords":"","body":"3.7 代码:sbrk sbrk是一个用于进程减少或增长其内存的系统调用。这个系统调用由函数growproc实现(kernel/proc.c:239)。growproc根据n是正的还是负的调用uvmalloc或uvmdealloc。uvmalloc(kernel/vm.c:229)用kalloc分配物理内存,并用mappages将PTE添加到用户页表中。uvmdealloc调用uvmunmap(kernel/vm.c:174),uvmunmap使用walk来查找对应的PTE,并使用kfree来释放PTE引用的物理内存。 XV6使用进程的页表,不仅是告诉硬件如何映射用户虚拟地址,也是明晰哪一个物理页面已经被分配给该进程的唯一记录。这就是为什么释放用户内存(在uvmunmap中)需要检查用户页表的原因。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:52:54 "},"tranlate_books/book-riscv-rev1/c3/s8.html":{"url":"tranlate_books/book-riscv-rev1/c3/s8.html","title":"3.8 代码:exec","keywords":"","body":"3.8 代码:exec exec是创建地址空间的用户部分的系统调用。它使用一个存储在文件系统中的文件初始化地址空间的用户部分。exec(kernel/exec.c:13)使用namei (kernel/exec.c:26)打开指定的二进制path,这在第8章中有解释。然后,它读取ELF头。Xv6应用程序以广泛使用的ELF格式描述,定义于(kernel/elf.h)。ELF二进制文件由ELF头、struct elfhdr(kernel/elf.h:6),后面一系列的程序节头(section headers)、struct proghdr(kernel/elf.h:25)组成。每个proghdr描述程序中必须加载到内存中的一节(section);xv6程序只有一个程序节头,但是其他系统对于指令和数据部分可能各有单独的节。 [!NOTE] ELF文件格式:在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。ELF是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。 第一步是快速检查文件可能包含ELF二进制的文件。ELF二进制文件以四个字节的“幻数”0x7F、“E”、“L”、“F”或ELF_MAGIC开始(kernel/elf.h:3)。如果ELF头有正确的幻数,exec假设二进制文件格式良好。 exec使用proc_pagetable (kernel/exec.c:38)分配一个没有用户映射的新页表,使用uvmalloc (kernel/exec.c:52)为每个ELF段分配内存,并使用loadseg (kernel/exec.c:10)将每个段加载到内存中。loadseg使用walkaddr找到分配内存的物理地址,在该地址写入ELF段的每一页,并使用readi从文件中读取。 使用exec创建的第一个用户程序/init的程序节标题如下: # objdump -p _init user/_init: file format elf64-littleriscv Program Header: LOAD off 0x00000000000000b0 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3 filesz 0x0000000000000840 memsz 0x0000000000000858 flags rwx STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4 filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- 程序节头的filesz可能小于memsz,这表明它们之间的间隙应该用零来填充(对于C全局变量),而不是从文件中读取。对于/init,filesz是2112字节,memsz是2136字节,因此uvmalloc分配了足够的物理内存来保存2136字节,但只从文件/init中读取2112字节。 现在exec分配并初始化用户栈。它只分配一个栈页面。exec一次将参数中的一个字符串复制到栈顶,并在ustack中记录指向它们的指针。它在传递给main的argv列表的末尾放置一个空指针。ustack中的前三个条目是伪返回程序计数器(fake return program counter)、argc和argv指针。 exec在栈页面的正下方放置了一个不可访问的页面,这样试图使用超过一个页面的程序就会出错。这个不可访问的页面还允许exec处理过大的参数;在这种情况下,被exec用来将参数复制到栈的函数copyout(kernel/vm.c:355) 将会注意到目标页面不可访问,并返回-1。 在准备新内存映像的过程中,如果exec检测到像无效程序段这样的错误,它会跳到标签bad,释放新映像,并返回-1。exec必须等待系统调用会成功后再释放旧映像:因为如果旧映像消失了,系统调用将无法返回-1。exec中唯一的错误情况发生在映像的创建过程中。一旦映像完成,exec就可以提交到新的页表(kernel/exec.c:113)并释放旧的页表(kernel/exec.c:117)。 exec将ELF文件中的字节加载到ELF文件指定地址的内存中。用户或进程可以将他们想要的任何地址放入ELF文件中。因此exec是有风险的,因为ELF文件中的地址可能会意外或故意的引用内核。对一个设计拙劣的内核来说,后果可能是一次崩溃,甚至是内核的隔离机制被恶意破坏(即安全漏洞)。xv6执行许多检查来避免这些风险。例如,if(ph.vaddr + ph.memsz 检查总和是否溢出64位整数,危险在于用户可能会构造一个ELF二进制文件,其中的php. vaddr指向用户选择的地址,而php. memsz足够大,使总和溢出到0x1000,这看起来像是一个有效的值。在xv6的旧版本中,用户地址空间也包含内核(但在用户模式下不可读写),用户可以选择一个与内核内存相对应的地址,从而将ELF二进制文件中的数据复制到内核中。在xv6的RISC-V版本中,这是不可能的,因为内核有自己独立的页表;loadseg加载到进程的页表中,而不是内核的页表中。 内核开发人员很容易省略关键的检查,而现实世界中的内核有很长一段丢失检查的历史,用户程序可以利用这些检查的缺失来获得内核特权。xv6可能没有完成验证提供给内核的用户级数据的全部工作,恶意用户程序可以利用这些数据来绕过xv6的隔离。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:54:29 "},"tranlate_books/book-riscv-rev1/c3/s9.html":{"url":"tranlate_books/book-riscv-rev1/c3/s9.html","title":"3.9 真实世界","keywords":"","body":"3.9 真实世界 像大多数操作系统一样,xv6使用分页硬件进行内存保护和映射。大多数操作系统通过结合分页和页面故障异常使用分页,比xv6复杂得多,我们将在第4章讨论这一点。 内核通过使用虚拟地址和物理地址之间的直接映射,以及假设在地址0x8000000处有物理RAM (内核期望加载的位置) ,Xv6得到了简化。这在QEMU中很有效,但在实际硬件上却是个坏主意;实际硬件将RAM和设备置于不可预测的物理地址,因此(例如)在xv6期望能够存储内核的0x8000000地址处可能没有RAM。更严肃的内核设计利用页表将任意硬件物理内存布局转换为可预测的内核虚拟地址布局。 RISC-V支持物理地址级别的保护,但xv6没有使用这个特性。 在有大量内存的机器上,使用RISC-V对“超级页面”的支持可能很有意义。而当物理内存较小时,小页面更有用,这样可以以精细的粒度向磁盘分配和输出页面。例如,如果一个程序只使用8KB内存,给它一个4MB的物理内存超级页面是浪费。在有大量内存的机器上,较大的页面是有意义的,并且可以减少页表操作的开销。 xv6内核缺少一个类似malloc可以为小对象提供内存的分配器,这使得内核无法使用需要动态分配的复杂数据结构。 内存分配是一个长期的热门话题,基本问题是有效使用有限的内存并为将来的未知请求做好准备。今天,人们更关心速度而不是空间效率。此外,一个更复杂的内核可能会分配许多不同大小的小块,而不是(如xv6中)只有4096字节的块;一个真正的内核分配器需要处理小分配和大分配。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:55:09 "},"tranlate_books/book-riscv-rev1/c3/s10.html":{"url":"tranlate_books/book-riscv-rev1/c3/s10.html","title":"3.10 练习","keywords":"","body":"3.10 练习 分析RISC-V的设备树以找到计算机拥有的物理内存量。 编写一个用户程序,通过调用sbrk(1)为其地址空间增加一个字节。运行该程序并研究调用sbrk之前和调用sbrk之后该程序的页表。内核分配了多少空间?新内存的PTE包含什么? 修改xv6来为内核使用超级页面。 修改xv6,这样当用户程序解引用空指针时会收到一个异常。也就是说,修改xv6使得虚拟地址0不被用户程序映射。 传统上,exec的Unix实现包括对shell脚本的特殊处理。如果要执行的文件以文本#!开头, 那么第一行将被视为解释此文件的程序来运行。例如,如果调用exec来运行myprog arg1,而myprog的第一行是#!/interp,那么exec将使用命令行/interp myprog arg1运行 /interp。在xv6中实现对该约定的支持。 为内核实现地址空间随机化 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:55:38 "},"tranlate_books/book-riscv-rev1/c4/s0.html":{"url":"tranlate_books/book-riscv-rev1/c4/s0.html","title":"第四章 陷阱指令和系统调用","keywords":"","body":"第四章 陷阱指令和系统调用 有三种事件会导致中央处理器搁置普通指令的执行,并强制将控制权转移到处理该事件的特殊代码上。一种情况是系统调用,当用户程序执行ecall指令要求内核为其做些什么时;另一种情况是异常:(用户或内核)指令做了一些非法的事情,例如除以零或使用无效的虚拟地址;第三种情况是设备中断,一个设备,例如当磁盘硬件完成读或写请求时,向系统表明它需要被关注。 本书使用陷阱(trap)作为这些情况的通用术语。通常,陷阱发生时正在执行的任何代码都需要稍后恢复,并且不需要意识到发生了任何特殊的事情。也就是说,我们经常希望陷阱是透明的;这对于中断尤其重要,中断代码通常难以预料。通常的顺序是陷阱强制将控制权转移到内核;内核保存寄存器和其他状态,以便可以恢复执行;内核执行适当的处理程序代码(例如,系统调用接口或设备驱动程序);内核恢复保存的状态并从陷阱中返回;原始代码从它停止的地方恢复。 xv6内核处理所有陷阱。这对于系统调用来说是顺理成章的。由于隔离性要求用户进程不直接使用设备,而且只有内核具有设备处理所需的状态,因而对中断也是有意义的。因为xv6通过杀死违规程序来响应用户空间中的所有异常,它也对异常有意义。 Xv6陷阱处理分为四个阶段: RISC-V CPU采取的硬件操作、为内核C代码执行而准备的汇编程序集“向量”、决定如何处理陷阱的C陷阱处理程序以及系统调用或设备驱动程序服务例程。虽然三种陷阱类型之间的共性表明内核可以用一个代码路径处理所有陷阱,但对于三种不同的情况:来自用户空间的陷阱、来自内核空间的陷阱和定时器中断,分别使用单独的程序集向量和C陷阱处理程序更加方便。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:37:46 "},"tranlate_books/book-riscv-rev1/c4/s1.html":{"url":"tranlate_books/book-riscv-rev1/c4/s1.html","title":"4.1 RISC-V陷入机制","keywords":"","body":"4.1 RISC-V陷入机制 每个RISC-V CPU都有一组控制寄存器,内核通过向这些寄存器写入内容来告诉CPU如何处理陷阱,内核可以读取这些寄存器来明确已经发生的陷阱。RISC-V文档包含了完整的内容。riscv.h(kernel/riscv.h:1)包含在xv6中使用到的内容的定义。以下是最重要的一些寄存器概述: stvec:内核在这里写入其陷阱处理程序的地址;RISC-V跳转到这里处理陷阱。 sepc:当发生陷阱时,RISC-V会在这里保存程序计数器pc(因为pc会被stvec覆盖)。sret(从陷阱返回)指令会将sepc复制到pc。内核可以写入sepc来控制sret的去向。 scause: RISC-V在这里放置一个描述陷阱原因的数字。 sscratch:内核在这里放置了一个值,这个值在陷阱处理程序一开始就会派上用场。 sstatus:其中的SIE位控制设备中断是否启用。如果内核清空SIE,RISC-V将推迟设备中断,直到内核重新设置SIE。SPP位指示陷阱是来自用户模式还是管理模式,并控制sret返回的模式。 上述寄存器都用于在管理模式下处理陷阱,在用户模式下不能读取或写入。在机器模式下处理陷阱有一组等效的控制寄存器,xv6仅在计时器中断的特殊情况下使用它们。 多核芯片上的每个CPU都有自己的这些寄存器集,并且在任何给定时间都可能有多个CPU在处理陷阱。 当需要强制执行陷阱时,RISC-V硬件对所有陷阱类型(计时器中断除外)执行以下操作: 如果陷阱是设备中断,并且状态SIE位被清空,则不执行以下任何操作。 清除SIE以禁用中断。 将pc复制到sepc。 将当前模式(用户或管理)保存在状态的SPP位中。 设置scause以反映产生陷阱的原因。 将模式设置为管理模式。 将stvec复制到pc。 在新的pc上开始执行。 请注意,CPU不会切换到内核页表,不会切换到内核栈,也不会保存除pc之外的任何寄存器。内核软件必须执行这些任务。CPU在陷阱期间执行尽可能少量工作的一个原因是为软件提供灵活性;例如,一些操作系统在某些情况下不需要页表切换,这可以提高性能。 你可能想知道CPU硬件的陷阱处理顺序是否可以进一步简化。例如,假设CPU不切换程序计数器。那么陷阱可以在仍然运行用户指令的情况下切换到管理模式。但因此这些用户指令可以打破用户/内核的隔离机制,例如通过修改satp寄存器来指向允许访问所有物理内存的页表。因此,CPU使用专门的寄存器切换到内核指定的指令地址,即stvec,是很重要的。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:38:22 "},"tranlate_books/book-riscv-rev1/c4/s2.html":{"url":"tranlate_books/book-riscv-rev1/c4/s2.html","title":"4.2 从用户空间陷入","keywords":"","body":"4.2 从用户空间陷入 如果用户程序发出系统调用(ecall指令),或者做了一些非法的事情,或者设备中断,那么在用户空间中执行时就可能会产生陷阱。来自用户空间的陷阱的高级路径是uservec (kernel/trampoline.S:16),然后是usertrap (kernel/trap.c:37);返回时,先是usertrapret (kernel/trap.c:90),然后是userret (kernel/trampoline.S:16)。 来自用户代码的陷阱比来自内核的陷阱更具挑战性,因为satp指向不映射内核的用户页表,栈指针可能包含无效甚至恶意的值。 由于RISC-V硬件在陷阱期间不会切换页表,所以用户页表必须包括uservec(stvec指向的陷阱向量指令)的映射。uservec必须切换satp以指向内核页表;为了在切换后继续执行指令,uservec必须在内核页表中与用户页表中映射相同的地址。 xv6使用包含uservec的蹦床页面(trampoline page)来满足这些约束。xv6将蹦床页面映射到内核页表和每个用户页表中相同的虚拟地址。这个虚拟地址是TRAMPOLINE(如图2.3和图3.3所示)。蹦床内容在trampoline.S中设置,并且(当执行用户代码时)stvec设置为uservec (kernel/trampoline.S:16)。 当uservec启动时,所有32个寄存器都包含被中断代码所拥有的值。但是uservec需要能够修改一些寄存器,以便设置satp并生成保存寄存器的地址。RISC-V以sscratch寄存器的形式提供了帮助。uservec开始时的csrrw指令交换了a0和sscratch的内容。现在用户代码的a0被保存了;uservec有一个寄存器(a0)可以使用;a0包含内核以前放在sscratch中的值。 uservec的下一个任务是保存用户寄存器。在进入用户空间之前,内核先前将sscratch设置为指向一个每个进程的陷阱帧,该帧(除此之外)具有保存所有用户寄存器的空间(kernel/proc.h:44)。因为satp仍然指向用户页表,所以uservec需要将陷阱帧映射到用户地址空间中。每当创建一个进程时,xv6就为该进程的陷阱帧分配一个页面,并安排它始终映射在用户虚拟地址TRAPFRAME,该地址就在TRAMPOLINE下面。尽管使用物理地址,该进程的p->trapframe仍指向陷阱帧,这样内核就可以通过内核页表使用它。 因此在交换a0和sscratch之后,a0持有指向当前进程陷阱帧的指针。uservec现在保存那里的所有用户寄存器,包括从sscratch读取的用户的a0。 陷阱帧包含指向当前进程内核栈的指针、当前CPU的hartid、usertrap的地址和内核页表的地址。uservec取得这些值,将satp切换到内核页表,并调用usertrap。 usertrap的任务是确定陷阱的原因,处理并返回(kernel/trap.c:37)。如上所述,它首先改变stvec,这样内核中的陷阱将由kernelvec处理。它保存了sepc(保存的用户程序计数器),再次保存是因为usertrap中可能有一个进程切换,可能导致sepc被覆盖。如果陷阱来自系统调用,syscall会处理它;如果是设备中断,devintr会处理;否则它是一个异常,内核会杀死错误进程。系统调用路径在保存的用户程序计数器pc上加4,因为在系统调用的情况下,RISC-V会留下指向ecall指令的程序指针(返回后需要执行ecall之后的下一条指令)。在退出的过程中,usertrap检查进程是已经被杀死还是应该让出CPU(如果这个陷阱是计时器中断)。 返回用户空间的第一步是调用usertrapret (kernel/trap.c:90)。该函数设置RISC-V控制寄存器,为将来来自用户空间的陷阱做准备。这涉及到将stvec更改为指向uservec,准备uservec所依赖的陷阱帧字段,并将sepc设置为之前保存的用户程序计数器。最后,usertrapret在用户和内核页表中都映射的蹦床页面上调用userret;原因是userret中的汇编代码会切换页表。 usertrapret对userret的调用将指针传递到a0中的进程用户页表和a1中的TRAPFRAME (kernel/trampoline.S:88)。userret将satp切换到进程的用户页表。回想一下,用户页表同时映射蹦床页面和TRAPFRAME,但没有从内核映射其他内容。同样,蹦床页面映射在用户和内核页表中的同一个虚拟地址上的事实允许用户在更改satp后继续执行。userret复制陷阱帧保存的用户a0到sscratch,为以后与TRAPFRAME的交换做准备。从此刻开始,userret可以使用的唯一数据是寄存器内容和陷阱帧的内容。下一个userret从陷阱帧中恢复保存的用户寄存器,做a0与sscratch的最后一次交换来恢复用户a0并为下一个陷阱保存TRAPFRAME,并使用sret返回用户空间。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:38:14 "},"tranlate_books/book-riscv-rev1/c4/s3.html":{"url":"tranlate_books/book-riscv-rev1/c4/s3.html","title":"4.3 代码:调用系统调用","keywords":"","body":"4.3 代码:调用系统调用 第2章以initcode.S调用exec系统调用(user/initcode.S:11)结束。让我们看看用户调用是如何在内核中实现exec系统调用的。 用户代码将exec需要的参数放在寄存器a0和a1中,并将系统调用号放在a7中。系统调用号与syscalls数组中的条目相匹配,syscalls数组是一个函数指针表(kernel/syscall.c:108)。ecall指令陷入(trap)到内核中,执行uservec、usertrap和syscall,和我们之前看到的一样。 syscall(kernel/syscall.c:133)从陷阱帧(trapframe)中保存的a7中检索系统调用号(p->trapframe->a7),并用它索引到syscalls中,对于第一次系统调用,a7中的内容是SYS_exec(kernel/syscall. h:8),导致了对系统调用接口函数sys_exec的调用。 当系统调用接口函数返回时,syscall将其返回值记录在p->trapframe->a0中。这将导致原始用户空间对exec()的调用返回该值,因为RISC-V上的C调用约定将返回值放在a0中。系统调用通常返回负数表示错误,返回零或正数表示成功。如果系统调用号无效,syscall打印错误并返回-1。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:38:44 "},"tranlate_books/book-riscv-rev1/c4/s4.html":{"url":"tranlate_books/book-riscv-rev1/c4/s4.html","title":"4.4 系统调用参数","keywords":"","body":"4.4 系统调用参数 内核中的系统调用接口需要找到用户代码传递的参数。因为用户代码调用了系统调用封装函数,所以参数最初被放置在RISC-V C调用所约定的地方:寄存器。内核陷阱代码将用户寄存器保存到当前进程的陷阱框架中,内核代码可以在那里找到它们。函数artint、artaddr和artfd从陷阱框架中检索第n个系统调用参数并以整数、指针或文件描述符的形式保存。他们都调用argraw来检索相应的保存的用户寄存器(kernel/syscall.c:35)。 有些系统调用传递指针作为参数,内核必须使用这些指针来读取或写入用户内存。例如:exec系统调用传递给内核一个指向用户空间中字符串参数的指针数组。这些指针带来了两个挑战。首先,用户程序可能有缺陷或恶意,可能会传递给内核一个无效的指针,或者一个旨在欺骗内核访问内核内存而不是用户内存的指针。其次,xv6内核页表映射与用户页表映射不同,因此内核不能使用普通指令从用户提供的地址加载或存储。 内核实现了安全地将数据传输到用户提供的地址和从用户提供的地址传输数据的功能。fetchstr是一个例子(kernel/syscall.c:25)。文件系统调用,如exec,使用fetchstr从用户空间检索字符串文件名参数。fetchstr调用copyinstr来完成这项困难的工作。 copyinstr(kernel/vm.c:406)从用户页表页表中的虚拟地址srcva复制max字节到dst。它使用walkaddr(它又调用walk)在软件中遍历页表,以确定srcva的物理地址pa0。由于内核将所有物理RAM地址映射到同一个内核虚拟地址,copyinstr可以直接将字符串字节从pa0复制到dst。walkaddr(kernel/vm.c:95)检查用户提供的虚拟地址是否为进程用户地址空间的一部分,因此程序不能欺骗内核读取其他内存。一个类似的函数copyout,将数据从内核复制到用户提供的地址。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:39:13 "},"tranlate_books/book-riscv-rev1/c4/s5.html":{"url":"tranlate_books/book-riscv-rev1/c4/s5.html","title":"4.5 从内核空间陷入","keywords":"","body":"4.5 从内核空间陷入 xv6根据执行的是用户代码还是内核代码,对CPU陷阱寄存器的配置有所不同。当在CPU上执行内核时,内核将stvec指向kernelvec(kernel/kernelvec.S:10)的汇编代码。由于xv6已经在内核中,kernelvec可以依赖于设置为内核页表的satp,以及指向有效内核栈的栈指针。kernelvec保存所有寄存器,以便被中断的代码最终可以不受干扰地恢复。 kernelvec将寄存器保存在被中断的内核线程的栈上,这是有意义的,因为寄存器值属于该线程。如果陷阱导致切换到不同的线程,那这一点就显得尤为重要——在这种情况下,陷阱将实际返回到新线程的栈上,将被中断线程保存的寄存器安全地保存在其栈上。 Kernelvec在保存寄存器后跳转到kerneltrap(kernel/trap.c:134)。kerneltrap为两种类型的陷阱做好了准备:设备中断和异常。它调用devintr(kernel/trap.c:177)来检查和处理前者。如果陷阱不是设备中断,则必定是一个异常,内核中的异常将是一个致命的错误;内核调用panic并停止执行。 如果由于计时器中断而调用了kerneltrap,并且一个进程的内核线程正在运行(而不是调度程序线程),kerneltrap会调用yield,给其他线程一个运行的机会。在某个时刻,其中一个线程会让步,让我们的线程和它的kerneltrap再次恢复。第7章解释了yield中发生的事情。 当kerneltrap的工作完成后,它需要返回到任何被陷阱中断的代码。因为一个yield可能已经破坏了保存的sepc和在sstatus中保存的前一个状态模式,因此kerneltrap在启动时保存它们。它现在恢复这些控制寄存器并返回到kernelvec(kernel/kernelvec.S:48)。kernelvec从栈中弹出保存的寄存器并执行sret,将sepc复制到pc并恢复中断的内核代码。 值得思考的是,如果内核陷阱由于计时器中断而调用yield,陷阱返回是如何发生的。 当CPU从用户空间进入内核时,xv6将CPU的stvec设置为kernelvec;您可以在usertrap(kernel/trap.c:29)中看到这一点。内核执行时有一个时间窗口,但stvec设置为uservec,在该窗口中禁用设备中断至关重要。幸运的是,RISC-V总是在开始设置陷阱时禁用中断,xv6在设置stvec之前不会再次启用中断。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:41:29 "},"tranlate_books/book-riscv-rev1/c4/s6.html":{"url":"tranlate_books/book-riscv-rev1/c4/s6.html","title":"4.6 页面错误异常","keywords":"","body":"4.6 页面错误异常 Xv6对异常的响应相当无趣: 如果用户空间中发生异常,内核将终止故障进程。如果内核中发生异常,则内核会崩溃。真正的操作系统通常以更有趣的方式做出反应。 例如,许多内核使用页面错误来实现写时拷贝版本的fork——copy on write (COW) fork。要解释COW fork,请回忆第3章内容:xv6的fork通过调用uvmcopy(kernel/vm.c:309) 为子级分配物理内存,并将父级的内存复制到其中,使子级具有与父级相同的内存内容。如果父子进程可以共享父级的物理内存,则效率会更高。然而武断地实现这种方法是行不通的,因为它会导致父级和子级通过对共享栈和堆的写入来中断彼此的执行。 由页面错误驱动的COW fork可以使父级和子级安全地共享物理内存。当CPU无法将虚拟地址转换为物理地址时,CPU会生成页面错误异常。Risc-v有三种不同的页面错误: 加载页面错误 (当加载指令无法转换其虚拟地址时),存储页面错误 (当存储指令无法转换其虚拟地址时) 和指令页面错误 (当指令的地址无法转换时)。scause寄存器中的值指示页面错误的类型,stval寄存器包含无法翻译的地址。 COW fork中的基本计划是让父子最初共享所有物理页面,但将它们映射为只读。因此,当子级或父级执行存储指令时,risc-v CPU引发页面错误异常。为了响应此异常,内核复制了包含错误地址的页面。它在子级的地址空间中映射一个权限为读/写的副本,在父级的地址空间中映射另一个权限为读/写的副本。更新页表后,内核会在导致故障的指令处恢复故障进程的执行。由于内核已经更新了相关的PTE以允许写入,所以错误指令现在将正确执行。 COW策略对fork很有效,因为通常子进程会在fork之后立即调用exec,用新的地址空间替换其地址空间。在这种常见情况下,子级只会触发很少的页面错误,内核可以避免拷贝父进程内存完整的副本。此外,COW fork是透明的: 无需对应用程序进行任何修改即可使其受益。 除COW fork以外,页表和页面错误的结合还开发出了广泛有趣的可能性。另一个广泛使用的特性叫做惰性分配——lazy allocation。它包括两部分内容:首先,当应用程序调用sbrk时,内核增加地址空间,但在页表中将新地址标记为无效。其次,对于包含于其中的地址的页面错误,内核分配物理内存并将其映射到页表中。由于应用程序通常要求比他们需要的更多的内存,惰性分配可以称得上一次胜利: 内核仅在应用程序实际使用它时才分配内存。像COW fork一样,内核可以对应用程序透明地实现此功能。 利用页面故障的另一个广泛使用的功能是从磁盘分页。如果应用程序需要比可用物理RAM更多的内存,内核可以换出一些页面: 将它们写入存储设备 (如磁盘),并将它们的PTE标记为无效。如果应用程序读取或写入被换出的页面,则CPU将触发页面错误。然后内核可以检查故障地址。如果该地址属于磁盘上的页面,则内核分配物理内存页面,将该页面从磁盘读取到该内存,将PTE更新为有效并引用该内存,然后恢复应用程序。为了给页面腾出空间,内核可能需要换出另一个页面。此功能不需要对应用程序进行更改,并且如果应用程序具有引用的地址 (即,它们在任何给定时间仅使用其内存的子集),则该功能可以很好地工作。 结合分页和页面错误异常的其他功能包括自动扩展栈空间和内存映射文件。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:41:43 "},"tranlate_books/book-riscv-rev1/c4/s7.html":{"url":"tranlate_books/book-riscv-rev1/c4/s7.html","title":"4.7 真实世界","keywords":"","body":"4.7 真实世界 如果内核内存被映射到每个进程的用户页表中(带有适当的PTE权限标志),就可以消除对特殊蹦床页面的需求。这也将消除在从用户空间捕获到内核时对页表切换的需求。这反过来也将允许内核中的系统调用实现利用当前进程正在映射的用户内存,允许内核代码直接解引用用户指针。许多操作系统已经使用这些想法来提高效率。Xv6避免了这些漏洞,以减少由于无意中使用用户指针而导致内核中出现安全漏洞的可能性,并降低了确保用户和内核虚拟地址不重叠所需的一些复杂性。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:42:01 "},"tranlate_books/book-riscv-rev1/c4/s8.html":{"url":"tranlate_books/book-riscv-rev1/c4/s8.html","title":"4.8 练习","keywords":"","body":"4.8 练习 函数copyin和copyinstr在软件中遍历用户页表。设置内核页表,使内核拥有用户程序的映射,这样copyin和copyinstr可以使用memcpy将系统调用参数复制到内核空间,依靠硬件进行页表遍历 实现惰性内存分配(lazy allocation) 实现写时拷贝版本的fork(copy on write fork) copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 11:42:19 "},"labs/use_git/git1.html":{"url":"labs/use_git/git1.html","title":"版本控制","keywords":"","body":"将实验代码提交到github [!DANGER] MIT 6.S081 这门课程每个lab对应一个git分支,所以请不要擅自修改原有分支 首先将mit的实验代码克隆到本地 git clone git://g.csail.mit.edu/xv6-labs-2020 在github创建一个新的空仓库 创建完成后会有提示代码,请不要根据提示代码操作,并且记下右图中红色标注的仓库地址 添加git仓库地址 查看本地仓库的git配置文件,可以看到origin主机名下已经有了对应的上游仓库地址 cd xv6-labs-2020/ cat .git/config 因此我们不要使用origin,可以使用其他主机名对应到github仓库,例如,我使用github git remote add github 你的仓库地址 cat .git/config git push命令 功能:git push命令用于从将本地的分支版本上传到远程并合并。 命令格式: git push : 如果本地分支名与远程分支名相同,则可以省略冒号: git push 更多用法请自行搜索 将实验代码推送github仓库 例如:将实验1用到的util分支推送到github git checkout util git push github util:util 需要你输入账户密码,提交就成功了 其他实验仓库的提交同理 xv6实验git分支建议 建议是每个实验创建一个测试分支,例如对于util来说 git checkout util # 切换到util分支 git checkout -b util_test # 建立并切换到util的测试分支 当你在util_test分支中每测试通过一个作业,请提交(git commit)你的代码,并将所做的修改合并(git merge)到util中,然后提交(git push)到github git add . git commit -m \"完成了第一个作业\" git checkout util git merge util_test git push github util:util 其他 你还可以添加gitee,防止github有时无法访问的问题 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:24:11 "},"labs/requirements/summary.html":{"url":"labs/requirements/summary.html","title":"实验内容","keywords":"","body":"实验说明 实验难度 每个实验都具有相应的难度 Easy:不到一个小时。这些锻炼通常是为后续锻炼做的热身运动。 Moderate:1-2小时。 Hard:超过2个小时。这些练习通常不需要很多代码,但是代码很难正确。 实验往往不需要很多行代码(几十到几百行) ,但是代码在概念上很复杂,而且细节往往很重要。所以,在你写任何代码之前,一定要完成实验室指定的阅读,通读相关文件,查阅文档(RISC-V手册等存放在了参考页面上)。只有当你确定掌握了任务和解决方案,再开始编码。当你开始编写代码的时候,一小步一小步地实现你的解决方案(作业通常会建议如何将问题分解为更小的步骤),并且在继续下一个步骤之前测试每个步骤是否正常工作。 调试技巧 确保你理解了c和指针。Kernighan和Ritchie的《c程序设计语言》一书对C语言进行了简要的描述。这里有一些有用的指针练习。除非你已经完全掌握了C语言,不要跳过或略读上面的指针练习。如果你不能真正理解C语言中的指针,你将在实验室中遭受难以言喻的痛苦,然后最终以一种艰难的方式来理解它们。相信我们,你不会想知道什么是“艰难的路”的。 一些常见的习惯用法特别值得记住: 如果int *p = (int*)100,那么(int)p + 1及(int)(p + 1)是不同的数字,第一个是101,但第二个是104。当向指针添加一个整数时,如第二种情况,整数被隐式地乘以指针指向的对象的大小。 p[i]被定义为与*(p+i)相同,指向内存中p指向的第i个对象,当对象大于1字节时,上面所说的加法规则有利于此定义工作 虽然大多数C程序不需要在指针和整数之间进行强制转换,但操作系统经常需要这样做。每当您看到一个包含内存地址的加法时,问问自己它是整数加法还是指针加法,并确保所添加的值是否适当地相乘。 如果你有一个部分工作的练习,请通过提交代码来检查你的进度。如果您稍后破坏了某些东西,那么您可以回滚到您的检查点,然后以较小的步骤继续前进。要了解关于Git的更多信息,请查看Git用户手册,或者您可能会发现这个面向计算机科学家的Git概述非常有用。 如果您没有通过测试,确保您了解为什么您的代码没有通过测试。插入打印(printf)语句,直到您理解正在发生的事情。 您可能会发现您的print语句可能会产生许多您想要搜索的输出;其中一种方法是在script内部运行make qemu(在您的机器上运行man script),它将所有控制台输出记录到一个文件中,然后您可以搜索该文件。别忘了退出script。 在许多情况下,print语句就足够了,但有时能够单步遍历一些汇编代码或检查堆栈上的变量是有帮助的。要在xv6中使用gdb,请在一个窗口中运行make qemu-gdb,在另一个窗口中运行gdb(或riscv64-linux-gnu-gdb),设置断点,后跟“c”(continue),xv6将一直运行,直到到达断点。(有关有用的GDB提示,请参阅使用GNU调试器。) 如果要查看编译器为内核生成的程序集是什么,或者要找出特定内核地址的指令是什么,请参阅文件kernel.asm,该文件在编译内核时由Makefile生成。(Makefile同时也为所有用户程序生成.asm文件。) 如果内核崩溃,它将打印一条错误消息,列出崩溃时程序计数器的值;您可以进行搜索kernel.asm找出程序计数器崩溃时在哪个函数中,或者可以运行addr2line -e kernel/kernel pc-value(有关详细信息,请运行man addr2line)。如果要获取回溯,请使用gdb重新启动:在一个窗口中运行'make qemu-gdb',在另一个窗口中运行gdb(或riscv64-linux-gnu-gdb),在panic中设置断点(“b panic”),后跟“c”(continue)。当内核到达断点时,键入“bt”以获取回溯跟踪。 如果您的内核挂起(例如,由于死锁)或无法进一步执行(例如,由于在执行内核指令时出现页面错误),您可以使用gdb查找挂起的位置。在一个窗口中运行“ make qemu-gdb”,在另一个窗口中运行 gdb (riscv64-linux-gnu-gdb) ,后跟“c”(continue)。当内核出现挂起时,在 qemu-gdb 窗口中按 Ctrl-C 并键入“bt”以获得回溯跟踪。 qemu有一个“监视器”,允许您查询模拟机器的状态。您可以通过键入+a c(c表示控制台)来获得它。一个特别有用的monitor命令是info mem,用于打印页表。您可能需要使用cpu命令来选择info mem查看哪一个核心,或者可以使用make CPUS=1 qemu启动qemu,以使其只有一个核心。 花时间学习上述工具是非常值得的 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 10:08:45 "},"labs/requirements/lab1.html":{"url":"labs/requirements/lab1.html","title":"Lab1: Xv6 and Unix utilities","keywords":"","body":"Lab1: Xv6 and Unix utilities 实验任务 启动xv6(难度:Easy) 获取实验室的xv6源代码并切换到util分支 $ git clone git://g.csail.mit.edu/xv6-labs-2020 Cloning into 'xv6-labs-2020'... ... $ cd xv6-labs-2020 $ git checkout util Branch 'util' set up to track remote branch 'util' from 'origin'. Switched to a new branch 'util' Xv6-labs-2020存储库与本书的xv6-riscv稍有不同;它主要添加一些文件。如果你好奇的话,可以执行git log: $ git log 您将需要使用Git版本控制系统管理和提交文件以及后续的实验室作业。接下来,切换到一个分支(执行git checkout util),其中包含针对该实验室定制的xv6版本。要了解关于Git的更多信息,请查看Git用户手册。Git允许您跟踪对代码所做的更改。例如,如果你完成了其中一个练习,并且想检查你的进度,你可以通过运行以下命令来提交你的变化: $ git commit -am 'my solution for util lab exercise 1' Created commit 60d2135: my solution for util lab exercise 1 1 files changed, 1 insertions(+), 0 deletions(-) $ 您可以使用git diff命令跟踪您的更改。运行git diff将显示自上次提交以来对代码的更改,git diff origin/util将显示相对于初始xv6-labs-2020代码的更改。这里,origin/xv6-labs-2020是git分支的名称,它是包含您下载的初始代码分支。 构建并运行xv6 $ make qemu riscv64-unknown-elf-gcc -c -o kernel/entry.o kernel/entry.S riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -DSOL_UTIL -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie -c -o kernel/start.o kernel/start.c ... riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_zombie user/zombie.o user/ulib.o user/usys.o user/printf.o user/umalloc.o riscv64-unknown-elf-objdump -S user/_zombie > user/zombie.asm riscv64-unknown-elf-objdump -t user/_zombie | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/zombie.sym mkfs/mkfs fs.img README user/xargstest.sh user/_cat user/_echo user/_forktest user/_grep user/_init user/_kill user/_ln user/_ls user/_mkdir user/_rm user/_sh user/_stressfs user/_usertests user/_grind user/_wc user/_zombie nmeta 46 (boot, super, log blocks 30 inode blocks 13, bitmap blocks 1) blocks 954 total 1000 balloc: first 591 blocks have been allocated balloc: write bitmap block at sector 45 qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 xv6 kernel is booting hart 2 starting hart 1 starting init: starting sh $ 如果你在提示符下输入 ls,你会看到类似如下的输出: $ ls . 1 1 1024 .. 1 1 1024 README 2 2 2059 xargstest.sh 2 3 93 cat 2 4 24256 echo 2 5 23080 forktest 2 6 13272 grep 2 7 27560 init 2 8 23816 kill 2 9 23024 ln 2 10 22880 ls 2 11 26448 mkdir 2 12 23176 rm 2 13 23160 sh 2 14 41976 stressfs 2 15 24016 usertests 2 16 148456 grind 2 17 38144 wc 2 18 25344 zombie 2 19 22408 console 3 20 0 这些是mkfs在初始文件系统中包含的文件;大多数是可以运行的程序。你刚刚跑了其中一个:ls。 xv6没有ps命令,但是如果您键入Ctrl-p,内核将打印每个进程的信息。如果现在尝试,您将看到两行:一行用于init,另一行用于sh。 退出 qemu : Ctrl-a x。 sleep(难度:Easy) [!TIP|label:YOUR JOB] 实现xv6的UNIX程序sleep:您的sleep应该暂停到用户指定的计时数。一个滴答(tick)是由xv6内核定义的时间概念,即来自定时器芯片的两个中断之间的时间。您的解决方案应该在文件user/sleep.c中 提示: 在你开始编码之前,请阅读《book-riscv-rev1》的第一章 看看其他的一些程序(如/user/echo.c, /user/grep.c, /user/rm.c)查看如何获取传递给程序的命令行参数 如果用户忘记传递参数,sleep应该打印一条错误信息 命令行参数作为字符串传递; 您可以使用atoi将其转换为数字(详见/user/ulib.c) 使用系统调用sleep 请参阅kernel/sysproc.c以获取实现sleep系统调用的xv6内核代码(查找sys_sleep),user/user.h提供了sleep的声明以便其他程序调用,用汇编程序编写的user/usys.S可以帮助sleep从用户区跳转到内核区。 确保main函数调用exit()以退出程序。 将你的sleep程序添加到Makefile中的UPROGS中;完成之后,make qemu将编译您的程序,并且您可以从xv6的shell运行它。 看看Kernighan和Ritchie编著的《C程序设计语言》(第二版)来了解C语言。 从xv6 shell运行程序: $ make qemu ... init: starting sh $ sleep 10 (nothing happens for a little while) $ 如果程序在如上所示运行时暂停,则解决方案是正确的。运行make grade看看你是否真的通过了睡眠测试。 请注意,make grade运行所有测试,包括下面作业的测试。如果要对一项作业运行成绩测试,请键入(不要启动XV6,在外部终端下使用): $ ./grade-lab-util sleep 这将运行与sleep匹配的成绩测试。或者,您可以键入: $ make GRADEFLAGS=sleep grade 效果是一样的。 pingpong(难度:Easy) [!TIP|label:YOUR JOB] 编写一个使用UNIX系统调用的程序来在两个进程之间“ping-pong”一个字节,请使用两个管道,每个方向一个。父进程应该向子进程发送一个字节;子进程应该打印“: received ping”,其中是进程ID,并在管道中写入字节发送给父进程,然后退出;父级应该从读取从子进程而来的字节,打印“: received pong”,然后退出。您的解决方案应该在文件user/pingpong.c中。 提示: 使用pipe来创造管道 使用fork创建子进程 使用read从管道中读取数据,并且使用write向管道中写入数据 使用getpid获取调用进程的pid 将程序加入到Makefile的UPROGS xv6上的用户程序有一组有限的可用库函数。您可以在user/user.h中看到可调用的程序列表;源代码(系统调用除外)位于user/ulib.c、user/printf.c和user/umalloc.c中。 运行程序应得到下面的输出 $ make qemu ... init: starting sh $ pingpong 4: received ping 3: received pong $ 如果您的程序在两个进程之间交换一个字节并产生如上所示的输出,那么您的解决方案是正确的。 Primes(素数,难度:Moderate/Hard) [!TIP|label:YOUR JOB] 使用管道编写prime sieve(筛选素数)的并发版本。这个想法是由Unix管道的发明者Doug McIlroy提出的。请查看这个网站(翻译在下面),该网页中间的图片和周围的文字解释了如何做到这一点。您的解决方案应该在user/primes.c文件中。 您的目标是使用pipe和fork来设置管道。第一个进程将数字2到35输入管道。对于每个素数,您将安排创建一个进程,该进程通过一个管道从其左邻居读取数据,并通过另一个管道向其右邻居写入数据。由于xv6的文件描述符和进程数量有限,因此第一个进程可以在35处停止。 提示: 请仔细关闭进程不需要的文件描述符,否则您的程序将在第一个进程达到35之前就会导致xv6系统资源不足。 一旦第一个进程达到35,它应该使用wait等待整个管道终止,包括所有子孙进程等等。因此,主primes进程应该只在打印完所有输出之后,并且在所有其他primes进程退出之后退出。 提示:当管道的write端关闭时,read返回零。 最简单的方法是直接将32位(4字节)int写入管道,而不是使用格式化的ASCII I/O。 您应该仅在需要时在管线中创建进程。 将程序添加到Makefile中的UPROGS 如果您的解决方案实现了基于管道的筛选并产生以下输出,则是正确的: $ make qemu ... init: starting sh $ primes prime 2 prime 3 prime 5 prime 7 prime 11 prime 13 prime 17 prime 19 prime 23 prime 29 prime 31 $ 参考资料翻译: 考虑所有小于1000的素数的生成。Eratosthenes的筛选法可以通过执行以下伪代码的进程管线来模拟: p = get a number from left neighbor print p =loop: n = get a number from left neighbor if (p does not divide n) send n to right neighbor p = 从左邻居中获取一个数 print p loop: n = 从左邻居中获取一个数 if (n不能被p整除) 将n发送给右邻居 生成进程可以将数字2、3、4、…、1000输入管道的左端:行中的第一个进程消除2的倍数,第二个进程消除3的倍数,第三个进程消除5的倍数,依此类推。 find(难度:Moderate) [!TIP|label:YOUR JOB] 写一个简化版本的UNIX的find程序:查找目录树中具有特定名称的所有文件,你的解决方案应该放在user/find.c 提示: 查看user/ls.c文件学习如何读取目录 使用递归允许find下降到子目录中 不要在“.”和“..”目录中递归 对文件系统的更改会在qemu的运行过程中一直保持;要获得一个干净的文件系统,请运行make clean,然后make qemu 你将会使用到C语言的字符串,要学习它请看《C程序设计语言》(K&R),例如第5.5节 注意在C语言中不能像python一样使用“==”对字符串进行比较,而应当使用strcmp() 将程序加入到Makefile的UPROGS 如果你的程序输出下面的内容,那么它是正确的(当文件系统中包含文件b和a/b的时候) $ make qemu ... init: starting sh $ echo > b $ mkdir a $ echo > a/b $ find . b ./b ./a/b $ xargs(难度:Moderate) [!TIP|label:YOUR JOB] 编写一个简化版UNIX的xargs程序:它从标准输入中按行读取,并且为每一行执行一个命令,将行作为参数提供给命令。你的解决方案应该在user/xargs.c 下面的例子解释了xargs的行为 $ echo hello too | xargs echo bye bye hello too $ 注意,这里的命令是echo bye,额外的参数是hello too,这样就组成了命令echo bye hello too,此命令输出bye hello too 请注意,UNIX上的xargs进行了优化,一次可以向该命令提供更多的参数。 我们不需要您进行此优化。 要使UNIX上的xargs表现出本实验所实现的方式,请将-n选项设置为1。例如 $ echo \"1\\n2\" | xargs -n 1 echo line line 1 line 2 $ 提示: 使用fork和exec对每行输入调用命令,在父进程中使用wait等待子进程完成命令。 要读取单个输入行,请一次读取一个字符,直到出现换行符('\\n')。 kernel/param.h声明MAXARG,如果需要声明argv数组,这可能很有用。 将程序添加到Makefile中的UPROGS。 对文件系统的更改会在qemu的运行过程中保持不变;要获得一个干净的文件系统,请运行make clean,然后make qemu xargs、find和grep结合得很好 $ find . b | xargs grep hello 将对“.”下面的目录中名为b的每个文件运行grep hello。 要测试您的xargs方案是否正确,请运行shell脚本xargstest.sh。如果您的解决方案产生以下输出,则是正确的: $ make qemu ... init: starting sh $ sh 你可能不得不回去修复你的find程序中的bug。输出有许多$,因为xv6 shell没有意识到它正在处理来自文件而不是控制台的命令,并为文件中的每个命令打印$。 提交实验 这就完成了实验。确保你通过了所有的成绩测试。如果这个实验有问题,别忘了把你的答案写在answers-lab-name.txt中。提交你的更改(包括answers-lab-name.txt),然后在实验目录中键入make handin以提交实验。 花费的时间 创建一个命名为time.txt的新文件,并在其中输入一个整数,即您在实验室花费的小时数。不要忘记git add和git commit文件。 提交 你将使用提交网站提交作业。您需要从提交网站请求一次API密钥,然后才能提交任何作业或实验。 将最终更改提交到实验后,键入make handin以提交实验。 $ git commit -am \"ready to submit my lab\" [util c2e3c8b] ready to submit my lab 2 files changed, 18 insertions(+), 2 deletions(-) $ make handin tar: Removing leading `/' from member names Get an API key for yourself by visiting https://6828.scripts.mit.edu/2020/handin.py/ Please enter your API key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 79258 100 239 100 79019 853 275k --:--:-- --:--:-- --:--:-- 276k $ make handin将把你的API密钥存储在myapi.key中。如果需要更改API密钥,只需删除此文件并让make handin再次生成它(myapi.key不得包含换行符)。 如果你运行了make handin,并且你有未提交的更改或未跟踪的文件,则会看到类似于以下内容的输出: M hello.c ?? bar.c ?? foo.pyc Untracked files will not be handed in. Continue? [y/N] 检查上述行,确保跟踪了您的实验解决方案所需的所有文件,即以??开头的行中所显示的文件。您可以使用git add filename命令使git追踪创建的新文件。 如果make handin无法正常工作,请尝试使用curl或Git命令修复该问题。或者你可以运行make tarball。这将为您制作一个tar文件,然后您可以通过我们的web界面上传。 请运行“make grade”以确保您的代码通过所有测试 在运行“make handin”之前提交任何修改过的源代码` 您可以检查提交的状态,并在以下位置下载提交的代码:https://6828.scripts.mit.edu/2020/handin.py/ 可选的挑战练习 编写一个uptime程序,使用uptime系统调用以滴答为单位打印计算机正常运行时间。(easy) 在find程序的名称匹配中支持正则表达式。grep.c对正则表达式有一些基本的支持。(easy) xv6 shell(user/sh.c)只是另一个用户程序,您可以对其进行改进。它是一个最小的shell,缺少建立在真实shell中的许多特性。例如, 在处理文件中的shell命令时,将shell修改为不打印$(moderate) 将shell修改为支持wait(easy) 将shell修改为支持用“;”分隔的命令列表(moderate) 通过实现左括号“(” 以及右括号“)”来修改shell以支持子shell(moderate) 将shell修改为支持tab键补全(easy) 修改shell使其支持命令历史记录(moderate) 或者您希望shell执行的任何其他操作。 如果您非常雄心勃勃,可能需要修改内核以支持所需的内核特性;xv6支持的并不多。 copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 12:03:03 "}} \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s0.html b/_book/tranlate_books/book-riscv-rev1/c1/s0.html deleted file mode 100644 index 568b7fc..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s0.html +++ /dev/null @@ -1,958 +0,0 @@ - - - - - - - 第一章 操作系统接口 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        -
        - - - - - - - - -
        - -
        - -
        - - - - - - - - -
        -
        - -
        -
        - -
        - -

        第一章 操作系统接口

        -

        操作系统的任务是在多个程序之间共享一台计算机,并提供比硬件本身支持的更有用的服务。操作系统管理和抽象底层硬件,例如文字处理器不需要关心使用哪种类型的磁盘硬件。一个操作系统在多个程序之间共享硬件,这样它们就可以(或者看起来可以)同时运行。最后,操作系统为程序提供了可控的交互方式,这样它们就可以共享数据或者一起工作。

        -

        操作系统通过接口向用户程序提供服务。设计良好的接口是很困难的。一方面,我们希望接口简单明了,因为这样更利于正确使用。另一方面,我们可能倾向于为应用程序提供许多复杂的特性。解决这个问题的诀窍在于设计接口时,依赖一些可结合的机制,以此来提供更好的通用性。

        -

        本书使用单一的操作系统作为具体的例子来说明操作系统的概念。xv6这个操作系统提供了Ken Thompson和Dennis Ritchie的Unix 介绍的基本接口,并且模仿了Unix的内部设计。Unix提供了一个窄接口,其机制表现突出,提供了令人惊讶的通用程度。这个接口非常成功,甚至现代操作系统BSD、Linux、Mac OSX、Solaris,甚至在一定程度上,Microsoft windows都有类Unix的接口。理解xv6是理解这些系统和其他系统的一个良好开端。

        -

        如下图1.1所示,xv6采用传统的内核形式(内核是一个特殊的程序,为正在运行的程序提供服务)。每个正在运行的程序,称为进程,都有包含指令、数据和堆栈的内存。指令实现了程序的运算,数据是计算所依赖的变量,堆栈组织程序的过程调用。一台给定的计算机通常有许多进程,但只有一个内核。

        -

        img

        -

        当一个进程需要调用一个内核服务时,它会调用一个系统调用,这是操作系统接口中的一个调用。系统调用进入内核;内核执行服务并返回。因此,一个进程在用户空间和内核空间之间交替执行。

        -

        内核使用CPU提供的硬件保护机制来确保每个在用户空间执行的进程只能访问它自己的内存。内核程序的执行拥有操控硬件的权限,它需要实现这些保护;而用户程序执行时没有这些特权。当用户程序调用系统调用时,硬件会提升权限级别,并开始执行内核中预先安排好的函数。

        -

        内核提供的系统调用集合是用户程序看到的接口。Xv6内核提供了Unix内核传统上提供的服务和系统调用的子集。表1.2列出了xv6的所有系统调用。

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        系统调用描述
        int fork()创建一个进程,返回子进程的PID
        int exit(int status)终止当前进程,并将状态报告给wait()函数。无返回
        int wait(int *status)等待一个子进程退出; 将退出状态存入*status; 返回子进程PID。
        int kill(int pid)终止对应PID的进程,返回0,或返回-1表示错误
        int getpid()返回当前进程的PID
        int sleep(int n)暂停n个时钟节拍
        int exec(char file, char argv[])加载一个文件并使用参数执行它; 只有在出错时才返回
        char *sbrk(int n)按n 字节增长进程的内存。返回新内存的开始
        int open(char *file, int flags)打开一个文件;flags表示read/write;返回一个fd(文件描述符)
        int write(int fd, char *buf, int n)从buf 写n 个字节到文件描述符fd; 返回n
        int read(int fd, char *buf, int n)将n 个字节读入buf;返回读取的字节数;如果文件结束,返回0
        int close(int fd)释放打开的文件fd
        int dup(int fd)返回一个新的文件描述符,指向与fd 相同的文件
        int pipe(int p[])创建一个管道,把write/read文件描述符放在p[0]和p[1]中
        int chdir(char *dir)改变当前的工作目录
        int mkdir(char *dir)创建一个新目录
        int mknod(char *file, int, int)创建一个设备文件
        int fstat(int fd, struct stat *st)将打开文件fd的信息放入*st
        int stat(char file, struct stat st)将指定名称的文件信息放入*st
        int link(char file1, char file2)为文件file1创建另一个名称(file2)
        int unlink(char *file)删除一个文件
        -

        ​ 表1.2:xv6系统调用(除非另外声明,这些系统调用返回0表示无误,返回-1表示出错)

        -
        -

        本章的其余部分概述了xv6的服务——进程、内存、文件描述符、管道和文件系统——并用代码片段和关于shell(Unix的命令行用户界面)如何使用它们的讨论来阐释。Shell对系统调用的使用说明了它们是如何被精心设计的。

        -

        Shell是一个普通的程序,它从用户那里读取命令并执行它们。Shell是一个用户程序,而不是内核的一部分,这一事实说明了系统调用接口的强大之处:shell没有什么特别之处。这也意味着shell很容易替换;因此,现代Unix系统有多种shell可供选择,每种shell都有自己的用户界面和脚本特性。Xv6 Shell是Unix Bourne shell本质的简单实现。它的实现可以在(user/sh.c:1)中找到.

        -
        copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 12:24:36 -
        - -
        - -
        -
        -
        - -

        results matching ""

        -
          - -
          -
          - -

          No results matching ""

          - -
          -
          -
          - -
          -
          - -
          - - - - - - - - - - - - - - -
          - - -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s0.md b/_book/tranlate_books/book-riscv-rev1/c1/s0.md deleted file mode 100644 index fe7292b..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s0.md +++ /dev/null @@ -1,53 +0,0 @@ -# 第一章 操作系统接口 - -操作系统的任务是在多个程序之间共享一台计算机,并提供比硬件本身支持的更有用的服务。操作系统管理和抽象底层硬件,例如文字处理器不需要关心使用哪种类型的磁盘硬件。一个操作系统在多个程序之间共享硬件,这样它们就可以(或者看起来可以)同时运行。最后,操作系统为程序提供了可控的交互方式,这样它们就可以共享数据或者一起工作。 - -操作系统通过接口向用户程序提供服务。设计良好的接口是很困难的。一方面,我们希望接口简单明了,因为这样更利于正确使用。另一方面,我们可能倾向于为应用程序提供许多复杂的特性。解决这个问题的诀窍在于设计接口时,依赖一些可结合的机制,以此来提供更好的通用性。 - -本书使用单一的操作系统作为具体的例子来说明操作系统的概念。xv6这个操作系统提供了Ken Thompson和Dennis Ritchie的Unix 介绍的基本接口,并且模仿了Unix的内部设计。Unix提供了一个窄接口,其机制表现突出,提供了令人惊讶的通用程度。这个接口非常成功,甚至现代操作系统BSD、Linux、Mac OSX、Solaris,甚至在一定程度上,Microsoft windows都有类Unix的接口。理解xv6是理解这些系统和其他系统的一个良好开端。 - -如下图1.1所示,xv6采用传统的内核形式(内核是一个特殊的程序,为正在运行的程序提供服务)。每个正在运行的程序,称为进程,都有包含指令、数据和堆栈的内存。指令实现了程序的运算,数据是计算所依赖的变量,堆栈组织程序的过程调用。一台给定的计算机通常有许多进程,但只有一个内核。 - -![img](../images/c1/p1.png) - -当一个进程需要调用一个内核服务时,它会调用一个系统调用,这是操作系统接口中的一个调用。系统调用进入内核;内核执行服务并返回。因此,一个进程在用户空间和内核空间之间交替执行。 - -内核使用CPU提供的硬件保护机制来确保每个在用户空间执行的进程只能访问它自己的内存。内核程序的执行拥有操控硬件的权限,它需要实现这些保护;而用户程序执行时没有这些特权。当用户程序调用系统调用时,硬件会提升权限级别,并开始执行内核中预先安排好的函数。 - -内核提供的系统调用集合是用户程序看到的接口。Xv6内核提供了Unix内核传统上提供的服务和系统调用的子集。表1.2列出了xv6的所有系统调用。 - -| **系统调用** | **描述** | -| ------------------------------------- | ------------------------------------------------------------ | -| int fork() | 创建一个进程,返回子进程的PID | -| int exit(int status) | 终止当前进程,并将状态报告给wait()函数。无返回 | -| int wait(int *status) | 等待一个子进程退出; 将退出状态存入`*status`; 返回子进程PID。 | -| int kill(int pid) | 终止对应PID的进程,返回0,或返回-1表示错误 | -| int getpid() | 返回当前进程的PID | -| int sleep(int n) | 暂停n个时钟节拍 | -| int exec(char *file, char *argv[]) | 加载一个文件并使用参数执行它; 只有在出错时才返回 | -| char *sbrk(int n) | 按n 字节增长进程的内存。返回新内存的开始 | -| int open(char *file, int flags) | 打开一个文件;flags表示read/write;返回一个fd(文件描述符) | -| int write(int fd, char *buf, int n) | 从buf 写n 个字节到文件描述符fd; 返回n | -| int read(int fd, char *buf, int n) | 将n 个字节读入buf;返回读取的字节数;如果文件结束,返回0 | -| int close(int fd) | 释放打开的文件fd | -| int dup(int fd) | 返回一个新的文件描述符,指向与fd 相同的文件 | -| int pipe(int p[]) | 创建一个管道,把write/read文件描述符放在p[0]和p[1]中 | -| int chdir(char *dir) | 改变当前的工作目录 | -| int mkdir(char *dir) | 创建一个新目录 | -| int mknod(char *file, int, int) | 创建一个设备文件 | -| int fstat(int fd, struct stat *st) | 将打开文件fd的信息放入*st | -| int stat(char *file, struct stat *st) | 将指定名称的文件信息放入*st | -| int link(char *file1, char *file2) | 为文件file1创建另一个名称(file2) | -| int unlink(char *file) | 删除一个文件 | - -​ 表1.2:xv6系统调用(除非另外声明,这些系统调用返回0表示无误,返回-1表示出错) - - - ---- - - - -本章的其余部分概述了xv6的服务——进程、内存、文件描述符、管道和文件系统——并用代码片段和关于shell(Unix的命令行用户界面)如何使用它们的讨论来阐释。Shell对系统调用的使用说明了它们是如何被精心设计的。 - -Shell是一个普通的程序,它从用户那里读取命令并执行它们。Shell是一个用户程序,而不是内核的一部分,这一事实说明了系统调用接口的强大之处:shell没有什么特别之处。这也意味着shell很容易替换;因此,现代Unix系统有多种shell可供选择,每种shell都有自己的用户界面和脚本特性。Xv6 Shell是Unix Bourne shell本质的简单实现。它的实现可以在(user/sh.c:1)中找到. diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s1.html b/_book/tranlate_books/book-riscv-rev1/c1/s1.html deleted file mode 100644 index 7c8125b..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s1.html +++ /dev/null @@ -1,887 +0,0 @@ - - - - - - - 1.1 进程和内存 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          - - - - - - - - -
          - -
          - -
          - - - - - - - - -
          -
          - -
          -
          - -
          - -

          1.1 进程和内存

          -

          Xv6进程由用户空间内存(指令、数据和堆栈)和对内核私有的每个进程状态组成。Xv6分时进程: 它透明地在等待执行的进程集合中切换可用的CPU。当一个进程没有执行时,xv6保存它的CPU寄存器,并在下一次运行该进程时恢复它们。内核利用进程id或PID标识每个进程。

          -

          一个进程可以使用fork系统调用创建一个新的进程。Fork创建了一个新的进程,其内存内容与调用进程(称为父进程)完全相同,称其为子进程。Fork在父子进程中都返回值。在父进程中,fork返回子类的PID;在子进程中,fork返回零。例如,考虑下面用C语言编写的程序片段

          -
          // fork()在父进程中返回子进程的PID
          -// 在子进程中返回0
          -int pid = fork();
          -if(pid > 0) {
          -    printf("parent: child=%d\n", pid);
          -    pid = wait((int *) 0);
          -    printf("child %d is done\n", pid);
          -} else if(pid == 0) {
          -    printf("child: exiting\n");
          -    exit(0);
          -} else {
          -    printf("fork error\n");
          -}
          -
          -

          exit系统调用导致调用进程停止执行并释放资源(如内存和打开的文件)。exit接受一个整数状态参数,通常0表示成功,1表示失败。wait系统调用返回当前进程的已退出(或已杀死)子进程的PID,并将子进程的退出状态复制到传递给wait的地址;如果调用方的子进程都没有退出,那么wait等待一个子进程退出。如果调用者没有子级,wait立即返回-1。如果父进程不关心子进程的退出状态,它可以传递一个0地址给wait

          -

          在这个例子中,输出

          -
          parent: child=1234
          -child: exiting
          -

          可能以任何一种顺序出来,这取决于父或子谁先到达printf调用。子进程退出后,父进程的wait返回,导致父进程打印

          -
          parent: child 1234 is done
          -

          尽管最初子进程与父进程有着相同的内存内容,但是二者在运行中拥有不同的内存空间和寄存器:在一个进程中改变变量不会影响到另一个进程。例如当wait的返回值存入父进程的变量pid中时,并不会影响子进程中的pid,子进程中pid仍然为0。

          -

          exec系统调用使用从文件系统中存储的文件所加载的新内存映像替换调用进程的内存。(百度百科:根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件)该文件必须有特殊的格式,它指定文件的哪部分存放指令,哪部分是数据,以及哪一条指令用于启动等等。xv6使用ELF格式(将会在第三章详细讨论)。当exec执行成功,它不向调用进程返回数据,而是使加载自文件的指令在ELF header中声明的程序入口处开始执行。exec有两个参数:可执行文件的文件名和字符串参数数组。例如

          -
          char* argv[3];
          -argv[0] = "echo";
          -argv[1] = "hello";
          -argv[2] = 0;
          -exec("/bin/echo", argv);
          -printf("exec error\n");
          -
          -

          这个代码片段将调用程序替换为了参数列表为echo hello/bin/echo程序运行,多数程序忽略参数数组中的第一个元素,它通常是程序名。

          -

          xv6的shell使用上述调用为用户运行程序。shell的主要结构很简单,请参见main(user/sh.c:145)。主循环使用getcmd函数从用户的输入中读取一行,然后调用fork创建一个shell进程的副本。父进程调用wait,子进程执行命令。例如:当用户向shell输入echo hello时,runcmd(user/sh.c:58) 将以echo hello为参数被调用来执行实际命令。对于“echo hello”,它将调用exec(user/sh.c:78)。如果exec成功,那么子进程将从echo而不是runcmd执行命令,在某刻echo会调用exit,这将导致父进程从main(user/sh.c:78)中的wait返回。

          -

          你或许想知道为什么execfork没有组合成为一个系统调用,稍后我们将会看到shell在其I/O重定向的实现中利用了这种分离。为了避免创建一个重复的进程然后立即替换它(使用exec)的浪费,操作内核通过使用虚拟内存技术(如copy-on-write)优化 fork 在这个用例中的实现(见第 4.6 节)。

          -

          Xv6 隐式地分配大多数用户空间内存:fork分配父内存的子副本所需的内存,exec分配足够的内存来保存可执行文件。在运行时需要更多内存的进程(可能是malloc)可以调用 sbrk(n)将其数据内存增加n个字节; sbrk返回新内存的位置。

          -
          copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 11:55:13 -
          - -
          - -
          -
          -
          - -

          results matching ""

          -
            - -
            -
            - -

            No results matching ""

            - -
            -
            -
            - -
            -
            - -
            - - - - - - - - - - - - - - -
            - - -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s1.md b/_book/tranlate_books/book-riscv-rev1/c1/s1.md deleted file mode 100644 index 3068a1c..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s1.md +++ /dev/null @@ -1,56 +0,0 @@ -# 1.1 进程和内存 -Xv6进程由用户空间内存(指令、数据和堆栈)和对内核私有的每个进程状态组成。Xv6分时进程: 它透明地在等待执行的进程集合中切换可用的CPU。当一个进程没有执行时,xv6保存它的CPU寄存器,并在下一次运行该进程时恢复它们。内核利用进程id或PID标识每个进程。 - -一个进程可以使用fork系统调用创建一个新的进程。Fork创建了一个新的进程,其内存内容与调用进程(称为父进程)完全相同,称其为子进程。Fork在父子进程中都返回值。在父进程中,fork返回子类的PID;在子进程中,fork返回零。例如,考虑下面用C语言编写的程序片段 - -```c -// fork()在父进程中返回子进程的PID -// 在子进程中返回0 -int pid = fork(); -if(pid > 0) { - printf("parent: child=%d\n", pid); - pid = wait((int *) 0); - printf("child %d is done\n", pid); -} else if(pid == 0) { - printf("child: exiting\n"); - exit(0); -} else { - printf("fork error\n"); -} -``` - -`exit`系统调用导致调用进程停止执行并释放资源(如内存和打开的文件)。`exit`接受一个整数状态参数,通常0表示成功,1表示失败。`wait`系统调用返回当前进程的已退出(或已杀死)子进程的PID,并将子进程的退出状态复制到传递给`wait`的地址;如果调用方的子进程都没有退出,那么wait等待一个子进程退出。如果调用者没有子级,`wait`立即返回-1。如果父进程不关心子进程的退出状态,它可以传递一个0地址给`wait`。 - -在这个例子中,输出 - -``` -parent: child=1234 -child: exiting -``` - -可能以任何一种顺序出来,这取决于父或子谁先到达`printf`调用。子进程退出后,父进程的`wait`返回,导致父进程打印 - -``` -parent: child 1234 is done -``` - -尽管最初子进程与父进程有着相同的内存内容,但是二者在运行中拥有不同的内存空间和寄存器:在一个进程中改变变量不会影响到另一个进程。例如当`wait`的返回值存入父进程的变量`pid`中时,并不会影响子进程中的`pid`,子进程中`pid`仍然为0。 - -`exec`系统调用使用从文件系统中存储的文件所加载的新内存映像替换调用进程的内存。(百度百科:根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件)该文件必须有特殊的格式,它指定文件的哪部分存放指令,哪部分是数据,以及哪一条指令用于启动等等。xv6使用ELF格式(将会在第三章详细讨论)。当`exec`执行成功,它不向调用进程返回数据,而是使加载自文件的指令在`ELF header`中声明的程序入口处开始执行。`exec`有两个参数:可执行文件的文件名和字符串参数数组。例如 - -```c -char* argv[3]; -argv[0] = "echo"; -argv[1] = "hello"; -argv[2] = 0; -exec("/bin/echo", argv); -printf("exec error\n"); -``` - -这个代码片段将调用程序替换为了参数列表为`echo hello`的`/bin/echo`程序运行,多数程序忽略参数数组中的第一个元素,它通常是程序名。 - -xv6的shell使用上述调用为用户运行程序。shell的主要结构很简单,请参见`main`(***user/sh.c:145***)。主循环使用`getcmd`函数从用户的输入中读取一行,然后调用`fork`创建一个shell进程的副本。父进程调用`wait`,子进程执行命令。例如:当用户向shell输入`echo hello`时,`runcmd`(***user/sh.c:58***) 将以`echo hello`为参数被调用来执行实际命令。对于“`echo hello`”,它将调用`exec`(***user/sh.c:78***)。如果`exec`成功,那么子进程将从`echo`而不是`runcmd`执行命令,在某刻`echo`会调用`exit`,这将导致父进程从`main`(***user/sh.c:78***)中的`wait`返回。 - -你或许想知道为什么`exec`和`fork`没有组合成为一个系统调用,稍后我们将会看到shell在其I/O重定向的实现中利用了这种分离。为了避免创建一个重复的进程然后立即替换它(使用`exec`)的浪费,操作内核通过使用虚拟内存技术(如copy-on-write)优化 fork 在这个用例中的实现(见第 4.6 节)。 - -Xv6 隐式地分配大多数用户空间内存:`fork`分配父内存的子副本所需的内存,`exec`分配足够的内存来保存可执行文件。在运行时需要更多内存的进程(可能是`malloc`)可以调用 `sbrk(n)`将其数据内存增加n个字节; `sbrk`返回新内存的位置。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s2.html b/_book/tranlate_books/book-riscv-rev1/c1/s2.html deleted file mode 100644 index 768a494..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s2.html +++ /dev/null @@ -1,936 +0,0 @@ - - - - - - - 1.2 I/O和文件描述符 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -
            - - - - - - - - -
            - -
            - -
            - - - - - - - - -
            -
            - -
            -
            - -
            - -

            1.2 I/O和文件描述符

            -

            文件描述符是一个小整数(small integer),表示进程可以读取或写入的由内核管理的对象。进程可以通过打开一个文件、目录、设备,或创建一个管道,或复制一个已存在的描述符来获得一个文件描述符。为了简单起见,我们通常将文件描述符所指的对象称为“文件”;文件描述符接口将文件、管道和设备之间的差异抽象出来,使它们看起来都像字节流。我们将输入和输出称为 I/O。

            -

            在内部,xv6内核使用文件描述符作为每个进程表的索引,这样每个进程都有一个从零开始的文件描述符的私有空间。按照惯例,进程从文件描述符0读取(标准输入),将输出写入文件描述符1(标准输出),并将错误消息写入文件描述符2(标准错误)。正如我们将看到的,shell利用这个约定来实现I/O重定向和管道。shell确保它始终有三个打开的文件描述符(user/sh.c:151),这是控制台的默认文件描述符。

            -

            readwrite系统调用以字节为单位读取或写入已打开的以文件描述符命名的文件。read(fd,buf,n)从文件描述符fd读取最多n字节,将它们复制到buf,并返回读取的字节数,引用文件的每个文件描述符都有一个与之关联的偏移量。read从当前文件偏移量开始读取数据,然后将该偏移量前进所读取的字节数:(也就是说)后续读取将返回第一次读取返回的字节之后的字节。当没有更多的字节可读时,read返回0来表示文件的结束。

            -

            系统调用write(fd,buf,n)将buf中的n字节写入文件描述符,并返回写入的字节数。只有发生错误时才会写入小于n字节的数据。与读一样,write在当前文件偏移量处写入数据,然后将该偏移量向前推进写入的字节数:每个write从上一个偏移量停止的地方开始写入。

            -

            以下程序片段(构成程序cat的本质)将数据从其标准输入复制到其标准输出。如果发生错误,它将消息写入标准错误:

            -
            char buf[512];
            -int n;
            -for (;;) {
            -    n = read(0, buf, sizeof buf);
            -    if (n == 0)
            -        break;
            -    if (n < 0) {
            -        fprintf(2, "read error\n");
            -        exit(1);
            -    }
            -    if (write(1, buf, n) != n) {
            -        fprintf(2, "write error\n");
            -        exit(1);
            -    }
            -}
            -
            -

            代码片段中需要注意的重要一点是,cat不知道它是从文件、控制台还是管道读取。同样也不知道它是打印到控制台、文件还是其他什么地方。文件描述符的使用以及文件描述符0是输入而文件描述符1是输出的约定允许了cat的简单实现。

            -

            close系统调用释放一个文件描述符,使其可以被未来使用的openpipedup系统调用重用(见下文)。新分配的文件描述符总是当前进程中编号最小的未使用描述符。

            -

            文件描述符和fork相互作用,使I/O重定向更容易实现。fork复制父进程的文件描述符表及其内存,以便子级以与父级在开始时拥有完全相同的打开文件。系统调用exec替换了调用进程的内存,但保留其文件表。此行为允许shell通过fork实现I/O重定向,在子进程中重新打开选定的文件描述符,然后调用exec来运行新程序。下面是shell运行命令cat < input.txt的代码的简化版本。

            -
            char* argv[2];
            -argv[0] = "cat";
            -argv[1] = 0;
            -if (fork() == 0) {
            -    close(0);
            -    open("input.txt", O_RDONLY);
            -    exec("cat", argv);
            -}
            -
            -

            在子进程关闭文件描述符0之后,open保证使用新打开的input.txt:0的文件描述符作为最小的可用文件描述符。cat然后执行文件描述符0(标准输入),但引用的是input.txt。父进程的文件描述符不会被这个序列改变,因为它只修改子进程的描述符。

            -

            Xv6shell中的I/O重定向代码就是这样工作的(user/sh.c:82)。回想一下,在代码执行到这里时,shell已经fork出了子shell,runcmd将调用exec来加载新程序。

            -

            open的第二个参数由一组标志组成,这些标志以位表示,用于控制打开的操作。可能的值定义在文件控制(fcntl)头文件(kernel/fcntl.h:1-5)中

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            宏定义功能说明
            O_RDONLY只读
            O_WRONLY只写
            O_RDWR可读可写
            O_CREATE如果文件不存在则创建文件
            O_TRUNC将文件截断为零长度
            -

            现在应该很清楚为什么forkexec分离的用处了:在这两个调用之间,shell有机会对子进程进行I/O重定向,而不会干扰主shell的I/O设置。我们可以想象一个假设的forkexec系统调用组合,但是用这样的调用进行I/O重定向是很笨拙的。Shell可以在调用forkexec之前修改自己的I/O设置(然后撤销这些修改);或者forkexec可以将I/O重定向的指令作为参数;或者(最不吸引人的是)可以让每个程序(如cat)执行自己的I/O重定向。

            -

            尽管fork复制了文件描述符表,但是每个基础文件偏移量在父文件和子文件之间是共享的,比如下面的程序:

            -
            if (fork() == 0) {
            -    write(1, "hello ", 6);
            -    exit(0);
            -} else {
            -    wait(0);
            -    write(1, "world\n", 6);
            -}
            -
            -

            在这个片段的末尾,附加到文件描述符1的文件将包含数据hello world。父进程中的写操作(由于等待,只有在子进程完成后才运行)在子进程停止写入的位置进行。这种行为有助于从shell命令序列产生顺序输出,比如(echo hello;echo world) >output.txt

            -

            dup系统调用复制一个现有的文件描述符,返回一个引用自同一个底层I/O对象的新文件描述符。两个文件描述符共享一个偏移量,就像fork复制的文件描述符一样。这是另一种将“hello world”写入文件的方法:

            -
            fd = dup(1);
            -write(1, "hello ", 6);
            -write(fd, "world\n", 6);
            -
            -

            如果两个文件描述符是通过一系列forkdup调用从同一个原始文件描述符派生出来的,那么它们共享一个偏移量。否则,文件描述符不会共享偏移量,即使它们来自于对同一文件的打开调用。dup允许shell执行这样的命令:ls existing-file non-existing-file > tmp1 2>&12>&1告诉shell给命令的文件描述符2是描述符1的副本。现有文件的名称和不存在文件的错误信息都会显示在tmp1文件中。Xv6 shell不支持错误文件描述符的I/O重定向,但是现在你知道如何实现它了。

            -

            文件描述符是一个强大的抽象,因为它们隐藏了它们所连接的细节:写入文件描述符1的进程可能写入文件、设备(如控制台)或管道。

            -
            copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 11:58:39 -
            - -
            - -
            -
            -
            - -

            results matching ""

            -
              - -
              -
              - -

              No results matching ""

              - -
              -
              -
              - -
              -
              - -
              - - - - - - - - - - - - - - -
              - - -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s2.md b/_book/tranlate_books/book-riscv-rev1/c1/s2.md deleted file mode 100644 index fd3d09d..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s2.md +++ /dev/null @@ -1,88 +0,0 @@ -# 1.2 I/O和文件描述符 - -文件描述符是一个小整数(small integer),表示进程可以读取或写入的由内核管理的对象。进程可以通过打开一个文件、目录、设备,或创建一个管道,或复制一个已存在的描述符来获得一个文件描述符。为了简单起见,我们通常将文件描述符所指的对象称为“文件”;文件描述符接口将文件、管道和设备之间的差异抽象出来,使它们看起来都像字节流。我们将输入和输出称为 I/O。 - -在内部,xv6内核使用文件描述符作为每个进程表的索引,这样每个进程都有一个从零开始的文件描述符的私有空间。按照惯例,进程从文件描述符0读取(标准输入),将输出写入文件描述符1(标准输出),并将错误消息写入文件描述符2(标准错误)。正如我们将看到的,shell利用这个约定来实现I/O重定向和管道。shell确保它始终有三个打开的文件描述符(***user/sh.c***:151),这是控制台的默认文件描述符。 - -`read`和`write`系统调用以字节为单位读取或写入已打开的以文件描述符命名的文件。`read(fd,buf,n)`从文件描述符fd读取最多n字节,将它们复制到buf,并返回读取的字节数,引用文件的每个文件描述符都有一个与之关联的偏移量。`read`从当前文件偏移量开始读取数据,然后将该偏移量前进所读取的字节数:(也就是说)后续读取将返回第一次读取返回的字节之后的字节。当没有更多的字节可读时,`read`返回0来表示文件的结束。 - -系统调用`write(fd,buf,n)`将buf中的n字节写入文件描述符,并返回写入的字节数。只有发生错误时才会写入小于n字节的数据。与读一样,`write`在当前文件偏移量处写入数据,然后将该偏移量向前推进写入的字节数:每个`write`从上一个偏移量停止的地方开始写入。 - -以下程序片段(构成程序`cat`的本质)将数据从其标准输入复制到其标准输出。如果发生错误,它将消息写入标准错误: - -```c -char buf[512]; -int n; -for (;;) { - n = read(0, buf, sizeof buf); - if (n == 0) - break; - if (n < 0) { - fprintf(2, "read error\n"); - exit(1); - } - if (write(1, buf, n) != n) { - fprintf(2, "write error\n"); - exit(1); - } -} -``` - -代码片段中需要注意的重要一点是,`cat`不知道它是从文件、控制台还是管道读取。同样也不知道它是打印到控制台、文件还是其他什么地方。文件描述符的使用以及文件描述符0是输入而文件描述符1是输出的约定允许了`cat`的简单实现。 - -`close`系统调用释放一个文件描述符,使其可以被未来使用的`open`、`pipe`或`dup`系统调用重用(见下文)。新分配的文件描述符总是当前进程中编号最小的未使用描述符。 - -文件描述符和`fork`相互作用,使I/O重定向更容易实现。`fork`复制父进程的文件描述符表及其内存,以便子级以与父级在开始时拥有完全相同的打开文件。系统调用`exec`替换了调用进程的内存,但保留其文件表。此行为允许shell通过`fork`实现I/O重定向,在子进程中重新打开选定的文件描述符,然后调用`exec`来运行新程序。下面是shell运行命令`cat < input.txt`的代码的简化版本。 - -```c -char* argv[2]; -argv[0] = "cat"; -argv[1] = 0; -if (fork() == 0) { - close(0); - open("input.txt", O_RDONLY); - exec("cat", argv); -} -``` - -在子进程关闭文件描述符0之后,`open`保证使用新打开的***input.txt***:0的文件描述符作为最小的可用文件描述符。`cat`然后执行文件描述符0(标准输入),但引用的是***input.txt***。父进程的文件描述符不会被这个序列改变,因为它只修改子进程的描述符。 - -Xv6shell中的I/O重定向代码就是这样工作的(***user/sh.c***:82)。回想一下,在代码执行到这里时,shell已经`fork`出了子shell,`runcmd`将调用`exec`来加载新程序。 - -`open`的第二个参数由一组标志组成,这些标志以位表示,用于控制打开的操作。可能的值定义在文件控制(fcntl)头文件(***kernel/fcntl.h***:1-5)中 - -| **宏定义** | **功能说明** | -| ---------- | ------------------------ | -| `O_RDONLY` | 只读 | -| `O_WRONLY` | 只写 | -| `O_RDWR` | 可读可写 | -| `O_CREATE` | 如果文件不存在则创建文件 | -| `O_TRUNC` | 将文件截断为零长度 | - -现在应该很清楚为什么`fork`和`exec`分离的用处了:在这两个调用之间,shell有机会对子进程进行I/O重定向,而不会干扰主shell的I/O设置。我们可以想象一个假设的`forkexec`系统调用组合,但是用这样的调用进行I/O重定向是很笨拙的。Shell可以在调用`forkexec`之前修改自己的I/O设置(然后撤销这些修改);或者`forkexec`可以将I/O重定向的指令作为参数;或者(最不吸引人的是)可以让每个程序(如cat)执行自己的I/O重定向。 - -尽管`fork`复制了文件描述符表,但是每个基础文件偏移量在父文件和子文件之间是共享的,比如下面的程序: - -```c -if (fork() == 0) { - write(1, "hello ", 6); - exit(0); -} else { - wait(0); - write(1, "world\n", 6); -} -``` - -在这个片段的末尾,附加到文件描述符1的文件将包含数据`hello world`。父进程中的写操作(由于等待,只有在子进程完成后才运行)在子进程停止写入的位置进行。这种行为有助于从shell命令序列产生顺序输出,比如`(echo hello;echo world) >output.txt`。 - -`dup`系统调用复制一个现有的文件描述符,返回一个引用自同一个底层I/O对象的新文件描述符。两个文件描述符共享一个偏移量,就像fork复制的文件描述符一样。这是另一种将“hello world”写入文件的方法: - -```c -fd = dup(1); -write(1, "hello ", 6); -write(fd, "world\n", 6); -``` - -如果两个文件描述符是通过一系列`fork`和`dup`调用从同一个原始文件描述符派生出来的,那么它们共享一个偏移量。否则,文件描述符不会共享偏移量,即使它们来自于对同一文件的打开调用。`dup`允许shell执行这样的命令:`ls existing-file non-existing-file > tmp1 2>&1`。`2>&1`告诉shell给命令的文件描述符2是描述符1的副本。现有文件的名称和不存在文件的错误信息都会显示在tmp1文件中。Xv6 shell不支持错误文件描述符的I/O重定向,但是现在你知道如何实现它了。 - -文件描述符是一个强大的抽象,因为它们隐藏了它们所连接的细节:写入文件描述符1的进程可能写入文件、设备(如控制台)或管道。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s3.html b/_book/tranlate_books/book-riscv-rev1/c1/s3.html deleted file mode 100644 index 592b155..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s3.html +++ /dev/null @@ -1,892 +0,0 @@ - - - - - - - 1.3 管道 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              -
              - - - - - - - - -
              - -
              - -
              - - - - - - - - -
              -
              - -
              -
              - -
              - -

              1.3 管道

              -

              管道是作为一对文件描述符公开给进程的小型内核缓冲区,一个用于读取,一个用于写入。将数据写入管道的一端使得这些数据可以从管道的另一端读取。管道为进程提供了一种通信方式。

              -

              下面的示例代码使用连接到管道读端的标准输入来运行程序wc

              -
              int p[2];
              -char *argv[2];
              -argv[0] = "wc";
              -argv[1] = 0;
              -pipe(p);
              -if (fork() == 0) {
              -    close(0);
              -    dup(p[0]);
              -    close(p[0]);
              -    close(p[1]);
              -    exec("/bin/wc", argv);
              -} else {
              -    close(p[0]);
              -    write(p[1], "hello world\n", 12);
              -    close(p[1]);
              -}
              -
              -

              程序调用pipe,创建一个新的管道,并在数组p中记录读写文件描述符。在fork之后,父子进程都有指向管道的文件描述符。子进程调用closedup使文件描述符0指向管道的读取端(前面说过优先分配最小的未使用的描述符),然后关闭p中所存的文件描述符,并调用exec运行wc。当wc从它的标准输入读取时,就是从管道读取。父进程关闭管道的读取端,写入管道,然后关闭写入端。

              -

              如果没有可用的数据,则管道上的read操作等待写入数据或关闭所有指向写入端的文件描述符,在后一种情况下,read将返回0,就像到达数据文件的末尾一样。事实上,read在新数据不可能到达前会一直阻塞,这是子进程在执行上面的wc之前关闭管道的写入端非常重要的一个原因:如果wc的文件描述符之一指向管道的写入端,wc将永远看不到文件的结束。

              -

              Xv6 shell以类似于上面代码(user/sh.c:100)的方式实现了诸如grep fork sh.c | wc -l之类的管道。子进程创建一个管道将管道的左端和右端连接起来。然后对管道的左端调用forkruncmd,对管道的右端调用forkruncmd,并等待两者都完成。管道的右端可能是一个命令,该命令本身包含一个管道(例如,a | b | c),该管道本身fork为两个新的子进程(一个用于b,一个用于c)。因此,shell可以创建一个进程树。这个树的叶子是命令,内部节点是等待左右两个子进程完成的进程。

              -

              原则上,可以让内部节点在管道的左端运行,但是正确地这样做会使实现复杂化。考虑进行以下修改:将sh.c更改为不对p->left进行fork,并在内部进程中运行runcmd(p->left)。然后,例如,echo hi | wc将不会产生输出,因为当echo hiruncmd中退出时,内部进程将退出,而不会调用fork来运行管道的右端。这个不正确的行为可以通过不调用内部进程的runcmd中的exit来修复,但是这个修复使代码复杂化:现在runcmd需要知道它是否是一个内部进程。同样的,当没有对(p->right)执行fork时也会更加复杂。例如,只需进行上述的修改,sleep 10 | echo hi将立即打印“hi”,而不是在10秒后,因为echo将立即运行并退出,而不是等待sleep完成。因为sh.c的目标是尽可能的简单,所以它不会试图避免创建内部进程。

              -

              管道看起来并不比临时文件更强大:下面的管道命令行

              -
              echo hello world | wc
              -
              -

              可以不通过管道实现,如下

              -
              echo hello world > /tmp/xyz; wc < /tmp/xyz
              -
              -

              在这种情况下,管道相比临时文件至少有四个优势

              -
                -
              • 首先,管道会自动清理自己;在文件重定向时,shell使用完/tmp/xyz后必须小心删除

                -
              • -
              • 其次,管道可以任意传递长的数据流,而文件重定向需要磁盘上足够的空闲空间来存储所有的数据。

                -
              • -
              • 第三,管道允许并行执行管道阶段,而文件方法要求第一个程序在第二个程序启动之前完成。

                -
              • -
              • 第四,如果实现进程间通讯,管道的块读写比文件的非块语义更有效率。

                -
              • -
              -
              copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 12:01:58 -
              - -
              - -
              -
              -
              - -

              results matching ""

              -
                - -
                -
                - -

                No results matching ""

                - -
                -
                -
                - -
                -
                - -
                - - - - - - - - - - - - - - -
                - - -
                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s3.md b/_book/tranlate_books/book-riscv-rev1/c1/s3.md deleted file mode 100644 index 8a5e3db..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s3.md +++ /dev/null @@ -1,54 +0,0 @@ -# 1.3 管道 - -管道是作为一对文件描述符公开给进程的小型内核缓冲区,一个用于读取,一个用于写入。将数据写入管道的一端使得这些数据可以从管道的另一端读取。管道为进程提供了一种通信方式。 - -下面的示例代码使用连接到管道读端的标准输入来运行程序`wc`。 - -```c -int p[2]; -char *argv[2]; -argv[0] = "wc"; -argv[1] = 0; -pipe(p); -if (fork() == 0) { - close(0); - dup(p[0]); - close(p[0]); - close(p[1]); - exec("/bin/wc", argv); -} else { - close(p[0]); - write(p[1], "hello world\n", 12); - close(p[1]); -} -``` - -程序调用`pipe`,创建一个新的管道,并在数组p中记录读写文件描述符。在`fork`之后,父子进程都有指向管道的文件描述符。子进程调用`close`和`dup`使文件描述符0指向管道的读取端(前面说过优先分配最小的未使用的描述符),然后关闭p中所存的文件描述符,并调用`exec`运行`wc`。当`wc`从它的标准输入读取时,就是从管道读取。父进程关闭管道的读取端,写入管道,然后关闭写入端。 - -如果没有可用的数据,则管道上的`read`操作等待写入数据或关闭所有指向写入端的文件描述符,在后一种情况下,`read`将返回0,就像到达数据文件的末尾一样。事实上,`read`在新数据不可能到达前会一直阻塞,这是子进程在执行上面的`wc`之前关闭管道的写入端非常重要的一个原因:如果wc的文件描述符之一指向管道的写入端,wc将永远看不到文件的结束。 - -Xv6 shell以类似于上面代码(***user/sh.c***:100)的方式实现了诸如`grep fork sh.c | wc -l`之类的管道。子进程创建一个管道将管道的左端和右端连接起来。然后对管道的左端调用`fork`和`runcmd`,对管道的右端调用`fork`和`runcmd`,并等待两者都完成。管道的右端可能是一个命令,该命令本身包含一个管道(例如,`a | b | c`),该管道本身`fork`为两个新的子进程(一个用于b,一个用于c)。因此,shell可以创建一个进程树。这个树的叶子是命令,内部节点是等待左右两个子进程完成的进程。 - -原则上,可以让内部节点在管道的左端运行,但是正确地这样做会使实现复杂化。考虑进行以下修改:将***sh.c***更改为不对`p->left`进行`fork`,并在内部进程中运行`runcmd(p->left)`。然后,例如,`echo hi | wc`将不会产生输出,因为当`echo hi`在`runcmd`中退出时,内部进程将退出,而不会调用`fork`来运行管道的右端。这个不正确的行为可以通过不调用内部进程的`runcmd`中的`exit`来修复,但是这个修复使代码复杂化:现在`runcmd`需要知道它是否是一个内部进程。同样的,当没有对`(p->right)`执行`fork`时也会更加复杂。例如,只需进行上述的修改,`sleep 10 | echo hi`将立即打印“hi”,而不是在10秒后,因为`echo`将立即运行并退出,而不是等待`sleep`完成。因为***sh.c***的目标是尽可能的简单,所以它不会试图避免创建内部进程。 - -管道看起来并不比临时文件更强大:下面的管道命令行 - -```bash -echo hello world | wc -``` - -可以不通过管道实现,如下 - -```bash -echo hello world > /tmp/xyz; wc < /tmp/xyz -``` - -在这种情况下,管道相比临时文件至少有四个优势 - -- 首先,管道会自动清理自己;在文件重定向时,shell使用完`/tmp/xyz`后必须小心删除 - -- 其次,管道可以任意传递长的数据流,而文件重定向需要磁盘上足够的空闲空间来存储所有的数据。 - -- 第三,管道允许并行执行管道阶段,而文件方法要求第一个程序在第二个程序启动之前完成。 - -- 第四,如果实现进程间通讯,管道的块读写比文件的非块语义更有效率。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s4.html b/_book/tranlate_books/book-riscv-rev1/c1/s4.html deleted file mode 100644 index f5f53e5..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s4.html +++ /dev/null @@ -1,903 +0,0 @@ - - - - - - - 1.4 文件系统 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                -
                - - - - - - - - -
                - -
                - -
                - - - - - - - - -
                -
                - -
                -
                - -
                - -

                1.4 文件系统

                -

                Xv6文件系统提供数据文件(包含未解释的字节数组)和目录(包含对数据文件和其他目录的命名引用)。这些目录形成一个树,从一个叫做根的特殊目录开始。像/a/b/c这样的路径是指在根目录/下名为a的目录中名为b的目录中名为c的文件或目录。不以/开始的路径相对于调用进程的当前工作目录进行计算,当前工作目录可以通过chdir系统调用进行更改。下面两个代码片段打开相同的文件(假设所有相关的目录都存在)

                -
                chdir("/a");
                -chdir("b");
                -open("c", O_RDONLY);
                -open("/a/b/c", O_RDONLY);
                -
                -

                上面代码将进程的当前目录更改为/a/b;下面代码既不引用也不更改进程的当前目录

                -

                还有创建新文件和目录的系统调用:

                -
                  -
                • mkdir创建一个新目录

                  -
                • -
                • open中若使用O_CREATE标志将会创建一个新的数据文件

                  -
                • -
                • mknod创建一个新的设备文件

                  -
                • -
                -

                这个例子说明了这三点:

                -
                mkdir("/dir");
                -fd = open("/dir/file", O_CREATE | O_WRONLY);
                -close(fd);
                -mknod("/console", 1, 1);
                -
                -

                mknod创建一个引用设备的特殊文件。与设备文件相关联的是主设备号和次设备号(mknod的两个参数),它们唯一地标识了一个内核设备。当进程稍后打开设备文件时,内核将使用内核设备实现readwrite系统调用,而不是使用文件系统。

                -

                一个文件的名字和文件本身是不同的;同一个底层文件(叫做inode,索引结点)可以有多个名字(叫做link,链接)。每个链接都由目录中的一个条目组成;该条目包含一个文件名和一个inode引用。Inode保存有关文件的元数据(用于解释或帮助理解信息的数据),包括其类型(文件/目录/设备)、长度、文件内容在磁盘上的位置以及指向文件的链接数。

                -

                fstat系统调用从文件描述符所引用的inode中检索信息。它填充一个stat类型的结构体,struct statstat.h(kernel/stat.h)中定义为

                -
                #define T_DIR 1    // Directory
                -#define T_FILE 2   // File
                -#define T_DEVICE 3 // Device
                -struct stat {
                -    int dev;     // 文件系统的磁盘设备
                -    uint ino;    // Inode编号
                -    short type;  // 文件类型
                -    short nlink; // 指向文件的链接数
                -    uint64 size; // 文件字节数
                -};
                -
                -

                link系统调用创建另一个文件名,该文件名指向与现有文件相同的inode。下面的代码片段创建了一个名字既为a又为b的新文件

                -
                open("a", O_CREATE | O_WRONLY);
                -link("a", "b");
                -
                -

                a读取或写入与从b读取或写入是相同的操作。每个inode由唯一的inode编号标识。在上面的代码序列之后,可以通过检查fstat的结果来确定a和b引用相同的底层内容:两者都将返回相同的inode号(ino),并且nlink计数将被设置为2。

                -

                unlink系统调用从文件系统中删除一个名称。只有当文件的链接数为零且没有文件描述符引用时,文件的inode和包含其内容的磁盘空间才会被释放,因此添加

                -
                unlink("a");
                -
                -

                最后一行代码序列中会使inode和文件内容可以作为b访问。此外

                -
                fd = open("/tmp/xyz", O_CREATE | O_RDWR);
                -unlink("/tmp/xyz");
                -
                -

                是创建没有名称的临时inode的惯用方法,该临时inode将在进程关闭fd或退出时被清理。

                -

                Unix以用户级程序的形式提供了可从shell调用的文件实用程序,例如mkdirlnrm。这种设计允许任何人通过添加新的用户级程序来扩展命令行接口。事后看来,这个计划似乎是显而易见的,但是在Unix时代设计的其他系统经常将这样的命令构建到shell中(并将shell构建到内核中)

                -

                一个例外是cd,它是内置在shell(user/sh.c:160)。cd必须更改shell本身的当前工作目录。如果cd作为常规命令运行,那么shell将分出一个子进程,子进程将运行cdcd将更改子进程的工作目录。父目录(即shell的)的工作目录不会改变。

                -
                copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 12:04:10 -
                - -
                - -
                -
                -
                - -

                results matching ""

                -
                  - -
                  -
                  - -

                  No results matching ""

                  - -
                  -
                  -
                  - -
                  -
                  - -
                  - - - - - - - - - - - - - - -
                  - - -
                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s4.md b/_book/tranlate_books/book-riscv-rev1/c1/s4.md deleted file mode 100644 index 0a86080..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s4.md +++ /dev/null @@ -1,76 +0,0 @@ -# 1.4 文件系统 - -Xv6文件系统提供数据文件(包含未解释的字节数组)和目录(包含对数据文件和其他目录的命名引用)。这些目录形成一个树,从一个叫做根的特殊目录开始。像`/a/b/c`这样的路径是指在根目录`/`下名为`a`的目录中名为`b`的目录中名为`c`的文件或目录。不以`/`开始的路径相对于调用进程的当前工作目录进行计算,当前工作目录可以通过`chdir`系统调用进行更改。下面两个代码片段打开相同的文件(假设所有相关的目录都存在) - -```c -chdir("/a"); -chdir("b"); -open("c", O_RDONLY); -open("/a/b/c", O_RDONLY); -``` - -上面代码将进程的当前目录更改为`/a/b`;下面代码既不引用也不更改进程的当前目录 - -还有创建新文件和目录的系统调用: - -- `mkdir`创建一个新目录 - -- `open`中若使用`O_CREATE`标志将会创建一个新的数据文件 - -- `mknod`创建一个新的设备文件 - -这个例子说明了这三点: - -```c -mkdir("/dir"); -fd = open("/dir/file", O_CREATE | O_WRONLY); -close(fd); -mknod("/console", 1, 1); -``` - -`mknod`创建一个引用设备的特殊文件。与设备文件相关联的是主设备号和次设备号(`mknod`的两个参数),它们唯一地标识了一个内核设备。当进程稍后打开设备文件时,内核将使用内核设备实现`read`和`write`系统调用,而不是使用文件系统。 - -一个文件的名字和文件本身是不同的;同一个底层文件(叫做inode,索引结点)可以有多个名字(叫做link,链接)。每个链接都由目录中的一个条目组成;该条目包含一个文件名和一个inode引用。Inode保存有关文件的元数据(用于解释或帮助理解信息的数据),包括其类型(文件/目录/设备)、长度、文件内容在磁盘上的位置以及指向文件的链接数。 - -`fstat`系统调用从文件描述符所引用的inode中检索信息。它填充一个`stat`类型的结构体,`struct stat`在***stat.h(kernel/stat.h)***中定义为 - -```c -#define T_DIR 1 // Directory -#define T_FILE 2 // File -#define T_DEVICE 3 // Device -struct stat { - int dev; // 文件系统的磁盘设备 - uint ino; // Inode编号 - short type; // 文件类型 - short nlink; // 指向文件的链接数 - uint64 size; // 文件字节数 -}; -``` - -`link`系统调用创建另一个文件名,该文件名指向与现有文件相同的inode。下面的代码片段创建了一个名字既为***a***又为***b***的新文件 - -```c -open("a", O_CREATE | O_WRONLY); -link("a", "b"); -``` - -从***a***读取或写入与从***b***读取或写入是相同的操作。每个inode由唯一的inode编号标识。在上面的代码序列之后,可以通过检查`fstat`的结果来确定a和b引用相同的底层内容:两者都将返回相同的inode号(`ino`),并且`nlink`计数将被设置为2。 - -`unlink`系统调用从文件系统中删除一个名称。只有当文件的链接数为零且没有文件描述符引用时,文件的inode和包含其内容的磁盘空间才会被释放,因此添加 - -```c -unlink("a"); -``` - -最后一行代码序列中会使inode和文件内容可以作为b访问。此外 - -```c -fd = open("/tmp/xyz", O_CREATE | O_RDWR); -unlink("/tmp/xyz"); -``` - -是创建没有名称的临时inode的惯用方法,该临时inode将在进程关闭fd或退出时被清理。 - -Unix以用户级程序的形式提供了可从shell调用的文件实用程序,例如`mkdir`、`ln`和`rm`。这种设计允许任何人通过添加新的用户级程序来扩展命令行接口。事后看来,这个计划似乎是显而易见的,但是在Unix时代设计的其他系统经常将这样的命令构建到shell中(并将shell构建到内核中) - -一个例外是`cd`,它是内置在shell(***user/sh.c***:160)。`cd`必须更改shell本身的当前工作目录。如果`cd`作为常规命令运行,那么shell将分出一个子进程,子进程将运行`cd`,`cd`将更改子进程的工作目录。父目录(即shell的)的工作目录不会改变。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s5.html b/_book/tranlate_books/book-riscv-rev1/c1/s5.html deleted file mode 100644 index 63ad330..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s5.html +++ /dev/null @@ -1,858 +0,0 @@ - - - - - - - 1.5 真实世界 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  -
                  - - - - - - - - -
                  - -
                  - -
                  - - - - - - - - -
                  -
                  - -
                  -
                  - -
                  - -

                  1.5 真实世界

                  -

                  Unix将“标准”文件描述符、管道和方便的shell语法结合起来进行操作,这是编写通用可重用程序方面的一大进步。这个想法引发了一种“软件工具”的文化,这种文化对Unix的强大和流行做出了卓越贡献,shell是第一个所谓的“脚本语言”。Unix系统调用接口今天仍然存在于BSD、Linux和MacOSx等系统中。

                  -

                  Unix系统调用接口已经通过便携式操作系统接口(POSIX)标准进行了标准化。Xv6与POSIX不兼容:它缺少许多系统调用(包括lseek等基本系统调用),并且它提供的许多系统调用与标准不同。我们xv6的主要目标是简单明了,同时提供一个简单的类unix系统调用接口。为了运行基本的Unix程序,有些人扩展了xv6,增加了一些系统调用和一个简单的c库。然而,现代内核比xv6提供了更多的系统调用和更多种类的内核服务。例如,它们支持网络工作、窗口系统、用户级线程、许多设备的驱动程序等等。现代内核不断快速发展,提供了许多超越POSIX的特性。

                  -

                  Unix通过一组文件名和文件描述符接口统一访问多种类型的资源(文件、目录和设备)。这个想法可以扩展到更多种类的资源;一个很好的例子是Plan9,它将“资源是文件”的概念应用到网络、图形等等。然而,大多数unix衍生的操作系统并没有遵循这条路。

                  -

                  文件系统和文件描述符是强大的抽象。即便如此,还有其他的操作系统接口模型。Multics,Unix的前身,以一种看起来像内存的方式抽象了文件存储,产生了一种非常不同的接口风格。Multics设计的复杂性直接影响了Unix的设计者,他们试图使设计更简单。

                  -

                  Xv6没有提供一个用户概念或者保护一个用户不受另一个用户的伤害;用Unix的术语来说,所有的Xv6进程都作为root运行。

                  -

                  本书研究了xv6如何实现其类Unix接口,但这些思想和概念不仅仅适用于Unix。任何操作系统都必须在底层硬件上复用进程,彼此隔离进程,并提供受控制的进程间通讯机制。在学习了xv6之后,你应该去看看更复杂的操作系统,以及这些系统中与xv6相同的底层基本概念。

                  -
                  copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 12:05:11 -
                  - -
                  - -
                  -
                  -
                  - -

                  results matching ""

                  -
                    - -
                    -
                    - -

                    No results matching ""

                    - -
                    -
                    -
                    - -
                    -
                    - -
                    - - - - - - - - - - - - - - -
                    - - -
                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s5.md b/_book/tranlate_books/book-riscv-rev1/c1/s5.md deleted file mode 100644 index b1159f0..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s5.md +++ /dev/null @@ -1,13 +0,0 @@ -# 1.5 真实世界 - -Unix将“标准”文件描述符、管道和方便的shell语法结合起来进行操作,这是编写通用可重用程序方面的一大进步。这个想法引发了一种“软件工具”的文化,这种文化对Unix的强大和流行做出了卓越贡献,shell是第一个所谓的“脚本语言”。Unix系统调用接口今天仍然存在于BSD、Linux和MacOSx等系统中。 - -Unix系统调用接口已经通过便携式操作系统接口(POSIX)标准进行了标准化。Xv6与POSIX不兼容:它缺少许多系统调用(包括lseek等基本系统调用),并且它提供的许多系统调用与标准不同。我们xv6的主要目标是简单明了,同时提供一个简单的类unix系统调用接口。为了运行基本的Unix程序,有些人扩展了xv6,增加了一些系统调用和一个简单的c库。然而,现代内核比xv6提供了更多的系统调用和更多种类的内核服务。例如,它们支持网络工作、窗口系统、用户级线程、许多设备的驱动程序等等。现代内核不断快速发展,提供了许多超越POSIX的特性。 - -Unix通过一组文件名和文件描述符接口统一访问多种类型的资源(文件、目录和设备)。这个想法可以扩展到更多种类的资源;一个很好的例子是Plan9,它将“资源是文件”的概念应用到网络、图形等等。然而,大多数unix衍生的操作系统并没有遵循这条路。 - -文件系统和文件描述符是强大的抽象。即便如此,还有其他的操作系统接口模型。Multics,Unix的前身,以一种看起来像内存的方式抽象了文件存储,产生了一种非常不同的接口风格。Multics设计的复杂性直接影响了Unix的设计者,他们试图使设计更简单。 - -Xv6没有提供一个用户概念或者保护一个用户不受另一个用户的伤害;用Unix的术语来说,所有的Xv6进程都作为root运行。 - -本书研究了xv6如何实现其类Unix接口,但这些思想和概念不仅仅适用于Unix。任何操作系统都必须在底层硬件上复用进程,彼此隔离进程,并提供受控制的进程间通讯机制。在学习了xv6之后,你应该去看看更复杂的操作系统,以及这些系统中与xv6相同的底层基本概念。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s6.html b/_book/tranlate_books/book-riscv-rev1/c1/s6.html deleted file mode 100644 index 383d931..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s6.html +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - 1.6 练习 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    -
                    - - - - - - - - -
                    - -
                    - -
                    - - - - - - - - -
                    -
                    - -
                    -
                    - -
                    - -

                    1.6 练习

                    -

                    编写一个使用UNIX系统调用的程序,通过一对管道在两个进程之间“ping-pong”一个字节(也就是像打乒乓球一样来回传递),每个方向一个管道。以每秒的交换次数为单位,测量程序的性能。

                    -
                    copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 12:05:39 -
                    - -
                    - -
                    -
                    -
                    - -

                    results matching ""

                    -
                      - -
                      -
                      - -

                      No results matching ""

                      - -
                      -
                      -
                      - -
                      -
                      - -
                      - - - - - - - - - - - - - - -
                      - - -
                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c1/s6.md b/_book/tranlate_books/book-riscv-rev1/c1/s6.md deleted file mode 100644 index ea571c7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c1/s6.md +++ /dev/null @@ -1,4 +0,0 @@ -# 1.6 练习 - -编写一个使用UNIX系统调用的程序,通过一对管道在两个进程之间“ping-pong”一个字节(也就是像打乒乓球一样来回传递),每个方向一个管道。以每秒的交换次数为单位,测量程序的性能。 - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s0.html b/_book/tranlate_books/book-riscv-rev1/c2/s0.html deleted file mode 100644 index fe0e908..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s0.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - 第二章 操作系统架构 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                      -
                      - - - - - - - - -
                      - -
                      - -
                      - - - - - - - - -
                      -
                      - -
                      -
                      - -
                      - -

                      第二章 操作系统架构

                      -

                      操作系统的一个关键要求是同时支持多个活动。例如,使用第1章中描述的系统调用接口,一个进程可以用fork启动新进程。操作系统必须在这些进程之间分时使用计算机资源。例如,即使进程比硬件处理器多,操作系统也必须确保所有进程都有机会执行。操作系统还必须安排进程之间的隔离。也就是说,如果一个进程有错误和故障,它不应该影响不依赖于有错误的进程的进程。然而,完全隔离又太过头了,进程之间应当可以进行刻意为之的交互;管道就是一个例子。因此,操作系统必须满足三个要求:多路复用、隔离和交互。

                      -

                      本章概述了如何组织操作系统来实现这三个要求。事实证明,有很多方法可以做到这一点,但是本文侧重于以宏内核为中心的主流设计,许多Unix操作系统都使用这种内核。本章还概述了xv6进程(它是xv6中的隔离单元)以及xv6启动时第一个进程的创建。

                      -

                      Xv6运行在多核RISC-V微处理器上,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的。RISC-V是一个64位的中央处理器,xv6是用基于“LP64”的C语言编写的,这意味着C语言中的long(L)和指针(P)变量都是64位的,但int是32位的。这本书假设读者已经在一些架构上做了一些机器级编程,并将在出现时介绍RISC-V特定的想法。RISC-V的一个有用的参考文献是《The RISC-V Reader: An Open Architecture Atlas》。用户级ISA和特权指令架构均是官方规范。

                      -

                      完整计算机中的CPU被支撑硬件包围,其中大部分是以I/O接口的形式。Xv6是以qemu的“-machine virt”选项模拟的支撑硬件编写的。这包括RAM、包含引导代码的ROM、一个到用户键盘/屏幕的串行连接,以及一个用于存储的磁盘。

                      -
                      copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-18 22:36:12 -
                      - -
                      - -
                      -
                      -
                      - -

                      results matching ""

                      -
                        - -
                        -
                        - -

                        No results matching ""

                        - -
                        -
                        -
                        - -
                        -
                        - -
                        - - - - - - - - - - - - - - -
                        - - -
                        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s0.md b/_book/tranlate_books/book-riscv-rev1/c2/s0.md deleted file mode 100644 index c7c449a..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s0.md +++ /dev/null @@ -1,9 +0,0 @@ -# 第二章 操作系统架构 - -操作系统的一个关键要求是同时支持多个活动。例如,使用第1章中描述的系统调用接口,一个进程可以用`fork`启动新进程。操作系统必须在这些进程之间分时使用计算机资源。例如,即使进程比硬件处理器多,操作系统也必须确保所有进程都有机会执行。操作系统还必须安排进程之间的隔离。也就是说,如果一个进程有错误和故障,它不应该影响不依赖于有错误的进程的进程。然而,完全隔离又太过头了,进程之间应当可以进行刻意为之的交互;管道就是一个例子。因此,操作系统必须满足三个要求:多路复用、隔离和交互。 - -本章概述了如何组织操作系统来实现这三个要求。事实证明,有很多方法可以做到这一点,但是本文侧重于以**宏内核**为中心的主流设计,许多Unix操作系统都使用这种内核。本章还概述了xv6进程(它是xv6中的隔离单元)以及xv6启动时第一个进程的创建。 - -Xv6运行在多核RISC-V微处理器上,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的。RISC-V是一个64位的中央处理器,xv6是用基于“LP64”的C语言编写的,这意味着C语言中的`long`(L)和指针(P)变量都是64位的,但`int`是32位的。这本书假设读者已经在一些架构上做了一些机器级编程,并将在出现时介绍RISC-V特定的想法。RISC-V的一个有用的参考文献是《The RISC-V Reader: An Open Architecture Atlas》。用户级ISA和特权指令架构均是官方规范。 - -完整计算机中的CPU被支撑硬件包围,其中大部分是以I/O接口的形式。Xv6是以qemu的“-machine virt”选项模拟的支撑硬件编写的。这包括RAM、包含引导代码的ROM、一个到用户键盘/屏幕的串行连接,以及一个用于存储的磁盘。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s1.html b/_book/tranlate_books/book-riscv-rev1/c2/s1.html deleted file mode 100644 index 8c0d938..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s1.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - - 2.1 抽象系统资源 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                        -
                        - - - - - - - - -
                        - -
                        - -
                        - - - - - - - - -
                        -
                        - -
                        -
                        - -
                        - -

                        2.1 抽象系统资源

                        -

                        当谈及操作系统时,人们可能会问的第一个问题是为什么需要它?也就是说,我们可以将图1.2中的系统调用实现为一个库,应用程序可以与之链接。在此方案中,每个应用程序甚至可以根据自己的需求定制自己的库。应用程序可以直接与硬件资源交互,并以应用程序的最佳方式使用这些资源(例如,实现高性能或可预测的性能)。一些嵌入式设备或实时系统的操作系统就是这样组织的。

                        -

                        这种库函数方法的缺点是,如果有多个应用程序在运行,这些应用程序必须表现良好。例如,每个应用程序必须定期放弃中央处理器,以便其他应用程序能够运行。如果所有应用程序都相互信任并且没有错误,这种协同操作的分时方案可能是可以的。 然而更典型的情况是, 应用程序互不信任且存在bug,所以人们通常希望提供比合作方案更强的隔离。

                        -

                        为了实现强隔离, 最好禁止应用程序直接访问敏感的硬件资源,而是将资源抽象为服务。 例如,Unix应用程序只通过文件系统的openreadwriteclose系统调用与存储交互,而不是直接读写磁盘。这为应用程序提供了方便实用的路径名,并允许操作系统(作为接口的实现者)管理磁盘。即使隔离不是一个问题,有意交互(或者只是希望互不干扰)的程序可能会发现文件系统比直接使用磁盘更方便。

                        -

                        同样,Unix在进程之间透明地切换硬件处理器,根据需要保存和恢复寄存器状态,这样应用程序就不必意识到分时共享的存在。这种透明性允许操作系统共享处理器,即使有些应用程序处于无限循环中。

                        -

                        另一个例子是,Unix进程使用exec来构建它们的内存映像,而不是直接与物理内存交互。这允许操作系统决定将一个进程放在内存中的哪里;如果内存很紧张,操作系统甚至可以将一个进程的一些数据存储在磁盘上。exec还为用户提供了存储可执行程序映像的文件系统的便利。

                        -

                        Unix进程之间的许多交互形式都是通过文件描述符实现的。文件描述符不仅抽象了许多细节(例如,管道或文件中的数据存储在哪里),而且还以简化交互的方式进行了定义。例如,如果流水线中的一个应用程序失败了,内核会为流水线中的下一个进程生成文件结束信号(EOF)。

                        -

                        图1.2中的系统调用接口是精心设计的,既为程序员提供了便利,又提供了强隔离的可能性。Unix接口不是抽象资源的唯一方法,但它已经被证明是一个非常好的方法

                        -
                        copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:44:42 -
                        - -
                        - -
                        -
                        -
                        - -

                        results matching ""

                        -
                          - -
                          -
                          - -

                          No results matching ""

                          - -
                          -
                          -
                          - -
                          -
                          - -
                          - - - - - - - - - - - - - - -
                          - - -
                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s1.md b/_book/tranlate_books/book-riscv-rev1/c2/s1.md deleted file mode 100644 index 57a46f8..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s1.md +++ /dev/null @@ -1,15 +0,0 @@ -# 2.1 抽象系统资源 - -当谈及操作系统时,人们可能会问的第一个问题是为什么需要它?也就是说,我们可以将图1.2中的系统调用实现为一个库,应用程序可以与之链接。在此方案中,每个应用程序甚至可以根据自己的需求定制自己的库。应用程序可以直接与硬件资源交互,并以应用程序的最佳方式使用这些资源(例如,实现高性能或可预测的性能)。一些嵌入式设备或实时系统的操作系统就是这样组织的。 - -这种库函数方法的缺点是,如果有多个应用程序在运行,这些应用程序必须表现良好。例如,每个应用程序必须定期放弃中央处理器,以便其他应用程序能够运行。如果所有应用程序都相互信任并且没有错误,这种协同操作的分时方案可能是可以的。 然而更典型的情况是, 应用程序互不信任且存在bug,所以人们通常希望提供比合作方案更强的隔离。 - -为了实现强隔离, 最好禁止应用程序直接访问敏感的硬件资源,而是将资源抽象为服务。 例如,Unix应用程序只通过文件系统的`open`、`read`、`write`和`close`系统调用与存储交互,而不是直接读写磁盘。这为应用程序提供了方便实用的路径名,并允许操作系统(作为接口的实现者)管理磁盘。即使隔离不是一个问题,有意交互(或者只是希望互不干扰)的程序可能会发现文件系统比直接使用磁盘更方便。 - -同样,Unix在进程之间透明地切换硬件处理器,根据需要保存和恢复寄存器状态,这样应用程序就不必意识到分时共享的存在。这种透明性允许操作系统共享处理器,即使有些应用程序处于无限循环中。 - -另一个例子是,Unix进程使用`exec`来构建它们的内存映像,而不是直接与物理内存交互。这允许操作系统决定将一个进程放在内存中的哪里;如果内存很紧张,操作系统甚至可以将一个进程的一些数据存储在磁盘上。`exec`还为用户提供了存储可执行程序映像的文件系统的便利。 - -Unix进程之间的许多交互形式都是通过文件描述符实现的。文件描述符不仅抽象了许多细节(例如,管道或文件中的数据存储在哪里),而且还以简化交互的方式进行了定义。例如,如果流水线中的一个应用程序失败了,内核会为流水线中的下一个进程生成文件结束信号(EOF)。 - -图1.2中的系统调用接口是精心设计的,既为程序员提供了便利,又提供了强隔离的可能性。Unix接口不是抽象资源的唯一方法,但它已经被证明是一个非常好的方法 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s2.html b/_book/tranlate_books/book-riscv-rev1/c2/s2.html deleted file mode 100644 index f6d2a11..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s2.html +++ /dev/null @@ -1,861 +0,0 @@ - - - - - - - 2.2 用户态,核心态,以及系统调用 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                          -
                          - - - - - - - - -
                          - -
                          - -
                          - - - - - - - - -
                          -
                          - -
                          -
                          - -
                          - -

                          2.2 用户态,核心态,以及系统调用

                          -
                          -

                          [!NOTE] -用户态=用户模式=目态

                          -

                          核心态=管理模式=管态

                          -
                          -

                          强隔离需要应用程序和操作系统之间的硬边界,如果应用程序出错,我们不希望操作系统失败或其他应用程序失败,相反,操作系统应该能够清理失败的应用程序,并继续运行其他应用程序,要实现强隔离,操作系统必须保证应用程序不能修改(甚至读取)操作系统的数据结构和指令,以及应用程序不能访问其他进程的内存。

                          -

                          CPU为强隔离提供硬件支持。例如,RISC-V有三种CPU可以执行指令的模式:机器模式(Machine Mode)、用户模式(User Mode)和管理模式(Supervisor Mode)。在机器模式下执行的指令具有完全特权;CPU在机器模式下启动。机器模式主要用于配置计算机。Xv6在机器模式下执行很少的几行代码,然后更改为管理模式。

                          -

                          在管理模式下,CPU被允许执行特权指令:例如,启用和禁用中断、读取和写入保存页表地址的寄存器等。如果用户模式下的应用程序试图执行特权指令,那么CPU不会执行该指令,而是切换到管理模式,以便管理模式代码可以终止应用程序,因为它做了它不应该做的事情。第1章中的图1.1说明了这种组织。应用程序只能执行用户模式的指令(例如,数字相加等),并被称为在用户空间中运行,而此时处于管理模式下的软件可以执行特权指令,并被称为在内核空间中运行。在内核空间(或管理模式)中运行的软件被称为内核。

                          -

                          想要调用内核函数的应用程序(例如xv6中的read系统调用)必须过渡到内核。CPU提供一个特殊的指令,将CPU从用户模式切换到管理模式,并在内核指定的入口点进入内核(RISC-V为此提供ecall指令)。一旦CPU切换到管理模式,内核就可以验证系统调用的参数,决定是否允许应用程序执行请求的操作,然后拒绝它或执行它。由内核控制转换到管理模式的入口点是很重要的;如果应用程序可以决定内核入口点, 那么恶意应用程序可以在跳过参数验证的地方进入内核。

                          -
                          copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:28:57 -
                          - -
                          - -
                          -
                          -
                          - -

                          results matching ""

                          -
                            - -
                            -
                            - -

                            No results matching ""

                            - -
                            -
                            -
                            - -
                            -
                            - -
                            - - - - - - - - - - - - - - -
                            - - -
                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s2.md b/_book/tranlate_books/book-riscv-rev1/c2/s2.md deleted file mode 100644 index c79eaa1..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s2.md +++ /dev/null @@ -1,15 +0,0 @@ -# 2.2 用户态,核心态,以及系统调用 - -> [!NOTE] -> 用户态=用户模式=目态 -> -> 核心态=管理模式=管态 - -强隔离需要应用程序和操作系统之间的硬边界,如果应用程序出错,我们不希望操作系统失败或其他应用程序失败,相反,操作系统应该能够清理失败的应用程序,并继续运行其他应用程序,要实现强隔离,操作系统必须保证应用程序不能修改(甚至读取)操作系统的数据结构和指令,以及应用程序不能访问其他进程的内存。 - -CPU为强隔离提供硬件支持。例如,RISC-V有三种CPU可以执行指令的模式:机器模式(Machine Mode)、用户模式(User Mode)和管理模式(Supervisor Mode)。在机器模式下执行的指令具有完全特权;CPU在机器模式下启动。机器模式主要用于配置计算机。Xv6在机器模式下执行很少的几行代码,然后更改为管理模式。 - -在管理模式下,CPU被允许执行特权指令:例如,启用和禁用中断、读取和写入保存页表地址的寄存器等。如果用户模式下的应用程序试图执行特权指令,那么CPU不会执行该指令,而是切换到管理模式,以便管理模式代码可以终止应用程序,因为它做了它不应该做的事情。第1章中的图1.1说明了这种组织。应用程序只能执行用户模式的指令(例如,数字相加等),并被称为在**用户空间**中运行,而此时处于管理模式下的软件可以执行特权指令,并被称为在**内核空间**中运行。在内核空间(或管理模式)中运行的软件被称为内核。 - -想要调用内核函数的应用程序(例如xv6中的`read`系统调用)必须过渡到内核。CPU提供一个特殊的指令,将CPU从用户模式切换到管理模式,并在内核指定的入口点进入内核(RISC-V为此提供`ecall`指令)。一旦CPU切换到管理模式,内核就可以验证系统调用的参数,决定是否允许应用程序执行请求的操作,然后拒绝它或执行它。由内核控制转换到管理模式的入口点是很重要的;如果应用程序可以决定内核入口点, 那么恶意应用程序可以在跳过参数验证的地方进入内核。 - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s3.html b/_book/tranlate_books/book-riscv-rev1/c2/s3.html deleted file mode 100644 index 53ba3f5..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s3.html +++ /dev/null @@ -1,864 +0,0 @@ - - - - - - - 2.3 内核组织 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            -
                            - - - - - - - - -
                            - -
                            - -
                            - - - - - - - - -
                            -
                            - -
                            -
                            - -
                            - -

                            2.3 内核组织

                            -

                            一个关键的设计问题是操作系统的哪些部分应该以管理模式运行。一种可能是整个操作系统都驻留在内核中,这样所有系统调用的实现都以管理模式运行。这种组织被称为宏内核(monolithic kernel)

                            -

                            在这种组织中,整个操作系统以完全的硬件特权运行。这个组织很方便,因为操作系统设计者不必考虑操作系统的哪一部分不需要完全的硬件特权。此外,操作系统的不同部分更容易合作。例如,一个操作系统可能有一个可以由文件系统和虚拟内存系统共享的数据缓存区。

                            -

                            宏组织的一个缺点是操作系统不同部分之间的接口通常很复杂(正如我们将在本文的其余部分中看到的),因此操作系统开发人员很容易犯错误。在宏内核中,一个错误就可能是致命的,因为管理模式中的错误经常会导致内核失败。如果内核失败,计算机停止工作,因此所有应用程序也会失败。计算机必须重启才能再次使用。

                            -

                            为了降低内核出错的风险,操作系统设计者可以最大限度地减少在管理模式下运行的操作系统代码量,并在用户模式下执行大部分操作系统。这种内核组织被称为微内核(microkernel)

                            -

                            img

                            -

                            图2.1说明了这种微内核设计。在图中,文件系统作为用户级进程运行。作为进程运行的操作系统服务被称为服务器。为了允许应用程序与文件服务器交互,内核提供了允许从一个用户态进程向另一个用户态进程发送消息的进程间通信机制。例如,如果像shell这样的应用程序想要读取或写入文件,它会向文件服务器发送消息并等待响应。

                            -
                            -

                            [!TIP|label:TIPS] -由于客户/服务器(Client/Server)模式,具有非常多的优点,故在单机微内核操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。

                            -
                            -

                            在微内核中,内核接口由一些用于启动应用程序、发送消息、访问设备硬件等的低级功能组成。这种组织允许内核相对简单,因为大多数操作系统驻留在用户级服务器中。

                            -

                            像大多数Unix操作系统一样,Xv6是作为一个宏内核实现的。因此,xv6内核接口对应于操作系统接口,内核实现了完整的操作系统。由于xv6不提供太多服务,它的内核可以比一些微内核还小,但从概念上说xv6属于宏内核

                            -
                            copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:55:13 -
                            - -
                            - -
                            -
                            -
                            - -

                            results matching ""

                            -
                              - -
                              -
                              - -

                              No results matching ""

                              - -
                              -
                              -
                              - -
                              -
                              - -
                              - - - - - - - - - - - - - - -
                              - - -
                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s3.md b/_book/tranlate_books/book-riscv-rev1/c2/s3.md deleted file mode 100644 index 4468f3c..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s3.md +++ /dev/null @@ -1,20 +0,0 @@ -# 2.3 内核组织 - -一个关键的设计问题是操作系统的哪些部分应该以管理模式运行。一种可能是整个操作系统都驻留在内核中,这样所有系统调用的实现都以管理模式运行。这种组织被称为**宏内核(monolithic kernel)**。 - -在这种组织中,整个操作系统以完全的硬件特权运行。这个组织很方便,因为操作系统设计者不必考虑操作系统的哪一部分不需要完全的硬件特权。此外,操作系统的不同部分更容易合作。例如,一个操作系统可能有一个可以由文件系统和虚拟内存系统共享的数据缓存区。 - -宏组织的一个缺点是操作系统不同部分之间的接口通常很复杂(正如我们将在本文的其余部分中看到的),因此操作系统开发人员很容易犯错误。在宏内核中,一个错误就可能是致命的,因为管理模式中的错误经常会导致内核失败。如果内核失败,计算机停止工作,因此所有应用程序也会失败。计算机必须重启才能再次使用。 - -为了降低内核出错的风险,操作系统设计者可以最大限度地减少在管理模式下运行的操作系统代码量,并在用户模式下执行大部分操作系统。这种内核组织被称为**微内核(microkernel)**。 - -![img](../images/c2/p1.png) - -图2.1说明了这种微内核设计。在图中,文件系统作为用户级进程运行。作为进程运行的操作系统服务被称为服务器。为了允许应用程序与文件服务器交互,内核提供了允许从一个用户态进程向另一个用户态进程发送消息的进程间通信机制。例如,如果像shell这样的应用程序想要读取或写入文件,它会向文件服务器发送消息并等待响应。 - -> [!TIP|label:TIPS] -> 由于客户/服务器([Client/Server](https://baike.baidu.com/item/Client/Server))模式,具有非常多的优点,故在单机[微内核](https://baike.baidu.com/item/微内核)操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器([进程](https://baike.baidu.com/item/进程))中实现。 - -在微内核中,内核接口由一些用于启动应用程序、发送消息、访问设备硬件等的低级功能组成。这种组织允许内核相对简单,因为大多数操作系统驻留在用户级服务器中。 - -像大多数Unix操作系统一样,Xv6是作为一个宏内核实现的。因此,xv6内核接口对应于操作系统接口,内核实现了完整的操作系统。由于xv6不提供太多服务,它的内核可以比一些微内核还小,但从概念上说xv6属于宏内核 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s4.html b/_book/tranlate_books/book-riscv-rev1/c2/s4.html deleted file mode 100644 index 657d4a7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s4.html +++ /dev/null @@ -1,972 +0,0 @@ - - - - - - - 2.4 代码:XV6架构篇 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              -
                              - - - - - - - - -
                              - -
                              - -
                              - - - - - - - - -
                              -
                              - -
                              -
                              - -
                              - -

                              2.4 代码(XV6架构篇)

                              -

                              XV6的源代码位于kernel/子目录中,源代码按照模块化的概念划分为多个文件,图2.2列出了这些文件,模块间的接口都被定义在了def.hkernel/defs.h)。

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              文件描述
                              bio.c文件系统的磁盘块缓存
                              console.c连接到用户的键盘和屏幕
                              entry.S首次启动指令
                              exec.cexec()系统调用
                              file.c文件描述符支持
                              fs.c文件系统
                              kalloc.c物理页面分配器
                              kernelvec.S处理来自内核的陷入指令以及计时器中断
                              log.c文件系统日志记录以及崩溃修复
                              main.c在启动过程中控制其他模块初始化
                              pipe.c管道
                              plic.cRISC-V中断控制器
                              printf.c格式化输出到控制台
                              proc.c进程和调度
                              sleeplock.cLocks that yield the CPU
                              spinlock.cLocks that don’t yield the CPU.
                              start.c早期机器模式启动代码
                              string.c字符串和字节数组库
                              swtch.c线程切换
                              syscall.cDispatch system calls to handling function.
                              sysfile.c文件相关的系统调用
                              sysproc.c进程相关的系统调用
                              trampoline.S用于在用户和内核之间切换的汇编代码
                              trap.c对陷入指令和中断进行处理并返回的C代码
                              uart.c串口控制台设备驱动程序
                              virtio_disk.c磁盘设备驱动程序
                              vm.c管理页表和地址空间
                              -

                              图2.2:XV6内核源文件

                              -
                              copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:50:27 -
                              - -
                              - -
                              -
                              -
                              - -

                              results matching ""

                              -
                                - -
                                -
                                - -

                                No results matching ""

                                - -
                                -
                                -
                                - -
                                -
                                - -
                                - - - - - - - - - - - - - - -
                                - - -
                                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s4.md b/_book/tranlate_books/book-riscv-rev1/c2/s4.md deleted file mode 100644 index 3bfa848..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s4.md +++ /dev/null @@ -1,36 +0,0 @@ -# 2.4 代码(XV6架构篇) - -XV6的源代码位于***kernel/***子目录中,源代码按照模块化的概念划分为多个文件,图2.2列出了这些文件,模块间的接口都被定义在了***def.h***(***kernel/defs.h***)。 - -| **文件** | **描述** | -| ------------------- | ------------------------------------------- | -| ***bio.c*** | 文件系统的磁盘块缓存 | -| ***console.c*** | 连接到用户的键盘和屏幕 | -| ***entry.S*** | 首次启动指令 | -| ***exec.c*** | `exec()`系统调用 | -| ***file.c*** | 文件描述符支持 | -| ***fs.c*** | 文件系统 | -| ***kalloc.c*** | 物理页面分配器 | -| ***kernelvec.S*** | 处理来自内核的陷入指令以及计时器中断 | -| ***log.c*** | 文件系统日志记录以及崩溃修复 | -| ***main.c*** | 在启动过程中控制其他模块初始化 | -| ***pipe.c*** | 管道 | -| ***plic.c*** | RISC-V中断控制器 | -| ***printf.c*** | 格式化输出到控制台 | -| ***proc.c*** | 进程和调度 | -| ***sleeplock.c*** | Locks that yield the CPU | -| ***spinlock.c*** | Locks that don’t yield the CPU. | -| ***start.c*** | 早期机器模式启动代码 | -| ***string.c*** | 字符串和字节数组库 | -| ***swtch.c*** | 线程切换 | -| ***syscall.c*** | Dispatch system calls to handling function. | -| ***sysfile.c*** | 文件相关的系统调用 | -| ***sysproc.c*** | 进程相关的系统调用 | -| ***trampoline.S*** | 用于在用户和内核之间切换的汇编代码 | -| ***trap.c*** | 对陷入指令和中断进行处理并返回的C代码 | -| ***uart.c*** | 串口控制台设备驱动程序 | -| ***virtio_disk.c*** | 磁盘设备驱动程序 | -| ***vm.c*** | 管理页表和地址空间 | - -​ **图2.2:XV6内核源文件** - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s5.html b/_book/tranlate_books/book-riscv-rev1/c2/s5.html deleted file mode 100644 index 409f15f..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s5.html +++ /dev/null @@ -1,862 +0,0 @@ - - - - - - - 2.5 进程概述 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                -
                                - - - - - - - - -
                                - -
                                - -
                                - - - - - - - - -
                                -
                                - -
                                -
                                - -
                                - -

                                2.5 进程概述

                                -

                                Xv6(和其他Unix操作系统一样)中的隔离单位是一个进程。进程抽象防止一个进程破坏或监视另一个进程的内存、CPU、文件描述符等。它还防止一个进程破坏内核本身,这样一个进程就不能破坏内核的隔离机制。内核必须小心地实现进程抽象,因为一个有缺陷或恶意的应用程序可能会欺骗内核或硬件做坏事(例如,绕过隔离)。内核用来实现进程的机制包括用户/管理模式标志、地址空间和线程的时间切片。

                                -

                                为了帮助加强隔离,进程抽象给程序提供了一种错觉,即它有自己的专用机器。进程为程序提供了一个看起来像是私有内存系统或地址空间的东西,其他进程不能读取或写入。进程还为程序提供了看起来像是自己的CPU来执行程序的指令。

                                -

                                Xv6使用页表(由硬件实现)为每个进程提供自己的地址空间。RISC-V页表将虚拟地址(RISC-V指令操纵的地址)转换(或“映射”)为物理地址(CPU芯片发送到主存储器的地址)。

                                -

                                img

                                -

                                Xv6为每个进程维护一个单独的页表,定义了该进程的地址空间。如图2.3所示,以虚拟内存地址0开始的进程的用户内存地址空间。首先是指令,然后是全局变量,然后是栈区,最后是一个堆区域(用于malloc)以供进程根据需要进行扩展。有许多因素限制了进程地址空间的最大范围: RISC-V上的指针有64位宽;硬件在页表中查找虚拟地址时只使用低39位;xv6只使用这39位中的38位。因此,最大地址是2^38-1=0x3fffffffff,即MAXVA(定义在kernel/riscv.h:348)。在地址空间的顶部,xv6为trampoline(用于在用户和内核之间切换)和映射进程切换到内核的trapframe分别保留了一个页面,正如我们将在第4章中解释的那样。

                                -

                                xv6内核为每个进程维护许多状态片段,并将它们聚集到一个proc(kernel/proc.h:86)结构体中。一个进程最重要的内核状态片段是它的页表、内核栈区和运行状态。我们将使用符号p->xxx来引用proc结构体的元素;例如,p->pagetable是一个指向该进程页表的指针。

                                -

                                每个进程都有一个执行线程(或简称线程)来执行进程的指令。一个线程可以挂起并且稍后再恢复。为了透明地在进程之间切换,内核挂起当前运行的线程,并恢复另一个进程的线程。线程的大部分状态(本地变量、函数调用返回地址)存储在线程的栈区上。每个进程有两个栈区:一个用户栈区和一个内核栈区(p->kstack)。当进程执行用户指令时,只有它的用户栈在使用,它的内核栈是空的。当进程进入内核(由于系统调用或中断)时,内核代码在进程的内核堆栈上执行;当一个进程在内核中时,它的用户堆栈仍然包含保存的数据,只是不处于活动状态。进程的线程在主动使用它的用户栈和内核栈之间交替。内核栈是独立的(并且不受用户代码的保护),因此即使一个进程破坏了它的用户栈,内核依然可以正常运行。

                                -

                                一个进程可以通过执行RISC-V的ecall指令进行系统调用,该指令提升硬件特权级别,并将程序计数器(PC)更改为内核定义的入口点,入口点的代码切换到内核栈,执行实现系统调用的内核指令,当系统调用完成时,内核切换回用户栈,并通过调用sret指令返回用户空间,该指令降低了硬件特权级别,并在系统调用指令刚结束时恢复执行用户指令。进程的线程可以在内核中“阻塞”等待I/O,并在I/O完成后恢复到中断的位置。

                                -

                                p->state表明进程是已分配、就绪态、运行态、等待I/O中(阻塞态)还是退出。

                                -

                                p->pagetable以RISC-V硬件所期望的格式保存进程的页表。当在用户空间执行进程时,Xv6让分页硬件使用进程的p->pagetable。一个进程的页表也可以作为已分配给该进程用于存储进程内存的物理页面地址的记录。

                                -
                                copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:51:20 -
                                - -
                                - -
                                -
                                -
                                - -

                                results matching ""

                                -
                                  - -
                                  -
                                  - -

                                  No results matching ""

                                  - -
                                  -
                                  -
                                  - -
                                  -
                                  - -
                                  - - - - - - - - - - - - - - -
                                  - - -
                                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s5.md b/_book/tranlate_books/book-riscv-rev1/c2/s5.md deleted file mode 100644 index 9f926e6..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s5.md +++ /dev/null @@ -1,21 +0,0 @@ -# 2.5 进程概述 - -Xv6(和其他Unix操作系统一样)中的隔离单位是一个进程。进程抽象防止一个进程破坏或监视另一个进程的内存、CPU、文件描述符等。它还防止一个进程破坏内核本身,这样一个进程就不能破坏内核的隔离机制。内核必须小心地实现进程抽象,因为一个有缺陷或恶意的应用程序可能会欺骗内核或硬件做坏事(例如,绕过隔离)。内核用来实现进程的机制包括用户/管理模式标志、地址空间和线程的时间切片。 - -为了帮助加强隔离,进程抽象给程序提供了一种错觉,即它有自己的专用机器。进程为程序提供了一个看起来像是私有内存系统或地址空间的东西,其他进程不能读取或写入。进程还为程序提供了看起来像是自己的CPU来执行程序的指令。 - -Xv6使用页表(由硬件实现)为每个进程提供自己的地址空间。RISC-V页表将虚拟地址(RISC-V指令操纵的地址)转换(或“映射”)为物理地址(CPU芯片发送到主存储器的地址)。 - -![img](../images/c2/p2.png) - -Xv6为每个进程维护一个单独的页表,定义了该进程的地址空间。如图2.3所示,以虚拟内存地址0开始的进程的用户内存地址空间。首先是指令,然后是全局变量,然后是栈区,最后是一个堆区域(用于`malloc`)以供进程根据需要进行扩展。有许多因素限制了进程地址空间的最大范围: RISC-V上的指针有64位宽;硬件在页表中查找虚拟地址时只使用低39位;xv6只使用这39位中的38位。因此,最大地址是2^38-1=0x3fffffffff,即`MAXVA`(定义在***kernel/riscv.h***:348)。在地址空间的顶部,xv6为`trampoline`(用于在用户和内核之间切换)和映射进程切换到内核的`trapframe`分别保留了一个页面,正如我们将在第4章中解释的那样。 - -xv6内核为每个进程维护许多状态片段,并将它们聚集到一个`proc`(***kernel/proc.h***:86)结构体中。一个进程最重要的内核状态片段是它的页表、内核栈区和运行状态。我们将使用符号`p->xxx`来引用`proc`结构体的元素;例如,`p->pagetable`是一个指向该进程页表的指针。 - -每个进程都有一个执行线程(或简称线程)来执行进程的指令。一个线程可以挂起并且稍后再恢复。为了透明地在进程之间切换,内核挂起当前运行的线程,并恢复另一个进程的线程。线程的大部分状态(本地变量、函数调用返回地址)存储在线程的栈区上。每个进程有两个栈区:一个用户栈区和一个内核栈区(`p->kstack`)。当进程执行用户指令时,只有它的用户栈在使用,它的内核栈是空的。当进程进入内核(由于系统调用或中断)时,内核代码在进程的内核堆栈上执行;当一个进程在内核中时,它的用户堆栈仍然包含保存的数据,只是不处于活动状态。进程的线程在主动使用它的用户栈和内核栈之间交替。内核栈是独立的(并且不受用户代码的保护),因此即使一个进程破坏了它的用户栈,内核依然可以正常运行。 - -一个进程可以通过执行RISC-V的`ecall`指令进行系统调用,该指令提升硬件特权级别,并将程序计数器(PC)更改为内核定义的入口点,入口点的代码切换到内核栈,执行实现系统调用的内核指令,当系统调用完成时,内核切换回用户栈,并通过调用`sret`指令返回用户空间,该指令降低了硬件特权级别,并在系统调用指令刚结束时恢复执行用户指令。进程的线程可以在内核中“阻塞”等待I/O,并在I/O完成后恢复到中断的位置。 - -`p->state`表明进程是已分配、就绪态、运行态、等待I/O中(阻塞态)还是退出。 - -`p->pagetable`以RISC-V硬件所期望的格式保存进程的页表。当在用户空间执行进程时,Xv6让分页硬件使用进程的`p->pagetable`。一个进程的页表也可以作为已分配给该进程用于存储进程内存的物理页面地址的记录。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s6.html b/_book/tranlate_books/book-riscv-rev1/c2/s6.html deleted file mode 100644 index 96d619a..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s6.html +++ /dev/null @@ -1,863 +0,0 @@ - - - - - - - 2.6 代码:启动XV6和第一个进程 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                  -
                                  - - - - - - - - -
                                  - -
                                  - -
                                  - - - - - - - - -
                                  -
                                  - -
                                  -
                                  - -
                                  - -

                                  2.6 代码(启动XV6和第一个进程)

                                  -

                                  为了使xv6更加具体,我们将概述内核如何启动和运行第一个进程。接下来的章节将更详细地描述本概述中显示的机制。

                                  -

                                  当RISC-V计算机上电时,它会初始化自己并运行一个存储在只读内存中的引导加载程序。引导加载程序将xv6内核加载到内存中。然后,在机器模式下,中央处理器从_entry (kernel/entry.S:6)开始运行xv6。Xv6启动时页式硬件(paging hardware)处于禁用模式:也就是说虚拟地址将直接映射到物理地址。

                                  -

                                  加载程序将xv6内核加载到物理地址为0x80000000的内存中。它将内核放在0x80000000而不是0x0的原因是地址范围0x0:0x80000000包含I/O设备。

                                  -

                                  _entry的指令设置了一个栈区,这样xv6就可以运行C代码。Xv6在start. c (kernel/start.c:11)文件中为初始栈stack0声明了空间。由于RISC-V上的栈是向下扩展的,所以_entry的代码将栈顶地址stack0+4096加载到栈顶指针寄存器sp中。现在内核有了栈区,_entry便调用C代码start(kernel/start.c:21)。

                                  -

                                  函数start执行一些仅在机器模式下允许的配置,然后切换到管理模式。RISC-V提供指令mret以进入管理模式,该指令最常用于将管理模式切换到机器模式的调用中返回。而start并非从这样的调用返回,而是执行以下操作:它在寄存器mstatus中将先前的运行模式改为管理模式,它通过将main函数的地址写入寄存器mepc将返回地址设为main,它通过向页表寄存器satp写入0来在管理模式下禁用虚拟地址转换,并将所有的中断和异常委托给管理模式。

                                  -

                                  在进入管理模式之前,start还要执行另一项任务:对时钟芯片进行编程以产生计时器中断。清理完这些“家务”后,start通过调用mret“返回”到管理模式。这将导致程序计数器(PC)的值更改为main(kernel/main.c:11)函数地址。

                                  -
                                  -

                                  [!TIP|label:TIPS] -注:mret执行返回,返回到先前状态,由于start函数将前模式改为了管理模式且返回地址改为了main,因此mret将返回到main函数,并以管理模式运行

                                  -
                                  -

                                  main(kernel/main.c:11)初始化几个设备和子系统后,便通过调用userinit (kernel/proc.c:212)创建第一个进程,第一个进程执行一个用RISC-V程序集写的小型程序:initcode. S (user/initcode.S:1),它通过调用exec系统调用重新进入内核。正如我们在第1章中看到的,exec用一个新程序(本例中为 /init)替换当前进程的内存和寄存器。一旦内核完成exec,它就返回/init进程中的用户空间。如果需要,init(user/init.c:15)将创建一个新的控制台设备文件,然后以文件描述符0、1和2打开它。然后它在控制台上启动一个shell。系统就这样启动了。

                                  -
                                  copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:53:20 -
                                  - -
                                  - -
                                  -
                                  -
                                  - -

                                  results matching ""

                                  -
                                    - -
                                    -
                                    - -

                                    No results matching ""

                                    - -
                                    -
                                    -
                                    - -
                                    -
                                    - -
                                    - - - - - - - - - - - - - - -
                                    - - -
                                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s6.md b/_book/tranlate_books/book-riscv-rev1/c2/s6.md deleted file mode 100644 index 419c8a7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s6.md +++ /dev/null @@ -1,18 +0,0 @@ -# 2.6 代码(启动XV6和第一个进程) - -为了使xv6更加具体,我们将概述内核如何启动和运行第一个进程。接下来的章节将更详细地描述本概述中显示的机制。 - -当RISC-V计算机上电时,它会初始化自己并运行一个存储在只读内存中的引导加载程序。引导加载程序将xv6内核加载到内存中。然后,在机器模式下,中央处理器从`_entry` (***kernel/entry.S***:6)开始运行xv6。Xv6启动时页式硬件(paging hardware)处于禁用模式:也就是说虚拟地址将直接映射到物理地址。 - -加载程序将xv6内核加载到物理地址为`0x80000000`的内存中。它将内核放在`0x80000000`而不是`0x0`的原因是地址范围`0x0:0x80000000`包含I/O设备。 - -`_entry`的指令设置了一个栈区,这样xv6就可以运行C代码。Xv6在***start. c (kernel/start.c:11)***文件中为初始栈***stack0***声明了空间。由于RISC-V上的栈是向下扩展的,所以`_entry`的代码将栈顶地址`stack0+4096`加载到栈顶指针寄存器`sp`中。现在内核有了栈区,`_entry`便调用C代码`start`(***kernel/start.c***:21)。 - -函数`start`执行一些仅在机器模式下允许的配置,然后切换到管理模式。RISC-V提供指令`mret`以进入管理模式,该指令最常用于将管理模式切换到机器模式的调用中返回。而`start`并非从这样的调用返回,而是执行以下操作:它在寄存器`mstatus`中将先前的运行模式改为管理模式,它通过将`main`函数的地址写入寄存器`mepc`将返回地址设为`main`,它通过向页表寄存器`satp`写入0来在管理模式下禁用虚拟地址转换,并将所有的中断和异常委托给管理模式。 - -在进入管理模式之前,`start`还要执行另一项任务:对时钟芯片进行编程以产生计时器中断。清理完这些“家务”后,`start`通过调用`mret`“返回”到管理模式。这将导致程序计数器(PC)的值更改为`main`(***kernel/main.c***:11)函数地址。 - -> [!TIP|label:TIPS] -> **注:**`mret`执行返回,返回到先前状态,由于`start`函数将前模式改为了管理模式且返回地址改为了`main`,因此`mret`将返回到`main`函数,并以管理模式运行 - -在`main`(***kernel/main.c***:11)初始化几个设备和子系统后,便通过调用`userinit` (***kernel/proc.c***:212)创建第一个进程,第一个进程执行一个用RISC-V程序集写的小型程序:***initcode. S*** (***user/initcode.S:***1),它通过调用`exec`系统调用重新进入内核。正如我们在第1章中看到的,`exec`用一个新程序(本例中为 `/init`)替换当前进程的内存和寄存器。一旦内核完成`exec`,它就返回`/init`进程中的用户空间。如果需要,`init`(***user/init.c***:15)将创建一个新的控制台设备文件,然后以文件描述符0、1和2打开它。然后它在控制台上启动一个shell。系统就这样启动了。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s7.html b/_book/tranlate_books/book-riscv-rev1/c2/s7.html deleted file mode 100644 index 26d301a..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s7.html +++ /dev/null @@ -1,854 +0,0 @@ - - - - - - - 2.7 真实世界 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                    -
                                    - - - - - - - - -
                                    - -
                                    - -
                                    - - - - - - - - -
                                    -
                                    - -
                                    -
                                    - -
                                    - -

                                    2.7 真实世界

                                    -

                                    在现实中,人们可以同时看到宏内核和微内核。许多Unix都采用宏内核。例如,尽管Linux的一些操作系统功能作为用户级服务器运行(例如窗口系统),但它是宏内核架构。而如L4、Minix和QNX的内核都被组织成一个带有多个服务器的微内核,微内核在嵌入式设备中得到了广泛的应用。

                                    -

                                    大多数操作系统都采用了进程的概念,并且大多数操作系统的进程看起来与xv6相似。然而,现代操作系统支持在一个进程中创建多个线程,使得一个进程能够利用多个处理器。在一个进程中支持多个线程涉及许多XV6缺乏的机制,包括潜在的接口更改(例如,Linux下fork的变体clone),以控制进程线程共享哪些内容。

                                    -
                                    copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:55:46 -
                                    - -
                                    - -
                                    -
                                    -
                                    - -

                                    results matching ""

                                    -
                                      - -
                                      -
                                      - -

                                      No results matching ""

                                      - -
                                      -
                                      -
                                      - -
                                      -
                                      - -
                                      - - - - - - - - - - - - - - -
                                      - - -
                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s7.md b/_book/tranlate_books/book-riscv-rev1/c2/s7.md deleted file mode 100644 index a7c8708..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s7.md +++ /dev/null @@ -1,5 +0,0 @@ -# 2.7 真实世界 - -在现实中,人们可以同时看到宏内核和微内核。许多Unix都采用宏内核。例如,尽管Linux的一些操作系统功能作为用户级服务器运行(例如窗口系统),但它是宏内核架构。而如L4、Minix和QNX的内核都被组织成一个带有多个服务器的微内核,微内核在嵌入式设备中得到了广泛的应用。 - -大多数操作系统都采用了进程的概念,并且大多数操作系统的进程看起来与xv6相似。然而,现代操作系统支持在一个进程中创建多个线程,使得一个进程能够利用多个处理器。在一个进程中支持多个线程涉及许多XV6缺乏的机制,包括潜在的接口更改(例如,Linux下`fork`的变体`clone`),以控制进程线程共享哪些内容。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s8.html b/_book/tranlate_books/book-riscv-rev1/c2/s8.html deleted file mode 100644 index 6177d57..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s8.html +++ /dev/null @@ -1,860 +0,0 @@ - - - - - - - 2.8 练习 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                      -
                                      - - - - - - - - -
                                      - -
                                      - -
                                      - - - - - - - - -
                                      -
                                      - -
                                      -
                                      - -
                                      - -

                                      2.8 练习

                                      -

                                      你可以使用gdb来观察最开始的“内核空间到用户空间”的转换。

                                      -
                                        -
                                      1. 请运行make qemu-gdb(如果想以单线程方式,则输入make CPUS=1 qemu-gdb)。
                                      2. -
                                      3. 打开另一个窗口,并在相同的目录下运行gdb(注:应当使用riscv64-linux-gnu-gdb)。
                                      4. -
                                      5. 键入gdb命令break*0x3ffffff10e,这将在内核中的sret指令处设置一个断点,该指令从内核空间跳入用户空间。
                                      6. -
                                      7. 键入gdb命令continue。gdb应当会停留在即将执行sret的断点处。
                                      8. -
                                      9. 键入stepi。gdb现在应当会指示目前在地址为0x0处执行,该地址就是以initcode.S开始的用户空间的起始地址
                                      10. -
                                      -
                                      copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:56:24 -
                                      - -
                                      - -
                                      -
                                      -
                                      - -

                                      results matching ""

                                      -
                                        - -
                                        -
                                        - -

                                        No results matching ""

                                        - -
                                        -
                                        -
                                        - -
                                        -
                                        - -
                                        - - - - - - - - - - - - - - -
                                        - - -
                                        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c2/s8.md b/_book/tranlate_books/book-riscv-rev1/c2/s8.md deleted file mode 100644 index befc219..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c2/s8.md +++ /dev/null @@ -1,10 +0,0 @@ -# 2.8 练习 - -你可以使用**gdb**来观察最开始的“内核空间到用户空间”的转换。 - -1. 请运行`make qemu-gdb`(如果想以单线程方式,则输入`make CPUS=1 qemu-gdb`)。 -2. 打开另一个窗口,并在相同的目录下运行`gdb`(注:应当使用riscv64-linux-gnu-gdb)。 -3. 键入gdb命令`break*0x3ffffff10e`,这将在内核中的`sret`指令处设置一个断点,该指令从内核空间跳入用户空间。 -4. 键入gdb命令`continue`。gdb应当会停留在即将执行`sret`的断点处。 -5. 键入`stepi`。gdb现在应当会指示目前在地址为`0x0`处执行,该地址就是以***initcode.S***开始的用户空间的起始地址 - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s0.html b/_book/tranlate_books/book-riscv-rev1/c3/s0.html deleted file mode 100644 index 5618106..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s0.html +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - 第三章 页表 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                        -
                                        - - - - - - - - -
                                        - -
                                        - -
                                        - - - - - - - - -
                                        -
                                        - -
                                        -
                                        - -
                                        - -

                                        第三章 页表

                                        -

                                        页表是操作系统为每个进程提供自己的私有地址空间和内存的机制。页表决定了内存地址的含义,以及物理内存的哪些部分可以访问。它们允许xv6隔离不同进程的地址空间,并将它们复用到单个物理内存上。页表还提供了一层抽象(a level of indirection),这允许xv6执行一些特殊操作:在若干个地址空间中映射相同的内存(a trampoline page),并用一个未映射的页面保护内核和用户栈区。本章的其余部分解释了RISC-V硬件提供的页表以及xv6如何使用它们。

                                        -
                                        copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:43:11 -
                                        - -
                                        - -
                                        -
                                        -
                                        - -

                                        results matching ""

                                        -
                                          - -
                                          -
                                          - -

                                          No results matching ""

                                          - -
                                          -
                                          -
                                          - -
                                          -
                                          - -
                                          - - - - - - - - - - - - - - -
                                          - - -
                                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s0.md b/_book/tranlate_books/book-riscv-rev1/c3/s0.md deleted file mode 100644 index d23f2a2..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s0.md +++ /dev/null @@ -1,3 +0,0 @@ -# 第三章 页表 - -页表是操作系统为每个进程提供自己的私有地址空间和内存的机制。页表决定了内存地址的含义,以及物理内存的哪些部分可以访问。它们允许xv6隔离不同进程的地址空间,并将它们复用到单个物理内存上。页表还提供了一层抽象(a level of indirection),这允许xv6执行一些特殊操作:在若干个地址空间中映射相同的内存(a trampoline page),并用一个未映射的页面保护内核和用户栈区。本章的其余部分解释了RISC-V硬件提供的页表以及xv6如何使用它们。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s1.html b/_book/tranlate_books/book-riscv-rev1/c3/s1.html deleted file mode 100644 index 4bf9af9..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s1.html +++ /dev/null @@ -1,862 +0,0 @@ - - - - - - - 3.1 页式硬件 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                          -
                                          - - - - - - - - -
                                          - -
                                          - -
                                          - - - - - - - - -
                                          -
                                          - -
                                          -
                                          - -
                                          - -

                                          3.1 页式硬件

                                          -

                                          提醒一下,RISC-V指令(用户和内核指令都包括)使用的是虚拟地址。而机器的RAM或物理内存是由物理地址索引的。RISC-V页表硬件通过将每个虚拟地址映射到物理地址来为这两种地址建立联系。

                                          -

                                          XV6基于Sv39 RISC-V运行,这意味着它只使用64位虚拟地址的低39位;而高25位不使用。在这种Sv39配置中,RISC-V页表在逻辑上是一个由$$2^{27}$$(134,217,728)个页表条目(Page Table Entries/PTE)组成的数组。每个PTE包含一个44位的物理页码(Physical Page Number/PPN)和一些标志。页式硬件通过使用虚拟地址39位中的前27位索引页表,以找到该虚拟地址对应的一个PTE,然后生成一个56位的物理地址,其前44位来自PTE中的PPN,其后12位来自原始虚拟地址。图3.1显示了这个过程,页表的逻辑视图是一个简单的PTE数组(参见图3.2进行更详细的了解)。页表通过逻辑到物理地址的转换给了操作系统控制权,转换的粒度是一个个对齐的物理块(一个物理块包含$$2^{12}=4096$$字节),这样的块称为页面。

                                          -

                                          img

                                          -

                                          在Sv39 RISC-V中,虚拟地址的前25位不用于转换;将来RISC-V可能会使用那些位来定义更多级别的转换。另外物理地址也是有增长空间的: PTE格式中有空间让物理地址长度再增长10个比特位。

                                          -

                                          如图3.2所示,实际的转换分三个步骤进行。页表以三级的树型结构存储在物理内存中。该树的根是一个4096字节的页表页,其中包含512个PTE,其中包含该树下一级页表页的物理地址。这些页中的每一个都包含该树最后一级的512个PTE(也就是说每个PTE占8个字节,正如图3.2最下面所描绘的)。分页硬件使用27位中的前9位在根页表页面中选择PTE,中间9位在树的下一级页表页面中选择PTE,最后9位选择最终的PTE。

                                          -

                                          img

                                          -

                                          如果转换地址所需的三个PTE中的任何一个不存在,页式硬件就会引发页面故障异常,并让内核来处理该异常(参见第4章)。这种三级结构允许页表在大范围虚拟地址没有映射的情况下忽略整个页表页面。

                                          -

                                          每个PTE包含标志位,这些标志位告诉分页硬件允许如何使用关联的虚拟地址。PTE_V指示PTE是否存在:如果它没有被设置,对页面的引用会导致异常(即不允许)。PTE_R控制是否允许指令读取到页面。PTE_W控制是否允许指令写入到页面。PTE_X控制CPU是否可以将页面内容解释为指令并执行它们。PTE_U控制用户模式下的指令是否被允许访问页面;如果没有设置PTE_U,PTE只能在管理模式下使用。图3.2显示了它是如何工作的。标志和所有其他与页面硬件相关的结构在(kernel/riscv.h)中定义。

                                          -

                                          为了告诉硬件使用页表,内核必须将根页表页的物理地址写入到satp寄存器中(satp的作用是存放根页表页在物理内存中的地址)。每个CPU都有自己的satp。一个CPU将使用自己的satp指向的页表转换后续指令生成的所有地址。每个CPU都有自己的satp,这样不同的CPU就可以运行不同的进程,每个CPU都有自己的页表描述的私有地址空间。

                                          -

                                          关于术语的一些注意事项。物理内存是指DRAM中的存储单元。物理内存以一个字节为单位划为地址,称为物理地址。指令只使用虚拟地址,页式硬件将其转换为物理地址,然后将其发送到DRAM硬件来进行读写。与物理内存和虚拟地址不同,虚拟内存不是物理对象,而是指内核提供的管理物理内存和虚拟地址的抽象和机制的集合。

                                          -
                                          copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:44:52 -
                                          - -
                                          - -
                                          -
                                          -
                                          - -

                                          results matching ""

                                          -
                                            - -
                                            -
                                            - -

                                            No results matching ""

                                            - -
                                            -
                                            -
                                            - -
                                            -
                                            - -
                                            - - - - - - - - - - - - - - -
                                            - - -
                                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s1.md b/_book/tranlate_books/book-riscv-rev1/c3/s1.md deleted file mode 100644 index c0133c2..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s1.md +++ /dev/null @@ -1,23 +0,0 @@ -# 3.1 页式硬件 - -提醒一下,RISC-V指令(用户和内核指令都包括)使用的是虚拟地址。而机器的RAM或物理内存是由物理地址索引的。RISC-V页表硬件通过将每个虚拟地址映射到物理地址来为这两种地址建立联系。 - -XV6基于Sv39 RISC-V运行,这意味着它只使用64位虚拟地址的低39位;而高25位不使用。在这种Sv39配置中,RISC-V页表在逻辑上是一个由$$2^{27}$$(134,217,728)个页表条目(Page Table Entries/PTE)组成的数组。每个PTE包含一个44位的物理页码(Physical Page Number/PPN)和一些标志。页式硬件通过使用虚拟地址39位中的前27位索引页表,以找到该虚拟地址对应的一个PTE,然后生成一个56位的物理地址,其前44位来自PTE中的PPN,其后12位来自原始虚拟地址。图3.1显示了这个过程,页表的逻辑视图是一个简单的PTE数组(参见图3.2进行更详细的了解)。页表通过逻辑到物理地址的转换给了操作系统控制权,转换的粒度是一个个对齐的物理块(一个物理块包含$$2^{12}=4096$$字节),这样的块称为页面。 - -![img](../images/c3/p1.png) - -在Sv39 RISC-V中,虚拟地址的前25位不用于转换;将来RISC-V可能会使用那些位来定义更多级别的转换。另外物理地址也是有增长空间的: PTE格式中有空间让物理地址长度再增长10个比特位。 - -如图3.2所示,实际的转换分三个步骤进行。页表以三级的树型结构存储在物理内存中。该树的根是一个4096字节的页表页,其中包含512个PTE,其中包含该树下一级页表页的物理地址。这些页中的每一个都包含该树最后一级的512个PTE(也就是说每个PTE占8个字节,正如图3.2最下面所描绘的)。分页硬件使用27位中的前9位在根页表页面中选择PTE,中间9位在树的下一级页表页面中选择PTE,最后9位选择最终的PTE。 - - - -![img](../images/c3/p2.png) - -如果转换地址所需的三个PTE中的任何一个不存在,页式硬件就会引发页面故障异常,并让内核来处理该异常(参见第4章)。这种三级结构允许页表在大范围虚拟地址没有映射的情况下忽略整个页表页面。 - -每个PTE包含标志位,这些标志位告诉分页硬件允许如何使用关联的虚拟地址。`PTE_V`指示PTE是否存在:如果它没有被设置,对页面的引用会导致异常(即不允许)。`PTE_R`控制是否允许指令读取到页面。`PTE_W`控制是否允许指令写入到页面。`PTE_X`控制CPU是否可以将页面内容解释为指令并执行它们。`PTE_U`控制用户模式下的指令是否被允许访问页面;如果没有设置`PTE_U`,PTE只能在管理模式下使用。图3.2显示了它是如何工作的。标志和所有其他与页面硬件相关的结构在(***kernel/riscv.h***)中定义。 - -为了告诉硬件使用页表,内核必须将根页表页的物理地址写入到`satp`寄存器中(`satp`的作用是存放根页表页在物理内存中的地址)。每个CPU都有自己的`satp`。一个CPU将使用自己的`satp`指向的页表转换后续指令生成的所有地址。每个CPU都有自己的`satp`,这样不同的CPU就可以运行不同的进程,每个CPU都有自己的页表描述的私有地址空间。 - -关于术语的一些注意事项。物理内存是指DRAM中的存储单元。物理内存以一个字节为单位划为地址,称为物理地址。指令只使用虚拟地址,页式硬件将其转换为物理地址,然后将其发送到DRAM硬件来进行读写。与物理内存和虚拟地址不同,虚拟内存不是物理对象,而是指内核提供的管理物理内存和虚拟地址的抽象和机制的集合。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s10.html b/_book/tranlate_books/book-riscv-rev1/c3/s10.html deleted file mode 100644 index dd7ab08..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s10.html +++ /dev/null @@ -1,860 +0,0 @@ - - - - - - - 3.10 练习 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                            -
                                            - - - - - - - - -
                                            - -
                                            - -
                                            - - - - - - - - -
                                            -
                                            - -
                                            -
                                            - -
                                            - -

                                            3.10 练习

                                            -
                                              -
                                            1. 分析RISC-V的设备树以找到计算机拥有的物理内存量。
                                            2. -
                                            3. 编写一个用户程序,通过调用sbrk(1)为其地址空间增加一个字节。运行该程序并研究调用sbrk之前和调用sbrk之后该程序的页表。内核分配了多少空间?新内存的PTE包含什么?
                                            4. -
                                            5. 修改xv6来为内核使用超级页面。
                                            6. -
                                            7. 修改xv6,这样当用户程序解引用空指针时会收到一个异常。也就是说,修改xv6使得虚拟地址0不被用户程序映射。
                                            8. -
                                            9. 传统上,exec的Unix实现包括对shell脚本的特殊处理。如果要执行的文件以文本#!开头, 那么第一行将被视为解释此文件的程序来运行。例如,如果调用exec来运行myprog arg1,而myprog的第一行是#!/interp,那么exec将使用命令行/interp myprog arg1运行 /interp。在xv6中实现对该约定的支持。
                                            10. -
                                            11. 为内核实现地址空间随机化
                                            12. -
                                            -
                                            copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:55:38 -
                                            - -
                                            - -
                                            -
                                            -
                                            - -

                                            results matching ""

                                            -
                                              - -
                                              -
                                              - -

                                              No results matching ""

                                              - -
                                              -
                                              -
                                              - -
                                              -
                                              - -
                                              - - - - - - - - - - - - - - -
                                              - - -
                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s10.md b/_book/tranlate_books/book-riscv-rev1/c3/s10.md deleted file mode 100644 index ecd9e1d..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s10.md +++ /dev/null @@ -1,8 +0,0 @@ -# 3.10 练习 - -1. 分析RISC-V的设备树以找到计算机拥有的物理内存量。 -2. 编写一个用户程序,通过调用`sbrk(1)`为其地址空间增加一个字节。运行该程序并研究调用`sbrk`之前和调用`sbrk`之后该程序的页表。内核分配了多少空间?新内存的PTE包含什么? -3. 修改xv6来为内核使用超级页面。 -4. 修改xv6,这样当用户程序解引用空指针时会收到一个异常。也就是说,修改xv6使得虚拟地址0不被用户程序映射。 -5. 传统上,`exec`的Unix实现包括对shell脚本的特殊处理。如果要执行的文件以文本`#!`开头, 那么第一行将被视为解释此文件的程序来运行。例如,如果调用`exec`来运行`myprog arg1`,而`myprog`的第一行是`#!/interp`,那么`exec`将使用命令行`/interp myprog arg1`运行 `/interp`。在xv6中实现对该约定的支持。 -6. 为内核实现地址空间随机化 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s2.html b/_book/tranlate_books/book-riscv-rev1/c3/s2.html deleted file mode 100644 index 7120583..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s2.html +++ /dev/null @@ -1,864 +0,0 @@ - - - - - - - 3.2 内核地址空间 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                              -
                                              - - - - - - - - -
                                              - -
                                              - -
                                              - - - - - - - - -
                                              -
                                              - -
                                              -
                                              - -
                                              - -

                                              3.2 内核地址空间

                                              -

                                              Xv6为每个进程维护一个页表,用以描述每个进程的用户地址空间,外加一个单独描述内核地址空间的页表。内核配置其地址空间的布局,以允许自己以可预测的虚拟地址访问物理内存和各种硬件资源。图3.3显示了这种布局如何将内核虚拟地址映射到物理地址。文件(kernel/memlayout.h) 声明了xv6内核内存布局的常量。

                                              -

                                              img

                                              -

                                              img

                                              -

                                              QEMU模拟了一台计算机,它包括从物理地址0x80000000开始并至少到0x86400000结束的RAM(物理内存),xv6称结束地址为PHYSTOP。QEMU模拟还包括I/O设备,如磁盘接口。QEMU将设备接口作为内存映射控制寄存器暴露给软件,这些寄存器位于物理地址空间0x80000000以下。内核可以通过读取/写入这些特殊的物理地址与设备交互;这种读取和写入与设备硬件而不是RAM通信。第4章解释了xv6如何与设备进行交互。

                                              -

                                              内核使用“直接映射”获取内存和内存映射设备寄存器;也就是说,将资源映射到等于物理地址的虚拟地址。例如,内核本身在虚拟地址空间和物理内存中都位于KERNBASE``=0x80000000。直接映射简化了读取或写入物理内存的内核代码。例如,当fork为子进程分配用户内存时,分配器返回该内存的物理地址;fork在将父进程的用户内存复制到子进程时直接将该地址用作虚拟地址。

                                              -

                                              有几个内核虚拟地址不是直接映射:

                                              -
                                                -
                                              • 蹦床页面(trampoline page)。它映射在虚拟地址空间的顶部;用户页表具有相同的映射。第4章讨论了蹦床页面的作用,但我们在这里看到了一个有趣的页表用例;一个物理页面(持有蹦床代码)在内核的虚拟地址空间中映射了两次:一次在虚拟地址空间的顶部,一次直接映射。
                                              • -
                                              • 内核栈页面。每个进程都有自己的内核栈,它将映射到偏高一些的地址,这样xv6在它之下就可以留下一个未映射的保护页(guard page)。保护页的PTE是无效的(也就是说PTE_V没有设置),所以如果内核溢出内核栈就会引发一个异常,内核触发panic。如果没有保护页,栈溢出将会覆盖其他内核内存,引发错误操作。恐慌崩溃(panic crash)是更可取的方案。(注:Guard page不会浪费物理内存,它只是占据了虚拟地址空间的一段靠后的地址,但并不映射到物理地址空间。)
                                              • -
                                              -

                                              虽然内核通过高地址内存映射使用内核栈,是它们也可以通过直接映射的地址进入内核。另一种设计可能只有直接映射,并在直接映射的地址使用栈。然而,在这种安排中,提供保护页将涉及取消映射虚拟地址,否则虚拟地址将引用物理内存,这将很难使用。

                                              -

                                              内核在权限PTE_RPTE_X下映射蹦床页面和内核文本页面。内核从这些页面读取和执行指令。内核在权限PTE_RPTE_W下映射其他页面,这样它就可以读写那些页面中的内存。对于保护页面的映射是无效的。

                                              -
                                              copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:48:06 -
                                              - -
                                              - -
                                              -
                                              -
                                              - -

                                              results matching ""

                                              -
                                                - -
                                                -
                                                - -

                                                No results matching ""

                                                - -
                                                -
                                                -
                                                - -
                                                -
                                                - -
                                                - - - - - - - - - - - - - - -
                                                - - -
                                                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s2.md b/_book/tranlate_books/book-riscv-rev1/c3/s2.md deleted file mode 100644 index 89c7537..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s2.md +++ /dev/null @@ -1,20 +0,0 @@ -# 3.2 内核地址空间 - -Xv6为每个进程维护一个页表,用以描述每个进程的用户地址空间,外加一个单独描述内核地址空间的页表。内核配置其地址空间的布局,以允许自己以可预测的虚拟地址访问物理内存和各种硬件资源。图3.3显示了这种布局如何将内核虚拟地址映射到物理地址。文件(***kernel/memlayout.h***) 声明了xv6内核内存布局的常量。 - -![img](../images/c3/p3.png) - -![img](../images/c3/p4.png) - -QEMU模拟了一台计算机,它包括从物理地址`0x80000000`开始并至少到`0x86400000`结束的RAM(物理内存),xv6称结束地址为`PHYSTOP`。QEMU模拟还包括I/O设备,如磁盘接口。QEMU将设备接口作为内存映射控制寄存器暴露给软件,这些寄存器位于物理地址空间`0x80000000`以下。内核可以通过读取/写入这些特殊的物理地址与设备交互;这种读取和写入与设备硬件而不是RAM通信。第4章解释了xv6如何与设备进行交互。 - -内核使用“直接映射”获取内存和内存映射设备寄存器;也就是说,将资源映射到等于物理地址的虚拟地址。例如,内核本身在虚拟地址空间和物理内存中都位于`KERNBASE``=0x80000000`。直接映射简化了读取或写入物理内存的内核代码。例如,当`fork`为子进程分配用户内存时,分配器返回该内存的物理地址;`fork`在将父进程的用户内存复制到子进程时直接将该地址用作虚拟地址。 - -有几个内核虚拟地址不是直接映射: - -- 蹦床页面(trampoline page)。它映射在虚拟地址空间的顶部;用户页表具有相同的映射。第4章讨论了蹦床页面的作用,但我们在这里看到了一个有趣的页表用例;一个物理页面(持有蹦床代码)在内核的虚拟地址空间中映射了两次:一次在虚拟地址空间的顶部,一次直接映射。 -- 内核栈页面。每个进程都有自己的内核栈,它将映射到偏高一些的地址,这样xv6在它之下就可以留下一个未映射的保护页(guard page)。保护页的PTE是无效的(也就是说`PTE_V`没有设置),所以如果内核溢出内核栈就会引发一个异常,内核触发`panic`。如果没有保护页,栈溢出将会覆盖其他内核内存,引发错误操作。恐慌崩溃(panic crash)是更可取的方案。*(注:Guard page不会浪费物理内存,它只是占据了虚拟地址空间的一段靠后的地址,但并不映射到物理地址空间。)* - -虽然内核通过高地址内存映射使用内核栈,是它们也可以通过直接映射的地址进入内核。另一种设计可能只有直接映射,并在直接映射的地址使用栈。然而,在这种安排中,提供保护页将涉及取消映射虚拟地址,否则虚拟地址将引用物理内存,这将很难使用。 - -内核在权限`PTE_R`和`PTE_X`下映射蹦床页面和内核文本页面。内核从这些页面读取和执行指令。内核在权限`PTE_R`和`PTE_W`下映射其他页面,这样它就可以读写那些页面中的内存。对于保护页面的映射是无效的。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s3.html b/_book/tranlate_books/book-riscv-rev1/c3/s3.html deleted file mode 100644 index 0cccb3e..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s3.html +++ /dev/null @@ -1,860 +0,0 @@ - - - - - - - 3.3 代码:创建一个地址空间 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                -
                                                - - - - - - - - -
                                                - -
                                                - -
                                                - - - - - - - - -
                                                -
                                                - -
                                                -
                                                - -
                                                - -

                                                3.3 代码:创建一个地址空间

                                                -

                                                大多数用于操作地址空间和页表的xv6代码都写在vm.c (kernel/vm.c:1)中。其核心数据结构是pagetable_t,它实际上是指向RISC-V根页表页的指针;一个pagetable_t可以是内核页表,也可以是一个进程页表。最核心的函数是walkmappages,前者为虚拟地址找到PTE,后者为新映射装载PTE。名称以kvm开头的函数操作内核页表;以uvm开头的函数操作用户页表;其他函数用于二者。copyoutcopyin复制数据到用户虚拟地址或从用户虚拟地址复制数据,这些虚拟地址作为系统调用参数提供; 由于它们需要显式地翻译这些地址,以便找到相应的物理内存,故将它们写在vm.c中。

                                                -

                                                在按序启动的前期,main调用kvminit (kernel/vm.c:22) 来创建内核的页表。这个调用发生在xv6使能RISC-V分页之前,所以地址直接引用物理内存。kvminit首先分配一个物理内存页面来保存根页表页。然后它调用kvmmap来装载内核需要的转换。转换包括内核的指令和数据、物理内存的上限是PHYSTOP,并包括实际上是设备的内存。

                                                -

                                                kvmmap(kernel/vm.c:118)调用mappages(kernel/vm.c:149),mappages将范围虚拟地址到同等范围物理地址的映射装载到一个页表中。它以页面大小为间隔,为范围内的每个虚拟地址单独执行此操作。对于要映射的每个虚拟地址,mappages调用walk来查找该地址的PTE地址。然后,它初始化PTE以保存相关的物理页号、所需权限(PTE_WPTE_X和/或PTE_R)以及用于标记PTE有效的PTE_V(kernel/vm.c:161)。

                                                -

                                                在查找PTE中的虚拟地址(参见图3.2)时,walk(kernel/vm.c:72)模仿RISC-V分页硬件。walk一次从3级页表中获取9个比特位。它使用上一级的9位虚拟地址来查找下一级页表或最终页面的PTE (kernel/vm.c:78)。如果PTE无效,则所需的页面还没有分配;如果设置了alloc参数,walk就会分配一个新的页表页面,并将其物理地址放在PTE中。它返回树中最低一级的PTE地址(kernel/vm.c:88)。

                                                -

                                                上面的代码依赖于直接映射到内核虚拟地址空间中的物理内存。例如,当walk降低页表的级别时,它从PTE (kernel/vm.c:80)中提取下一级页表的(物理)地址,然后使用该地址作为虚拟地址来获取下一级的PTE (kernel/vm.c:78)。

                                                -

                                                main调用kvminithart (kernel/vm.c:53)来安装内核页表。它将根页表页的物理地址写入寄存器satp。之后,CPU将使用内核页表转换地址。由于内核使用标识映射,下一条指令的当前虚拟地址将映射到正确的物理内存地址。

                                                -

                                                main中调用的procinit (kernel/proc.c:26)为每个进程分配一个内核栈。它将每个栈映射到KSTACK生成的虚拟地址,这为无效的栈保护页面留下了空间。kvmmap将映射的PTE添加到内核页表中,对kvminithart的调用将内核页表重新加载到satp中,以便硬件知道新的PTE。

                                                -

                                                每个RISC-V CPU都将页表条目缓存在转译后备缓冲器(快表/TLB)中,当xv6更改页表时,它必须告诉CPU使相应的缓存TLB条目无效。如果没有这么做,那么在某个时候TLB可能会使用旧的缓存映射,指向一个在此期间已分配给另一个进程的物理页面,这样会导致一个进程可能能够在其他进程的内存上涂鸦。RISC-V有一个指令sfence.vma,用于刷新当前CPU的TLB。xv6在重新加载satp寄存器后,在kvminithart中执行sfence.vma,并在返回用户空间之前在用于切换至一个用户页表的trampoline代码中执行sfence.vma (kernel/trampoline.S:79)。

                                                -
                                                copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:44:27 -
                                                - -
                                                - -
                                                -
                                                -
                                                - -

                                                results matching ""

                                                -
                                                  - -
                                                  -
                                                  - -

                                                  No results matching ""

                                                  - -
                                                  -
                                                  -
                                                  - -
                                                  -
                                                  - -
                                                  - - - - - - - - - - - - - - -
                                                  - - -
                                                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s3.md b/_book/tranlate_books/book-riscv-rev1/c3/s3.md deleted file mode 100644 index 0e2173c..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s3.md +++ /dev/null @@ -1,17 +0,0 @@ -# 3.3 代码:创建一个地址空间 - -大多数用于操作地址空间和页表的xv6代码都写在***vm.c (kernel/vm.c***:1***)***中。其核心数据结构是`pagetable_t`,它实际上是指向RISC-V根页表页的指针;一个`pagetable_t`可以是内核页表,也可以是一个进程页表。最核心的函数是`walk`和`mappages`,前者为虚拟地址找到PTE,后者为新映射装载PTE。名称以`kvm`开头的函数操作内核页表;以`uvm`开头的函数操作用户页表;其他函数用于二者。`copyout`和`copyin`复制数据到用户虚拟地址或从用户虚拟地址复制数据,这些虚拟地址作为系统调用参数提供; 由于它们需要显式地翻译这些地址,以便找到相应的物理内存,故将它们写在***vm.c***中。 - -在按序启动的前期,`main`调用`kvminit` (***kernel/vm.c***:22) 来创建内核的页表。这个调用发生在xv6使能RISC-V分页之前,所以地址直接引用物理内存。`kvminit`首先分配一个物理内存页面来保存根页表页。然后它调用`kvmmap`来装载内核需要的转换。转换包括内核的指令和数据、物理内存的上限是`PHYSTOP`,并包括实际上是设备的内存。 - -`kvmmap`(***kernel/vm.c***:118)调用`mappages`(***kernel/vm.c***:149),`mappages`将范围虚拟地址到同等范围物理地址的映射装载到一个页表中。它以页面大小为间隔,为范围内的每个虚拟地址单独执行此操作。对于要映射的每个虚拟地址,`mappages`调用`walk`来查找该地址的PTE地址。然后,它初始化PTE以保存相关的物理页号、所需权限(`PTE_W`、`PTE_X`和/或`PTE_R`)以及用于标记PTE有效的`PTE_V`(***kernel/vm.c***:161)。 - -在查找PTE中的虚拟地址(参见图3.2)时,`walk`(***kernel/vm.c***:72)模仿RISC-V分页硬件。`walk`一次从3级页表中获取9个比特位。它使用上一级的9位虚拟地址来查找下一级页表或最终页面的PTE (***kernel/vm.c***:78)。如果PTE无效,则所需的页面还没有分配;如果设置了`alloc`参数,`walk`就会分配一个新的页表页面,并将其物理地址放在PTE中。它返回树中最低一级的PTE地址(***kernel/vm.c***:88)。 - -上面的代码依赖于直接映射到内核虚拟地址空间中的物理内存。例如,当`walk`降低页表的级别时,它从PTE (***kernel/vm.c***:80)中提取下一级页表的(物理)地址,然后使用该地址作为虚拟地址来获取下一级的PTE (***kernel/vm.c***:78)。 - -`main`调用`kvminithart` (***kernel/vm.c***:53)来安装内核页表。它将根页表页的物理地址写入寄存器`satp`。之后,CPU将使用内核页表转换地址。由于内核使用标识映射,下一条指令的当前虚拟地址将映射到正确的物理内存地址。 - -`main`中调用的`procinit` (***kernel/proc.c***:26)为每个进程分配一个内核栈。它将每个栈映射到`KSTACK`生成的虚拟地址,这为无效的栈保护页面留下了空间。`kvmmap`将映射的PTE添加到内核页表中,对`kvminithart`的调用将内核页表重新加载到`satp`中,以便硬件知道新的PTE。 - -每个RISC-V CPU都将页表条目缓存在转译后备缓冲器(快表/TLB)中,当xv6更改页表时,它必须告诉CPU使相应的缓存TLB条目无效。如果没有这么做,那么在某个时候TLB可能会使用旧的缓存映射,指向一个在此期间已分配给另一个进程的物理页面,这样会导致一个进程可能能够在其他进程的内存上涂鸦。RISC-V有一个指令`sfence.vma`,用于刷新当前CPU的TLB。xv6在重新加载`satp`寄存器后,在`kvminithart`中执行`sfence.vma`,并在返回用户空间之前在用于切换至一个用户页表的`trampoline`代码中执行`sfence.vma` (***kernel/trampoline.S***:79)。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s4.html b/_book/tranlate_books/book-riscv-rev1/c3/s4.html deleted file mode 100644 index 389f0f7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s4.html +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - 3.4 物理内存分配 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                  -
                                                  - - - - - - - - -
                                                  - -
                                                  - -
                                                  - - - - - - - - -
                                                  -
                                                  - -
                                                  -
                                                  - -
                                                  - -

                                                  3.4 物理内存分配

                                                  -

                                                  内核必须在运行时为页表、用户内存、内核栈和管道缓冲区分配和释放物理内存。xv6使用内核末尾到PHYSTOP之间的物理内存进行运行时分配。它一次分配和释放整个4096字节的页面。它使用链表的数据结构将空闲页面记录下来。分配时需要从链表中删除页面;释放时需要将释放的页面添加到链表中。

                                                  -
                                                  copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:49:09 -
                                                  - -
                                                  - -
                                                  -
                                                  -
                                                  - -

                                                  results matching ""

                                                  -
                                                    - -
                                                    -
                                                    - -

                                                    No results matching ""

                                                    - -
                                                    -
                                                    -
                                                    - -
                                                    -
                                                    - -
                                                    - - - - - - - - - - - - - - -
                                                    - - -
                                                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s4.md b/_book/tranlate_books/book-riscv-rev1/c3/s4.md deleted file mode 100644 index 4540749..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s4.md +++ /dev/null @@ -1,4 +0,0 @@ -# 3.4 物理内存分配 - -内核必须在运行时为页表、用户内存、内核栈和管道缓冲区分配和释放物理内存。xv6使用内核末尾到`PHYSTOP`之间的物理内存进行运行时分配。它一次分配和释放整个4096字节的页面。它使用链表的数据结构将空闲页面记录下来。分配时需要从链表中删除页面;释放时需要将释放的页面添加到链表中。 - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s5.html b/_book/tranlate_books/book-riscv-rev1/c3/s5.html deleted file mode 100644 index 292ed8a..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s5.html +++ /dev/null @@ -1,862 +0,0 @@ - - - - - - - 3.5 代码:物理内存分配 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                    -
                                                    - - - - - - - - -
                                                    - -
                                                    - -
                                                    - - - - - - - - -
                                                    -
                                                    - -
                                                    -
                                                    - -
                                                    - -

                                                    3.5 代码(物理内存分配)

                                                    -

                                                    分配器(allocator)位于kalloc.c(kernel/kalloc.c:1)中。分配器的数据结构是可供分配的物理内存页的空闲列表。每个空闲页的列表元素是一个struct run(kernel/kalloc.c:17)。分配器从哪里获得内存来填充该数据结构呢?它将每个空闲页的run结构存储在空闲页本身,因为在那里没有存储其他东西。空闲列表受到自旋锁(spin lock)的保护(kernel/kalloc.c:21-24)。列表和锁被封装在一个结构体中,以明确锁在结构体中保护的字段。现在,忽略锁以及对acquirerelease的调用;第6章将详细查看有关锁的细节。

                                                    -
                                                    -

                                                    [!TIP] -对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。

                                                    -

                                                    自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。

                                                    -
                                                    -

                                                    main函数调用kinit(kernel/kalloc.c:27)来初始化分配器。kinit初始化空闲列表以保存从内核结束到PHYSTOP之间的每一页。xv6应该通过解析硬件提供的配置信息来确定有多少物理内存可用。然而,xv6假设机器有128兆字节的RAM。kinit调用freerange将内存添加到空闲列表中,在freerange中每页都会调用kfree。PTE只能引用在4096字节边界上对齐的物理地址(是4096的倍数),所以freerange使用PGROUNDUP来确保它只释放对齐的物理地址。分配器开始时没有内存;这些对kfree的调用给了它一些管理空间。

                                                    -

                                                    分配器有时将地址视为整数,以便对其执行算术运算(例如,在freerange中遍历所有页面),有时将地址用作读写内存的指针(例如,操纵存储在每个页面中的run结构);这种地址的双重用途是分配器代码充满C类型转换的主要原因。另一个原因是释放和分配从本质上改变了内存的类型。

                                                    -

                                                    函数kfree (kernel/kalloc.c:47)首先将内存中的每一个字节设置为1。这将导致使用释放后的内存的代码(使用“悬空引用”)读取到垃圾信息而不是旧的有效内容,从而希望这样的代码更快崩溃。然后kfree将页面前置(头插法)到空闲列表中:它将pa转换为一个指向struct run的指针r,在r->next中记录空闲列表的旧开始,并将空闲列表设置为等于r

                                                    -

                                                    kalloc删除并返回空闲列表中的第一个元素。

                                                    -
                                                    copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:50:40 -
                                                    - -
                                                    - -
                                                    -
                                                    -
                                                    - -

                                                    results matching ""

                                                    -
                                                      - -
                                                      -
                                                      - -

                                                      No results matching ""

                                                      - -
                                                      -
                                                      -
                                                      - -
                                                      -
                                                      - -
                                                      - - - - - - - - - - - - - - -
                                                      - - -
                                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s5.md b/_book/tranlate_books/book-riscv-rev1/c3/s5.md deleted file mode 100644 index d71871d..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s5.md +++ /dev/null @@ -1,16 +0,0 @@ -# 3.5 代码(物理内存分配) - -分配器(allocator)位于***kalloc.c***(***kernel/kalloc.c***:1)中。分配器的数据结构是可供分配的物理内存页的空闲列表。每个空闲页的列表元素是一个`struct run`(***kernel/kalloc.c***:17)。分配器从哪里获得内存来填充该数据结构呢?它将每个空闲页的`run`结构存储在空闲页本身,因为在那里没有存储其他东西。空闲列表受到自旋锁(spin lock)的保护(***kernel/kalloc.c***:21-24)。列表和锁被封装在一个结构体中,以明确锁在结构体中保护的字段。现在,忽略锁以及对`acquire`和`release`的调用;第6章将详细查看有关锁的细节。 - -> [!TIP] -> 对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 -> -> 自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 - -`main`函数调用`kinit`(***kernel/kalloc.c***:27)来初始化分配器。`kinit`初始化空闲列表以保存从内核结束到`PHYSTOP`之间的每一页。xv6应该通过解析硬件提供的配置信息来确定有多少物理内存可用。然而,xv6假设机器有128兆字节的RAM。`kinit`调用`freerange`将内存添加到空闲列表中,在`freerange`中每页都会调用`kfree`。PTE只能引用在4096字节边界上对齐的物理地址(是4096的倍数),所以`freerange`使用`PGROUNDUP`来确保它只释放对齐的物理地址。分配器开始时没有内存;这些对`kfree`的调用给了它一些管理空间。 - -分配器有时将地址视为整数,以便对其执行算术运算(例如,在`freerange`中遍历所有页面),有时将地址用作读写内存的指针(例如,操纵存储在每个页面中的`run`结构);这种地址的双重用途是分配器代码充满C类型转换的主要原因。另一个原因是释放和分配从本质上改变了内存的类型。 - -函数`kfree` (***kernel/kalloc.c***:47)首先将内存中的每一个字节设置为1。这将导致使用释放后的内存的代码(使用“悬空引用”)读取到垃圾信息而不是旧的有效内容,从而希望这样的代码更快崩溃。然后`kfree`将页面前置(头插法)到空闲列表中:它将`pa`转换为一个指向`struct run`的指针`r`,在`r->next`中记录空闲列表的旧开始,并将空闲列表设置为等于`r`。 - -`kalloc`删除并返回空闲列表中的第一个元素。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s6.html b/_book/tranlate_books/book-riscv-rev1/c3/s6.html deleted file mode 100644 index fa38f6f..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s6.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - - 3.6 进程地址空间 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                      -
                                                      - - - - - - - - -
                                                      - -
                                                      - -
                                                      - - - - - - - - -
                                                      -
                                                      - -
                                                      -
                                                      - -
                                                      - -

                                                      3.6 进程地址空间

                                                      -

                                                      每个进程都有一个单独的页表,当xv6在进程之间切换时,也会更改页表。如图2.3所示,一个进程的用户内存从虚拟地址零开始,可以增长到MAXVA (kernel/riscv.h:348),原则上允许一个进程内存寻址空间为256G。

                                                      -

                                                      img

                                                      -

                                                      当进程向xv6请求更多的用户内存时,xv6首先使用kalloc来分配物理页面。然后,它将PTE添加到进程的页表中,指向新的物理页面。Xv6在这些PTE中设置PTE_WPTE_XPTE_RPTE_UPTE_V标志。大多数进程不使用整个用户地址空间;xv6在未使用的PTE中留空PTE_V

                                                      -

                                                      我们在这里看到了一些使用页表的很好的例子。首先,不同进程的页表将用户地址转换为物理内存的不同页面,这样每个进程都拥有私有内存。第二,每个进程看到的自己的内存空间都是以0地址起始的连续虚拟地址,而进程的物理内存可以是非连续的。第三,内核在用户地址空间的顶部映射一个带有蹦床(trampoline)代码的页面,这样在所有地址空间都可以看到一个单独的物理内存页面。

                                                      -

                                                      图3.4更详细地显示了xv6中执行态进程的用户内存布局。栈是单独一个页面,显示的是由exec创建后的初始内容。包含命令行参数的字符串以及指向它们的指针数组位于栈的最顶部。再往下是允许程序在main处开始启动的值(即main的地址、argcargv),这些值产生的效果就像刚刚调用了main(argc, argv)一样。

                                                      -

                                                      img

                                                      -

                                                      为了检测用户栈是否溢出了所分配栈内存,xv6在栈正下方放置了一个无效的保护页(guard page)。如果用户栈溢出并且进程试图使用栈下方的地址,那么由于映射无效(PTE_V为0)硬件将生成一个页面故障异常。当用户栈溢出时,实际的操作系统可能会自动为其分配更多内存。

                                                      -
                                                      copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:52:21 -
                                                      - -
                                                      - -
                                                      -
                                                      -
                                                      - -

                                                      results matching ""

                                                      -
                                                        - -
                                                        -
                                                        - -

                                                        No results matching ""

                                                        - -
                                                        -
                                                        -
                                                        - -
                                                        -
                                                        - -
                                                        - - - - - - - - - - - - - - -
                                                        - - -
                                                        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s6.md b/_book/tranlate_books/book-riscv-rev1/c3/s6.md deleted file mode 100644 index 3506967..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s6.md +++ /dev/null @@ -1,15 +0,0 @@ -# 3.6 进程地址空间 - -每个进程都有一个单独的页表,当xv6在进程之间切换时,也会更改页表。如图2.3所示,一个进程的用户内存从虚拟地址零开始,可以增长到MAXVA (***kernel/riscv.h***:348),原则上允许一个进程内存寻址空间为256G。 - -![img](../images/c3/p5.png) - -当进程向xv6请求更多的用户内存时,xv6首先使用`kalloc`来分配物理页面。然后,它将PTE添加到进程的页表中,指向新的物理页面。Xv6在这些PTE中设置`PTE_W`、`PTE_X`、`PTE_R`、`PTE_U`和`PTE_V`标志。大多数进程不使用整个用户地址空间;xv6在未使用的PTE中留空`PTE_V`。 - -我们在这里看到了一些使用页表的很好的例子。首先,不同进程的页表将用户地址转换为物理内存的不同页面,这样每个进程都拥有私有内存。第二,每个进程看到的自己的内存空间都是以0地址起始的连续虚拟地址,而进程的物理内存可以是非连续的。第三,内核在用户地址空间的顶部映射一个带有蹦床(trampoline)代码的页面,这样在所有地址空间都可以看到一个单独的物理内存页面。 - -图3.4更详细地显示了xv6中执行态进程的用户内存布局。栈是单独一个页面,显示的是由`exec`创建后的初始内容。包含命令行参数的字符串以及指向它们的指针数组位于栈的最顶部。再往下是允许程序在`main`处开始启动的值(即`main`的地址、`argc`、`argv`),这些值产生的效果就像刚刚调用了`main(argc, argv)`一样。 - -![img](../images/c3/p6.png) - -为了检测用户栈是否溢出了所分配栈内存,xv6在栈正下方放置了一个无效的保护页(guard page)。如果用户栈溢出并且进程试图使用栈下方的地址,那么由于映射无效(`PTE_V`为0)硬件将生成一个页面故障异常。当用户栈溢出时,实际的操作系统可能会自动为其分配更多内存。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s7.html b/_book/tranlate_books/book-riscv-rev1/c3/s7.html deleted file mode 100644 index b5b969d..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s7.html +++ /dev/null @@ -1,854 +0,0 @@ - - - - - - - 3.7 代码:sbrk · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                        -
                                                        - - - - - - - - -
                                                        - -
                                                        - -
                                                        - - - - - - - - -
                                                        -
                                                        - -
                                                        -
                                                        - -
                                                        - -

                                                        3.7 代码:sbrk

                                                        -

                                                        sbrk是一个用于进程减少或增长其内存的系统调用。这个系统调用由函数growproc实现(kernel/proc.c:239)。growproc根据n是正的还是负的调用uvmallocuvmdeallocuvmalloc(kernel/vm.c:229)用kalloc分配物理内存,并用mappages将PTE添加到用户页表中。uvmdealloc调用uvmunmap(kernel/vm.c:174),uvmunmap使用walk来查找对应的PTE,并使用kfree来释放PTE引用的物理内存。

                                                        -

                                                        XV6使用进程的页表,不仅是告诉硬件如何映射用户虚拟地址,也是明晰哪一个物理页面已经被分配给该进程的唯一记录。这就是为什么释放用户内存(在uvmunmap中)需要检查用户页表的原因。

                                                        -
                                                        copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:52:54 -
                                                        - -
                                                        - -
                                                        -
                                                        -
                                                        - -

                                                        results matching ""

                                                        -
                                                          - -
                                                          -
                                                          - -

                                                          No results matching ""

                                                          - -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          - -
                                                          - - - - - - - - - - - - - - -
                                                          - - -
                                                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s7.md b/_book/tranlate_books/book-riscv-rev1/c3/s7.md deleted file mode 100644 index 5ab6ff7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s7.md +++ /dev/null @@ -1,6 +0,0 @@ -# 3.7 代码:sbrk - -`sbrk`是一个用于进程减少或增长其内存的系统调用。这个系统调用由函数`growproc`实现(***kernel/proc.c***:239)。`growproc`根据`n`是正的还是负的调用`uvmalloc`或`uvmdealloc`。`uvmalloc`(***kernel/vm.c***:229)用`kalloc`分配物理内存,并用`mappages`将PTE添加到用户页表中。`uvmdealloc`调用`uvmunmap`(***kernel/vm.c***:174),`uvmunmap`使用`walk`来查找对应的PTE,并使用`kfree`来释放PTE引用的物理内存。 - -XV6使用进程的页表,不仅是告诉硬件如何映射用户虚拟地址,也是明晰哪一个物理页面已经被分配给该进程的唯一记录。这就是为什么释放用户内存(在`uvmunmap`中)需要检查用户页表的原因。 - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s8.html b/_book/tranlate_books/book-riscv-rev1/c3/s8.html deleted file mode 100644 index d0bf036..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s8.html +++ /dev/null @@ -1,876 +0,0 @@ - - - - - - - 3.8 代码:exec · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                          -
                                                          - - - - - - - - -
                                                          - -
                                                          - -
                                                          - - - - - - - - -
                                                          -
                                                          - -
                                                          -
                                                          - -
                                                          - -

                                                          3.8 代码:exec

                                                          -

                                                          exec是创建地址空间的用户部分的系统调用。它使用一个存储在文件系统中的文件初始化地址空间的用户部分。exec(kernel/exec.c:13)使用namei (kernel/exec.c:26)打开指定的二进制path,这在第8章中有解释。然后,它读取ELF头。Xv6应用程序以广泛使用的ELF格式描述,定义于(kernel/elf.h)。ELF二进制文件由ELF头、struct elfhdr(kernel/elf.h:6),后面一系列的程序节头(section headers)、struct proghdr(kernel/elf.h:25)组成。每个proghdr描述程序中必须加载到内存中的一节(section);xv6程序只有一个程序节头,但是其他系统对于指令和数据部分可能各有单独的节。

                                                          -
                                                          -

                                                          [!NOTE] -ELF文件格式:在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。ELF是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。

                                                          -
                                                          -

                                                          第一步是快速检查文件可能包含ELF二进制的文件。ELF二进制文件以四个字节的“幻数”0x7F、“E”、“L”、“F”或ELF_MAGIC开始(kernel/elf.h:3)。如果ELF头有正确的幻数,exec假设二进制文件格式良好。

                                                          -

                                                          exec使用proc_pagetable (kernel/exec.c:38)分配一个没有用户映射的新页表,使用uvmalloc (kernel/exec.c:52)为每个ELF段分配内存,并使用loadseg (kernel/exec.c:10)将每个段加载到内存中。loadseg使用walkaddr找到分配内存的物理地址,在该地址写入ELF段的每一页,并使用readi从文件中读取。

                                                          -

                                                          使用exec创建的第一个用户程序/init的程序节标题如下:

                                                          -
                                                           # objdump -p _init 
                                                          - user/_init: file format elf64-littleriscv 
                                                          - Program Header: 
                                                          -     LOAD off 0x00000000000000b0 vaddr 0x0000000000000000 
                                                          -                                    paddr 0x0000000000000000 align 2**3 
                                                          -          filesz 0x0000000000000840 memsz 0x0000000000000858 flags rwx 
                                                          -     STACK off 0x0000000000000000 vaddr 0x0000000000000000 
                                                          -                                    paddr 0x0000000000000000 align 2**4 
                                                          -          filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
                                                          -
                                                          -

                                                          程序节头的filesz可能小于memsz,这表明它们之间的间隙应该用零来填充(对于C全局变量),而不是从文件中读取。对于/initfilesz是2112字节,memsz是2136字节,因此uvmalloc分配了足够的物理内存来保存2136字节,但只从文件/init中读取2112字节。

                                                          -

                                                          现在exec分配并初始化用户栈。它只分配一个栈页面。exec一次将参数中的一个字符串复制到栈顶,并在ustack中记录指向它们的指针。它在传递给mainargv列表的末尾放置一个空指针。ustack中的前三个条目是伪返回程序计数器(fake return program counter)、argcargv指针。

                                                          -

                                                          exec在栈页面的正下方放置了一个不可访问的页面,这样试图使用超过一个页面的程序就会出错。这个不可访问的页面还允许exec处理过大的参数;在这种情况下,被exec用来将参数复制到栈的函数copyout(kernel/vm.c:355) 将会注意到目标页面不可访问,并返回-1。

                                                          -

                                                          在准备新内存映像的过程中,如果exec检测到像无效程序段这样的错误,它会跳到标签bad,释放新映像,并返回-1。exec必须等待系统调用会成功后再释放旧映像:因为如果旧映像消失了,系统调用将无法返回-1。exec中唯一的错误情况发生在映像的创建过程中。一旦映像完成,exec就可以提交到新的页表(kernel/exec.c:113)并释放旧的页表(kernel/exec.c:117)。

                                                          -

                                                          exec将ELF文件中的字节加载到ELF文件指定地址的内存中。用户或进程可以将他们想要的任何地址放入ELF文件中。因此exec是有风险的,因为ELF文件中的地址可能会意外或故意的引用内核。对一个设计拙劣的内核来说,后果可能是一次崩溃,甚至是内核的隔离机制被恶意破坏(即安全漏洞)。xv6执行许多检查来避免这些风险。例如,if(ph.vaddr + ph.memsz < ph.vaddr)检查总和是否溢出64位整数,危险在于用户可能会构造一个ELF二进制文件,其中的php. vaddr指向用户选择的地址,而php. memsz足够大,使总和溢出到0x1000,这看起来像是一个有效的值。在xv6的旧版本中,用户地址空间也包含内核(但在用户模式下不可读写),用户可以选择一个与内核内存相对应的地址,从而将ELF二进制文件中的数据复制到内核中。在xv6的RISC-V版本中,这是不可能的,因为内核有自己独立的页表;loadseg加载到进程的页表中,而不是内核的页表中。

                                                          -

                                                          内核开发人员很容易省略关键的检查,而现实世界中的内核有很长一段丢失检查的历史,用户程序可以利用这些检查的缺失来获得内核特权。xv6可能没有完成验证提供给内核的用户级数据的全部工作,恶意用户程序可以利用这些数据来绕过xv6的隔离。

                                                          -
                                                          copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:54:29 -
                                                          - -
                                                          - -
                                                          -
                                                          -
                                                          - -

                                                          results matching ""

                                                          -
                                                            - -
                                                            -
                                                            - -

                                                            No results matching ""

                                                            - -
                                                            -
                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            - - - - - - - - - - - - - - -
                                                            - - -
                                                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s8.md b/_book/tranlate_books/book-riscv-rev1/c3/s8.md deleted file mode 100644 index 1691f2e..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s8.md +++ /dev/null @@ -1,36 +0,0 @@ -# 3.8 代码:exec - -`exec`是创建地址空间的用户部分的系统调用。它使用一个存储在文件系统中的文件初始化地址空间的用户部分。`exec`(***kernel/exec.c***:13)使用`namei` (***kernel/exec.c***:26)打开指定的二进制`path`,这在第8章中有解释。然后,它读取ELF头。Xv6应用程序以广泛使用的ELF格式描述,定义于(***kernel/elf.h***)。ELF二进制文件由ELF头、`struct elfhdr`(***kernel/elf.h***:6),后面一系列的程序节头(section headers)、`struct proghdr`(***kernel/elf.h***:25)组成。每个`proghdr`描述程序中必须加载到内存中的一节(section);xv6程序只有一个程序节头,但是其他系统对于指令和数据部分可能各有单独的节。 - -> [!NOTE] -> ELF文件格式:在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。ELF是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。 - -第一步是快速检查文件可能包含ELF二进制的文件。ELF二进制文件以四个字节的“幻数”`0x7F`、“`E`”、“`L`”、“`F`”或`ELF_MAGIC`开始(***kernel/elf.h***:3)。如果ELF头有正确的幻数,`exec`假设二进制文件格式良好。 - -`exec`使用`proc_pagetable` (***kernel/exec.c***:38)分配一个没有用户映射的新页表,使用`uvmalloc` (***kernel/exec.c***:52)为每个ELF段分配内存,并使用`loadseg` (***kernel/exec.c***:10)将每个段加载到内存中。`loadseg`使用`walkaddr`找到分配内存的物理地址,在该地址写入ELF段的每一页,并使用`readi`从文件中读取。 - -使用`exec`创建的第一个用户程序`/init`的程序节标题如下: - -```bash - # objdump -p _init - user/_init: file format elf64-littleriscv - Program Header: - LOAD off 0x00000000000000b0 vaddr 0x0000000000000000 - paddr 0x0000000000000000 align 2**3 - filesz 0x0000000000000840 memsz 0x0000000000000858 flags rwx - STACK off 0x0000000000000000 vaddr 0x0000000000000000 - paddr 0x0000000000000000 align 2**4 - filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- -``` - -程序节头的`filesz`可能小于`memsz`,这表明它们之间的间隙应该用零来填充(对于C全局变量),而不是从文件中读取。对于***/init***,`filesz`是2112字节,`memsz`是2136字节,因此`uvmalloc`分配了足够的物理内存来保存2136字节,但只从文件***/init***中读取2112字节。 - -现在`exec`分配并初始化用户栈。它只分配一个栈页面。`exec`一次将参数中的一个字符串复制到栈顶,并在`ustack`中记录指向它们的指针。它在传递给`main`的`argv`列表的末尾放置一个空指针。`ustack`中的前三个条目是伪返回程序计数器(fake return program counter)、`argc`和`argv`指针。 - -`exec`在栈页面的正下方放置了一个不可访问的页面,这样试图使用超过一个页面的程序就会出错。这个不可访问的页面还允许`exec`处理过大的参数;在这种情况下,被`exec`用来将参数复制到栈的函数`copyout`(***kernel/vm.c***:355) 将会注意到目标页面不可访问,并返回-1。 - -在准备新内存映像的过程中,如果`exec`检测到像无效程序段这样的错误,它会跳到标签`bad`,释放新映像,并返回-1。`exec`必须等待系统调用会成功后再释放旧映像:因为如果旧映像消失了,系统调用将无法返回-1。`exec`中唯一的错误情况发生在映像的创建过程中。一旦映像完成,`exec`就可以提交到新的页表(***kernel/exec.c***:113)并释放旧的页表(***kernel/exec.c***:117)。 - -`exec`将ELF文件中的字节加载到ELF文件指定地址的内存中。用户或进程可以将他们想要的任何地址放入ELF文件中。因此`exec`是有风险的,因为ELF文件中的地址可能会意外或故意的引用内核。对一个设计拙劣的内核来说,后果可能是一次崩溃,甚至是内核的隔离机制被恶意破坏(即安全漏洞)。xv6执行许多检查来避免这些风险。例如,`if(ph.vaddr + ph.memsz < ph.vaddr)`检查总和是否溢出64位整数,危险在于用户可能会构造一个ELF二进制文件,其中的`php. vaddr`指向用户选择的地址,而`php. memsz`足够大,使总和溢出到0x1000,这看起来像是一个有效的值。在xv6的旧版本中,用户地址空间也包含内核(但在用户模式下不可读写),用户可以选择一个与内核内存相对应的地址,从而将ELF二进制文件中的数据复制到内核中。在xv6的RISC-V版本中,这是不可能的,因为内核有自己独立的页表;`loadseg`加载到进程的页表中,而不是内核的页表中。 - -内核开发人员很容易省略关键的检查,而现实世界中的内核有很长一段丢失检查的历史,用户程序可以利用这些检查的缺失来获得内核特权。xv6可能没有完成验证提供给内核的用户级数据的全部工作,恶意用户程序可以利用这些数据来绕过xv6的隔离。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s9.html b/_book/tranlate_books/book-riscv-rev1/c3/s9.html deleted file mode 100644 index 631ebd7..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s9.html +++ /dev/null @@ -1,858 +0,0 @@ - - - - - - - 3.9 真实世界 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                            -
                                                            - - - - - - - - -
                                                            - -
                                                            - -
                                                            - - - - - - - - -
                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            - -

                                                            3.9 真实世界

                                                            -

                                                            像大多数操作系统一样,xv6使用分页硬件进行内存保护和映射。大多数操作系统通过结合分页和页面故障异常使用分页,比xv6复杂得多,我们将在第4章讨论这一点。

                                                            -

                                                            内核通过使用虚拟地址和物理地址之间的直接映射,以及假设在地址0x8000000处有物理RAM (内核期望加载的位置) ,Xv6得到了简化。这在QEMU中很有效,但在实际硬件上却是个坏主意;实际硬件将RAM和设备置于不可预测的物理地址,因此(例如)在xv6期望能够存储内核的0x8000000地址处可能没有RAM。更严肃的内核设计利用页表将任意硬件物理内存布局转换为可预测的内核虚拟地址布局。

                                                            -

                                                            RISC-V支持物理地址级别的保护,但xv6没有使用这个特性。

                                                            -

                                                            在有大量内存的机器上,使用RISC-V对“超级页面”的支持可能很有意义。而当物理内存较小时,小页面更有用,这样可以以精细的粒度向磁盘分配和输出页面。例如,如果一个程序只使用8KB内存,给它一个4MB的物理内存超级页面是浪费。在有大量内存的机器上,较大的页面是有意义的,并且可以减少页表操作的开销。

                                                            -

                                                            xv6内核缺少一个类似malloc可以为小对象提供内存的分配器,这使得内核无法使用需要动态分配的复杂数据结构。

                                                            -

                                                            内存分配是一个长期的热门话题,基本问题是有效使用有限的内存并为将来的未知请求做好准备。今天,人们更关心速度而不是空间效率。此外,一个更复杂的内核可能会分配许多不同大小的小块,而不是(如xv6中)只有4096字节的块;一个真正的内核分配器需要处理小分配和大分配。

                                                            -
                                                            copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 10:55:09 -
                                                            - -
                                                            - -
                                                            -
                                                            -
                                                            - -

                                                            results matching ""

                                                            -
                                                              - -
                                                              -
                                                              - -

                                                              No results matching ""

                                                              - -
                                                              -
                                                              -
                                                              - -
                                                              -
                                                              - -
                                                              - - - - - - - - - - - - - - -
                                                              - - -
                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c3/s9.md b/_book/tranlate_books/book-riscv-rev1/c3/s9.md deleted file mode 100644 index 2be797e..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c3/s9.md +++ /dev/null @@ -1,13 +0,0 @@ -# 3.9 真实世界 - -像大多数操作系统一样,xv6使用分页硬件进行内存保护和映射。大多数操作系统通过结合分页和页面故障异常使用分页,比xv6复杂得多,我们将在第4章讨论这一点。 - -内核通过使用虚拟地址和物理地址之间的直接映射,以及假设在地址`0x8000000`处有物理RAM (内核期望加载的位置) ,Xv6得到了简化。这在QEMU中很有效,但在实际硬件上却是个坏主意;实际硬件将RAM和设备置于不可预测的物理地址,因此(例如)在xv6期望能够存储内核的`0x8000000`地址处可能没有RAM。更严肃的内核设计利用页表将任意硬件物理内存布局转换为可预测的内核虚拟地址布局。 - -RISC-V支持物理地址级别的保护,但xv6没有使用这个特性。 - -在有大量内存的机器上,使用RISC-V对“超级页面”的支持可能很有意义。而当物理内存较小时,小页面更有用,这样可以以精细的粒度向磁盘分配和输出页面。例如,如果一个程序只使用8KB内存,给它一个4MB的物理内存超级页面是浪费。在有大量内存的机器上,较大的页面是有意义的,并且可以减少页表操作的开销。 - -xv6内核缺少一个类似`malloc`可以为小对象提供内存的分配器,这使得内核无法使用需要动态分配的复杂数据结构。 - -内存分配是一个长期的热门话题,基本问题是有效使用有限的内存并为将来的未知请求做好准备。今天,人们更关心速度而不是空间效率。此外,一个更复杂的内核可能会分配许多不同大小的小块,而不是(如xv6中)只有4096字节的块;一个真正的内核分配器需要处理小分配和大分配。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s0.html b/_book/tranlate_books/book-riscv-rev1/c4/s0.html deleted file mode 100644 index d53bead..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s0.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - 第四章 陷阱指令和系统调用 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                              -
                                                              - - - - - - - - -
                                                              - -
                                                              - -
                                                              - - - - - - - - -
                                                              -
                                                              - -
                                                              -
                                                              - -
                                                              - -

                                                              第四章 陷阱指令和系统调用

                                                              -

                                                              有三种事件会导致中央处理器搁置普通指令的执行,并强制将控制权转移到处理该事件的特殊代码上。一种情况是系统调用,当用户程序执行ecall指令要求内核为其做些什么时;另一种情况是异常:(用户或内核)指令做了一些非法的事情,例如除以零或使用无效的虚拟地址;第三种情况是设备中断,一个设备,例如当磁盘硬件完成读或写请求时,向系统表明它需要被关注。

                                                              -

                                                              本书使用陷阱(trap)作为这些情况的通用术语。通常,陷阱发生时正在执行的任何代码都需要稍后恢复,并且不需要意识到发生了任何特殊的事情。也就是说,我们经常希望陷阱是透明的;这对于中断尤其重要,中断代码通常难以预料。通常的顺序是陷阱强制将控制权转移到内核;内核保存寄存器和其他状态,以便可以恢复执行;内核执行适当的处理程序代码(例如,系统调用接口或设备驱动程序);内核恢复保存的状态并从陷阱中返回;原始代码从它停止的地方恢复。

                                                              -

                                                              xv6内核处理所有陷阱。这对于系统调用来说是顺理成章的。由于隔离性要求用户进程不直接使用设备,而且只有内核具有设备处理所需的状态,因而对中断也是有意义的。因为xv6通过杀死违规程序来响应用户空间中的所有异常,它也对异常有意义。

                                                              -

                                                              Xv6陷阱处理分为四个阶段: RISC-V CPU采取的硬件操作、为内核C代码执行而准备的汇编程序集“向量”、决定如何处理陷阱的C陷阱处理程序以及系统调用或设备驱动程序服务例程。虽然三种陷阱类型之间的共性表明内核可以用一个代码路径处理所有陷阱,但对于三种不同的情况:来自用户空间的陷阱、来自内核空间的陷阱和定时器中断,分别使用单独的程序集向量和C陷阱处理程序更加方便。

                                                              -
                                                              copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:37:46 -
                                                              - -
                                                              - -
                                                              -
                                                              -
                                                              - -

                                                              results matching ""

                                                              -
                                                                - -
                                                                -
                                                                - -

                                                                No results matching ""

                                                                - -
                                                                -
                                                                -
                                                                - -
                                                                -
                                                                - -
                                                                - - - - - - - - - - - - - - -
                                                                - - -
                                                                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s0.md b/_book/tranlate_books/book-riscv-rev1/c4/s0.md deleted file mode 100644 index 78ccefc..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s0.md +++ /dev/null @@ -1,9 +0,0 @@ -# 第四章 陷阱指令和系统调用 - -有三种事件会导致中央处理器搁置普通指令的执行,并强制将控制权转移到处理该事件的特殊代码上。一种情况是系统调用,当用户程序执行`ecall`指令要求内核为其做些什么时;另一种情况是异常:(用户或内核)指令做了一些非法的事情,例如除以零或使用无效的虚拟地址;第三种情况是设备中断,一个设备,例如当磁盘硬件完成读或写请求时,向系统表明它需要被关注。 - -本书使用陷阱(trap)作为这些情况的通用术语。通常,陷阱发生时正在执行的任何代码都需要稍后恢复,并且不需要意识到发生了任何特殊的事情。也就是说,我们经常希望陷阱是透明的;这对于中断尤其重要,中断代码通常难以预料。通常的顺序是陷阱强制将控制权转移到内核;内核保存寄存器和其他状态,以便可以恢复执行;内核执行适当的处理程序代码(例如,系统调用接口或设备驱动程序);内核恢复保存的状态并从陷阱中返回;原始代码从它停止的地方恢复。 - -xv6内核处理所有陷阱。这对于系统调用来说是顺理成章的。由于隔离性要求用户进程不直接使用设备,而且只有内核具有设备处理所需的状态,因而对中断也是有意义的。因为xv6通过杀死违规程序来响应用户空间中的所有异常,它也对异常有意义。 - -Xv6陷阱处理分为四个阶段: RISC-V CPU采取的硬件操作、为内核C代码执行而准备的汇编程序集“向量”、决定如何处理陷阱的C陷阱处理程序以及系统调用或设备驱动程序服务例程。虽然三种陷阱类型之间的共性表明内核可以用一个代码路径处理所有陷阱,但对于三种不同的情况:来自用户空间的陷阱、来自内核空间的陷阱和定时器中断,分别使用单独的程序集向量和C陷阱处理程序更加方便。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s1.html b/_book/tranlate_books/book-riscv-rev1/c4/s1.html deleted file mode 100644 index 05c439c..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s1.html +++ /dev/null @@ -1,875 +0,0 @@ - - - - - - - 4.1 RISC-V陷入机制 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                -
                                                                - - - - - - - - -
                                                                - -
                                                                - -
                                                                - - - - - - - - -
                                                                -
                                                                - -
                                                                -
                                                                - -
                                                                - -

                                                                4.1 RISC-V陷入机制

                                                                -

                                                                每个RISC-V CPU都有一组控制寄存器,内核通过向这些寄存器写入内容来告诉CPU如何处理陷阱,内核可以读取这些寄存器来明确已经发生的陷阱。RISC-V文档包含了完整的内容。riscv.h(kernel/riscv.h:1)包含在xv6中使用到的内容的定义。以下是最重要的一些寄存器概述:

                                                                -
                                                                  -
                                                                • stvec:内核在这里写入其陷阱处理程序的地址;RISC-V跳转到这里处理陷阱。
                                                                • -
                                                                • sepc:当发生陷阱时,RISC-V会在这里保存程序计数器pc(因为pc会被stvec覆盖)。sret(从陷阱返回)指令会将sepc复制到pc。内核可以写入sepc来控制sret的去向。
                                                                • -
                                                                • scause: RISC-V在这里放置一个描述陷阱原因的数字。
                                                                • -
                                                                • sscratch:内核在这里放置了一个值,这个值在陷阱处理程序一开始就会派上用场。
                                                                • -
                                                                • sstatus:其中的SIE位控制设备中断是否启用。如果内核清空SIE,RISC-V将推迟设备中断,直到内核重新设置SIESPP位指示陷阱是来自用户模式还是管理模式,并控制sret返回的模式。
                                                                • -
                                                                -

                                                                上述寄存器都用于在管理模式下处理陷阱,在用户模式下不能读取或写入。在机器模式下处理陷阱有一组等效的控制寄存器,xv6仅在计时器中断的特殊情况下使用它们。

                                                                -

                                                                多核芯片上的每个CPU都有自己的这些寄存器集,并且在任何给定时间都可能有多个CPU在处理陷阱。

                                                                -

                                                                当需要强制执行陷阱时,RISC-V硬件对所有陷阱类型(计时器中断除外)执行以下操作:

                                                                -
                                                                  -
                                                                1. 如果陷阱是设备中断,并且状态SIE位被清空,则不执行以下任何操作。
                                                                2. -
                                                                3. 清除SIE以禁用中断。
                                                                4. -
                                                                5. pc复制到sepc
                                                                6. -
                                                                7. 将当前模式(用户或管理)保存在状态的SPP位中。
                                                                8. -
                                                                9. 设置scause以反映产生陷阱的原因。
                                                                10. -
                                                                11. 将模式设置为管理模式。
                                                                12. -
                                                                13. stvec复制到pc
                                                                14. -
                                                                15. 在新的pc上开始执行。
                                                                16. -
                                                                -

                                                                请注意,CPU不会切换到内核页表,不会切换到内核栈,也不会保存除pc之外的任何寄存器。内核软件必须执行这些任务。CPU在陷阱期间执行尽可能少量工作的一个原因是为软件提供灵活性;例如,一些操作系统在某些情况下不需要页表切换,这可以提高性能。

                                                                -

                                                                你可能想知道CPU硬件的陷阱处理顺序是否可以进一步简化。例如,假设CPU不切换程序计数器。那么陷阱可以在仍然运行用户指令的情况下切换到管理模式。但因此这些用户指令可以打破用户/内核的隔离机制,例如通过修改satp寄存器来指向允许访问所有物理内存的页表。因此,CPU使用专门的寄存器切换到内核指定的指令地址,即stvec,是很重要的。

                                                                -
                                                                copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:38:22 -
                                                                - -
                                                                - -
                                                                -
                                                                -
                                                                - -

                                                                results matching ""

                                                                -
                                                                  - -
                                                                  -
                                                                  - -

                                                                  No results matching ""

                                                                  - -
                                                                  -
                                                                  -
                                                                  - -
                                                                  -
                                                                  - -
                                                                  - - - - - - - - - - - - - - -
                                                                  - - -
                                                                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s1.md b/_book/tranlate_books/book-riscv-rev1/c4/s1.md deleted file mode 100644 index f7b6736..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s1.md +++ /dev/null @@ -1,28 +0,0 @@ -# 4.1 RISC-V陷入机制 - -每个RISC-V CPU都有一组控制寄存器,内核通过向这些寄存器写入内容来告诉CPU如何处理陷阱,内核可以读取这些寄存器来明确已经发生的陷阱。RISC-V文档包含了完整的内容。***riscv.h***(***kernel/riscv.h***:1)包含在xv6中使用到的内容的定义。以下是最重要的一些寄存器概述: - -- `stvec`:内核在这里写入其陷阱处理程序的地址;RISC-V跳转到这里处理陷阱。 -- `sepc`:当发生陷阱时,RISC-V会在这里保存程序计数器`pc`(因为`pc`会被`stvec`覆盖)。`sret`(从陷阱返回)指令会将`sepc`复制到`pc`。内核可以写入`sepc`来控制`sret`的去向。 -- `scause`: RISC-V在这里放置一个描述陷阱原因的数字。 -- `sscratch`:内核在这里放置了一个值,这个值在陷阱处理程序一开始就会派上用场。 -- `sstatus`:其中的**SIE**位控制设备中断是否启用。如果内核清空**SIE**,RISC-V将推迟设备中断,直到内核重新设置**SIE**。**SPP**位指示陷阱是来自用户模式还是管理模式,并控制`sret`返回的模式。 - -上述寄存器都用于在管理模式下处理陷阱,在用户模式下不能读取或写入。在机器模式下处理陷阱有一组等效的控制寄存器,xv6仅在计时器中断的特殊情况下使用它们。 - -多核芯片上的每个CPU都有自己的这些寄存器集,并且在任何给定时间都可能有多个CPU在处理陷阱。 - -当需要强制执行陷阱时,RISC-V硬件对所有陷阱类型(计时器中断除外)执行以下操作: - -1. 如果陷阱是设备中断,并且状态**SIE**位被清空,则不执行以下任何操作。 -2. 清除**SIE**以禁用中断。 -3. 将`pc`复制到`sepc`。 -4. 将当前模式(用户或管理)保存在状态的**SPP**位中。 -5. 设置`scause`以反映产生陷阱的原因。 -6. 将模式设置为管理模式。 -7. 将`stvec`复制到`pc`。 -8. 在新的`pc`上开始执行。 - -请注意,CPU不会切换到内核页表,不会切换到内核栈,也不会保存除`pc`之外的任何寄存器。内核软件必须执行这些任务。CPU在陷阱期间执行尽可能少量工作的一个原因是为软件提供灵活性;例如,一些操作系统在某些情况下不需要页表切换,这可以提高性能。 - -你可能想知道CPU硬件的陷阱处理顺序是否可以进一步简化。例如,假设CPU不切换程序计数器。那么陷阱可以在仍然运行用户指令的情况下切换到管理模式。但因此这些用户指令可以打破用户/内核的隔离机制,例如通过修改`satp`寄存器来指向允许访问所有物理内存的页表。因此,CPU使用专门的寄存器切换到内核指定的指令地址,即`stvec`,是很重要的。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s2.html b/_book/tranlate_books/book-riscv-rev1/c4/s2.html deleted file mode 100644 index 4ccdd45..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s2.html +++ /dev/null @@ -1,863 +0,0 @@ - - - - - - - 4.2 从用户空间陷入 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                  -
                                                                  - - - - - - - - -
                                                                  - -
                                                                  - -
                                                                  - - - - - - - - -
                                                                  -
                                                                  - -
                                                                  -
                                                                  - -
                                                                  - -

                                                                  4.2 从用户空间陷入

                                                                  -

                                                                  如果用户程序发出系统调用(ecall指令),或者做了一些非法的事情,或者设备中断,那么在用户空间中执行时就可能会产生陷阱。来自用户空间的陷阱的高级路径是uservec (kernel/trampoline.S:16),然后是usertrap (kernel/trap.c:37);返回时,先是usertrapret (kernel/trap.c:90),然后是userret (kernel/trampoline.S:16)。

                                                                  -

                                                                  来自用户代码的陷阱比来自内核的陷阱更具挑战性,因为satp指向不映射内核的用户页表,栈指针可能包含无效甚至恶意的值。

                                                                  -

                                                                  由于RISC-V硬件在陷阱期间不会切换页表,所以用户页表必须包括uservecstvec指向的陷阱向量指令)的映射。uservec必须切换satp以指向内核页表;为了在切换后继续执行指令,uservec必须在内核页表中与用户页表中映射相同的地址。

                                                                  -

                                                                  xv6使用包含uservec的蹦床页面(trampoline page)来满足这些约束。xv6将蹦床页面映射到内核页表和每个用户页表中相同的虚拟地址。这个虚拟地址是TRAMPOLINE(如图2.3和图3.3所示)。蹦床内容在trampoline.S中设置,并且(当执行用户代码时)stvec设置为uservec (kernel/trampoline.S:16)。

                                                                  -

                                                                  uservec启动时,所有32个寄存器都包含被中断代码所拥有的值。但是uservec需要能够修改一些寄存器,以便设置satp并生成保存寄存器的地址。RISC-V以sscratch寄存器的形式提供了帮助。uservec开始时的csrrw指令交换了a0sscratch的内容。现在用户代码的a0被保存了;uservec有一个寄存器(a0)可以使用;a0包含内核以前放在sscratch中的值。

                                                                  -

                                                                  uservec的下一个任务是保存用户寄存器。在进入用户空间之前,内核先前将sscratch设置为指向一个每个进程的陷阱帧,该帧(除此之外)具有保存所有用户寄存器的空间(kernel/proc.h:44)。因为satp仍然指向用户页表,所以uservec需要将陷阱帧映射到用户地址空间中。每当创建一个进程时,xv6就为该进程的陷阱帧分配一个页面,并安排它始终映射在用户虚拟地址TRAPFRAME,该地址就在TRAMPOLINE下面。尽管使用物理地址,该进程的p->trapframe仍指向陷阱帧,这样内核就可以通过内核页表使用它。

                                                                  -

                                                                  因此在交换a0sscratch之后,a0持有指向当前进程陷阱帧的指针。uservec现在保存那里的所有用户寄存器,包括从sscratch读取的用户的a0

                                                                  -

                                                                  陷阱帧包含指向当前进程内核栈的指针、当前CPU的hartidusertrap的地址和内核页表的地址。uservec取得这些值,将satp切换到内核页表,并调用usertrap

                                                                  -

                                                                  usertrap的任务是确定陷阱的原因,处理并返回(kernel/trap.c:37)。如上所述,它首先改变stvec,这样内核中的陷阱将由kernelvec处理。它保存了sepc(保存的用户程序计数器),再次保存是因为usertrap中可能有一个进程切换,可能导致sepc被覆盖。如果陷阱来自系统调用,syscall会处理它;如果是设备中断,devintr会处理;否则它是一个异常,内核会杀死错误进程。系统调用路径在保存的用户程序计数器pc上加4,因为在系统调用的情况下,RISC-V会留下指向ecall指令的程序指针(返回后需要执行ecall之后的下一条指令)。在退出的过程中,usertrap检查进程是已经被杀死还是应该让出CPU(如果这个陷阱是计时器中断)。

                                                                  -

                                                                  返回用户空间的第一步是调用usertrapret (kernel/trap.c:90)。该函数设置RISC-V控制寄存器,为将来来自用户空间的陷阱做准备。这涉及到将stvec更改为指向uservec,准备uservec所依赖的陷阱帧字段,并将sepc设置为之前保存的用户程序计数器。最后,usertrapret在用户和内核页表中都映射的蹦床页面上调用userret;原因是userret中的汇编代码会切换页表。

                                                                  -

                                                                  usertrapretuserret的调用将指针传递到a0中的进程用户页表和a1中的TRAPFRAME (kernel/trampoline.S:88)。userretsatp切换到进程的用户页表。回想一下,用户页表同时映射蹦床页面和TRAPFRAME,但没有从内核映射其他内容。同样,蹦床页面映射在用户和内核页表中的同一个虚拟地址上的事实允许用户在更改satp后继续执行。userret复制陷阱帧保存的用户a0sscratch,为以后与TRAPFRAME的交换做准备。从此刻开始,userret可以使用的唯一数据是寄存器内容和陷阱帧的内容。下一个userret从陷阱帧中恢复保存的用户寄存器,做a0sscratch的最后一次交换来恢复用户a0并为下一个陷阱保存TRAPFRAME,并使用sret返回用户空间。

                                                                  -
                                                                  copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:38:14 -
                                                                  - -
                                                                  - -
                                                                  -
                                                                  -
                                                                  - -

                                                                  results matching ""

                                                                  -
                                                                    - -
                                                                    -
                                                                    - -

                                                                    No results matching ""

                                                                    - -
                                                                    -
                                                                    -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    - - - - - - - - - - - - - - -
                                                                    - - -
                                                                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s2.md b/_book/tranlate_books/book-riscv-rev1/c4/s2.md deleted file mode 100644 index bab2f27..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s2.md +++ /dev/null @@ -1,23 +0,0 @@ -# 4.2 从用户空间陷入 - -如果用户程序发出系统调用(`ecall`指令),或者做了一些非法的事情,或者设备中断,那么在用户空间中执行时就可能会产生陷阱。来自用户空间的陷阱的高级路径是`uservec` (***kernel/trampoline.S***:16),然后是`usertrap` (***kernel/trap.c***:37);返回时,先是`usertrapret` (***kernel/trap.c***:90),然后是`userret` (***kernel/trampoline.S***:16)。 - -来自用户代码的陷阱比来自内核的陷阱更具挑战性,因为`satp`指向不映射内核的用户页表,栈指针可能包含无效甚至恶意的值。 - -由于RISC-V硬件在陷阱期间不会切换页表,所以用户页表必须包括`uservec`(**stvec**指向的陷阱向量指令)的映射。`uservec`必须切换`satp`以指向内核页表;为了在切换后继续执行指令,`uservec`必须在内核页表中与用户页表中映射相同的地址。 - -xv6使用包含`uservec`的蹦床页面(trampoline page)来满足这些约束。xv6将蹦床页面映射到内核页表和每个用户页表中相同的虚拟地址。这个虚拟地址是`TRAMPOLINE`(如图2.3和图3.3所示)。蹦床内容在***trampoline.S***中设置,并且(当执行用户代码时)`stvec`设置为`uservec` (***kernel/trampoline.S***:16)。 - -当`uservec`启动时,所有32个寄存器都包含被中断代码所拥有的值。但是`uservec`需要能够修改一些寄存器,以便设置`satp`并生成保存寄存器的地址。RISC-V以`sscratch`寄存器的形式提供了帮助。`uservec`开始时的`csrrw`指令交换了`a0`和`sscratch`的内容。现在用户代码的`a0`被保存了;`uservec`有一个寄存器(`a0`)可以使用;`a0`包含内核以前放在`sscratch`中的值。 - -`uservec`的下一个任务是保存用户寄存器。在进入用户空间之前,内核先前将`sscratch`设置为指向一个每个进程的陷阱帧,该帧(除此之外)具有保存所有用户寄存器的空间(***kernel/proc.h***:44)。因为`satp`仍然指向用户页表,所以`uservec`需要将陷阱帧映射到用户地址空间中。每当创建一个进程时,xv6就为该进程的陷阱帧分配一个页面,并安排它始终映射在用户虚拟地址`TRAPFRAME`,该地址就在`TRAMPOLINE`下面。尽管使用物理地址,该进程的`p->trapframe`仍指向陷阱帧,这样内核就可以通过内核页表使用它。 - -因此在交换`a0`和`sscratch`之后,`a0`持有指向当前进程陷阱帧的指针。`uservec`现在保存那里的所有用户寄存器,包括从`sscratch`读取的用户的`a0`。 - -陷阱帧包含指向当前进程内核栈的指针、当前CPU的`hartid`、`usertrap`的地址和内核页表的地址。`uservec`取得这些值,将`satp`切换到内核页表,并调用`usertrap`。 - -`usertrap`的任务是确定陷阱的原因,处理并返回(***kernel/trap.c***:37)。如上所述,它首先改变`stvec`,这样内核中的陷阱将由`kernelvec`处理。它保存了`sepc`(保存的用户程序计数器),再次保存是因为`usertrap`中可能有一个进程切换,可能导致`sepc`被覆盖。如果陷阱来自系统调用,`syscall`会处理它;如果是设备中断,`devintr`会处理;否则它是一个异常,内核会杀死错误进程。系统调用路径在保存的用户程序计数器`pc`上加4,因为在系统调用的情况下,RISC-V会留下指向`ecall`指令的程序指针(返回后需要执行`ecall`之后的下一条指令)。在退出的过程中,`usertrap`检查进程是已经被杀死还是应该让出CPU(如果这个陷阱是计时器中断)。 - -返回用户空间的第一步是调用`usertrapret` (***kernel/trap.c***:90)。该函数设置RISC-V控制寄存器,为将来来自用户空间的陷阱做准备。这涉及到将`stvec`更改为指向`uservec`,准备`uservec`所依赖的陷阱帧字段,并将`sepc`设置为之前保存的用户程序计数器。最后,`usertrapret`在用户和内核页表中都映射的蹦床页面上调用`userret`;原因是`userret`中的汇编代码会切换页表。 - -`usertrapret`对`userret`的调用将指针传递到`a0`中的进程用户页表和`a1`中的`TRAPFRAME` (***kernel/trampoline.S***:88)。`userret`将`satp`切换到进程的用户页表。回想一下,用户页表同时映射蹦床页面和`TRAPFRAME`,但没有从内核映射其他内容。同样,蹦床页面映射在用户和内核页表中的同一个虚拟地址上的事实允许用户在更改`satp`后继续执行。`userret`复制陷阱帧保存的用户`a0`到`sscratch`,为以后与`TRAPFRAME`的交换做准备。从此刻开始,`userret`可以使用的唯一数据是寄存器内容和陷阱帧的内容。下一个`userret`从陷阱帧中恢复保存的用户寄存器,做`a0`与`sscratch`的最后一次交换来恢复用户`a0`并为下一个陷阱保存`TRAPFRAME`,并使用`sret`返回用户空间。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s3.html b/_book/tranlate_books/book-riscv-rev1/c4/s3.html deleted file mode 100644 index 1be6a54..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s3.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - 4.3 代码:调用系统调用 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                    -
                                                                    - - - - - - - - -
                                                                    - -
                                                                    - -
                                                                    - - - - - - - - -
                                                                    -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    - -

                                                                    4.3 代码:调用系统调用

                                                                    -

                                                                    第2章以initcode.S调用exec系统调用(user/initcode.S:11)结束。让我们看看用户调用是如何在内核中实现exec系统调用的。

                                                                    -

                                                                    用户代码将exec需要的参数放在寄存器a0a1中,并将系统调用号放在a7中。系统调用号与syscalls数组中的条目相匹配,syscalls数组是一个函数指针表(kernel/syscall.c:108)。ecall指令陷入(trap)到内核中,执行uservecusertrapsyscall,和我们之前看到的一样。

                                                                    -

                                                                    syscallkernel/syscall.c:133)从陷阱帧(trapframe)中保存的a7中检索系统调用号(p->trapframe->a7),并用它索引到syscalls中,对于第一次系统调用,a7中的内容是SYS_execkernel/syscall. h:8),导致了对系统调用接口函数sys_exec的调用。

                                                                    -

                                                                    当系统调用接口函数返回时,syscall将其返回值记录在p->trapframe->a0中。这将导致原始用户空间对exec()的调用返回该值,因为RISC-V上的C调用约定将返回值放在a0中。系统调用通常返回负数表示错误,返回零或正数表示成功。如果系统调用号无效,syscall打印错误并返回-1。

                                                                    -
                                                                    copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:38:44 -
                                                                    - -
                                                                    - -
                                                                    -
                                                                    -
                                                                    - -

                                                                    results matching ""

                                                                    -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      No results matching ""

                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -
                                                                      - - - - - - - - - - - - - - -
                                                                      - - -
                                                                      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s3.md b/_book/tranlate_books/book-riscv-rev1/c4/s3.md deleted file mode 100644 index 7e44972..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s3.md +++ /dev/null @@ -1,9 +0,0 @@ -# 4.3 代码:调用系统调用 - -第2章以***initcode.S***调用`exec`系统调用(***user/initcode.S***:11)结束。让我们看看用户调用是如何在内核中实现`exec`系统调用的。 - -用户代码将`exec`需要的参数放在寄存器`a0`和`a1`中,并将系统调用号放在`a7`中。系统调用号与`syscalls`数组中的条目相匹配,`syscalls`数组是一个函数指针表(***kernel/syscall.c***:108)。`ecall`指令陷入(trap)到内核中,执行`uservec`、`usertrap`和`syscall`,和我们之前看到的一样。 - -`syscall`(***kernel/syscall.c***:133)从陷阱帧(trapframe)中保存的`a7`中检索系统调用号(`p->trapframe->a7`),并用它索引到`syscalls`中,对于第一次系统调用,`a7`中的内容是`SYS_exec`(***kernel/syscall. h***:8),导致了对系统调用接口函数`sys_exec`的调用。 - -当系统调用接口函数返回时,`syscall`将其返回值记录在`p->trapframe->a0`中。这将导致原始用户空间对`exec()`的调用返回该值,因为RISC-V上的C调用约定将返回值放在`a0`中。系统调用通常返回负数表示错误,返回零或正数表示成功。如果系统调用号无效,`syscall`打印错误并返回-1。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s4.html b/_book/tranlate_books/book-riscv-rev1/c4/s4.html deleted file mode 100644 index 4470831..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s4.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - 4.4 系统调用参数 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                      -
                                                                      - - - - - - - - -
                                                                      - -
                                                                      - -
                                                                      - - - - - - - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - -
                                                                      - -

                                                                      4.4 系统调用参数

                                                                      -

                                                                      内核中的系统调用接口需要找到用户代码传递的参数。因为用户代码调用了系统调用封装函数,所以参数最初被放置在RISC-V C调用所约定的地方:寄存器。内核陷阱代码将用户寄存器保存到当前进程的陷阱框架中,内核代码可以在那里找到它们。函数artintartaddrartfd从陷阱框架中检索第n个系统调用参数并以整数、指针或文件描述符的形式保存。他们都调用argraw来检索相应的保存的用户寄存器(kernel/syscall.c:35)。

                                                                      -

                                                                      有些系统调用传递指针作为参数,内核必须使用这些指针来读取或写入用户内存。例如:exec系统调用传递给内核一个指向用户空间中字符串参数的指针数组。这些指针带来了两个挑战。首先,用户程序可能有缺陷或恶意,可能会传递给内核一个无效的指针,或者一个旨在欺骗内核访问内核内存而不是用户内存的指针。其次,xv6内核页表映射与用户页表映射不同,因此内核不能使用普通指令从用户提供的地址加载或存储。

                                                                      -

                                                                      内核实现了安全地将数据传输到用户提供的地址和从用户提供的地址传输数据的功能。fetchstr是一个例子(kernel/syscall.c:25)。文件系统调用,如exec,使用fetchstr从用户空间检索字符串文件名参数。fetchstr调用copyinstr来完成这项困难的工作。

                                                                      -

                                                                      copyinstrkernel/vm.c:406)从用户页表页表中的虚拟地址srcva复制max字节到dst。它使用walkaddr(它又调用walk)在软件中遍历页表,以确定srcva的物理地址pa0。由于内核将所有物理RAM地址映射到同一个内核虚拟地址,copyinstr可以直接将字符串字节从pa0复制到dstwalkaddrkernel/vm.c:95)检查用户提供的虚拟地址是否为进程用户地址空间的一部分,因此程序不能欺骗内核读取其他内存。一个类似的函数copyout,将数据从内核复制到用户提供的地址。

                                                                      -
                                                                      copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:39:13 -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -

                                                                      results matching ""

                                                                      -
                                                                        - -
                                                                        -
                                                                        - -

                                                                        No results matching ""

                                                                        - -
                                                                        -
                                                                        -
                                                                        - -
                                                                        -
                                                                        - -
                                                                        - - - - - - - - - - - - - - -
                                                                        - - -
                                                                        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s4.md b/_book/tranlate_books/book-riscv-rev1/c4/s4.md deleted file mode 100644 index afe5389..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s4.md +++ /dev/null @@ -1,9 +0,0 @@ -# 4.4 系统调用参数 - -内核中的系统调用接口需要找到用户代码传递的参数。因为用户代码调用了系统调用封装函数,所以参数最初被放置在RISC-V C调用所约定的地方:寄存器。内核陷阱代码将用户寄存器保存到当前进程的陷阱框架中,内核代码可以在那里找到它们。函数`artint`、`artaddr`和`artfd`从陷阱框架中检索第n个**系统调用参数**并以整数、指针或文件描述符的形式保存。他们都调用`argraw`来检索相应的保存的用户寄存器(***kernel/syscall.c***:35)。 - -有些系统调用传递指针作为参数,内核必须使用这些指针来读取或写入用户内存。例如:`exec`系统调用传递给内核一个指向用户空间中字符串参数的指针数组。这些指针带来了两个挑战。首先,用户程序可能有缺陷或恶意,可能会传递给内核一个无效的指针,或者一个旨在欺骗内核访问内核内存而不是用户内存的指针。其次,xv6内核页表映射与用户页表映射不同,因此内核不能使用普通指令从用户提供的地址加载或存储。 - -内核实现了安全地将数据传输到用户提供的地址和从用户提供的地址传输数据的功能。`fetchstr`是一个例子(***kernel/syscall.c***:25)。文件系统调用,如`exec`,使用`fetchstr`从用户空间检索字符串文件名参数。`fetchstr`调用`copyinstr`来完成这项困难的工作。 - -`copyinstr`(***kernel/vm.c***:406)从用户页表页表中的虚拟地址`srcva`复制`max`字节到`dst`。它使用`walkaddr`(它又调用`walk`)在软件中遍历页表,以确定`srcva`的物理地址`pa0`。由于内核将所有物理RAM地址映射到同一个内核虚拟地址,`copyinstr`可以直接将字符串字节从`pa0`复制到`dst`。`walkaddr`(***kernel/vm.c***:95)检查用户提供的虚拟地址是否为进程用户地址空间的一部分,因此程序不能欺骗内核读取其他内存。一个类似的函数`copyout`,将数据从内核复制到用户提供的地址。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s5.html b/_book/tranlate_books/book-riscv-rev1/c4/s5.html deleted file mode 100644 index c5a04ea..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s5.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - - 4.5 从内核空间陷入 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                        -
                                                                        - - - - - - - - -
                                                                        - -
                                                                        - -
                                                                        - - - - - - - - -
                                                                        -
                                                                        - -
                                                                        -
                                                                        - -
                                                                        - -

                                                                        4.5 从内核空间陷入

                                                                        -

                                                                        xv6根据执行的是用户代码还是内核代码,对CPU陷阱寄存器的配置有所不同。当在CPU上执行内核时,内核将stvec指向kernelvec(kernel/kernelvec.S:10)的汇编代码。由于xv6已经在内核中,kernelvec可以依赖于设置为内核页表的satp,以及指向有效内核栈的栈指针。kernelvec保存所有寄存器,以便被中断的代码最终可以不受干扰地恢复。

                                                                        -

                                                                        kernelvec将寄存器保存在被中断的内核线程的栈上,这是有意义的,因为寄存器值属于该线程。如果陷阱导致切换到不同的线程,那这一点就显得尤为重要——在这种情况下,陷阱将实际返回到新线程的栈上,将被中断线程保存的寄存器安全地保存在其栈上。

                                                                        -

                                                                        Kernelvec在保存寄存器后跳转到kerneltrap(kernel/trap.c:134)。kerneltrap为两种类型的陷阱做好了准备:设备中断和异常。它调用devintr(kernel/trap.c:177)来检查和处理前者。如果陷阱不是设备中断,则必定是一个异常,内核中的异常将是一个致命的错误;内核调用panic并停止执行。

                                                                        -

                                                                        如果由于计时器中断而调用了kerneltrap,并且一个进程的内核线程正在运行(而不是调度程序线程),kerneltrap会调用yield,给其他线程一个运行的机会。在某个时刻,其中一个线程会让步,让我们的线程和它的kerneltrap再次恢复。第7章解释了yield中发生的事情。

                                                                        -

                                                                        kerneltrap的工作完成后,它需要返回到任何被陷阱中断的代码。因为一个yield可能已经破坏了保存的sepc和在sstatus中保存的前一个状态模式,因此kerneltrap在启动时保存它们。它现在恢复这些控制寄存器并返回到kernelvec(kernel/kernelvec.S:48)。kernelvec从栈中弹出保存的寄存器并执行sret,将sepc复制到pc并恢复中断的内核代码。

                                                                        -

                                                                        值得思考的是,如果内核陷阱由于计时器中断而调用yield,陷阱返回是如何发生的。

                                                                        -

                                                                        当CPU从用户空间进入内核时,xv6将CPU的stvec设置为kernelvec;您可以在usertrap(kernel/trap.c:29)中看到这一点。内核执行时有一个时间窗口,但stvec设置为uservec,在该窗口中禁用设备中断至关重要。幸运的是,RISC-V总是在开始设置陷阱时禁用中断,xv6在设置stvec之前不会再次启用中断。

                                                                        -
                                                                        copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:41:29 -
                                                                        - -
                                                                        - -
                                                                        -
                                                                        -
                                                                        - -

                                                                        results matching ""

                                                                        -
                                                                          - -
                                                                          -
                                                                          - -

                                                                          No results matching ""

                                                                          - -
                                                                          -
                                                                          -
                                                                          - -
                                                                          -
                                                                          - -
                                                                          - - - - - - - - - - - - - - -
                                                                          - - -
                                                                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s5.md b/_book/tranlate_books/book-riscv-rev1/c4/s5.md deleted file mode 100644 index 2bb9bdc..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s5.md +++ /dev/null @@ -1,15 +0,0 @@ -# 4.5 从内核空间陷入 - -xv6根据执行的是用户代码还是内核代码,对CPU陷阱寄存器的配置有所不同。当在CPU上执行内核时,内核将`stvec`指向`kernelvec`(***kernel/kernelvec.S***:10)的汇编代码。由于xv6已经在内核中,`kernelvec`可以依赖于设置为内核页表的`satp`,以及指向有效内核栈的栈指针。`kernelvec`保存所有寄存器,以便被中断的代码最终可以不受干扰地恢复。 - -`kernelvec`将寄存器保存在被中断的内核线程的栈上,这是有意义的,因为寄存器值属于该线程。如果陷阱导致切换到不同的线程,那这一点就显得尤为重要——在这种情况下,陷阱将实际返回到新线程的栈上,将被中断线程保存的寄存器安全地保存在其栈上。 - -`Kernelvec`在保存寄存器后跳转到`kerneltrap`(***kernel/trap.c***:134)。`kerneltrap`为两种类型的陷阱做好了准备:设备中断和异常。它调用`devintr`(***kernel/trap.c***:177)来检查和处理前者。如果陷阱不是设备中断,则必定是一个异常,内核中的异常将是一个致命的错误;内核调用`panic`并停止执行。 - -如果由于计时器中断而调用了`kerneltrap`,并且一个进程的内核线程正在运行(而不是调度程序线程),`kerneltrap`会调用`yield`,给其他线程一个运行的机会。在某个时刻,其中一个线程会让步,让我们的线程和它的`kerneltrap`再次恢复。第7章解释了`yield`中发生的事情。 - -当`kerneltrap`的工作完成后,它需要返回到任何被陷阱中断的代码。因为一个`yield`可能已经破坏了保存的`sepc`和在`sstatus`中保存的前一个状态模式,因此`kerneltrap`在启动时保存它们。它现在恢复这些控制寄存器并返回到`kernelvec`(***kernel/kernelvec.S***:48)。`kernelvec`从栈中弹出保存的寄存器并执行`sret`,将`sepc`复制到`pc`并恢复中断的内核代码。 - -值得思考的是,如果内核陷阱由于计时器中断而调用`yield`,陷阱返回是如何发生的。 - -当CPU从用户空间进入内核时,xv6将CPU的`stvec`设置为`kernelvec`;您可以在`usertrap`(***kernel/trap.c***:29)中看到这一点。内核执行时有一个时间窗口,但`stvec`设置为`uservec`,在该窗口中禁用设备中断至关重要。幸运的是,RISC-V总是在开始设置陷阱时禁用中断,xv6在设置`stvec`之前不会再次启用中断。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s6.html b/_book/tranlate_books/book-riscv-rev1/c4/s6.html deleted file mode 100644 index 0b7dd34..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s6.html +++ /dev/null @@ -1,860 +0,0 @@ - - - - - - - 4.6 页面错误异常 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                          -
                                                                          - - - - - - - - -
                                                                          - -
                                                                          - -
                                                                          - - - - - - - - -
                                                                          -
                                                                          - -
                                                                          -
                                                                          - -
                                                                          - -

                                                                          4.6 页面错误异常

                                                                          -

                                                                          Xv6对异常的响应相当无趣: 如果用户空间中发生异常,内核将终止故障进程。如果内核中发生异常,则内核会崩溃。真正的操作系统通常以更有趣的方式做出反应。

                                                                          -

                                                                          例如,许多内核使用页面错误来实现写时拷贝版本的fork——copy on write (COW) fork。要解释COW fork,请回忆第3章内容:xv6的fork通过调用uvmcopy(kernel/vm.c:309) 为子级分配物理内存,并将父级的内存复制到其中,使子级具有与父级相同的内存内容。如果父子进程可以共享父级的物理内存,则效率会更高。然而武断地实现这种方法是行不通的,因为它会导致父级和子级通过对共享栈和堆的写入来中断彼此的执行。

                                                                          -

                                                                          由页面错误驱动的COW fork可以使父级和子级安全地共享物理内存。当CPU无法将虚拟地址转换为物理地址时,CPU会生成页面错误异常。Risc-v有三种不同的页面错误: 加载页面错误 (当加载指令无法转换其虚拟地址时),存储页面错误 (当存储指令无法转换其虚拟地址时) 和指令页面错误 (当指令的地址无法转换时)。scause寄存器中的值指示页面错误的类型,stval寄存器包含无法翻译的地址。

                                                                          -

                                                                          COW fork中的基本计划是让父子最初共享所有物理页面,但将它们映射为只读。因此,当子级或父级执行存储指令时,risc-v CPU引发页面错误异常。为了响应此异常,内核复制了包含错误地址的页面。它在子级的地址空间中映射一个权限为读/写的副本,在父级的地址空间中映射另一个权限为读/写的副本。更新页表后,内核会在导致故障的指令处恢复故障进程的执行。由于内核已经更新了相关的PTE以允许写入,所以错误指令现在将正确执行。

                                                                          -

                                                                          COW策略对fork很有效,因为通常子进程会在fork之后立即调用exec,用新的地址空间替换其地址空间。在这种常见情况下,子级只会触发很少的页面错误,内核可以避免拷贝父进程内存完整的副本。此外,COW fork是透明的: 无需对应用程序进行任何修改即可使其受益。

                                                                          -

                                                                          COW fork以外,页表和页面错误的结合还开发出了广泛有趣的可能性。另一个广泛使用的特性叫做惰性分配——lazy allocation。它包括两部分内容:首先,当应用程序调用sbrk时,内核增加地址空间,但在页表中将新地址标记为无效。其次,对于包含于其中的地址的页面错误,内核分配物理内存并将其映射到页表中。由于应用程序通常要求比他们需要的更多的内存,惰性分配可以称得上一次胜利: 内核仅在应用程序实际使用它时才分配内存。像COW fork一样,内核可以对应用程序透明地实现此功能。

                                                                          -

                                                                          利用页面故障的另一个广泛使用的功能是从磁盘分页。如果应用程序需要比可用物理RAM更多的内存,内核可以换出一些页面: 将它们写入存储设备 (如磁盘),并将它们的PTE标记为无效。如果应用程序读取或写入被换出的页面,则CPU将触发页面错误。然后内核可以检查故障地址。如果该地址属于磁盘上的页面,则内核分配物理内存页面,将该页面从磁盘读取到该内存,将PTE更新为有效并引用该内存,然后恢复应用程序。为了给页面腾出空间,内核可能需要换出另一个页面。此功能不需要对应用程序进行更改,并且如果应用程序具有引用的地址 (即,它们在任何给定时间仅使用其内存的子集),则该功能可以很好地工作。

                                                                          -

                                                                          结合分页和页面错误异常的其他功能包括自动扩展栈空间和内存映射文件。

                                                                          -
                                                                          copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:41:43 -
                                                                          - -
                                                                          - -
                                                                          -
                                                                          -
                                                                          - -

                                                                          results matching ""

                                                                          -
                                                                            - -
                                                                            -
                                                                            - -

                                                                            No results matching ""

                                                                            - -
                                                                            -
                                                                            -
                                                                            - -
                                                                            -
                                                                            - -
                                                                            - - - - - - - - - - - - - - -
                                                                            - - -
                                                                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s6.md b/_book/tranlate_books/book-riscv-rev1/c4/s6.md deleted file mode 100644 index d4b5dc0..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s6.md +++ /dev/null @@ -1,17 +0,0 @@ -# 4.6 页面错误异常 - -Xv6对异常的响应相当无趣: 如果用户空间中发生异常,内核将终止故障进程。如果内核中发生异常,则内核会崩溃。真正的操作系统通常以更有趣的方式做出反应。 - -例如,许多内核使用页面错误来实现写时拷贝版本的`fork`——*copy on write (COW) fork*。要解释*COW fork*,请回忆第3章内容:xv6的`fork`通过调用`uvmcopy`(***kernel/vm.c***:309) 为子级分配物理内存,并将父级的内存复制到其中,使子级具有与父级相同的内存内容。如果父子进程可以共享父级的物理内存,则效率会更高。然而武断地实现这种方法是行不通的,因为它会导致父级和子级通过对共享栈和堆的写入来中断彼此的执行。 - -由页面错误驱动的*COW fork*可以使父级和子级安全地共享物理内存。当CPU无法将虚拟地址转换为物理地址时,CPU会生成页面错误异常。Risc-v有三种不同的页面错误: 加载页面错误 (当加载指令无法转换其虚拟地址时),存储页面错误 (当存储指令无法转换其虚拟地址时) 和指令页面错误 (当指令的地址无法转换时)。`scause`寄存器中的值指示页面错误的类型,`stval`寄存器包含无法翻译的地址。 - -COW fork中的基本计划是让父子最初共享所有物理页面,但将它们映射为只读。因此,当子级或父级执行存储指令时,risc-v CPU引发页面错误异常。为了响应此异常,内核复制了包含错误地址的页面。它在子级的地址空间中映射一个权限为读/写的副本,在父级的地址空间中映射另一个权限为读/写的副本。更新页表后,内核会在导致故障的指令处恢复故障进程的执行。由于内核已经更新了相关的PTE以允许写入,所以错误指令现在将正确执行。 - -COW策略对`fork`很有效,因为通常子进程会在`fork`之后立即调用`exec`,用新的地址空间替换其地址空间。在这种常见情况下,子级只会触发很少的页面错误,内核可以避免拷贝父进程内存完整的副本。此外,*COW fork*是透明的: 无需对应用程序进行任何修改即可使其受益。 - -除*COW fork*以外,页表和页面错误的结合还开发出了广泛有趣的可能性。另一个广泛使用的特性叫做惰性分配——*lazy allocation。*它包括两部分内容:首先,当应用程序调用`sbrk`时,内核增加地址空间,但在页表中将新地址标记为无效。其次,对于包含于其中的地址的页面错误,内核分配物理内存并将其映射到页表中。由于应用程序通常要求比他们需要的更多的内存,惰性分配可以称得上一次胜利: 内核仅在应用程序实际使用它时才分配内存。像COW fork一样,内核可以对应用程序透明地实现此功能。 - -利用页面故障的另一个广泛使用的功能是从磁盘分页。如果应用程序需要比可用物理RAM更多的内存,内核可以换出一些页面: 将它们写入存储设备 (如磁盘),并将它们的PTE标记为无效。如果应用程序读取或写入被换出的页面,则CPU将触发页面错误。然后内核可以检查故障地址。如果该地址属于磁盘上的页面,则内核分配物理内存页面,将该页面从磁盘读取到该内存,将PTE更新为有效并引用该内存,然后恢复应用程序。为了给页面腾出空间,内核可能需要换出另一个页面。此功能不需要对应用程序进行更改,并且如果应用程序具有引用的地址 (即,它们在任何给定时间仅使用其内存的子集),则该功能可以很好地工作。 - -结合分页和页面错误异常的其他功能包括自动扩展栈空间和内存映射文件。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s7.html b/_book/tranlate_books/book-riscv-rev1/c4/s7.html deleted file mode 100644 index be9b374..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s7.html +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - 4.7 真实世界 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                            -
                                                                            - - - - - - - - -
                                                                            - -
                                                                            - -
                                                                            - - - - - - - - -
                                                                            -
                                                                            - -
                                                                            -
                                                                            - -
                                                                            - -

                                                                            4.7 真实世界

                                                                            -

                                                                            如果内核内存被映射到每个进程的用户页表中(带有适当的PTE权限标志),就可以消除对特殊蹦床页面的需求。这也将消除在从用户空间捕获到内核时对页表切换的需求。这反过来也将允许内核中的系统调用实现利用当前进程正在映射的用户内存,允许内核代码直接解引用用户指针。许多操作系统已经使用这些想法来提高效率。Xv6避免了这些漏洞,以减少由于无意中使用用户指针而导致内核中出现安全漏洞的可能性,并降低了确保用户和内核虚拟地址不重叠所需的一些复杂性。

                                                                            -
                                                                            copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:42:01 -
                                                                            - -
                                                                            - -
                                                                            -
                                                                            -
                                                                            - -

                                                                            results matching ""

                                                                            -
                                                                              - -
                                                                              -
                                                                              - -

                                                                              No results matching ""

                                                                              - -
                                                                              -
                                                                              -
                                                                              - -
                                                                              -
                                                                              - -
                                                                              - - - - - - - - - - - - - - -
                                                                              - - -
                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s7.md b/_book/tranlate_books/book-riscv-rev1/c4/s7.md deleted file mode 100644 index 6633aca..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s7.md +++ /dev/null @@ -1,3 +0,0 @@ -# 4.7 真实世界 - -如果内核内存被映射到每个进程的用户页表中(带有适当的**PTE**权限标志),就可以消除对特殊蹦床页面的需求。这也将消除在从用户空间捕获到内核时对页表切换的需求。这反过来也将允许内核中的系统调用实现利用当前进程正在映射的用户内存,允许内核代码直接解引用用户指针。许多操作系统已经使用这些想法来提高效率。Xv6避免了这些漏洞,以减少由于无意中使用用户指针而导致内核中出现安全漏洞的可能性,并降低了确保用户和内核虚拟地址不重叠所需的一些复杂性。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s8.html b/_book/tranlate_books/book-riscv-rev1/c4/s8.html deleted file mode 100644 index 5d7d677..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s8.html +++ /dev/null @@ -1,857 +0,0 @@ - - - - - - - 4.8 练习 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                              -
                                                                              - - - - - - - - -
                                                                              - -
                                                                              - -
                                                                              - - - - - - - - -
                                                                              -
                                                                              - -
                                                                              -
                                                                              - -
                                                                              - -

                                                                              4.8 练习

                                                                              -
                                                                                -
                                                                              1. 函数copyincopyinstr在软件中遍历用户页表。设置内核页表,使内核拥有用户程序的映射,这样copyincopyinstr可以使用memcpy将系统调用参数复制到内核空间,依靠硬件进行页表遍历
                                                                              2. -
                                                                              3. 实现惰性内存分配(lazy allocation)
                                                                              4. -
                                                                              5. 实现写时拷贝版本的forkcopy on write fork
                                                                              6. -
                                                                              -
                                                                              copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 11:42:19 -
                                                                              - -
                                                                              - -
                                                                              -
                                                                              -
                                                                              - -

                                                                              results matching ""

                                                                              -
                                                                                - -
                                                                                -
                                                                                - -

                                                                                No results matching ""

                                                                                - -
                                                                                -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                - - - - - - - - - - - - - - -
                                                                                - - -
                                                                                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/c4/s8.md b/_book/tranlate_books/book-riscv-rev1/c4/s8.md deleted file mode 100644 index 0a1c989..0000000 --- a/_book/tranlate_books/book-riscv-rev1/c4/s8.md +++ /dev/null @@ -1,6 +0,0 @@ -# 4.8 练习 - -1. 函数`copyin`和`copyinstr`在软件中遍历用户页表。设置内核页表,使内核拥有用户程序的映射,这样`copyin`和`copyinstr`可以使用`memcpy`将系统调用参数复制到内核空间,依靠硬件进行页表遍历 -2. 实现惰性内存分配*(lazy allocation)* -3. 实现写时拷贝版本的`fork`(*copy on write fork*) - diff --git a/_book/tranlate_books/book-riscv-rev1/images/c1/p1.png b/_book/tranlate_books/book-riscv-rev1/images/c1/p1.png deleted file mode 100644 index a328ce6f493055c74800a8c7e1c50d33fbf53fce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29056 zcmeFZi8q#S`#$<)h$Klu$`C?QgedbIGS87jGL#__GNwYvlp-TG|cYS*0dG7nZuJbz2<2;Vzyo0qh&+MXNrXmmsyHr&a zbqNHLDgt4fG9?LqLhvFVB@mp?s4B|odp!Bs?|xp-W?gWOpM-3`1=o8EP8v#uJqPdI zk~hdT_`ym^m2Hq0VVKIN^gP`l?*?bcUPda-cB*@nY1#Y~oFuQT>I^@A@sttxQ*iTl zN}BQz?Yj!Um8fWmi3*ofTt>fC_fQ3p5wA%Ij+~?U_ZMAip&i7(sL=eM|Nj4S9l~$B z69}%7G(mdv1)o2E{{8#+j~_qA$E~H4n@8tcDkWL9*lFiHBsro~Qnl->gw~7}*~rPs z!~Amc@`RbFPo6x<_bB8~DCyAFwc>A|4b#@kUcGuyHGJ>awfO@V*lF+mx;}p(N$qKF zZf?ln1io2KP0ge76uSm{G(k7#*|TRaUT902(Qf(a>FM!wHm;}DnP#M z5@ASq#d~wQtDvn$-@w2pS1?LNUr%rE*6n~z0Un++98uMkF;Oa9LUHQswAGbG^P4rp z*LusGjr8@~J38Lz6{M!7#xZTb(`pw>wy17kU@-FMrlVuNEc=SSMZ0|`_ZtI!efl@z z_n29E>8YYrz8BG*G-B7#(CFysaQL-=^>h1Spra$_{w^mcCoV27ICw_@iMg8B$vQ4s z_x6^S$VZQsevh49^o@V?s3S9OTa}=Kf VX<&%I7#Qpuqex7}M>RbC;~zGB{@iUZ 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 RS__32Ru+__56rw1{|AQKPniG! diff --git a/_book/tranlate_books/book-riscv-rev1/images/c2/p2.png b/_book/tranlate_books/book-riscv-rev1/images/c2/p2.png deleted file mode 100644 index 034e5e4cfb0cb76ab5e75cdd099c4fbd3358e048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21297 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 B@&o_? diff --git a/_book/tranlate_books/book-riscv-rev1/images/c3/p1.png b/_book/tranlate_books/book-riscv-rev1/images/c3/p1.png deleted file mode 100644 index f6cbf2a8b860a51300f88d7526337e5f273eed53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69559 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±CbqS=6_#MMLl_I%o0g61EUxn0m*?GK5*YAmz>pEr>uVlA~B}c zV}1$73Agd+DL@|{{71kS9Y*oc$xghlK=q;H^)wV-^ zFQ^jZ)7(Rc+-J{@gj-~jsdy_MvNo@n@{HCpwtU>$o+9668}qFryZt6kkDJCbEsdVE zWQnP{H>fRrJh6h;^5oGY2Q5fxa&luKjSN(-WVGggZR5*#Q~fKV=;vs$;Te`0sP@)Y zn-%bP@W0(i1DMh!|BSIb4*|L$LDsG2HM|wKrsC}E299@jZ7V!3^K#fQu2s++&KW(4 z54@1!vaD3%@uZ{fh*)&1hGt++mWY?XzvwHWiy18b&$IMgW2Ec~JhrIg1;>x1SzGA!lCp*RV`GDl*@z@C`^oH(t!d zqT%M|-G6_~1_E>Wwn-v9r&@PJdEjSq8b(Gm`S`{y180)l1mScf1|^(TjCV_{Yb@$l zCOfKrjiv*|Usvi+VomE;IwQ6v;>aX@p|GL7goz;c(7ElS+i{=X&YHiH=+0psk|m{M zE-`P#WsXKV=q;lwFtV^+PcKZ3M%7Qdl*7|Ha>N;}5Z}UBtv2Kw6C%o&BemS8`6DZf|Lke*e?r=7FVZJHvIR z)%Q_aNT4HI0j!X);oL;^7F&1fS>hhoh+UCiQ9^3;?){BP7}gO?;Cr7Q6QguIKR*)m z5#xXg8S71D1s5;ENumI-r-?k~BTInc|)wXI>0**n2OU}+(@ z2PzTob1ZAOpaMuw=Pgz<;Kh}Y-;h-ey=7CmxowUh@-R)CA}B7vVS_4_3ECk`3S@0J zm=7E%u_TSIOKj!16CN;?X@wv~H&|ceK`V>}!VO-yaNog$B?ynmMoj-pml>u_!KFIH zUN+_Z6y9;`SBzc-0xP)KC``7!~>*(t`!!_$8D@B?s{`yT!EQ^p?m_*P%VJqf!8PqjyR!R~a$z!kefWNf%^K8x7YN4S3?W3scz|_MZj`e?h|@go=(m5 zWwbz?Laz7YU3EW$)SkD$L4^R~w{QQUdxK6f>tyyo@slErKjn>&yS)L#W`0jY*yuW^ z;M4AX`*7jj2p{2$Q>3G~-d$2)Mf%C}GLAK6Wx62C)xkFuG(5sd(|r1R1<^I4yG1hg zr0$U~Q25;0>E!5Garf@}zrRNAZyQn}j0Ipof#3r`N&Yr=G_bcXjkfap8EW76xqb7x zEVitK`AziKn4+&t*uIoLxHH0Oi#qa)Uh7VtI)woq6xW(mvjeudo@XZh=TeiLT=j{* zi+4*h4RaaNX=Szv1vB|K&u3?LlG?-y;tUf+68dZs)9)X55*inXg)F+*w9*vkY6)R z$H`G-iG_ZCpw4|7TzD@RE~t5b7{Fg#*05Plr$Q3s5l**fC|uHalov`jsW-qN%EqQt zMQ4BUMu^Iwwhl%U!{~!RXLO4@L;lx_uQHj}df4dVYbB?(sFxstR>YzP1zb&b+?AQB zSpDd~Fz?ORVq6x28b4dK3Snc)H+VtkzRDIU5)|GwHMK@${VhuC@;kfM3@Xd2RrH^* zLJ$#`m5n#}di;;C%#vwQlb+B%z5H9s@N2wl&XFTEtt*ZwWG8h2_(C06<>&VT7_h%h z1R&8(>cyB@8O2{-FOnqz!gASO7BHgU{hs&K$NzJfDz>VkW9g-Rj{wnv&n8#SOjtC! zv`xP19&RuES2XLf<+dE1`eZK^}%6ATvJ${*-P*DI&+i!b_$(P;1O8c7mJrOpq zIrR*IzIY}C`UJR2M_wg5Ttlxnt;=%73Tls*>G11 zv?NEfc&2=X~6@ny=Sn`A(+Wd!VM<4TIT7!QHr!iu97nzJIcQ!>yS)#-|72Qw7D^icai`w9lB6kt4HfS75bk%H)? z?%DqnGc-3ei2T@}mb9*u3`f;KS<3&p@pY2Ra8#n3dp`RebjmerdG7$436>Get}B;Q zR7{XaFh7O4R)1C16|^GEtprAt#t7+I{^%U)8;lGMrA<3lJc?SdAa;v`9?cSQ)JQtB z&d2p&gW+VoWVE5>K$o{}QScGuqMsZLLo%fD7QBcr<6jtkef`m$* zmvJ}s3d;FYnAntfm3>@1W_3jAbM5^et3Oz65(WC4V~UvR&WrvYFLGCm9?Kw^=`z$1 znm<+wjH`MLafkvsY^&|7-1CKnEQ0R0=1$)6<8@4@Aq_THWvD=$Xm-^8Xb16>KPcl8 z+}KZILZDFhF-I7$gr+WnS(xd$x9;KC4N; zj8>=$Uf;dD#dwdkwKXr}r?BS{?#8%rk-$-W58%S+_x%c*aD@;*_KlJW?(DA+$@-9W zRNU76KQVShn#v@~5ufTEJ7yQJSq8%X{8?7kqJ8P2?>H-`G|e z6m#+Vs{eW!ik%5WSHi6;EgyQD5}x1byXb?VY5ttC9b@yE>Z*Cl!7!dda+N zc<)l;;-%FR5~&846JFHRMCBfD)Sj->K(*WRRvjspNju~{+V792(|3p|PXj5m7!jwf z(=4y~f`9>_!~A3Xk<(<&yME*Kqz{og;mjyri-Kj;gB%7Oo+#qmK}=KW0%SLQX&m zvdhc7-fW_=S|sj@^`rU)&hopmO8(_*IAyk1B%$DHuT;^St+(?jCx;+WqW|abUn1Xw z&Dq`@$r7Ne#8kkj*r6x+4!10v>u3@1arpgc42ekZW>*Vs&8vs2M!t5CKewG!QG$8 z=I?*d+$vhkH*9r&{V@F@S*H*v4D~7qU?4$v!Pz;0sN2}|`Sh@^t%Y8>*dj6^+3k`u z)aP6XP&sfhH{CqYPe-XVC(R=&+s8}Wc2EB3!Otr+@I0Mf7UW>DWS65ppAJ>~Xzt*p zJXQ_~Qg)0*N%eLmQl_dhu*vYb?5(1L4K;j~gTP9V=t;TR+Io{#)9IMKH@eqjYoE~v zO5k15*hLRV&+&t6if`Nr`Rubz(K3p7f(;+O5TW1NP6K0mravC8u4Z#@$3kHFq^SeWNBWXkjC;r0ddLiWi|_^m4)p`@htC9&V-(`rWs}U$Sq*jk(kW+QR}J;OLPMXagQR{KZs@ctQaG^fX`l%)S|N z9=(3%ySWB==SHlUOT&B4d+8FhKdQg%J<)NO6{5vn!3t?=ZrD0oZH z+S~s|s)R@wUVABh9|DRgR>aq@2eR7&BAKAeMWBSnfY><5IlY5;oIG~$*5{Iu}za9j>z-_^_&`foTJ-RnGcrqVMC=Xox>`Xa`6>cvx4)l}E!y)El zS4T%!-(GUz4tmL3(Fs6Uh4Mp}M(!|HyIWD=h&*fbXh|t4@E3o5<+11h3JR27O8qu$ z2~9=M55;Py`_y~=9Y!zyzVfF)!zJla9|soxM1jxc(^QyG8pm+0dX-E?w$MWUgQ&oi zjt7l_1VGSLj!nI9lkAJ@gY1=Vk_iFwvBW?huo`6blCy-blh&7>$6xUWsx!x3gJ1zy z3^kKk>qDEG?rBQmBJbu{_g6HUn;9UckWqG{f8=@_sqag9X8(9aXn5i4!6W|1A%(CN zHPp~NY>i>EBSs^Ug10%#=WDXr#~}Sh7X8+_{JtXdMTVx42}xRpK}}wH{pJ(JUdvF>$EsCClco|ZXLb~HWkvH2A&7jWvpEH0Jjt+r= z43|~P;;k($f2zp6x-eeJfo2DbczRO;P~g&~uY;p|9-cUL>SEv(gh?(CH!*muCVk7AJkm5%E4}ml-X)T4t{;g?sMke&eD}hp&*7lN4JbimX%O z`IZoS6+Nf%k#uANwS+$=tU}Vz7>&m?lMg~aP;efT4Th?X$*0xNT@lo2frWctdf25& z)~?{LU}a3Lgl~ex#*+<$9mY&O_n)Nt(i_n-2V4Z8iTV(#FF@XF`i&i?x}d7O!aza< z*Anh8VOH*|oot8AX_hVyxA3jnzPHx5yxB@*N#!vo@+3~MAq-oQivI*w#4_rV z-|17Q-h=E3v;~9TCRd-QL?%B8R*yM(qa|)g+?VHFHFe;+c`Lt&++yNd=t^#QPF<3)0xxuDq~FM7H2u< zfV)SMnpAea*fDje%#c`6Nj!CSmf~Enl7fSZMZPUexqXP*7G_5Ai5ic6!|Hn93bu$9 zU#Ak=06jo#x%0-2Htr#zXD-_hox6(ymx0V1KTa;2P3`|Vq-IA-_7t_~z)$x(0Iys$6^Kj30#b6odE1hCJE32ZctR5QZ z_C}kTb#NO=eM_Nx&z$*$POF!rQQ8!~L`4tE8BOd>h;lmjiqHbNyDKYCVEoUyh1hXq zs=JRv!6YN)qIYuap}!f>bHVFdy)f;&09PY-8DDLCbaVZuOvM zyt9jt?@XC;hv$XhqLYCxv{c|tKD1vfv=R+3|8Xv#Je{0|&^JJ)r0xS0?%3Eb+ibFe zsKfD?#3jtxxmlNF|H8rMJ_Kj?TI`=?&Zs1?5GT1T#7U7)9bvDkwGGkL9iR4T&!d^f zYMG-~%G9P-gN`m7Q0=_sJH{Hlyx!yP({)^EKPzY*-U#b^T+aj?|Ra<*Uzadk0lvzs-QNCnFgjH8j`9BGj*pPDr zM?_pDF$OIjX>Kk$?mKMzOzXAgtmc8%KGj+J#Zv)>!o$;Y%or&N34TDY4fi5m zRaMCu)h1^Y&)hyjQ#88$bT5O^qyMnB5L)MjvuF1)GrqHE#4wYM1Ct%`a}(yTGF6v1 z+pRY-HpcLS(hZJrUg77E^{7%)r7!orsyy=NbIp25kyZD3<%bU)B8QzKf=S4#RiVoQ zoT*slH6%_k+2Yt@nW2uRds4T0X*>~WqOB;CPUMwt-yVFXa!%RAsIN?)3$^o0B2pTB zPWlzdS&NWe!$uV zuXVSPdqm>w#<$zAYJDj2^;eeTw=Z8XLQ}g;{WF&rIAi1k4=1t7whuzS3Xf3_YjND{DZgn_1r_i79r{^3yFp z=Y5!VyxUq=w}FrhNKg^&;1av{y}0Dbdcp;ma?OJW<1KqMBrUkLygvj5Kt_r?a(mPV zhon!t{#@&|G6}ATFI9$IQ5>Xf2gEZsW*vmqZxNfFG@6Wp?X5 zbp+55n-6VY_z3=H8sErAJg0G|r)jeRQeQdQ!8kTPkFo^(Gb;f~3O;brBG6IZPa`pj_8+->&L(W;~iJnB3yq8S>c8%+{ULfwSOTn!k#{QsatFo^0bc+hr>` zDca4aEzwj~4qURt-@`-PXAvxvuM_9YXr44%kq`ag5X>5!Y1WV7JKW9ytAYg|R1yN~g(pWe5 z4ckm}OzBAf5FP^b^%hRD?`<%cYcRavO7e&4fbYZsyC`S+yt7C4>xS%}yxESN%t}Da z_g1~=R_pT;D-@EsOq|}hae`t2-@!K7*UIuFVgLPZXPuJuLD3Sr4ThdyJ3IGL<1lJu+qKV$ zX-rnhwqL(}6XtloU;j&y4oe(T^%j;UM59@eo4CjvqD!4Vt{AAliID}#mS*Z zXdxX9p&FG#2Mr!Rc_8!Z$lo7F<)$>o7WciHa=D|>vNYtZv%&PMR#6I5_-ci76Tlns zwXsRqU6wjUR{h!b>%&QwjThwZ$?=s7at>MbHQp76nIcga;OJ)HXD)0&X7c>7OjbN> z#QbjDpP+9k(Ww(>Trfc|*?&i$zI|Iie%!X}y)*M~Fh#8E>SU(w*+FU&ie0Xg{OIcG zXFG0O-ixI_#P&tc5SVaAH)Z&yd2iqAf9B#v%$5LS325~r+&37E8Po4}FJ>#EvZL1Z zzW8$I?_q-m%_ku9-`nQz;*qXdvnC|u__l5GolDLR9^t0RrO(8R+fiZ6%C-?~91703 zpWX}X16-=2stR$ZKV4E-gZGS(jM^#kk48vcn-^?9&p&;8e@9y34%dH3M z-DYa+pwPL-`is?NiNc#2-}BZXygGvD)Ho>AcmK;_`(7lLikAwqv`Wwfm^7#SOcO5J z9=ti#tTAeVYt#F{c{{LGnmSe3O@8s>s9|xBr)f`J)h?{03aU_og-dach7#oUl+CgH z{QGY|JKEU^O8Q_pSp}(%=lV@=+$Codrmbi2hExD4E@-K!ox6v}SDI&p?LEBh*@;N| zj@;bwmPgCPcRHbU&Lh!d4mCE8{TQR7tQV`7?3fl+%E-@X`P{%jI?)-UYzjUNNSlIe zNgQx{4Z>QU8D>@x`}wP;pEOJN1Tx$CB;CmINOV=^&W<9eD!_4EFQ(8`Lp!?Ea}zk< z(D0_En~5kN#d8}Ka*9jeFO^Ixf-Zf_ES+naYmlmyTJik(6|A?MXExJ#+jk18M~aUs zzje~Jm@uI?M7vzpY@Q+a{7=wc7N9rkV!*&r*6O*HPehiR&F&KNPru7%MyfIxcXose zZ8y^hT9hNNnZYgluof;eRJ+Gfk)kg;bH6=qEKvPwF=g(No@XatwG}pUT+)_~o7|ZC zBKE0ux{K+a!<|W6;d#JW?X78zKx@vcDX!DbdJgTv5BA2@)l**#3NEZl$=1dui>90* z*}vwCD&c8(6!+vV?MiUSL|4Wf!Q1Wb#Gv&DNP)|bcc61k})Cy);SNU zC2{JHnsgeLKgxJ!RdA)?uA=-krU$X_->#$^gWCOn%ICF5V5YzfyjrU{PkGF?Bj;3;9K7nGz*dSTufJSlzQ;sMnpZVgzNhKd*Pu7NKRpe_~SRT8e#3Xw%)bH(Rr6JFqoWbp!-bTCK9(v zS68K!^$XlD-pcOM3aARL5O*$JH^?GZd0~?K&auyCU5e-uB(k9KcJ}rdR)92p1scE# zt>d22z?j?5pDnUD6ecW7#k4i0{R20Iiuu;Fu{&;yof=fTBuVr6M*0Gh)o zzLUUZplAY6E+&3s^!mt5K46R12HEISE8i_IdV!TJsf0%N3q|%`ai1(rN|zZk;%q9b zt7m9Uhd#;TAf&ZYryd}s5sbwmBsUD{QgJ*f;;CkPc+UhxKS*zpj|!eL3=< zjox+x=k%!Maw!)SJmX#VTMi4ZQpZRVHSW~?mY*pAR#pR}>chJxi($r~b@BIJn;-Fl zCDj6SuJzuFe@*p#bdvvw1ROdjoWk(ctMgaZcj#x{&j(-`8QMeEnImI4$U{5i`2~~W zUdo*(4j*R1pw*{OLe|V9mb5Dz^P$7k$R-ylG`_YycA7SA=-9DZ)8!-r(@ysUeA%B2Cub?1W*dc=Vd{1*->5T4f`);Z3njVZ_}4;&UTINLSR zJZaEG>5aQ)TAEGHiqKE^iIcCErm%=SjC;WCv)lUFHYlhOEn?xUm3SPmBt&h?`}6f~ zsr1$bdxuS6{5Fpg2<3ZE1%+V$K|@ST%Do-(mYlWK2{`ut_{!<`32_e&O<;gag;r>M=@?a-DY+;SVKzw5h^p?zK|!&LKLF|w zITjW)|XI!m{V0Yce>qRWOe;X z5ugm$Md6KWG@k=B2EH{|FP{lk zRPZ|T-v(?pIC=`w(jm3S=Qti(obxp|T}AK!jKgqeZ_q$GiH98xNrM*!L^C}SdnQcUtA`TS^ItVcYT!dZI}0q4Cmc2m1lUr-z)mX#nDEk zZdaMJu4rk5&ah#v1yA>V zh9ch_6v84D%77R$^Ye##lyNDE=7g)Y*8YH8?6lyU({=o0-<6IW4LT8LAp`IlNjO}< zG)LmeP}r!kSyk)LFRpr zI2x*^><##k7@3_tK5i7_t2g0#ot`vtFY$Z80!Ek@v?r4W?aT;>q8n}0FLU_*!YD5^ zEbXteQqcMH519P+(a=~&K;UctpH`k#H(>h%6}7M2LYzOr-C1dp&_*%gK>WG!53>Bn z@C!*tqR}o_*N0Xd0~B30ZUR>FoI<|$gQri?iqa)eDnRLc5`$?gv4PFPvGXKshC8p* z`xtv_tF*Gg1nNeh3u1wTX%Ce#@}0frD>g1iM<^)e*73g5N3X=pumzw;T(pd{fNI<< zlx<^(-zVQX1 zjgO&Y!(r-n+HmXT0D3-^idolTWZV4ya29ks+dzL)CqjyXjXFc`f!%^`3oEj53JHBY zI2LtHdKHc_c%cnW!}AoWg7v32Z@zFrh@y?}^j#D)>?+2OP$9?xme|joTsWu_rINkJKzr2D2>{@rQ9EKKE*c#`bGYUJeI%y->n5@#T|b5UM#O(R3@rrK zK{(hYo%F~cBH&E>wi4au&WiOT#kPIuBPb9fwlZuk_?|Ad&4=M<|MtEH?ja!|td()l zgUt!|5?ff_Z_pB4In8Wr{25<~dl;&6qEZc}K79Om@ypBSaXjIvg0YsW`{C1qxXjnr zm-$3wes3>| zWWpnJMqT^YE3%ej6EbhXg1*YiF^Xyb`OlhVqP7L4@?@nlEP4SsATj~4K#FHzTsh?v z=FJBWnkpwj^?G=PjxyF{4kH^@S8Zfh6VH|DP3c9Nneqiz`+b>?Gw)(R&C_EIt4JtA z^8t5zy+Jwqq9cME!(N*B+G+-Fzq)mI7U(IHMA`En9pR<6?PLQ zNPGzIQMjD;msz;rPjyI{F0b*;n==6SH7offs*3sSbuKRUW32q>QAN-hK0JpYv4#Gg zFO;#amGZ~ohG2XI|DOhmp2?>qqKijV7%VJ|r0WH=Kj~ysnb0Bv00)yBG>BvpW6Sc( zCwK3jB3Zzw5Bgfxs{^u&%e@c{K8H+L|<@bASla0W*E}FkYlf{0zA;I01DFyz#Qzw+Er;+~;bZ zVLWEcda7RFCPs{9bHj@wSoVEn1a>E;drn=}I5`Orffby$g3k)j?$Xaoq22HaIhIO0 z4~^C?j0fS+YSM?d~bSR9wD8-ak|us zsxooRI7`17s%=?`VidyWMmIxaWAWLeoF@Z!b4c-IAG_h#2xDWp@b?HkQH=0)pB|l) zxF31SB@FgQ&xuf@%q^cXM)zmVOI`po9~%>Y`%b;Fo#qmKHP(|ad5z)>qZ zJsu?u{4^uAEoBMDX;X+31;6u;9z9Q;j3($v;m*5F(8#&)(d|4ny6re|Ue230ftpWo zIHH7j&mmwYV3!Rc{VV?;$t8I&eo@xSn&H3*SyTCYezE*|*fY1uxfHR^geuHyG<7($jAClJHEAoiWjW|IgcmuSLyPa}<(0ThcLxt|1!@?8 z9+F?Vs)`K9A&xSE2!3TntMc@U2dO->^9S9^G8WK|Q4l^^a=cfeSJm6k!T0tj-G&}9 z=RxwRIap;-DR@j>b2ukQ@D}n?i2Xgv&@l1%b}Xkbs{ZfUGZeJ~;&|dGc?Kb{Ae%Fj ze%IWb>N(W+g4~!*p}|U%y#+ySNH}=_FAS)F7%GyVIgY$%!B!8T%K5z~;HFU)E;QHh zvf1#P*`UCFzxJIUogeMW&6^HKH^XLk9C`R8YrOVV z+hDD(QJob_H?x1DV7vl10!ta2px96CP_kX=d3!+84}%~XaRLJ$X4^~2%5H%HGF~x0Huln$E3>bx+U8urR)cvoMKm%q zBd>F0%gg6ca!X%xJNXBuCXs6)sgI|yXpvlu>5*d|pZ=z7j+RQS4(1lLwYI{r-==Bx z5LW@{B=D$0H*Q32YO!ze{P_v3PUAZLLRNEL%; zC>Fk8 z=pnKI1YIdALj6jXPYvg%L_|c0ii#GfW2(+<6b=YCn$2yItc18UpB`fIoH-A8VtCmQ zO-_AIlxChu8&Y%1b0~QX;97qmKB?HHx3iL*3H8E}@q4$UM1p7g}PFP^6`p^tbNI+^4lQ$tZa7;;XP#qir!pWe@FWR^QU9lPu+U3jDk>;Q zr%?DXv!LnYUw{M)3nvLjR4{vty+O~#%j&}{;Svm)nX5D1eQGm?qrZRu2HIB88jTAq zy{h@3K~kBld3na95de!~7#15SJFktUda+9X)zvZELEx&~8_%uNC|iHkKn~&G3HQ-I z`WFVYR#oNR$SgQ>MiAXXUZu>1KFYUWYklz71AVO$jEfy6&Vr0b;2~O4Y|$m) zekNtM-kL>5FQd56Jld|z|gMPH(r{dZ?4v>S3_Hy42z{L zRxMwSZJw|x`O!EAfivFSGm77O`>lkO)N}lINy`-#iRFPNUIjh$4SBP|1}9p<&q4o3 zebDXnQlX53?6{mx>R8&=NbJi~4%z?bZ9EgK2i$Pjrw+NzEF;MvGE-YnpHqfFMiGE& zZS73KnC7ltf7UT@{hRPH<%@j$^l8WNLj>Px8RilTQ&To8Z7Ii2YB~oS*NtBVG!t|! z@%;mA1cwfc>L6zESK*=s$s{wf`&n&mC$Z{AuxS}Q@`6xW3%S1LjZlWR)nwwp>T`L; ziH9YM9>U6X4n;$h(d1cF5d1)rESR8^fhUockC|ofx{Vq7R`yUI{?y*CV6aaZiHB;s z89-LBq!75i17!@bR%QBVD=Qw^T+a#HsyoPcsQa^*5=a3&SpFJol13%DH$7cvOuV~q zx@{cf0KwW5sBoM5Fg+ajDCVH`_b4CbmV*r|7Yo=}cPa}Yp`3Sriu^|xD0F0$tE3=1 z9XJE5OyYR}<>SFZ?6rVAP_+(g3vBinL7|I1#+n<-)7cT9ClKQ%NAjBlI!#BeP+0fi zl66tG0UE%jNu67CuSXBX;K>f-Ju*iuK$IvvYrN*__YeQ!$BIaE(0n3$RWB44BsU@o zO*|^=00J}@`bZ|Th;!s&IbksY5ehfxSOZoRQOEv&*3{rM=ry6ZWAcSUE^XUZO$Et< zhx_MxOwe;F}!)p(2^EBLifzx*z@(o6YJ{sV1YWo zTvn&$7!0K;$IkED*H3k*OD~8CmEn~QVQj@%M&58<^>8OmFWcvq0dp{|!4JEGqJwSN$0VhLxqItpVJF<$=pL!po!&BlE|HBWl+7>s{nm zg6&l?KC^=WhE>a(JIMm@iji-ZJ+|GtUH;Q^NZ7BTO40zj z50HRx3h{n;Q=r;gfIG(nFkX zklG>Tq$-4n6mJ>5&dt@;_Ke#oEk~W$wcUmDHXT2G8l?gra@X$-J2aZ2nTnxc>E^}P zB}E2;e(GAr-e@=%qFh1A5pCPUuHv0Z7crjNg;EIJq{-MYN@kQJ4;~brPCU$m;5SN1 zNx6@Dr#d~)pGFlS!5s~;y0a`u=ber@*7kM6Ntg7mH3uWA5UF({#o=E-=VWhuz}TP7tsie zV11UaFnW9qgdGA6mWuwSE4~?at8ig+N6MvTHBMtybw<%Og@tn6^QX7j(ya1m2)kj2 zT=woyO%=2F=@Th57hYZ=^XA13@Ke8YK6p(a5Ybt@#LLP=OhnHwt!*B zR<(=)2L%&~GIj~?8B!f4hsbEn-?j`F)K9X+PMqu3CzfBIPX zXNB248$oAru-K*GCGA$sn3C_P@$_S?z2VrgFDojJ7d;6a36(mvGRUEKmMAUVph36q z-8-FK8I4CTfEvGjr}d{#6EKp;QiY?}uo!Gk&DV!?d@^CKwj#JDax(_F?+^5`Wqv+k zLfqA>W1mR8_%GyiW8_J6Nl;ad)lQlA>v`5_=+IA4^IpAr#Wb?V0EtLbZ4|#Hz!YabY!ISg~&$Un=vTY z*?{mA${Dyi!(A-dQ9LedZ|`Y?)3D9E@p9hDz%cjY{qLLm4px$;M)c@>FhVrENYl@n zn|pf3k3)g~uexjhhceN_gEremMJi`ZF%F9gZH*0EYGy<(BjgsH)kUpah^CuqXvrl+ z?uKe2w~>(;mvZYyZFHGTlEQ4xtU+rnN)~gTIX|5KhV%a9hxyFwopzFHY*mzG#Im{pjzsl4olnrr_rK9}oKl>@F!m)3GBGdO!JeQS5q z#jeb#MsZ+%-B~e^XURUR=GkE1pzM zk?iN&J3dYqTukQ?yZ#gj6p2wuX5kcDv7Jl1dc;wWu3l1cYxnws!3{;;bG+Lgfswp5 z+jO1}ioJ>ww-vMNy=xR7+Xw(S8unjO%5O>1tTjHoGvP_>(rdz@^4wEQhUZkKbLFPo z7SuN{yFWol@YI&LVcrIe;UTu@Q>9mimHq3zw_35Pju zLQ{!tx~S2y^DhNS3-X-NgM^_f1~`nMXrN<|2V%{NdH%~>%kR0S81cj-OydmF0E}ak zAA7SWQ)a66-e%>@?DN-y1;!JZ<}epxZ;x8G=1P#Xa!(9OSt|KLk4ML@64kz#G@8?| zKiuEnk`r#%sTdbvAeG(O$YPAvEHr0yWCR(NOyq6pIZ-&LJT=k6;{~9-L?wr6#JBIP z{`=(caJ0f!Gloa#N4%Okh`i#%d{b&Q$0EJq{ZQ?eOo61lklc%1XCuJs^IGer+d;RJa@&fU52|aZx?z6W?ZUnO!NA z#0i2UyDcg>2cqq(^!366zYZcw zJUVn+f1rT%7%)e(QX-UGPvMvFf96 zl1BWTm2z@n8J}b1yeHQomT+|A1N3+sO-$s2SION2oo*Xco_+~jSam$azsCMmypL%_ z6=PJERZjSW4BlfK=8`}ysD8=MR=yJ6pQsBQNU>AYR4#5834gZij9<+O?!0i;XAP)0 zbcaJj@lH#iVaga&mfl4}0zV)$0DS;Qv3=C(-4s@Z;_Hn}dK_}EK_uLUZxq8*{m^=W z?4DUgRhYA2{Ivl4C__`!dIzg>HJk%|hqdbS(|<>%Yk+h4x( z;O*Nx*V|OS*=0{SlrnM`3TAM!?kn?c$5R$AGH=V=ogXc}nKWFGrIbJbX)hlsB1#&P zZLdJuC=4!eyY<2_1JR0>CN(Lx^`MEZ&aNCH=lHQXbRZZnr?mHiU4&H~F+lvYkG5J` z&I4EhXW%G~08@f-I|p|U)OT@laVREFw(70;7K_?2A#ZAIlm{&a zs@cl}GgBaB^aac2d&S?FxJl8V4Q)QgtWX|7#Xm6d-16@r;KuqjU5z0(xPA*Ztx3JQ zqD^m#Evtxnh5*fhum<2~;|&`glzr&`S7oI6t<~VQ5PH8B<7en#!IA8~x3eGypAg!3 zI03L)LCBrvrYzPStp$wf?Z+jekAh&J`qnM&XD3miAbtdc zhp-ti@wP4}F1DXEjohd_ox_Jn<{L6E#GedNV_FW1PjP0`Z>BWn`drlxxUM;k3K#|PchcxTX=8_<*gL@FqSwgn^!1??$H+XC0{2@$N!&JLs0dh(yv+%3$(eSb4gg6p*MJAyMJrF1AV1aNbyi#? za3e1YwlqgOjOuX5!C%5$)bubyJ#zcJ!m`k&F#6{NxLge==Z8OSnPSWTw4|1L%y-qi zCJpbsTqe;gnAZ67d1#bETGmCDu-N1Ij$KIe zXM9^QZ>lt&y-35B`E>RMb=V&*ld=91KgLbt}q&)hLFF=M%RCitx; zs}5tW%O%o6;gm>7igyspe}CZ*AVu7O-#k_X*>7L{rQg>S>*{9~<}mryPeqbK@vEPi zyt-jmKjmEiP$0w4#FH=5SC`Mf|NpxK*wR0Js&{&@zB-sc`Tbq}K(5;5(QNS8n7Y$_ zVfiBcc6=@yLm8PMRpNl;%*KERm=B*le)1$`g!?uI#=-u6wbOo&1&lXI{!NEaKpSw`` z>)W+NnjzDJv2yDtPoC&#YnzW(=)HZrb$&RRk)A&A`+9pk&*`6#CkqP;#*>aQ4Gj&n z%6SgX&P`2CljYVK2gJ8n??r)ot}x!Y6Ts_wa^uDgArX-uM!o4d=XD=Z@87>a>9QLr zM*fw@`G-G`98N@7*elXUH<5B@mzOyWyAnM-Jj%+R-??+AVjIja8A<23Gv}9^yB?+G zw!FMd9U*~9`26SWwnz|R^Yr@`rBk>r)VmL-Ha6lTB1)_mI|w+;#nO5f+7ZDInUc*$ zf0(kL!mVs?Zzs6y_$4KglBQ;6E;aaJ8+69EcXa$HEhS+y4zI1{L$n9^`Q5&Ix61vp zMu^PP+M0mRt*WTV8W)rF`Sa%-9ETYRZmJbFMsjj;lQpj8W3|?IzbQJ+{Rs)9l%u>>;ggG<35WapX_F&V{#>pn#r%(#dNVLdQ_naP ze-UI?S69cxym4|mX-9B8pjU0sFFM^{U7VWw?tHibCpkGi?G47df8X-r?3hXCH>+`< z7(XF2XJxSwr{ zii!Pc4x*neEAxc>^4hsf`avDXJ_ADWyC+XOqPsd=;-LMw6wHdXyde+`{e0a zr>y1rG^|-&L*q8-%a<=HWn!N@?PX?UEOMtrh>^oz;Pc~^_L%7CJeD&;rlvVzVc4!W zU7ACmW-I5z`HE6fW+UmfomP<*62=3@}!1Zmz|6#ePQ`ZjfR7S2j*g zPDnQ_Y;5O{(F{6bmlqcebabqbcl6Q}Vxpor9Jb!l(q`Yrrf7?1N^!rufFva)F7Bx2 zOmy)Gd15qzR=KUcox^m9|I+F5!u7#}C`gVOsi}YFci=k@@$reDzxU9@$HLM!GAcLf zrErqw=C16|R_+Z@P*6}UHRmzvNu8OQ@x>$=85u#jaU+~Z;^j+Eb%y+{m5Co_2tU8( zA7-OCXu{t8OApxS+1Uqrd#w-FhWGNp*L(v5+smyNCmf#JZ%&jH6uhZ%DOdP*7X#x* zaq(D{BTF?E9bJy)>~9FHaEY`%wb=apd@=Im$s3A{=y&h-4Gxm%gFT>(Ksh#b*d4>c=ns5Sfp{QVWS-%m_TK%_Ee zV-WK=+5G0q3<-v;&c6S2;0`6d9YE{@Qms!p(nKfz`@IQ7qJK81~o!pg0 zmK&t(o+*y|n?K*(d`weEbBl%fn#1P>p+aNJ3yLEUL0ala?vbg(9_Rbp>z zi;jkd&!Yc1De0YqLzy}Q39rlZ;HD>DLqkJ%A2I8$kCg2F$cn-exN)tnD@kzq5H&{1 z?&8c56%`d+t*=j!E7)i-Z+v6CvbU#a!tThz1eNVq#A75M+tq>gv9T9aRANbTklG>N zjtmXitPO1k(nh)KxS#G(G;aY6-`yVvD?GwTwmyy8wkv%`J9Eui?&r2|-@X+RYVbh5 z-V%xb@Zr|6%ZULyqJ7>9)@b>`tSE`=-r4akxBUhVE-n#|Q(u37e^Zn1y_uz@=Wq~6 zt!yR(ZG(gMbsug*>A@vdBn#2i*H=|jLwx3ZqzVrTHD zPjXD3Dy8)G7a$N~V`HBa%GlW0sH%Pq4wiLra1au@!K2dk^JiiX3l(X@z`&0++$<+* z9{lmPwj8>ny}doiBE_(5@+l(h?CgOA9GYeClZ43b2Q*r6pJlzEmlMo{`qDNrQ3FM? zuCDI(?b}#>a}ePlQP7RY%C-rV87_aTqC-{&1J}457kYYnhJ=JDd~56IV4$MPZ1yR! z$)dVk8WJP}pW>u7~6%Imm8&c|2lf+@+4 za6MRiV6$uFm_P6yw`!^Opoh>(2ENbj87@?p`c98$hUsd-#{yyh^PlamwJ%58L- zo142f_nare!GX4q0{P+Zc`HiU}L#t_7C(OSVo#QTwY_ z+N~EEbaupXM}>uj#m2hque^q&ZZDGQR6p|k^$VxHB_qzkd@YOar)}^H-2rIP8z~JBqw{8gf+)ZMop&E4KxhVgXz));H(f_gy8GrW~li}Zz zxk_VWV`l>2;nvnt-#2X6++)a}Z{EDwbiwH-m{CNQI|MMAp-6*C!aD{AER;Bd>ve-T z5Dg|4PwN4bY1O*LHEO?6RgIkd(ykwj&nCeT)fvmV3kcGx{A{^5146H@xw)XA035t2 zm?TP!+|SQ%ccJ~&I3@y*fPerCtLNJ*N)i&1QTL(IQB2|&&)L}zAa#NVnL%y?WCjkY z0dWXP6HXp!mgi)2)0EvAN~2Y|3*>VE+i2cow6v>h!$oSP=8zWu8%KXF0!X07^;8ou z6)UUF)KAZdQ7OZ?QKohgWsoZX4cJH znVFf9yl}XOg+&(CDkvb}b~NpqW#g~#7m3;C!;))M*f6oP6GJmHoOZWBr3(B)R#p~V z15SM9u;=@OfEO~q=jP{cLJ&h*ud1%TdCfB;!{GhQ?lPe-Rn zm)kZv>I^^zmhj@@!i9J8*RPqPPF_iAX}zLhFbfSYz1$NiOd3=VEGUBog@wjFsp3LH zLT_~DAAP`QGlot{-K`#ApQE$$?y(Doub}K*94xGvsi~j(MVy2|2*haVq?;PMU>7Wf zi;K$=@p*cBIy7U2rKK5^`*J*jU;NP{B<8_kd0xC2O8d%T!K?H8E-bUt2h4uSNe7`Q zMlC3O3*p*D!(<^#r<=8m3=B2Shj}R}PXZc~AH+mQ(`i%`1M)XpFWL3I)^+RV&70uP zYmjV?IbD}H%j5an-5~h@*sXCpS8XKr4+wZdMh4~LU}wIyP{dnc8}dDLIt{;nXK}ne zNpo84h$}32%c?16_7=ELL_`E>0)YRoU%v_uN{QV16Yw&LBk?V+qaoo7(Bbhp?R{#U zuc)kyLcfzHo~BUod2wY$b)RgBn*-pC4e{E-f|BE(@|Cm*d7OPX5mdtvFL8i$+gGeok&QF+pTU0zWUhk(Gu&~T{CQfG`8hxNvP#{@1pSL1>I zuk(cB*CHanp@spf;3hye#=JV3+0&@j*_j!ISFc)2#~_~p3W44aN0wg zp&kQ*9dI?3L&ZUBgkB*hHy3L8YmNbItMV7r)Z<si>(%mAr5{dPYs%4Ct=C9laDI zi^oA9c_j*Z^`q0%&5;t5mT+oKO-<-Tr9>6w<>kAq3Ob-S51|pxan@E=Fi45USmA^I3fd=_gxtJ_9M!tNw^wDqN! z*RRY(7@1m{niE&(WTihF=0yRGGcfLeQpWhEFx6@nYM9y&(`K8hyY;@=Tpp%aiNvt* z%agU2P~a`b%0eO|l@t{l=8eY?9tjBv(DPF!xXi4sI?w(_m!VGoc!J4};L&dQ1ReTk zVjfj3t;>V;QFMIPw_KUEaHCKw0H~NvR1J@h$1T54RC-82KmsX0GxO6uEPVWvR>oSG zAB~NVS6k^o;fukDe0TKzH3#d4&^4rz74Sr8eV*HI#6lNcVY^C5L=+R0Nd}o84%+=X z^5sXA^R0SJ>94HsxHA1;ym-N&UiN;u=P7T(By?$zQ=SoZPX-Zk7S@DAnDrL$o4qR< z#>2zg>x6q$XHX``x-IeAu&+&=VC62adjF$Hg>SlCC`g&y`I^;W=-F)tFjxYg`$asD zv(Mc}zii|#U&@CIkukBdDpKLVQac0ChBJ8ykoH=h`zq3;aqH;m>PkgFd-u}=86qWX z_MuE17lduj-kyzrvJhE!FyF;cifAzMb(9y*2W<@vUKkdzFc4_jvpVN&Bkc~Ih)eVn~WQWPr%{zF8sx^1y@~7%?i(pvO#|?Ge z$jAt)5(hiGK3611ShFsm5E!pOr;5)#{odT%TtdP>A_A972brJezq46cLB74~S6No+ zXS8`{u=zMykpVV3!Y)1e^W9(CAwK9aL4s-FIAl1Xh0B)y{(p)L?)oYs3*Rq@eu!^8 zkig9t{P5wuc0}BAd$`2vvcdc?#+tWW7!i4z^v8L& zFO5}yZSOqgwD!6CkUu9U8Y3-M%l+wiB{l~~`fMitx9}V_R*^-iI9X2$2hX0O{)s7XEBvtISxdyh-apAr+}6X~j}i?egO zl)R5{lF%$Xft5rs-SBZ7R>v09qoKB;rKj{*B=zV3Z|HEkeMEY8$fPCM< zdVp-~kc7OVw=g<^Dx(Izp}}H!NJyb!cl6j;4vE{)>fGF$9|A95ZiGI?PT)l+;kN4t zd9qqq)H`uNMToK3%IN;+`Bu@$3!JNq@ifJnBJ%fdC@+5_Ba_?Kp4(cAh>pH<qoL-zNQER!1%Rkw$x-Wcz5y`Hy}U{lVqaIep5n1qN=9myX|U69G9yc z9?dJo8&Zsc0nR%!!l^7r3(qp?)RYvNY@Z)iwkp+F%^xKTCmbE`pKVmOuTLDEpaw^=~hx|ug6t^g@Iw7t(9)`G< z+M_4?MU0v+UT8O5Mq{kEOGyh$MiQF$Wxi1vib!xD2)|7a4sm*zA1)Cvki*$qRW7Qe zG*abAf_md@W@SZr_XQmzqd}wpw}Jw|gY$=QsrLi`%pC8c4&=nZ1Z!=xW|Z#ULn<8q zrKQt@1A5WGlaW7vyzXJ)*~N4YlCUg{rc1|VpLb!2yJ>1-2vZw7-1_-x^#1*K!6dX1 z66^@G$M?!cMo)`P#ob>>ip%mjud9YAwrCgZm5os-DXpuO7{ApOx)su*n~|?6-P*FU zvbwsmbtuYKuI_d)!Y1%1F;63gHwOzdo|ngQUgE4Z>g1Yd0%8>0MJh0`HBtcw*I|3+ zcfD^|PtQnM-cQitY=O)hRF?i@B&yZWFqOGoS$Oz zCKNmy8z04Z_-tdUj*U{*-2VOhS{v%F(Mpra8l8uCmTH&QyngE!jTSGLTWHmnl~I01 zN%QA_+m-D7pjTcoJQVA4s?OH^asrHUn{;6z()Hx?NU@QoRGTYbEiv2Jajx1T32zmz z+u4UgK0M$01dOFYi<~0s)mIsIBBGN~5_jx3HCyIa?h7O*{~`}POA+M& zYA5dvuiI_c3L>%Aqbaut#v6;*AHcM4VqJLeV`heo*2@%Ny)BlZG- z_ex&=keTJx!G=c1;_B!K*Zu~Ne>Q!oYtA7!3jtOk+2h1-fq}$Pr(Aq|^t9Ol!JP-2 zwHC%Y*kNCu8MNbHcXh>n^5l)BrM7Vv7%v^Xz-B}JaY)W^>E=Ma?{#i_-tVR{NuJ1Y z+U8tVLf;gb2Z#w=}bMc}#V=_;* zf1=go>(0upvh(_)9M|?F&etzYC;%vl+XZx!~gE?>b?9B~GNNh>M80w?V zyPT{Sz8G}=DYI-CieE?G7Odv}RJ_hk-#z|dIlIu){{%fe zVqb!cT29iS-RbGmrwojYqs`x558FC&a~lY#`1vuhjTH$bl{p`V${CLRFiY53C&b7Q z^hKt_TfI2X78VW#CoeCLxp_06gs+C+z9kFUjJ||KtfDFouI=XbEH`9u(O~nFO%_ZN%;|bE zP~(bnt?m%Po~EzcMS!-ypFdgazP%uw9z4Yd!(02Usgdib>B0E6n_JT#TcZ-j%eGbd zJv{lJ8EwyGSX%BGcVc5xr|o2iJZVD5@2j8W`vb_QugN3uYMder_4SR6RSPJyBO-F;3}eIhU)Yghu+DhG?%-x#oB)y~SrW~0vAGp_*8;?X^{-I`j7q(2u4iVcZ9dqJ}@(Ua!cc97!zb@u&p!3x_^$C-xu=;*2s zAJ8Ou)QTVWm6-6$$&Ix}(SK!s>UC6J**d?|UVAyw-r1QtCakO9n31~1WtpsztyIK! z+QzSyU~XeFah74!E7BQP$xXGiXw(~|QL%U07;qD-c_T5=dN3bb01DIY(@?%VtzcPk zqyFT^FB{_|uw%K~;J0+-;L1BW*uEZyeBCtnl32=-n@oFhxtB3Cto?H!-`eo*M+S{D zb#q12wF1c~H1g2u3|UlPAN1@)qcrUwM5|`mTsmJuhC0!gW#R zIbmK+%`;L`E{X+Yji{OJBbS=QG8Mbk0Y?G?-*jmWNJ}it3TSs4iHX-|W|9@9)Nk&4 z7RWuHPYEXe-4J{G_B*afcW+VQYAM;vM9Bvg0R}Pb8ygJmUp4Mvy2mA4(lIenkiMh| z6Mo@rw>w>rz$6iQ;Y<M~WM|dkM##5U&2!DE2A!cKCwruHO11}``qsZc$E0aXapWdG zhMlH)fJk27F^E)W*T)-w{YvKwRyKi(I$dvqNutSZHTM}(SEjv?qwCMbJJ2*rDJc$+ zMc~okpt-ufLqBYrh5h2Y)>b`fJ^lvyzXUAhLmGyL_Tsp^duIb5GPyQ~`X#teOtiG* zz0StCj`DeTX9cF&%^fnqpURkA90GP$5eT&hc>X32ISp}OiiAUW#>!xRHdXiA#|Jl3 zq@f|U#;L?FO^*fPKKa!Npv~`bSIM_;H|^H%-uS?Ud5n&wpa8x3@na(j5fRAM^(o0a z4Kp{xD2CstxtH3lpKR9bTH7-^*1PZMcI_<}H3gpPPVo!;Ir)gnX?g(VcA17wSUxm4 zRC%MftZW_`SqBwEom~edp(%yRxF3>95aA;TF5iLNMcLTr^NR^l?a|%!lL<*FgA#uz zrg>nea3JR$7(JwUqT6xN;0BP+WjTZS zHLM^4V}7E-WUy1v*KK<_WAa_JFk3W2ZFzaSrzf;k6)LE1Aq-we@i*Sc2E(TI!Pa!( z+}s1)1DNZ+k^3@QRZi(!FHbeWv^LUPbY9~+eg8g3eSQ8!ndJe(f;XDYL~t-qkdrX4 z)PB&SRzoy+Jjt@$2@fyu%FG`=udQL$9*YFGwzqf6wsvgvRqTIe(plml@lTF~jpXCQ zNxjBK@qA4`DQV@lSR;BYy=pgU3&|)-KDFYdhWXZ%(|w&2ISHI*T~oY(&e_+RYOVDzN-sY>IW?G9}Xx zU=Y8&qVAlT=g*&Yb=5x3`bEP;Tz8+la!vJpi!(PjYdM)+SkO=4C3w zd$Xoy+{LvL=7#eK3zUf(*CdNcCcv{0gOEn-?C5E7WaV*u>t9pNz2+4BsE@U>>fVN z)yeL_Bfo~Gmf5$xBe$;|CktbkeCb1C;^kS3KDO(5=$K^>IkPz-b#;q;r7klyPu*Ox zQ7a+g*e%i&QTJ+_<+<}yWw*=ojjviLu8hzY0s7M%C=G630HA`8XXiLxan=5f{8%S? zGMG=Fnve6s^wUwUtK;QI3NKhcSFS{9gl7BK^1ieC<6~#O=!im#$$WK&&0g6> zR`a!^8R5AgBA7j!%OHN_(DaJ?Hy#^wZWxX9!Ip}e*5no-o0ynyus*}4b^w0!G%*YP!a#{(NsS!8a~emCf+2xy7V{wegA^F3QOX z$^ORrM3v*bFdbfYb<|+r{U?eR7xPUd!Lclhf4uKVh)^^hF)pS{@0X1^%f{c`7|1=V z)s}ENDe}7EOCgP~^zMMlayZ&Za9>zme)AQvsa`cy zvt8@$h)0U2Z&9|5t9ZW<3SV>cT*5Kgr;z*dRDVQCLKtfvn~f+IMd`A^M*l`n8b4#c z%=t-Rni`iqvCDjmAA+OvCTfCdxf?hPz4O!b~>?? zf{E*)F%r}GeIOEX{o;7>BQNjxK;HSm#yH>d?_9M9SOQhml@}+gw*~7_Z124`Hy@a3 zOo%jj3x4i6kb_?DE8E^CHT?Zu$4WoTkf|NS8KvxnIDLsGhA)fxm^uqfE01$z98aaM zd2xyDS8jWgU}BQjPpea?gjI&-*-UDbsOHi*IkI16VDg?U(F%MD2sr%ZT{)18U~{YD zBTco@tvL22aT5Q_hKNgX!mC~%TD&)w(oOyS9DgWYuI?|rOjY=`7W+dFgf{#3sd{8k4ir>b}L6z*GfM-2_pgZVJ5r86^&YZ=t$gt0RwlFn}z7X3Dk zy-pDk3R)$?&K3ztaX(syNZOqYVcW-TKzQmyw4>^G^Q}Tg;n4nk z-?R`&vdoYnVKrN^S{sUlW(FX+VSkp+F|N9XE8o%Evv{7?V3J8Ly_U`rT*7B{08b83 z)_R{`b zq*POq!sUfmJ!ysv6Opfkn_ENu$F-q48$uwCiSk~Q%^4LJYIB8Kjr;&mhh4g2@Yyyi z^OMbr(AA(4V>8J>c4k@pcaRVV3ldFdoc$$$mTWlho4S6kBX= zBr;$Ue;HHnDQD@m^vHv=?}za7OG!5`w1cTb<;21z_HV?*Nk1pV!cOtgc%7IpTQ=tY zF}zh=CJ5i$kUAnXj@wVwoGC>ve9fSrhHXunf$`XFH4;C0=KY_I@l=@&jyx0zz2>5f zj3ygGIqTV`s48;e7nzl#9RlYb!>!0Rli}2HaMsi z75hQiXzZMNa%JCSX9d^NPM<5tDO-)hY97tf@*P)@JI;f!#ZE~#!-1T+CnY|g{ArHW zUlSZ6LRxQ^;z{Vs%j+&kwP|W110$;EEipgg}KPt#oG`1Bh&>D-2f)kT%LyY?#v^*>}nF=6#znLaM7tla#(jMC+* z8YP_!i>nW9!`hm=d;iwUPi(1*p=P5JZbKCjiQHOo{8wxL_vkSE&+PwUb}3UCks!-% zru{r#)pix{e!y+lRQpY4BI#<_4B|gD(qN~Knw8-2IQgSH*Oe41Yoy1ZL6)z@@<<_f zqyl)2Px)|gBhK!Y09o5(qqo8ot3({hmdm|nCY)cL;r3l!x_H&sib6redJ&pa`tmr( z=k{&Us;F@CCEl3NTMkzqD2KQqmk~%H?snm>+AtF;5(gAQ_X*x1Q=n!^{eH#w7;&S^ zb>uZdk><8=5?nvU@bKJ9KS!~sXxNYn%FH)2T!qCmm$-HW+ijR@j%R2LlaH6*f$P|Z z4V29&Y=p)RbzuGRsj@#AGO`qEhWYZcMfAJ<6Wh?3W~mqZSHsZ1Uvj-J2&|btoe@^D zkS{*y(01wmMC!>Sis1}nHJ8$5-r4P}VE63sylzqEN8>AqL99y=?{xj|edqnX?-F?$ zKku8cMUk2j7DyneAZ~BJvzkv%?Kf5>j?a2zKk|6|yAd`uUCt0y$kNegF?=MFOJth_ zJH0TVHD#g)2m@!VD$`6&13^y3910tb3&MVW z^IPS$;kRaE+wb(RLKHcxI9{wv-F!8W8MXa&zk(lcH*{M}kz?Q)mcZerCzscuDJ+cb zFu8G z$i98S-Ia3KRodRRBj8{rLS4e&1EX6uHa?v!p+X3mVIlEXUOA)Xzc@om)VT8FvKj4P z`X;@BXiR9R@BzclM<_^H!j=6@_hH=H?2D3-)v7@sBwO+S`y(|5i;H13 zu70(ANmR*-7w6S$z8n{-5w=-nemnH`==866yA_?YRI?qwFNmh~bLXdF68z7#+ps{6 zxs@PmKCVrNRHB>qwMquvK3ndY`z}+Ukl#Sl&bpn_V8n_6SOV z_Y7Lqn>Wan4A|PPuIZSkuFoz`ZX$UcCL>^}2oejr><{9eO_C#d*mbuvjXx(qHe__c zzk$@nP!S_N(_xA#L{LNY*FhwDqli@V}915t({ zs&#TW^LWn65q9lCk#PJQ7+aS>|0^{g4{g?M^F|rDk%01_OBu0Bqhn)(kzU>T>7lHQ zjM8}KF>KMUt*nf|W~^`k9yJbH#WoaF*OR?r;JwCjT2n|xe@RH_w24l<+4bt?zw7*l zTO#f)P@va}XJWDnB!W!yKD7TQp8~c5fe7X5>KaVU1C-6^@NgSom!{X>p!b0K4+b4J zRoFElASERQS|jWuGf37>3}oUykBHxf%NG?9v0EDoX`S~MBIDq=Vr4wTAu`0ybvVC< z#Q$hK2g%UQ> z^ehQk*$k=`I6A0EW;5keYN+~Qv)xaqr_^E+S~3HfVS&m8$n1~M(2GCgRf8Av8$g(|v!eRe7nGJ7aG`Zk;7@=n zAklQSADZ^D^WXdyUghvIyd{*;|KzaJpJbwx$T_bWjhZ@DjU)Y15)@7?HY|$*X4e(P z#2(YDVbRk5(vEN`7`}ANKl_MRVqIQRcFD!d|M>zHsf(;4#`@c##33*duh=y|#_LY4 zEiL6|6Fk}}^!3TvUTd7f4s_<=RnTunY<&9ksoocJb$PkF*K(D;TwQa=B1t?A#5$nN zN&0OX+DL|zmKO(jvdi85st|fT-^|aQCrq-Jn&l*g4Uexq?b-w)(;jG73yPE(0$~o@-!xY_1SwI33n8stBkn+O74%4bVjM-{ z>dPp&Ds=x|i>zAbt*xzr%Ao5>h!G(MCEw)e*jQo?>}wny9RWcOI4u?B<*z5ifwu(A zVsrC6V68?(yw+&MXnR{Ef2AaoBgpNf0Al17Ed}%%g?Ki zh#0HoOasuxz<9jw7cRhG2DXl+eeL4<`X3v^#H6LsT-t~m8U$B&DYIH6KB=HrdjJX^ z$ai3>C@~=~*0-#zU2-;9epk{wetMf}342Ew85!X8;sm6@=qV=XCM%8xLTC{3EK*5V z33!n9?Hkw9LZv^&F01ehM)Y4TcjAH#Jwi%Ww$}NOA=u!pzEA7emcHKkzqg7jCsP$^ zG)jyCR2uiD2YP!8OG&jsTmpr0Z4Ey_D1DC$_^iN0A08goE;s@m0B~l32@M(tP(V?7 ziIIoGjwG!3_wUbu>Il3rSXx)tbI=m88+y1Xa&(tm`5HLLo%Ifi+oV8r1@=^Av+kar zd5G8*?R@GjDsk{DuI*H9ke~nySw2!JIW#N`gg_wE8ps3Qz>1=P7|;a4hd@-eRBcA1 zXJ+O){p+T^y?r_+hVjk+7=3)0JfU+ENNvF0fm#!fK$sXCudJ*9@%jCH%j6-@`<^4G zP5eLw@d>b?VMjIE=c>O07qMp-2PWF??k?@*2WJSPzs!+DkqUM+Uy3N~u{)>}C@eR? zmVe_aQ~JaIiZUzCLh--E@2kLq+@rqiQwsYEuwa2UMIV$2lq=w{Kso$spXJz~U7*e& z3*1+T;p3yDD@Le&0v+Dp>tFF4A@39Y?~5d;>fm$6rtJUTyn1aMmWcoFRdUhaSJ(dY z3f{}J`Dpwv@~;X!lujTvL_6zde9?8*4m#D5U{lX=Meb0Bc&F6z^~dl{4fbg6R2jOU1EhlfIBhcKS4sO z;vj0Hh>+-`m?kQ&V2_E6{NZ|P2b6rgfV2wvUJx^kRXf`Q2Mj8iULce)Zo4&=LfvMN z5-8=WmVh$P%j(JA!kb9&XBhW&P%&fACwx zEF>yd=5X(o>6it`WvKa2<(Xk4vR4#UueElL37X=#R#H5(32>Y%d07f3w(k+4kSyv^{>^{=dcDtra!W?X?tHH zBmH#lsx!svyw*&cylqhJS;Tn4x#+2?)h)bG;>49E!rZFJ9 zCsY0_tC7`wOGL{$puJ6C*;`pzfuim6=g-l%&_S0h3*V9gYFKJoi8v7j4w_oAVVw;S zuV9^?r$dxY$AQ~j6+2FwXIEXr#O*8iiDcVdM@DQM#@3zq@;VO>PkKtGZHYW07TAH{ ze|=T297ur1-zaSZ4j+$^u2I5@)&%_7U%v#-Py3$%$eDlt9G@+dosLdw{WK@g)C$sg zzE&-RJF2mUuzWa>4>vVaNc|;YiIlHmY9;<}_-U8{#r`dqSA`s0*&8|~fVZ%CjBK0A zyX55LAS>wI4K(?*v}9;tV33{yp_5_reG;N=umKpP#wmE2M$e$FLE_i=doP6)AU3P7 zua5~z9(acXq3Thw^!7exN%Pleb~F55(msC($Sd*ECAF9Y`CK#hI|O??a0yL`{F8yx z3Q}PsNQ75JaY|uf;qLBkm;yo_QBqQ}eaH((Tj*&YAunt;4vW<0LSus+JOGU#09ic= zK03;4jSTGk^CwaHPkTENhk2|Rxs{F0THm)`fPEk)JLZ8siq6T&N#JFJv;$bbAllJh zk^{@L27x`xdNi;B?qU50y4>3@Dkbej&=Jz97H4+ofI+&{xuT_KBKpxkq%|s-eJ7rZ4H}d1h z53hTk9?{YF4*1d>!CLUe-js-Pi<3=DJ3GzqZ;?sKpFNXPP9TB%UFohXz5~|lT3^P3 z_>!Uk&gsKmaI!=Ot|1F7cxMRY(NMvngOZiVDJVec1B9gjq2z`JOJJ8si2~k9ykqlh z{TEg2*R7qMnI&zb!TNd~*aZZ&DG&pJ?Tuhx2NpL3{!Q%`ldBrj1Lst(Fu4*IOZg_c zfnWq!|9Z6;B)n&BkMjHaF4uv@JzS{w*$0Yc;yx^VL&V0{GRIvC-+GWhqxX9D<)NTg zw9ZQtzi{|z^B63wDvNpw+5HVRs9_*Zbh-Rho2K7$67rO*cl`GQ0S=kc0}bKSuc9%M z7{ti$KYHZH<8;JCbPKL&pck$w<-IY;42o3fh!B)ZpqmDj%W7BBM@R#~O_f&j66#~J zkl!H2>D4Id=;(NPdAYgO=Vfsg-2UlJWd|TU1&F2znI}rS!jYy^PCk{`^-(<2~83DWZ&;k<;^47+1 zk#9|iy_MAt$i_JdJHW2sUJ|#O|NMyt04LQp8HV=1(SQi%RdBrfkB{W2mxnIj>+9_9 z-Uib`m4aNw9Fqg$N)S*l&F@=eyu6@!R~-|~6b2fA!VN*)VuMqHVXt(Be;*J@Rmvf9{Ge-FnyY?K z^R`Ib=z#=$C6oGZSB!uVISKhTbEkw8PqVKH&FZ2zDtMDSXkK4{ zEPm(4HQNp4Cyfma--k^_MMcxE9}hy-g8ro#cv zF&tqK?ps@1!xxl+pRPRKum3+EZ_XN|D7B!htJ7`9+Ucxf%4$P!0X~%mrpzHpmD6uigcs%^;!(C!226d|8 z>r3n~?)huKHi~SwG(;m=ipYH)9)UsXGzBaiAs^uaRnH(Z2Ymcmi_0^t3cE9#9&!wR=F`pr)qgv<#vL z28{}G*aoAE1nnP`B^OuM<$}3AA6P0Naf62@4@R}lN5PcV3t+0K#{C+mk)1%uN}#K2 zYio;T((x%RJp}Ey$!wAd?tgIG$KkmO+oxKuZKkgsFQssNu4Q^gB~Ha{N8Xzrva}Rv zy^u-&0t8%;F`!a_G#RwmaCUX|7tmNdV$p}E20%OhR5EgDbrm*@L114C;!9XcXi3(G zizut#si>$xJ!Ur_qrySEP0Ac&+8NIS#H`4|=ACZP;8hd=qaQ9Xm5K(?FU&63iA#U{ z2RDMnYND(cKdGE;<~uogwLXPC5yo2bC!$zR1C9OJ{R#F*Cnp<21%i+7Re=;3)T#h4 z;BgjLSKwU$_TuLx6;GkL%PYW4@ z&6fa$0q8g&9hZ@kvU&ghv6q9RWApqD+}4$d8^j8>50)zD78al*xBwXoEEs4Jt^`~? zX?GSAw&lP;BM?+D*1=~tJp$p4fu7#{;v(SE@XkfxgMm0Hf!m$|*nQ+!wt(Z{pa4Eg z@aYkOf8E<@X)1anOYOTyY6iBa$6XSc4<97lG;6A4UNsv(V`e@9Nk0jno0NT2A0fzj zVBeet(QapDB_Sgd&#c!1&pucd1{@38CEoW_9%*S$ed}WYoXGN>gHD<0o1%opQ9H*Z zP(UjyDkAL^Rg_UV&_w^X7aA+JW`(ZKg;q~vUc`jkz0?H)x%u0-kA>woHZ~%nK-W44 z$ra`Vdi6H9NC8&>mwO*pr_yFQIbZ9+Y&)nFP5{v!B48#3dW)LcT6b?--pjLHC^y}W zV&4=ipgVga8ng!lXYeZM``ou@8hy|Sxa>EiZh;CohFK4-IzosH9&iG?@2!v$9bXVv z=N2Bc`uyufB&$0pP7fK6wS^1~4dKxb5fXYLB0h>VajZrPpzmE4#u3g1IU#r@P!y=C zso}{WpdWz-1C+z*%89LEuzw3elra!}uRd0VClG-2t2ZVYs4?1LYr|8nus4Pfw4I-j}PJn3zCY({lb~ zG;*ZY-5q3AD-`;dubm8m)7? z$5?(|3@Sa=x)S7}g=XhxXAGe0#lr*EUT!VG(q3@3`6w+A_iJV&r~Jjx4Es(vK}x#^ z2OA?LtDu!$A|oj(EGmL5;k>^hoDquVJp)UzS7PePKQ%Lhg^i6(LL!?V`{m0$A|eep zYfpYyF<%gEua8#_*44pdP|AK>7y0M4U!;v`c@r+1DHC9HfEM%U2|lagTWxJCc;Lv~ zoUWfxA*h!Mlc^Ey0CT68bE$Olzkjh@&7%$*WX#_hUUT7??9@(?JJaC(on3xz8Lh@8NS1PU0 zr;;PUW^@2~Qj**lNE^Ya7#M(-$c6w{1v`ORwMPGIoF$GogOJogWVHVy4N?LiIZNED zCQDMXUm)7TwTl^245SUlQ(F+-LXL$t6J|~}R#tF|06cmcwUH#8b8C1A3n+YHyn5_X z11kz*a294}u%#Yz3`{fw1EtrAWFGyi+c$^FGXvqdE%T04%Lv!a(b7)P;SUdU!dMv^ z5`Z>;x{nckC|G`)Qg`L4<~lkgPz+S_JwX9B-x}4+Q45Vbuo#GW z!Z=^S2Gdpb)eZY9O~ImC-t%^lLFwH)ag@{yN+?Qao3+XVJ7zikk|6DcJ6Y~Y0|>B3 z{#Ea_csdkUIc#`%5HBDa$ZWV`mVYICoP5t*z%5~R`wQazCgbO=c6T6{jRNi&9E=+KdIw2P^w}NJfaduH zQqr+FZl;h=BKKGcGsM$;M1xdrp!9eNWCfh+`uO<3MBH?uigR8bYlH$h6EjWW7zzrY z+;~pw^n;Hh%MhDTtd>9s4TAYU-fe%(OlzT?1^FWcxR00DtsB>}T5s@2@sH|i@Hp*3 zyO_+BKXf+6iJ($XXs7ANotJWaSw8+A_m;???k0owlYtDP%4jK}1h*7R!oX zEPZV&2HG=d!NCXkoaDG&56A6$)1{%am51lfINoU5hOBM3F$UB^cTgo0vl%PG18mX{ z<&YAoJz3u_!dD;LE+mqfWwZ$SnvO$>rJ4k-uv*; z9Wq6vNXTqw$dGoXGG@*^r-_b4h7b+rSu&G^WX=>tBubLZ$*d?;D5(g^kl{Z2ocG>! z*S+iiu6LdFzUQ3S`}g~PKg07ppXbBz=T5iGaULpFpl%|D) zX&SJwaDsM!ogsR*)YMe7-CF}Cf=DZp+;LjDJ$g#aJyW7F*39Ya*`(vfOc5a@Bc^*f zj7K>K97xt7nWjfwl8{16j}+DyNz2IGg}so4qN!4*p%i+9K1UNs)Uym&Im9O+5v!TY$fI;;T5WU>iB?0Mx8~WjI|rlR`XOnltb4`8 zEyKj`jjgQ?Fx@e;+#>9@GCw&nF#$*uwO49t4eVGV)#q`nr)lBo`CTCV4OGE|IEPe=tIYSI&3&7an?{ z1QqEqAQHpdQbD}5N}0;wu~79VN!~uh-OooP67lwxko|zEqL#-o+1=>0pO8smLF*mG zdmYXza3XPReEjwzgti8E)fuSIJ{se;Ef>w1I1`YqnXae6_82Sw@0TF)X0nyPM_WKkNN_8mKSE=&)I!40XDV<$tP zK_F?xLQjvOCfY?$FPbf1XCR8px{6+2F6+^GV=MN70n!fgDMKNPN&!j6Y&XTUderKP zO3rXwfPfcXJYd(G+_FmPT|1`W{ad&UBB=w#PDOMfL8E7yx%z1;^#`>sUw#Y-V!%8w zj(0S>mU(^a7)6#cE=z(FrK11ZZC{?$#Kf0h7nCavn9uR*%LqH9-)DlgTK4vtpGC@| z4?K^0iLYK?tLQT;=E|-m5lCBm1^M4nCw5Fugo{b1{y^acx-Yl3a7i`I*@*mUNgOea zpNvjzEo=ZK0JEl}Wp@h)%?{?XX_A6@;mzZL(cVST40c0OaDt1elU5p zq0RBh$tZ+nugsh*-nL@t=}A&$#xtMKjB7tNI=py(YhXC#BR8Yt$A?e~z{a309T^rr zA0Owgn!R0AqRtK1cYpCU_;K4R%3zMem-pjobC3oMTt;%tL;;AKY;BoqAKSG|9dwT# zl3Q6>jAj-3zCvPq{W`k##svzOBu4tn7WbKyGV8&26_*fHj)9Hw$`VYW4{969Y6~G1 z36S5-yW{0bf-G&wY(-@h&uHdv+~TEGD^sJ^UE53k;f&4t)3n5$y>^u3&+_o`V+?D_ z4VX_QB87wXYS#(wnDqAXN&2oG@5TkUgh@C#z|E@e*|XxzJg^!90+f6cC)yas@(0RtsZdpYZ|4U9BRH7C$H%95TMwgL z>}Gbbr8mv^ZqhGX3)5qvkD1-j@9B@YCfG1SCj--8v+|{3e zvGGrh5d%jnhnyc{l6d7nhQTZf4!Cikya-tRRxq9Ebn&7xeB}%cyKuFMLPCC1EYp`I zRm97!UfW3B)+46wEx*$0!)Fvsr0dO#4I~X^;rl7UVrb&w%NP63O0lEE#akbk1-+l9 z=p$2eWY18Vc@rFIT2o(wEU!9A5kBci$<+dYBBX)0MYp(5aAnKDz?LkLc%m0oUK{mR zm!w7GYwJghu28AA+EuildYAQ$j~0m3!BjmD8_J=vQ`gwGugwG!=|)Ar(OO;n@9CnS zL-iUnE$XRfVR5Uvx*FVFa`FJo`QS-4{P1gpg^qa8_!A6XXbYMY-MsVR)H!?E6{%(a zAR_fJesSght~3f)#i6GUve7DHjz|Lyl&8WvP$n8C?q@zruIlQcn6scfy_MpI49*k; zN-psXti+@uGf^k5MuJMx7UeMoie9@A^2q`a3A;Hn%j|@DJ4)Jjz-C zX~WL$vF(GcL5Uu6vB&aFD&kIzNa5!Uy?E_@w1Ju`?$bl|ZPqUz}?P9ri^-Oz5u-by4gEz1K zGTB--CjH)|bk^m10@4|Tg#h3jbBZ{khm zAKP8LZ3|=EhvVfQH}5|y;GfX$Hd9UO-!Vb!n$OZ;G!y>onoANBH*XNZYj&eSd-nVH zr*5BKuBH@Bq7Q-n#{=^&5?m(v`GcoLFWf?EMpppgfX~&d53TNlwT2}fq#RT9c+@QC*2#yN0rwCHKSEDH916BNQ`J@P&ak9w|lRzR_PHh zfx~xqFM1|Uj}K5VpM8+3h-6Wh^}N+WXFkBnhGmLQJ4qqfIWg36gmGfQg7)mAo?oAY zk8mZ#s9%{e%WM1A*AuwKp_w6cynB>zA>7vL7%N_8Otx;ljHer=AHk93liUW3F96DX znV5J|TMHR|`t*$pDt|otZt7muzrdVX=Y7qH`Nj=3-;MX_2#T9p8rj=+Gsk|dyXwC2 z%~bRKW9HQ@hj^)!EeS2@J&C%?%K?iahM74WUl~i-3d>vD_5ctIXZGGWlG0dY8Fua3HJDK# zGHB)=NY(T4`HSWY!}{?D$!3XA5EU6`A5_we9Xp2N`s$nM;e6INeeUkfz! z&>}omz>_?xth{e|oTtRXFH|#^TwbHotl!-Di;xb@%>C?Rlv!c@rHSSnH2;19or1pI z`>h_HZKC%uJ3KJy%f4qDQW!G_V}@K%ztg}YtLvR*eVgabRe2_KIFhX2KWY3$+y9g+^UWQE_B&@D}fNB%Yd+NG|=T4saWu zJb40YZ+K`3NF}1s<%yxPGxe~bx(q0SQKPnfAW=(-0ln~XD2{Mp(X4FeJWf$(tSF~; zlS=>Y^8%gF_=pG^wJE5J%yyfIam3h2IrNKXj=qZC8x_9YkCQp|wV~CkOG~bvE7FN= z8;ZfUtuF|vx3iu-8}s!wfxII(`^GCNXZ!{rz-qKY`}V<*>k6A`X>ZanEI%vXiA8q1ss&MdOk~ndyGhZGy%3Kbo~~J$9Z@%mzS@ixCx|qXjuJ*cgoWtJQf25F>kkiEGKSC*qDLZ5*%UgR$We0?WF!Xm}W%gTns( zKk%r`FYEO%bF~0p+`d;qebf^KT%C7SP0h8*79?6c-i13?cHT6|RH_4bi+2qRzmTr4 z@JK3waS+g$lz*Km$$n+9wQ1ABkZ+Vh0dUumrlzoGx2*QNhVBE`oh59jr89-&*7O%>>SRiHR%~rgFTzfxOqj?E>i^xiV(169fCZ z$Qw7vNFEY3XSOv*%%E}DGsko1&KbE#ZAtHJc0U5r7})QAHo)s*$?b^kOH(}pXa(SK z468Db+Qrod(Rc@&uoIrx$FXM*9aV5%ULK(4OLANcjTq+@I3hwOEw(tCTzRpdOYvxK zPc4K>@R*|xfiKltq(W0u)5SU%^1@JfS5y;}N^^^g@S4*|J}wFT7H$3sw9(+hIBaDI zF`8(mOZ?bC-wr~D2L&7^Nx}Zn1`CUc?JTCwf%*x~L{3g6{twaNDM%yu{zX56Gh$um z?FGaVnMDfjOK`%{SN?xKnTlcc-RvF*w47y$UHzzwgF`~(t0bI;>H{|M+5rKd;r#OX zquj>ZGXaVL8*2dg;DFX5^#hb4uyf+g|G3Wk0+E6cU=C~u?0nF7 zfU*67;|AmN;ON(ZP>Oio57G24FOE} zwDt7zYS{!+I?g=1iWJ&|Tjp^beow!9drjs~gQdYsCL1lO^Ut^9OSCHav4mqr!xbDG z?lcf;+*TQlF39mz%;SkYz%*ezxtE=N8K)7BpE#h5P@)_SfGjes$QgeLJ?fqmky=#g&5pSWAnd>n>jpCOonw4xpr3XVTwfPs&!`3CI& z;9CZ+eL}7S+8NOWAAD^iTJPGP%_5^yO)Wd(i46ttv}DAGyYzMYKp3w=1~&`KJls=Z z>}11kZ)ZosBW%wg;1S5hVzy|Xv~(~0Ghsl1Lc-2+178?#QGT9#-c1gSkKBGoqJfX#Xa%iqaQDdZ721WFQ;omenxl48CDlMCzdJ)I#xm`Vv`Sdw zg#!!%)#5@`@aKh%nz*>WXfn#U!Pl>y0s2k*z^;JAI&Y71&T2m~MR;@O=`0`@a#RFZ zj#u~jbFYKX8u?cXU)31g+YQmt&Zy3#YH}%(B@qJ^u46LvjFT?!c)1UTPk+7u_dfKi zPS3uBr$>2)$dwLAA7B)s7Y-ljwKg9{cs464a#ma6hk8*snw&R#wN*PQOFHc3*?Bt) zH3~KD5m$YGn?C`Y5e}rer+fMoREx~uYvzGiCl}lI&GXEeF*Jqm-@P+Bg&CW`xIj|T zVf6UV;`}y_{B2KW8gZ&P8+LWd$m~0dnsw92$U5#5hzMA&BQbPxTzkrg-<-Mai|2QQ znFtb{=y-U<&UZ8cVU9=cHvDZA^9shl3g=yQkdobe-7-aoZP;Q5eGuw#mpOlWP|l9z z`duC2xnm%CJGj5w9@cV@T|qyj<`3=}?wo}~pW#2= z-nHrJ=^-JM17UbZO2O_)wUoVim%DQe1~&iJGikKZ+uJ)#b!(PFei3*&7?1F_o_5kr z0ot?RJIpNS-pGz+ZLAx|>~wb^RbJY6wp_RnBA>v!=t>W>GYF=bo(g?_%)mg&`?rIR z4&6Xlp$)r&J4Fn8P%979qUv^P?iPqI2xc^nED5IW=uZ!W;6z*ra5#K;TGgL!+EY*5f&kmumUox`Gu1#z@>94l$WY}PGgzikQzI;Qd%7JzV``grk}y0$czJD5 zdh;g;D=5@LO$lLGer;izN?Jb!9Kwyx>xzH=8MCoW>GeIFf}%TkYwPRi>0t67-{EJN z1fCSN2`p|AyO0*1UY*M+Dfy0i7OsCq5~Up4NoL~faqWltfXwOM;vkYv6<$rnkh6zGtjtEJN*Vxo zm96;2pr(XHM80)rQ)U?Ki+fU2)8kMHZK=sA>qGIxBAC&dpFSPS%+L9#NTL9rLM0P{ zODa_l#RGxYs*Vc??hYyhhHRy?_VyT`M4k{SEg{AeMKqXSZEh?n&;J7*JoFg26sD*8 z|61)AWHUWQm37-lxWBmWJ}IKpK0P(naUiJ<9(n^p1QkZVix^heMWrgmzIpEgb%<(i z&xG~6W=h9I6DZ}?Xu;ia^N}T-V7Oe4@6(QHQHx`i=B-7-u828xPpB>?EqMYsFFCJZqtNoLRvrJ`vmT zr!q21l@c>EB@?uPJ_zG$b<5}!p&-7DBs`rCDe$*<sQ%O7lYwpmZ0l_7x z#1j+X-3OOhrzv?8pVJ)fxvv9*{tE+yQ>I=;6Q;* zRpK|hyEjOcG7QBNRe$p8Q~2TWo$F?23cL)2^i~Maf_@-pg?saKvJ626s(H~70;?-4 zc5Ls*Cn($-wRM~rw9$%D+-4Udq5BvR7n+bQ;)Yo=2+qIT0CT{bLDh?uK%i0_Q3z`b zeXL`|Nj_FTVBjzf1?xrC_jxmccU_GRYm>Fug#?!*uSL}9aPc;>dLb($6r`bH>g!AL zPR8^2haDwSK~ITqB3L%OGt*OH5`hC9K}xA0RUSOJsI5&)jxfCXgF%S=At50uyuy-_ z1rMWHvYAslFe`A#o0TmpjJfx>xl$xF-MGF*WuL_v8sX5X>BY)JC`qC8lXe>156tF& z=gMpT+}pCDqN3LRo1YbOa=M4B9$XyBdBU)6j}HD=KbCHEc6PdaxUtd1M*I3)#gWe4 zKx9;yslvJ{734|n(>yL8${7fLcue1IhNSK6HNAF7xw7~&kYA_Zkt1vE$zuOI1>e8S z){AWz>gPXUKnAj)O42z>E0PQpR^=aFGeGNvKzuJ%Z-w@Dwc<%(;WDbhbgC+T_TnHh zDNmNE2oS`ut55pxY}oDnF%sqW>~qNaUlG?u)EY*Ii97k!LwH!Scwn;(AHx6rK!1kV zTt%PJaBVKF{<3t+l9Z6)qFzCg4W%O4*%`bj;A8@!;m%B4&1FWN{ENzLwB4BjIe~=s z8$ownb>UM8))MNun<*(vu#p-XN}aw@%1V#%>dim~h+MVPWtH_3bG(7t?2Lv@!d3p&lOqRTgdV3#r%W zl^Pnd5mu6SuQt15?mig>&}j9=OvIym^nH{NSWIJM3PN6VObn(|;P5VUPp86#rI|db z;BYdYsI0eNv!|zU{*Ed&<=(^L_w@KKf{Q{EJqu;T_U+pz=6w*8-`tUhumyTd#xq@i z$BFJ-aoD=S$mlXuf&CA=BGu8;lQ>*ps0^uzr7hjAmiXP~KA@#|rjSpzElfJ`s zo{5~*R&0BEt{Vi*UN=G~(eIepk3`0Apkrcix#69c{En64*kZS4kra@6G(gnkq@ZKW{BAI*iE;U$9ru zW!Jz&1;(}@b=daq%}7XqvjhZ|xOw_xKko@7>yjTZy2F2=CNf`-ryH~9U^9Z4?+X+# zD7tSW9oX9LU}u-Z0to7mxgPluGEHz#?|`f<6CK?U){EJD6i4LSR_)&+_?QHMp z0Ir8%ift{R-_HH>&p56RX7&LahDAg`%z9iR<;u6-b2y)uFJHFfyZ|%{b1A4I0Sji{ zx&^;=Gb^ii|7o@gC1F>b4i`?c*Q|?`@M$f?G;RS}HQ`;lf-IrkXl;;84?vhzfD^ov zsF#Jey@*aYFE13=H4A7gQ)`!2^~JYtTrEALbq&kPpcV1ph(jORUK zK|8;+v@}1jtF0|8DvA{#L!g`S`eb~U-C)0p5(1ln!XqM196t_lr>(hJQ;?-IuXW#q(?=%x#4IcFg7x|=UuU%EeeSxiyBW= z&XaaPZqSH$6olcK01c9LvQK+^`*tq5!0{*eWq3LO%?EP##qlUB;V`46hBO{x<5{#v z=q*=~hxRaN;))_WtEz5UX~nt1#oJ0lgI95@(|%m;IlNSXFfr|s&I>7WJk^_5ROE;* z7~t2NuM6pioGd0!ms|Z9AAf|!A84aOyU`-T@_Y%ki(M=8yht<#Z9vDvPaTah)~0~n z!yyy!>2>GY9f{3Enh0rk(WxPk{{8*!=v}g&hDF10}oDJMGJ@5KnPcfC03>d1E1(j50@q7B4f7_d4#sv{~*4XBQWgD);UR zCEdLF>gxi&7yRKdjgyp;@^yS%Af*HUcl3|v+fNs%$xceU4#heF*@*sR*IJaNOO%Bc|;|4M@t3L)eK=6~FWB#>CQDs&Zub5a=%XmX26M--Z-ioN9QTU8Y{CKea8}-YV zg{4`-!gHpkZb)63q@V7i0gAfgfVp+0!vPGSq0X|mAB1n#U~%|$i0kz-mDYi!;r2B* zH&dzNHs37Kw1vtC9D|wbA(U$Q_31N785yS_wfI>*W+4$_P_S_IS+%&KuF%>3Kc`GZ zlhKu&lz59Z9IJJZq2bR?wD2bsW@UXO%L(W{3Sx}}#1YK2>ih{&Q5{-eLtq*W*b0iX z#TQ1@A%KITKucX$=RbDrSVhy#=!b&m&ws^{ZGQC%AFuAolV#K^=sS|%%1~rdHtSzV zEwMEIJ~%aVisZzWrnHxl-DvK{=h-t}m&f+)h*Uqq9mmC^Q!;oIN%&?U>G;lL#{`q= z^e+~_{ZTC*%s@Ro@|3^J`~ok8GH5mX#3boL$Cm*fBC1_RF$2KFmi<;jLJun8`O}El zsd_|~$o@DJ{x6K? zmX^k_ZNhZj&OA2({`?!j*Ay~NpZ4Q6IpnF3(O{zu?S)?RRm*fEVLK`IX+d4nqBRi^ ze(2<$K!pwv#GQ)=YbvxPsg!~Z_GP)4q|3=?U;f!0LUXZTVSRz=MpVi2Vusuf{nX$i zN0dI9;RU9oB!vhZvXmkae7Uug4rTWk<$IbBvXGn0IZxm$FLH5Ci`r4U(-pwW#jjm2+@it9*2P*CFY{9YxI z4(%W45`X=&M|8X;w~~~1K}UTe)|xik<$ZVT-qxNSop&OeW3jVgf0mgj7W&A`RT%4T zq?n1;xqVXe_gAV>4FPzFIE-~!*U0f6D|re>74gR(!{C16!BPB{lP9^7+8AhQjk*#= z;H--oN1&9gDN3E@Cswksn+;bN3y+Z9#=n0@P&}!Bl7m2Stk~XXYdaq8u`vQ!@+(6 zM;<4^z>aD0ucHYu35$m6pFFV=WWmwfFDfc3B0}EEgCw}_kii~Ko+toCjNM@?xT6Xf z9kZ~w473J-6NUoF5H^ICmdU7UI5;^$uz=g~1PYDm2KI0bO-(4KB~sqw#sNIU8NpVW zBP0^2SS(*rz??dM&`F7Rn z!1Tw}2Att!W}yD<>9k!nOVOu$pFZocV@C(Z`r5#V-Br?9_?mldfjK1#wkoz2u_qO zcMlsd2Z0rCSpJu;EeML&bX2@M9j}*zLjhB_jQMTt1I0dSnB-iAFZTFVW8)ohEq$-N zwh-cphrsc6r5*Z?&KE1F*u(d5avG*ehjo2TTEcYe2864q9Wg}8D$jEcv4IRuo~bD+ z`Ud>aA7)zQtQQl2PsYp3i#>8KG)sSvXFqvz^<^j>WHC)=hu*)xGTkr2&z}>pxe;yc z(>OrJ|F%W~CfEIQ535}8y^{2*QF5Wo2T28&b;X*jFS-N0+K>XH7=WY>>#wRGKaP!w z`H8B>!C?xBH=yQ7W`OC(pSXQOE#y@1jaCHP#$2!{33A(&Gc%gDc6Q`Z|KgHDO5#rM z+Cv2=WCatR{S+(|$bR^^I)}=5&QMsrSloF-C_($`k<*iNQoE)<)GR=jG>50-SJKW4Ll)V%?D^ZC9(P2Ti59t7Nvnr15Ryhj zeti50Z|nw~XjDZvJMED?PMEnS`=$^NFq|kdIrfP?yy)$eD(%){vun}y^_yr?Aklyl zuk`+XJc3exKFm-9H6d%wQ3LN`2nPsQUVdPY+wNjBr7qOr6qJ;pB_=)OS8leALlpss zf#ULK6&2DDrr_dPE4*shhvqegoXq?7^ zu)MNq4k)FeS_9g?i;d0t#0e%2QX#;+X+ANud*A_}WrIkU6Us<;ckDc4$KtT`P7C2( zC?!|Z|Yf@YEjT`h>nu@h? z)zuHy*qxG>lwy3#`&2AmNZl{hjUk_NvI5Rao++iH^jV$0IO053Jm6)*O)r`5N7iYp z{l8t0h;>ubY|pw9ax(rxpjK0QpZj=se^KlEzhmZ3?p(-?Ul&&B2PCid-M;_x)2EC1>h4q9mU~4~=DaA8NfyQ0I9Mog)0+lh>xO{K`Fv#~dSaWSaBz_LL5k zwLefyC@H0eXqM34)X$l8MC>A?#Rm?cp&poDk*x)rUZrcWy*7ZS$iGv}-~I1z)r04A z{MScMB&%i{{aRUT-*(tRoI7s!jvWw5)MTihLka>{1y&3SH9ID1`Cwn@s3BDYf_mbi zjq3QWYbc)ai4)yFym(=QL4paXyX`=&=CNobUJ?eho)~_^u*hCHHyd2(oSYmigFr(3 zgF?S#@M>-GXx1@7mQ&AtYw%*x$kWKbIU$<-GG~qu&#Q03D=27(a00RgE5;fcf;uJ# z7Z2`mX?WPWZjln^8kLoTSDv3M zw?ZSIiqRT$Wq?&j^N*!K3XVCM#oWJ#30X{_Xm=4GIRc>+k#aRjHyaYWc{1ou*VpfZ z^b;rrL2MoRa*&cT1YISDv)|5t10B5wyI}xRA5n6wxf~-REKF{nAj87uA^9QlPAq^d zeD9?pYSR|v=iJ}sPMdsw5P-lWm^`r9I(m8_^gknlSv)wsch@fUZ#yYe#8lGmQ!-ZS z``^3QD>Gz+w`oXNSXpWDAvek;dtPllX3 zzoKHsv|2ojRe**-FSP;8uiK##^Ni6Pho(_CP1K=*Bh%b(OHbfcAHlET?EJaa%^l9B{T{z1V@}Zv=F9a z$1d9?@j#FPofkG^#CF*mLhjgmi;I`1?a%Oy% zyx4t5zbqsasUB_lfR_5`w;$1!&YvH_{$kNfxUKU!z^^Hkg_xN>d2$Vj9Et!8N2=6u zOWoJnq7w7p7rLpdr+37E?J5dzM7hm{%*|&bb0#G!hO(^K%~f_^WmMZvdi;YRuLUnf%~ zPF_#GNqhcHUhR`O=n_#0K_{&bm?WeDv#x)aCC(8DxBE)}NozkXr?3w~ClZM~Er)Q8 zoCsJ{$Iy_xl6kO71N!CtXUm_UnU<6^{44v&(eBQ{^Y0=fE0?rRc29VW50sQYJ2E}J zN`>C|e`6J(L#JsWS61;ECfY7~+`w2c_De-`%D!oBy?)2;7e;chNoNLrrV!)atF6_w zS@dB17m}l=qHwWNm^(@|xTF1PK$a+!T2dQX63@2_tH^q=>UvrYA}n82n5cU=rb8E( zpc;SYx`Uk66}EcU76p!9#nzmJ1Y;D5tpYG}K`TL?((UScTSjWL<9874W8iApN}+n~ zT8)e(C#K?WFwf7;Wj~~jNSAdw@}}9HNg$W{{!cJbfSvo5hD0Hi$?sI=COB+IChfla zSO?@EFS+7=f$!2WNmfohs;EfR1reNYX1Sy^^=*(4rq=Lv0h_n8g&t5AXSQ)fXs4y8 z3xu}%QHbp1iAzkpAos@p%H9Jx-#<4odSygMGyG?iA=6LyU6P+)jnl$`CTk8_NJwNw zkV&RQrv>zgNxZbBC$>>TYl>e+5u}1>Z}HmQSVvnMS^r^WWnOK3+S)Hl?`38kLGw7V zT_8l$5(xwj>PK$Vgkj<$cS;8q5hh2p(}k%iWWeVg92y6^>=1J+Yb&zSHhTKXO9#_Y zdSKcZ;sly#uE^)h6y|%BTF+(+9gEKuIA^|vK!OU`0Q}`vg^bZ0jcwSIX=bL*-Qa!% zf+|emG&hG&Pmj_-(R*}z?CXvWGN%2d(>W(M_sWlVAewkyoXvh`MY2_EqG1o8^0ae| zlyOx@b?k-HsE>gb8UTk&3SQF~w4MD>b98jSnAlUlzi^}|DJ>Nr$ggASo%jkHtRvi# zm{q-hU++7$)H6U^mbBSxYra1-el>i`$~bJSx@CHVbA9b#dj~|2Dqi{o0wY*!Qxpk# z(1;?(4MTH@14Kp9fa)#t$Tex#4|0poxLme4&ZG01hujNlRi(@aUfZq@PN1h|4+js6 z%Eb88u~I#KYh0A%cI*_kHs8NrSXM~XBffsQBJ7cacsbPlk?6aQ50A!nplB{X{LqiB1^hyt?ourl6p}YCm~46$!df zf}W5y3uMj}s*EWrtGczl!MqRx1?eV5CL)=PLIDT28#1{E_81p=yPI% zV@sv}v~aKrB%U%Z%=ctx(*XM<3$!&PSU-23IFBHQp5W#xF-8+8luYcn)Cx5ml<+Ka z6yg5LLRZ$ftY5&CSs&i={r)Eo43)-?TOZ?4QnpVxxyrLuSyc1p23EZA4t zY@y!1%A z5fnIW4Nbr-ek3RAJma0jtW5vn`I+6>Rxhu2=# zuzc{mP9)i4ZF7PS-W>erR+r7zia3?HQg0ibun*z$QA=(o)~D>1Z_})!knc8uMl7D0 zG2`#M_GHi$)>T3SxBg{%TKpFn(;E+bbYrMFDIoFID6H`lphN1A?DkYEjjX(B$zuy& z`cLjAIqI(&8ie%RecVR8Lv(-kc}OI=YJIbZ#w*?Wi*`AT74!wf?_xE53 z>E6AV%{)%_RN~}3{y-aRYnWQLfh1>ODYZuXQ&v9$?2kjfqsB*kESo4BPrkob3B0iR>n?2)0qk%zX& ze7H~k-FaS0)Wdd?X?k8cBhkWvhU_ohMVI;=dtU@jn{eD!%jUf#m@PCrLuS#* zFI9Zydy`F8V}#ho0Bxg^vd6%r?S2alO~-ea1}7U9PmZ0RHv7GHZ6IX7MU$iAk?tQu z!cxq8I0nD742LwS*`+yKqW~}xHtYHul-e<2Nq7$13-K+0)+)aW{e3#yJ=JqaOG4pP z)O0^LRgl45-`VTs?oF1?)BQIj@7WWtm_|CMJFD&76k^dqBD_zh2;(KPmVYqjRwZ1J zNf|5rG2=Y~W~WcjVTbuk_x_UIt8-fY)fabuds}8O(pNf88_XQ3u9p4qTd4|uwLTM) zW1x)k2t53nHpNd^gtpF&BTmMgc?qn89Lkxg!fjC?;N2ts<~Rwzu{cJq%?=zmfYD^l zTo^6@)RvTdfMU}oxtZzYbKh%l6yU@_K1TfyVF@?1^LDYJjFb>`SpNF}9n+~YFRXk2 z9f?i@jCKH1?Ct?x2EHFnok4vUOYiMpvj+rh!e7D0i*uzI@voypgWs6)R*xAY zD5W8qQ4aSS5VIdNA6%z6TYkIitJ6Tz;@n(hTwFmdJwZ52_V4bu7&ejySdU8 zfaQ)KF)9Hg%K1@LqQJAra@^<;5Dg#?dG^Xe(O$ngU4s3e5KwvoNWc^$jP^QFAKkdY zq2&7n0=c*rz;n>cz_T8C6mG zj6s7+2?>EY2XzcYaP80gixZzeQ3QQF%*q{yNmKGZYH-8$=g))SdjjJm+%s9T`T2Qf zHTW_BqlIkjvb#Ir^u7YaP2jU_8C98BLWH-33ZEbz|OyVP!}NSsER@IV`n9C7N(_5$j|UEf=@!{_#Ad( zT*3GZq!1AQV4wz#AlT}}IJ{1rb{Q$D>yeSbGRBO82WC>I+}wVlb{KL-3I_)G0pL5HBlgd_O|&L}4#aB^5flvN;(-+` zr0?Jk!BtXHP+-*HC^z7?Gg#J+4e2;!7%0c}yns)@; z%gckj;#EsawPPPO9~1=ayLY3}t%k4Mp*2}}GN~wH+?(7#7iMBtGe&}OZNP`&doO_^ zhAwQo{E`r?SRwnx6?+a(we0Lqz*cvtp_DN=c8pWn?mFsN`D6A|-PyQ16GOlzQEUQk z@351`gfEmo5R2T&$Uq=twJUJji^-dED-wskuItGSC5{*}5(XELL|MosFsFe@H!OdI zOB!A~ob^Clq4&`vqO-aKxgxNE0aF*K&tnb_!ra4ubHgtnAOKM|7$XL&Fy4cEE7aFI z+xf6#5<_58zSW7oXq%ode~!X2$LHe@g%<&~;67jfa{?_X_A*mG=R7Z$!fzm_%& z%Jvz!GPyWALw^pHJRsFqHd2_w#DySFz8C?D+&|^%jR8mbC-E)g7~RA) zalpZreK#&7w_EO!vI(SU*+a5EWg&^MCPe!(@80AwU``-Xymc|Ei&Y&B;WQxLm@Bs~12P|~_6g965KAPK3kp}#KwPD#r?R>_V17ae2&Cxee^|Y=lOW=d$CxsdDe}@4mqFZMdp52RKyUMzm+l|> z`VJ~6tb(8dvzQ!*tVC|qgHSnf3c$w$qd8z95dq|6()IuN;qBrk_zSZfx3Ypg%_h#X zbn5Hw?rwlYxdSq`o(g{89k;RVSD{`1s=S$93-7Mw6nsPUWNq)>J;6wz*={u~S(5-b z279vWdhvEQ&8~>3-S1aJj8n^&g8l|}Zm`S4zvDMQK{s^85kg+q4^NPOI&ss` zNV1yl;N*1Je{K1U8Jz3Lo+BXiAq;-{_gZSYAzD3g^zhKAr|_qBLhA3r_< zDh%|DGA~ zLFk1KvDI^5`EVeIjNkhT;%X2303d~(8`Lh#W1AaaCnsTn@T|Mr2-t4>5-Kj_$h&KA zYHMrp2zMlGyIrsBns_Iyjy!CT;R;pKr%&Z)n{LqUB=#%4Gw$r~Ctpux)B#xjey;f7 zBdhy?fq?*_LXE&80Ogej+swnmGhg6}7lEvH2$sHJOAvc75(pWE|N7!v_|l>y2Z>$= z@CynwDpgFvVP-D;PQ^MOBKsf20SMP{cCsxoA5fX}ra&j_o{=zkfKy=&Hn>v6BprKQ zAU+LJ&iT5FPZ75e`9b7v;tgY*#_afVc&B}rDc?m@jd1_=P~=^#L&6P!zmPgVlHCQs z@$c_VExjk=_Z&xI=aYc9)b-{KQJHK3rLSK)PXPRfD~hKwhs^9O^B&~?%a_5=qIhXh zeB$tt?FhQQRy*_r--(E2My2%toww!65%>%N2**i$gR=&00)|2w`DJHS9pZHthwY?~ z|EKf8K-!tVkI;6gu#Olcc^}$8pSz1bOocbA@7u(F#>Fv5k5{aAy5ga>w;$mPax44$ z;?5#bz#mqq>MC2!ad1cJ@0v(T-bHydy{D9igP0J_VnKU{_5K`CK3pW7B z&1ylE=bNt67?9a@ z{?U+Km%#X5ViH~X39aKrzQbRoQoWAXt(ofNn(AS1q1YW9G&(%sX(Gd({~Fn4)^IZhpO{KpF!y#h#AQA07md141dBu?8=pWDf_p=6?N)zT7Plb39c4oc0i8iTXAYVa(57uL@bSq zU#xMi_o_IWD7J-vXrp!rf&Dz$6LBrp?%X*LpWv&x<=kGhv_wqz5(wV<)qQzihTmhc z{nC%2OHh#&nGM4M1SKIhW2LZ%i|o3AB&VUJ1y##KtNl2gD0GoDK?45&YI6dZYz*Py zuP9D19tIW+`3%lEx6{%tMbn0mMm znxlnT{%N;`@X-|gUXTj!ZMdZ&V8LL*!P$8YMHXZ+dlkL=-@L(svHz1CGga>oC{}z1 z@D*rnC>x~^G%)T93N(IiCkpLmsUJZ1@jqs8s}7ZapexHU;*%_PH4nb)s%YY}IA1HU zZ>Z4H2$&pUS`AMqoJ=mE0U+N!a3)l0g&B4_|xvVnE zg(9n}Y7uDZA!8Y1I!~AH4-9qiE3T{Opm9;kWHN@}|Hap!$88*llD;Tvk%W$TPQ}9% zNJZrZ3`DITJL|}tz|`jdR|yAglZOoKDHnHLg!~mggTBTtw#aHP+t&i$W6sJZ3-7+hxNQ1fN;S77Ek&f|Bt1b+P z0*FO^fJ+l^IwwvmW_a3Kk~rBdQX5p5UqQHtFQa>jo^l$B=at8BL zSt7i&!FTK$o876M?a2{)2j~-C+;dnxkn4Z%q%=*_pgm8$!+2>U)iFgg=9<@L*Sm{; z8NZFt?Z695f{+F`FE5wMjv`7bK{~~t@vDms2~;6-MTf;G_9mvM`}}xER+Jz+<3YXb z?2MVdfj|1iQq_vfvV!`EU zJ6V^gSxd4sRClPVQk~mLdvIZNbK&c=+4aeDoGRMO{+I!H-T7%WDV_QG(*48Hzg)vv9CJk#8ncYfB={Ur((VA6oLaY3Y>kl@i z%&tifr#;f03?3^Cd$(KLU@P5VUdIW)-+8W?R4y$B6^@}%JeB&71%v--VR(CAgpR>1n!RBM zEk}hIijE+acubbKwsm&GNgJ(tjIk+!(CO%&CTN^U>PX-Vncx8)mv7QT>U`rr@bj+g zVsz_Y$&G-bt|r?q_DZfFg6YkxH_tB4vuR9Ds7E$6&pz+?v~X^`rGtXv=K88TsaF0L z+IlFf&CL2Cl4oRKa7cUZvxGI&&m$tVcA9Y!KC(LC*EL*sxogIAv~7EeGozSMG1H6l zPdD1+RU7S&H5*j$F>!up{7fHqJFL&6`|jP|8Y_?e+0T%F{?vOZ}uoO4*05 zxT5d3WYE?CQ0@fmjLeA^92igNwkEdgKY7*anJc+#F*v4cR$4k%(EGhZ9Xj@j)+d!QSju+v~3ORIM*`p z=)wC3tm@JpS4*zXY30Wm{!Fea?Y8?$!Lh|sKmTW^rAQz#PrxxTe^h2@*#DxKhR$Bs z*a3dKM8>BSE8mR{xZf@@8@zfX@y-Q(<;{h7Mnf;fwM;IHzm1x@jxiQpntn9wH$MNm z$~7Or9hWWas-yE$`K7rqyHaLKT6SXX1`ttHG9_6wPsvGKDX%>HeiuuhdHgR5b+j!cWO8rZ0 zjHR$E@P7Z~2))niti|pk5?wb-ypD|B*7>)aDIw+6k|Q;bPS<>8?K?eiGJi-{R^i@^ z?34S^DTyYI?>Ci`R#)}XWqP-6o9HVzck;$Wx7I3ODUb152gpA`mDr`7BRX4JC3R7 zVl$9PNx>G5!rjN%)=bWPx2y|Gys5e%I3<{;6BwT3Xl=3OAM{h4Yx0J>l&LzmHip)SK^J__@;P~g8=vW%n zKMIj>9BoQ`7wrI$s4%ObKr2VEfz7E|mx8qS_1e~MWC!F={Ynb?DF#I7*|~pkzLH`O zoa@W3pjdH3;7u{-EuoKB(HT?_O0D=dy|7xe@A2EXn8Y70{$LHY1*PF9EG5OeiJ2b| zvy~QSUkXog!@TnuMYwHi=7o97JpoKv+i%?xJ=XE|j|krtH>3LF^>^=bx5e6BrhP9{ z^v{wfv)TUWf$07|?5Ejn!P}WMEnCwhOFbouXNW0^a8C}ISwYUg3q@n6lRIxZ-xO4h zSUaI;G)>L&G3_baX5{=XjRfX1MfIHDse)XcHpWx}*<$r7&_&k%reXJF;dFSXDUGq} zUG!py^ro#0tFg*wM%1nU(h*12vSFFX_u|3Zp*t(wk!lx$XRPt=mUbf1F^xzUuAekL zzTb=BNb5Xf?Iv19Um|N*amhXHX)HmX){!NP!_H0cco3J0*h9zg35~RSIxEasdisp`5EBLalrKIIWzJK0}09Hjg zI8;>y{Q{6;z`AEnEMoK`=}$EYi%kX%eEMgm-|O7>g?h}! zCJXQGzyS;?K|6(mxc)gx63#iR9K~9F@Jy=4oY#4{q!bibo<0q_uVvCBf?-bugpZ(P z5~YzVAvJ?1>>|^3{1w|YZczXqBky8CQw;p)t@eX^+o$`cb?)EyOlf*+${6^T!I8!K z@a3YfU&?4zj+TG#e>j4fj+A?jiH-n^NGQj{ZQ=K-ygHRj9&woJX{`9n_DTQ7J;xh4 zFdT#<-#(}_{~aVH4^W~<#jvL@@GfwspWWnuqF@R^7*^ul7CPO!R;pizj89uydo};lM-}QGvOr=sa*&e<2VBYjX#) zolw7n#Q_EkKV{^-SWqmj@qEr9nV=CM(SVo}jR_JD*`E^nL@ajzx3fJ0v!h*5X-~GZ zVqsg6X#s#Mh&L@uIraPOB7Q{g0qTgZ1L!>Le834#q0uc67R5j{S@})W?|u8W9-azT z`~Up@eZ*rz8x#gQOnfTQy{^EBfeimJhLE0&GoqR%>kna|1aU7M7f^vC4WXHv!VAQ1 z82dMO{x8zrJeRY1-=@xF7Qlq_Opiq+Qi-YBR>Ploih%Fhab^vb7Ka4_*ckWNozIfPe=ySn#w_wb-^T7wE>rl~--L&mk%G7rQN^UZc#nL(pHvuu~D{EIZkG1nCoeRt?DMxh|7NaPB@f}G8#mm z(g!Tj6}KZ8qj2hA3hr|q8Tf@-hQR?^**&Lcz`V7v>f9AUv@$GKq zjBF8_qQllF}fkLX&^()85L_!)4iJ`SNMU5?rj6q|&XjKEO(6 zsr+}mck{jBd&?*&Tm}7NOuk{lQHaiuP{W{CdVz3l$$9YG%;1x2uQdtoY@oc*f4Mi; z+uN84XF@(O&Nx%_*&?Ljld04Wsf{u`C5u=WYt?WJ6BxJ5FmmqwWYUuSkNL5&u}mtN zQ2EeoLMRki0%$ULUnRpIViRFj`U2uZH)))5A#IfO$NoEOi#}Z9yI%B zqPZ&37LNbNPoE$jBJttABIFdHba-;9K~c><7-3xW@=VaeaSd<;C}Q{>RRs+go+;+M z_;x@nnDpqw*J7g2Q-B!u{1sBi)4v`1BrQ+@%m0ed?DOY2=Ln>mk-DQw(-=Kk={*yC zIJ0-#@_3|}WiTJge+CyMS3zFByQKW$YQMVFWk-}s?5sEVsEDG(OO>bQh8m5l5wC2V z*5lP87tsi-&L8Jy}Ar}p;iqPk_|k4I0c$IIs_d`vv`#b&i?J?XJ`cc z{JNDnJGr@;xF599C@3fh*}os0_j>bV5>8&hqExA};`BDExr2sE{xZ)S@5~y@pbE{R z*|o$Rt0hb3BosY(Fqi$GAO@*wyVD8+hX!Xb7{VezfNPe(+B<%H1#-776-wG+;s^95 zOqz7P{_Y?`vll=ao(2vMm3%~I%&R9hmFV9d-{<4F6Gnwr^kK#ctG)(_v2z8YHoQ_tSm04{Y>an@5WQoG=d-0H(OG$9b zvg__!o-&Ke$$1AQAI$)kN{{ZDr~8_#!p0Fq?ya5V<`!;|9pCfPE_+#Kr)Fk5Z-$D(KlqrlCE_GTjf^B=Ix}4_>3*Fs3d1`M^jC0T)V15&T)`%TShJLG-@jvf$bfh-`z)c<5O7Hh%?#?z zQnW{otl}3z!NK@j&_zqnB>UIEJ%zojI%bT|=k)W0J*tl4;$nU{khQ{)AyYV<)+I@t9mWzfOqn}vUV2`#=8!@__I^ck}#-?>jqU1D}YF9=o0IUSJM82iN`)DR= zK=TI=LWX+n{rd~=m2b`rdDcGJsVm)>>!5bz<8s1y9Q)@+tQ6pmZSb-jbmEO?vrPj` zYgZqA#pyDT0Ji?DX+mi(TnmR$@u|JT!c`v(e#C4+{uF1O+J)5z{2+3OHU3CIVJ=ZC zWfMt1FfiV^U*v~CqNrw^F7QZD7SQz~+!vHPtu+iO8&O`K3j!SPWk#j&kaIl+i;$QvyEBD{qLqhgO)py>I3^p2k zdS)2Uyf@bQz2 zG>#=CS~4q{zcG4sKBQuFDbKEbDy9lke%JgB^@(RZ)VTALu5MwmI?hqb6EiQWbuJ8I z;Llft2D)TP*|XQ$dBgt7w`)Iq2hLhejc^>AH}2_@ZOv8hmM2~*E8nwlRZqWLE1}l; zHX~xlcBcMcq}apx;RTyh&2rVE!XibJX>(>MzhIq^R(|(6?xO6K)EtdcBIo=A%5jdQ zerfS;cbADoJM`E1_Lrm_7XCf816_P|^?Zp= z?jrS_+C76qB=!UC2_Gh^;(L8nPlMHOp2^7lWm0@kymDw%f003##b@MMKyEVaonlzW zXOWZqzE+goiytBFvhVgALy@!eb;@_=yTJCgfvA5a!Kiwi$(4h6hh-W$V{ ze4&g^v-t3%P8cN*&e7z-C72DJ-TB69!PsWGRL8&Rs5E;ySNzI6;g5O^HM!OPrvwvS z@s=IiGxq8Mwj*5(vTocm5Lx%Wej{CalGSAnjVN7V zO@dhLmjlX66zKT895z7f_TANw1?p(Gh3ZatAJ&qo(>6ToERyT$V)kpS#B_J1Mff(z=_bBXb7}|q>68@boyM}i%*t?7u6ODIVLr3!I%0heofbb9QsP^8^I`jU*w~PR=AK`C*+Fgld zdai?lJ84NO&_RAO}vW4`oa9CV86uKhbj&66C%!CyqUubWhi7cYi z`9Gf@Tlo7k<%ZKLvDHA1Pv57=Va|+pOW|9`j;&Y}B%-U$bR0TVD$Es*H|N!W_UfD% zuq9od$l$MAGqrr@;i12hqosSclR=fey`sq0Py2=If#IEEEpF~H>iCt!lOD4>i?X{5 zU)J6*EThjr`9MBddSBsZ$`)0AzVX5ETi*d6MTM!t6L`g2$}W_}&r5h*{KA~SO;o7a zvrrDZV121!q5M+wT#r~CgD6++@b3KGqDvP$S$8>+KkG)zfK#_RiJnxb_3QZUz76~! zQ8@l#+1(Ap&Ul|G7m zDs6Fo_i1+*spwLXC>Ves_N+^Zi_}C+VAd0`vZtkMn=DThOlJ*_JKMTQsfR)*7LWKS zN?)+rC@ha(@$0F-ij{cPH$D>ue4iRcbo`1xv9S22c3|J0qPk`wj+7MftF_wv0pDl- ztGz=!aE9u5`ErdV|e+Qk1FZ0K+_V_7J(0RB@b51PP#oQYY&|7zp*DEx2K z|L%{sd^jZ%eaxhigTaT(ZCz7)(>YVsaG_?#-U)6V9sTEvF;GV6lUO{@_!}Q%YvUqq zGIz|;qc54rVKem1Yyw^Nq)A8YWxo~X@-OQ1xrFz2Z5PFlzgA2;aE|Uw+)&P}(-cr?}tWTkK)+sq; zfs;#Us69=atE-Kd(ZlkoqC$I{pGVA{SO{Cr8c&4Q_%7YJ@h1G5Puv;WD0&cPN0I?K z@9H6vg#3y>dy#SN<=SgY7B6O_muK@2mmWQONLlFvX+Z3yluk-WpffKhF3x&n3(;&F z;%pepb4*Mce*R=v&*iu{`?Dhw%&IYU(^z`tIb|EQNJH)GDVmyvSfiBQqJw}sGRCBs zHRPj4<(HNHW`M6#BG?7sEJopnrz zOjf_i>nOd2zeerVU*!~t{9C-RktR{*b1ZbcdUP_#9jiMd!3;s>b-n|fTf|dvva*a5 z7;Brix3vORe5tLiefw5eYy08U%CvQmD)=Oz4~O*%g&>NQ<&-*uXRTGJ_{=a#asMIU~hfKqru)PziZMP1^3wH`$Im z+S#Lem?N`7mXxG97g{M?Wx+MUO99(`@G&VlIqTnXI-Y#}s%rE3zxYVMEIz`_tCopZ zS+%X(x4N+T`V-f^F)*?GUU-2KaSMxw(Cud}sau+@YH@jyOO!AR{v+uM$;Ds2iFW+c z%a9qv@DSm+SFM`>;gLZ({3RY}`nl7<9kh7ns+@f$@+#6#pJ=9NV0rb&oI^(j+hf6^ zGbCg_xFP*2=S8rVeGzAtas@9TU?w)ed3dC^e#9ONvjKa+rtz=0Ep)PY(d^*lGzs3Z zxq*swW&v}mpm@XCQ%zP4nS7(DMxm=HI%#3nI%?9DE-sM=4xFY|Jr3`NH?q4X#Z)V2<+e-jR*iDtuIA*YStCA6p5ZaQE%gA zlUmUB`NYjhVj|u7n~Ri8iaAz1qA6Ila9&`DXTrmBpV*fA`g-9yf(cs$P?cYA`F0<% zHzVyi=icFm2E|zYajG?67=;&7?P9usDSR*fWBnn8Zz^nrgz*gXvYJeoIn znjomg#MniLd6hF{qAvDfi86+JAchM}(zo*yr?k}NaOXfo+VSgdg$1uuvLmq?f(3yO zO>q2A<4gc$I(a<5?rP4B{<71donEpOc0F9?Ph0ksy3|Q__I*?wt!=~~5xCma&w{f! zP$cbSlknYCfD<7+`gHBq&CkydHt0vrta4fX((IMeGwHdh&qMQl01O+d{UPn*&IxL{ z2i6PBbff{5H8nO1^NC~_w5G$mMDjOic=z<#Pt5iu zR^vgUgXsYn1OYZJE43l6o;P{Pgf}_Ulok?z#-ThOWW=P{bppRhaVDopPT6eo z_NwzkT)+<;KHSJvzi8u)C;QfUJ&?9ngAa3bpqEqFtE+E;Wk>{sQB61=Idb-}PzYR4 zuT?>E3>o-$;?KlMcoq=PV1;mauSx zleu4hB1=lUV_rpD`Sf5ot6^OFTBwH8d6TDX)jjmt2M-31LIo6j;hZy;2`@UnS<=di zAD^EI{%<5l8b+3mkJHg{L(@59*jOzso@ql=NNYI*w_R~ ztsvOtk(WykGB2L`9e@mcgyf~z*L=z0#A?z^JEt5U362|VAMSK=$~mMF+=S`u@PwF{UuTh__39=a&N&HYST9y=YtS#xv>z9g5J&eBVIyyM;Vp%{V?srSK z7p7z=mf;mOj~=wtN81FQ&EFEm#HrE&UB;lfXS=0Z`qO_Tb;1B|88P5)hZ$?t&PtQn zyEgX~Z9F_L!DtvI&-n3>kxZ4O&MdLM^=s{F;ooL03>YpGhK68ISPG(zY+~-H&OF@; zCv;SCQN__i$Amvs4S1%E&;mrr;r%}!PW5s=j|n`9HSxD1o}=*OnUFN^b9|7WU-7+3 z=T%>uXyXLreP=T>hppcF>=Yvcg440_DPu;DuB`VY&NPfV%Cdl!D;LE?!2bnP3=g;1 zz6oB6YQ+7|*KH_+99N{f^%Rv(+g#+p9cHkgsnpVNTy3$1^Vdtho4noykN}fXIe>b2^5keey{o#t;6#^fIPaj_&!o6v^ic**@9IB=RbpMl=q|;G zAJ;C{NXCFt`IIdZPY@?N{FmCfq>*MqFn@;fJ2(2z(gM2qF!6bss;3vIA ziyA<7kwj2UJj+ZR{+V&TM9w~L*`tG;99+^ozds!R`7bk;E1u1hHR^w8a8;3-U^6wz=0rhiOKCg19LPVP<(>YbKfEE$ayRJ+oM<6M)=|GWBE5P zE1LZ0#@GM~`XJ~?2}zaiO^msa>p-}iX-Z_J++M$NqpRn`&(MHAF+=zQT8O3z9`Orw zLjx!x5&8w&xt~SzMIERIE1lz-mAkb!!X^lONoFaYlaH~{lZ&=x^0BQuz+@oe;S&SX z0yf?F@#8fjeiNKgCsAUXCE^o^HiFuk-x;|CFDJxH3AV@~j~hg7a}+FZH*S1VT&$+5 z%JAkBIg_jlVdco>r5SS*%y2U#JLxp+c>edI#fuL|N9z$|Nu&Jt4*SDIS`_d8_Hv&W zGwS4VDW$JUzA4u z!R;2gV5Z*W$=mpL0<`*4Slole#x5uK_(4JC$Ij)#!UOTi$jyPKKt2Vx;YvL{G6ad( zl~rrBM?4a&b10QZ6IF?H)8guge9CKY^VNX8vOLhPH&uqs2jCNYUj`GRwg3J*jGfJ% zlWB5Bj!fd8z;D$}BR6ftN*3IXzxJv5tOPU0V()-gaa@m8Nu>~@!ek6r^}W67_o5W@ zHFydWU>K>L&(3x@-;PNyQdNd_$f~+r7K$fIbRHFI#1+35Vj_o}e}{o4>XaP@1{&&6 zi3Oz!Ob4?MMEC(3HtRNQSfMsL;yy~DA8&4U!7EW(9PoZS_4-fo7bPVnWo1WdOxQ>B zfwN0RLjkL%CpgN%9z_!YVg1RL&Yi#?l70)bEqVQI6R00XjBq4AK)Iwu);1Zx`Kql+rD zS5`KO=R`MqB7ri6f(vg-ILwj(_HoX%vC_HWg^|%(Id%DdlrUMh?=b4&5=KC;_TeNhk zH~o#@w6O$o>~J}ISr0{6*WfDVL@=Xwy$!3dRA$L}LLD)IhQ@=hoYAz;RQi2w?GPy` zsR08l&CQV=&pk)IH$-=%%Fv;hG*y7}vkv#NjYd1=eYegx85O^{Zblu32yWo`H8vD( zt92vUj>Br0Ed~a@adAT@o+0%JJu2sr1Bri`;1yalmTLPk+7e_O9=JHeewWMEK>LcQ zs)`vJVOa2p<0QZdjXZjEbYC$@8yIT~zVBvc8WBS{x||hxN&dpIa0M8MQ;p(7F|ymL z<_G4E_V#1lEAt?}cI(=eaxtSQi&6^H!!mR}grhm<`15b*wy1gpnH?tz&H=5)x-PKW~iQTrPM}5p3x^C}LPA{hD$dVW|JBINEy@*?9S(>YyRkVmAMCX2}nu6|%}m z8z~Gq2>iGuI4XP9UPY+(D>W(N%5zTlQYr^t2^WS>#CQ>%*xwL~x;^hd0UaFvP=7{x z`Y0P&=S}TP;K;*sW8=oT^X5Hz_%QuR@`rct(6}3y4u^%_MoZ-O>XMGS`WIrR!!J7{ zC>)rpL)d4I0b3G>4OJNx6_rL-j57{x$LEXv;$a~gCdEQ{qRpGGAyNsl#vYMtHr}oD z3Gy*U=)9b@W#=9i6s+a!xsL5fXJH>demq~kb#J`NMVrA23a_}f5i)rJlezAEWo`px zS)1;_Lh^cB1yP~43GZngG)d0fY2HF2~&T1kEwj=jlslZru0-l!!`>H7xD$+F*rvQ04#cW?mf^c@e zfXq&y_H0;ke`N5FytPC|PA}hy=MRZWF6KGoCZLtwRN$+goqB~xP?*tD7&k2EUx8}H zt$(*}0!RgYAP7LbN>KKhI~|%ja(2}IBGR@1D@Oi3Qd|26{fUkYt>u9ZWjTJ0eR}o6 zUpZX-DBqu&l@9-~wu_XP%nZ{fV1xp{o}wza0M|Nv>)WA$Q9cQpSd^EDG>Y=_J_=u} zHWmX>!qIn5rP1)!d^46|UsS>exZkJ^jJgMh26M!$MFpLwdiAb~; zORG|jy8!xyk(zMkI>lav>KZnua*x4Gaj=U-dj+xs3&+;R26L`P^6J5%c1jlb_X=uu z7R-UCrdB(oPNJfO4kqw}Xoo|`Ei>D9|2<}?hl3}8E&({|gAMYw?W*4!Djfvz+Lc%h zG`@AqmR1r=&BuIr100VD$ZxR)CAyHhsyO?EV>)^;$k$sxtDlR>K2)#|o!;5pvsqb3 zC^dxEx2Y<|dRDDP8YL?rHAx4y<~|RS@M|8;?}pDjBXAvWvJa7n5-qG?>6R@`1akfW zv4~H>1QxK^4=>=7Z$`t{&OnyRaT2&$mZ^hHDf2kARN82jC_Fq#oR#L!OG^b%37-h4 z;yA4VF5?1dmF*k~YXPETR@Me{^M5*=(IHuVL708@YAdY>baLuH*jP@CVL=e0Bvt#0 zK`h+Fx5k$PDXaOCG+gX3y5iFdfF9Txaf9UH+9}-Fqv4aq!iB})4lZ@6pL23^o%q~< z1%@Uj><<3Gq-%i^U&%3tcC}Gq~glJu#l~d zl_?|%`cOVFC;^-yq083uQk4!Oe8(-wtNIR5XXK@Xd2`rIY4JPsGrT&y-;dF?(+Z&p zgA=iPcULo<_9fXq@g+b9$5?U|6|3QKmPkF~_`@R-l4sv<80Kt#OA5kMG(~Jp;}v7p05a9&fq04PX$#PSDhY)e;HaZoWA6$`!GZj&!68+ zIR@xHZTj>9>eiK?KdU9zQS*|0Xtv)Fkckpp%oC&b*vkTd6s>iJr1*2k)3(Tz1j)5m z8xCDX@#3fKXbz=FKtt`d?JEK&r;PsGU$S2p~wRDJJ zS$o&YQRCb3GWl)n9X+>f!7y_?0~Kn)`}fll+g2~4k|KxFMW=2br?1}zNJ}BLra18- zB`PqcYH)-)Y_d6Xu+VnBq;D4#uTK>M_!!N4HnOGCJxkR$U%n7c=2{PfX}A__>%)hq z5Z;J-d_7(jkBveoZM-6d8pjc!!3|9oxWkw0`eS)+5f|CuSGc2;49FiMms6^zVS}29%Mic*v z?w@$@C}zraDtqc?NN{j3Pi|a~uo3i(vg+P@cQ|EFBAf^Efcfb(bd}ZBTX-A*58Hme zaDphzs)|FlG6M$Ci1OyL%Ak>?wcT_UC(rQ~$bk@GQO7bhIp6F#8V<)fqmXzN{h0Y% zt*NZ3ZTYL@>DFDJpGH9cEsHyu7?$E)2>w7*K4{RO228mqZR+lA_}1BS+FQGBWflN=r+l z^tzngwsKX(O>*XEVMWaRK3(%UK~4CO)SsYrV`|yhBwY>S}v+=mf2w!Wz$R>(AE<3rrQMH=>)oOn=Mpv7XA2111bO`Mk`VpS4jUMV zy!69m;Ho|!&&k|C_)|JY7Wj!q<`YqNW!3JP7Q|!liBiiatk~4r=uUe@S4_bHw95|{ zfH6P;Kv5S3%XWna_wLDQJNIp3mH166454ma74r4-XZofxf&`%!Z959;=PzEInbJ#? z-oL0)jWuu_AX;d2RM})A>ZZ-Fw+jnm@!69W=cE8K3C1XgU`qjmOV8Z?Mj|QgW8ch}$2{pCt6j%gY-| zy|qksu_VV(E6-g&qEaTRZFg(?_4yny%E`}ZZL!S5IR4O{pORL%%ar(Gp-wu{a~syo z){hy}R}38;A??{S%h!V6C36{ixXWxy)qttxRKq9Aw&8kpP z5xMTm$QToG-(=prm9q~*uE*M?Vb*PA#G5Lu)MFw`(<j2FP-AzY9e>d*pX*D1q6qw1`n3Xm1eE;jvM&Y1I;M4Ly*LCfWDZnFYNH= zPoIp7Hv(Q6C?-1=Dy3ylJ9~T(bVM#;)!VnX-qqt)Gf`eLas^=Z_+>XlW-P~H>;_nu zdEJp?kAehB7~LXKI@M{q*2T%mKWkFVQwf&0@7!r>Zf@f%GtSJ=UG})VoFU~Sst>l^ zVnlUx{Mx~+B48HpqC0eG1wkCp{^3KD?LRNE5Qp=gFY^s2AOb(#`B&hIvz?i^$!R$l zVkiWW?f$)cgg#aW=U#(EwJI*@@>IgCp5wiLcwGpD4_tQ=_ruVpY$o->-@ktW9Dhqc zU(P9fMtv%XPbojaw3!ieu)cdvZix9roHf}S-^*`W(d&(XFN}Zp%jpE|vrpY_36ReT z=cw1*E+SFwx%2j!=eebk1T!267%B=v1I9K)y3{F48XQumtX{V4O+`g0TUXA$`$kp< z$$9-cM*EnflT(<6OEAKJa5%mu^321#eM#n<{Qrtvvf=knw{HuS!~6mQvTCPA$3#Y9 zg7X!7VA!|UyjyiIqrBi{6S58(%KBqeTIi`dHb>Lpr`{H(A0=-mUcb za#B*$n(gzQ&80#?@4!7NXCW3E-cQCoi!4ufo!1|AISG-R8a6e|W3U?IO<{6Ykwu$F z1qw3{NwJdpaiNvLogK{P`4x@6Vt7hKg@-rPy!bow4%I%(AKL12`sB-gOoeqy%h7yq zs>59zQb+8SGI#${s-v}cHNYAj07Jx7ZFI@ciDsB(2_52v3x}`BGo+wyOHNLvykwb2 z+Aq`7mU)CP`i>%Q5r`yZ=h80;$}t7F4MD1)UAe&BVgu%+-Cac1f1k+j9;dPjNNSrt z#cC^~9L7dndPvetyrW>drv~tch5-HsLqOr;VSLM~36@eq(>&1{c>g`NOl26Z&||jI z#JWWF-+PA;!7kZT=W>JV>g!!-v^bQESCt0N2rPRvL9fhqETK}tGlo`-@JV)z2l0z5(#D(@n(7cd~vvO_~FAB_`po8z-^gt z@Fq}D5te<(eGNmjt<=e5i(D`A{;e)<1s|yGus0Ng7vI4awKL90x0nGDe&DjnsnNj5naaR6&m?Xd(4)hA~|)bKx%#r zv$l6PVZez>BGhA@s@}{?8)0y-eRZj!#UN}3H^r$h){R# zpxI?*$*xz2Dfl{sH0Caq-K#^|5Ou&KLEhwQ$n z4pk4z%KA=w4KJ7Ry~)qrPu#Ui8n6eVyCWx*mzPs+@Bv75>Pq>ji{!!{LlpR&f2Z;>hAFYw+N z#G4lwQB~1>VTw%Kjxk*u$aLcTn57=>Yg+A|!Nq1rIeiEXJ4n;HHLr|kwYk*Ar6&on z3GAlveFZ~5igV&UD+0uN^`f{GZYuO9oYhE-FAAp2GzHXIpdyXeMH*A> z6zekx@u^1fI>{722#tdd7r~Obhw}iq!~bL zWBHXW1dBuW-_svJ*r{Ckw}o8|&|z-X_v=)yyeY;ll*MdVJ22oK&&MoEw{Z-8F%eWpSlCXKQXkTj9?9vEynYNYubD?r zr6Lu5P*0(~q60x-U=!o-97E~d+S!8GQpvJ{P_)u#tRSDQC)|DHXbfbAG<7)kS4@H6Db2dli8HAdz_;x;X99jT ztiK9`5BO6v`y+5W>vdMjexReKtP@U$YIscnv8K7PQGzTv`kb7+e9O1@bKG+T>O-l zH@7cu-o&;oyiEzn{HE~q=ANSLJ}WB>dd+N}4|3y86T*Dh!n)Iu_~dyqpI-I}$xYMk zgiHC;@427nEA~C$F))p#M~4@W9z0=P?6G6zaF%=kFL1|#<&qk4Cb>{WXRM~?g6m6+ zy3|u;{9Nnd@OU;vjk~%}KMSjJ7)Uioj9mT3^3}XWz9V~ioEg-#tqo3sz`7&+gvBKg zr&rd#SXeSLW?Lp(5J5}ussTD$Nn$H0U%Q?EsrfW#G&!6nkm^S;08~m`acg2CPEJ@FRg1Q-IPkAH?v@s$sh zkBo!>D`3gfZw3!o4%5JS2XuBnDRI9`8!wL=91`Hz1Z8w&T!yfv`v1%g{ePTq|ND=7 zZ?KGg%%U>vmc;ySeK=*f`X6>PaCSbN>h`g7R3fK)am+#HdU?=4F!*oXd@L%82_57F z6qTPw+bmcBWX2URb;?KgB^mIYUF}%5JK3LEEEEATuW(0QYTR_o6B zP+5t#wBQx6ZZ~|j#ElsXOj(MqiKn@7z(Mg-vB-jm0G3U$j z{+sWD=W);;u(qUVFjJW=lb0sU@OpQ*x8Jmi&!5w-g_>Vjr65e&7(EbaEa_Baq+^}tQ2hiRa=X2t&{K584#$nBbW>pjq6fqfPnMn&8d3HCCedVg7FJYW6AO4 zq>|yOT@Qhk8$P9wS+g{sK{m6wY<9i_v2RAQ7J+{lw}U4LCu-8_Z<; zrputdkb$@@Pm|WcuLOaa!c<9jPS70z6DFp>)Oq4mAc`&9n3OaqYOfL2A>FcdiEa`( zbxpmSrH-ql>f7evMJyR^?=hIao^1|^|%VH*43h^gWg|=jimP@`tsZt zm1=|=Q%B18?~g|C^Y!tObNkE5ZLN9Edd@}FDfH6Jpvdmeeq?Ez2p~RH4^6|T_EXl# z4usB?5^Icx#wnjy9r_26^N65$IsFAy7G=shVzGsL0B&$g^2L1_;i8dtQCc>A0729x8}P3tM@qN7dpr!Y__nd>O%fsWytHDG9L4s2}$ zH67zYLql@CN}`?Xh8HfzE|pdgzQ8CvTGpI!5olcmW&%sbKgy$mqA*v)?IL@h0ee}Q zw&9N>jC>1PPgxi*h+b* zY7&zXLVjSY=NG~}sjKELa3$ev?$HU43kx;TGanDpXAw*bRR%aq+_B{)ywEk&KM*D= z?H4V2ib8ZEzeC3itH$|k-c#Xpz?O`A3i ziiy!bN5PQk+327ex3TE=`jCMGU&xM8h<$(S=o-F#aLKr))Ln|9%10ss0s@%ugLN_h zUA1Dx@ecMW-4+7;#21pnfR|-7^q8O%rqWpI^dCG}C?uVnoc!(i3Av}vZlO2~(Qg)( z*1~=~TSF1Li-QKyG*Z*Pb3hIcU@k-9l^$IR`xD+`!{tVl*!Q0|oq_i8p`T57#BNLx zGMX1s*zgFTPhQ75jmJv(So`wASl8#8!L>KvfeOBRw}IjTfDG+p8$AS2E`Pv5!80oH z9kbED{-W2y0?9%Zvb&kOuo94&uAtmSqpQ3`(4ZF7M~F&$LG#a+T3MkzoZ%e3rJ$b9 z(Egkt6}KRHY7`qyr~6BsId@L7SFb@+ythGw@b0j_p61Lr`tGO|X`C=@ zvj=6R#j~ugg=7D`pw<2NPmA*`8N&XTrN{~(tMg8$w6|_ zNdLf{ClhH>JYdwGFcjZCe#*Zf1MQn|FrIB0U`0<)K<8zE03O`^42&7CeL8v*I}P9d zH#&}`^AXpF?DTy9^=lh5CNpUra=rh?3t_)D5{y`WNb&4MqmN-KLPc1r)I7k)J`n2@ z%(l>IQgYLeKD(F(NP|!I8vLQt1WPm{%Sj-^XhG81|C0_DGBI*2LQi2$u7B-mvP!pP6-YY!UCHK>u=Gj-n=;!3vGb( z-Wfv;=J+2IZWbOx_qLnGo%y*EnML*f37nHxuk^IEzERvm>Bz}B4iXLWHGICQbOVPY zYeY#q{@MM@1pF2#FMCwC?croH-uO3Ug#4SKBv9`B&Vf?heo`}Vc zxYg~iKfi@RB_3!U-we%F*NzCY()Gyg(U{)iyDMC`1UIRyb;zCsc}uq0->3TSM&A9h;YmO$Er7*?^5SEdbpZj!9MuPqyK}0LiMVf}~z<&Me^GC+GGK;`qB6!Jk z-{$|kjQ%FY=x|@0b320W_t>$eL_&nuuxVheLIIPz)=s5NMNV^1kpUR>fp^{NQ}b%G%|fR^ z6I#N;c8fYi+V637=%pbYeyK1ZZfCDMR?=tREKED+q2K>b{T}o5c#j1G_s^a>qtngD z)^~b}1?By7wWs~=(A`Q(6Kkv9Us>zjw8Lz-%8ZO!yZ1+b+f?c2xUZ*e4_ml&>EM9_ zBV%IP5tkULJ)Uj45rmb7hp*<<+I;rZsjsvKsi~0NY@F{Gl}f< ztO$n7N=xAyoEY?)2f-m?OH+J&=k|HyBknU>#PpRl5P}f@X*%S(oL+c3K)9k{rm&-h z06sJx7g1FG1IR^?cROeE6z3eH?fpaAikz1uWKvw=E?mIyY<;J=1#lNPbC)n8hBAOb znT$;MuSFB!R)E%#)INRsg!9DDx;n+sH=Feuvsv3BQVe@@KgeKTK^3^9R%AUT3BmP?>6zp+_PPRWQM#y>@3mhHib7}jq@*PLpMM0?3c#WM zdrPuX>D`#bVn#?Dhtt6|rdi&3X5gEJyRKV`L|R7HYF%%RmLKS6zZjw(p$UcrnIAqb z3B2t0#zP^uD%Q!d9Cgy9c8HDi$?OB~zt(YIU?9x#r88#i2AexJRlu^Cm*HX|%ZwVj z#BC3_X>2^a$;1Bg=lihK znz13XWj{MtSoE&0quUrPkUr7Y{e{|U-hh(!g5HjSnWAmX&@ADx%v0~xr{2cD>~l!sSSl*&5T((-OT zZ^1i35G_niVNLT4{>B$1Gcz?UE$0&Cw24|;jEKt#*j82?9HzpEadsHQCMO?`hzJ)y7^s$aZ-n9Y+ODAE0xiImuGy4av0!Iv+4 z85-t+np|=WL-53Tz{PUanl*Qqd?mADh8&5X{|lwY6N)&{=P4cb8}0$djsmR7HRA}Ai@X$)0J%eNA31O18rAksRAi(VF zXw)>O-y6)}l46Kqg}_+EG*UGj>VfbC9JK2H**{|#oqybdJ)51FEztT7nU_?|M2Htd zNW-F~U)PKDb7b}rpNB_Up-RDvYs{F}>5rfj0E&+uJy&bt$i8BpT}FyxB>(+=e4leg zu3ovqE{*Nmw$+`xv2=n*wbwceixS~p(^(Po!Km0~OiaUu`Bl`&eqBe68AB?!JG~6P z!_2-XxWLKDh6@+|HMK8j`IO6FVe^tMU%c4R+PRbLgu}(XMF)(ERvn>2 zuoDdnZDdSv(C`G%-VOuBhDO1G%-y~Db$gqomDNRzgLW94h6Ifmg2ar%2Z}M&N7jZV zCFQQn!bVx6j*8lNmWCMIOIf$2szxbpxhlVUed^sHO9e*M^MmiP|Y+Un6$u?phh z%9x28lvPzz%ZALMUm{Vtfrn{ml%HQ4Lqoza`Xp2CLKm`+=MoGU4JV8s1soz;gXZd(&5}Ys%}tL`wa-w_RU>U4IMG5eQLU^-BJ26CrmHFm9X7*k1AB!#U^2 ztiXEOy21#*EMd!s-Ro<+S^q!;@SN>b3*G2rRh1=M*dtC8VI9sa7RGXO>8>%XmA?Ng&iCNvu_99o1Ki z7MD$^@J0g;Y2=QT#SeZO%N|y(Qf(NsuS?-yr0)unsCp!g5ATi1;L@-425i*5Pk zIl@o)@YpNV@Wj%@-bO{AiXsk*47>f<*oCbB0KK;F(9W4gBHy_?ttN;>nllW>_2e`P zJ-x_ZEDzDLmXWI4?$*ZBZ1d?XG8liLqg?nOf6$KU%Meod=coLiG3AY15vqP#wxIJ* zo;{ue}9ywRs8}PTiq5=jVDjuEP3wwlkIJe(*(1++(Ue;u*8dyXddx63s3e>j;D!nbeNyW+h}>`%_?zP`U?i|!B`y!V;)H)_3U zJVg9su`}rh^5xs!hlYi!=;_&Vf2(?|*qVf?55mqPN7UAIrcf9v6$oxdeb#u0Y=R&H zbi&s5)vE;+$tj_RxQmQ~ zm8%tbG%D&6&Rdw?LsGD?cwbR*^IbjR8a4rYcnG0Q+q~DUJB`&DMH5737wuAd_kj|3 zDa~L6E|B(MQoV5_4Lqev{(}c}vrL5Py3S^2|8sIWf2p~-xsg#I&<>oL^H(7@F*jlN zb7;N;eo+}q&YucdeWZ(`N8z6%xaQkxK>ZUL88OF>J$mmxa~MOk48S7pKBBO?Q(veG znFR7S*&-Ez>PFcoOv++Rvqu!F8sA@PA4Gv`DWj1~b_bs{H* zI+(>R93Ti}EN(y;f@6q}*qOw{4>JdlGmDC_XicR5W!VN4nB3glf+OSmOc`+M{$=yS(h*WhG@}!+v-jq`w07N@|02> zJPw%LQz0e5?npRsf;+N$)v9Y-8!&C-2bxWv{ti_t?5e!`_gA~Qu_Jf+`L*`H{3xJ< zXE70BuxLwC*>zJEcYpToGBY9)r>4RaQVpJ!b422d2GbRmoZjtI@bKZC_Fc1%D@=4( zV$gr*&U>h9o+cD$NC<*;jG_q~PjRy=w_6DQrIeh^3r?sWvlj_$>snHrmC@ zwuZFeAbJe8Ai4GHO4($Ek`*w2eM*l-v&bO?3Q->C^@WMqcOX^)Z$R@%}l%v_ni|23d3c|0dA0MjEu zZNthKq%~q)p}~jQEIU|GHRswgq7N_CP|3LaP!BfF&tmcgFuZnTSUyaEk6wARGpFZ~!SKSX!nkRf&p z7yb<{HTe zBo4wh5bB!{Got^!d!NWE@n$KlgR}#4ETgxzwM^Wp2+YtpizwfDM;+7xs%zNh%Tvp4=7Y76MsjHBRgL9=3xQt|%%h_Aoz z#;FLtlK-_l%&+azsqV#}+}>)~b&7Q5@vWzZ9+B5&hnfXp*}`IWu$oXBL}j{8mX0JO;Bgkk zq8{%D_C1!p5$iJKF7nP8J0d8BV#NJ~1uCtQ-T*PT!Q+D=~!os>Cb5Lp(78GQFjIM3yHhsUL618z!YN}waJ8qo!+DKj) ziJBq_o>TdB*ptsnN*+6FgXnHs-d7YeZVOnZ9v&xhFDvp}e9qYc(8!c^O8g2yKK# z_1~q0X;(peWC(*gAsezIaE#wri4|Ir65ZcTZ*X;UOV7v%_|<=#?!R(;uPU{G_>XWG ze-SL8AyID4va@UF$TMXprNaF9vU#yw@Fu2e^+|F)dc_n#+1=^!ZO6$!&t+ME$pw~{ zeZ<7-e*SC|_*E=JuX%OZ(#Xh#XdUym%Pwq21#!!nGwU~R&V79qd<&*GmIm0XS6r>6 zJi~o}0B3i_^9%!t3+-1=ozg(3p{^cmpvdm8G$f0AOX>7W}iLF^=3UTD%^?k`_t2@byq{j9ibM<)?yhMf(&bbzSh>h zcFU0cZWC0_Uf(tM(=sjr}< zU^YSIge(K9OB#8=wwx_P|2MGQ$AvGo>l%E|{kseCk!Q35fCj7q`t_r(P8Jf^-Mi3M z;KHnL5n6YiCr6wn3-)X&8HtF3wXlsHl%-}5b@g=k$-`&wNA9buqOxaN9AaFEzpP2Q ziwDTdmo1DGxW-7Ya=i+$Bn`-^-aan`#*M=xH- z5TB&KO|YeBzeArXExz&2%-g7jVaf_hlFgGW{|{A?=dT-bCgqsw2X|PR9^R4 za~+ZQF!}VxyI5OrAHQh>8y~D@`iCf+o7*zG^NwXJR_tm&Pp$@vgT5pv0K4y6&j^eX zY`ECLjwC(~?bL@4D_i{JaonLXfDXg;?a|hjt(GGSFYqzZcc-nRIFj^r8qhXqe`qkFmL+xkpCUOju3Ed<{%npl(v1gQLizHQc{{Uco_?Ao7*mz=8I% zbRNy)Yb$w`VC^WgF*kYvT?=?&pQ0Ej2alsyuQ1oL;eEx(-#7r!(agfHWPg)Qr;azD(jxL|495#EOY<=kXF23zu{xtFH z!+hr@QPm2XUx;GRQ(sVj;SL zw6xVLRtSh`Qt_*oFE1%*Ex)~oPc~)CHwR{1R6z$X!>y&`U|MUabjvOke#d%ULnW!P z5>V3Lek1<^RM1Y`m_42VM5GJ!s;m#3N~-Zxez-CV=9U}&=;*?>nBj#*RRONcdraRV z<-5ao;w#dc(w+5TG)KdB7_6h0hO5BB)5(5O7}jE$1#ZN(zn+7EEU(<5CjqA)4Cc^} zf4GYiSsTUtW5I$22&~9ab{*;*2VfqCHZ-E^FI{2A2RK2Lrln=vE2xSI15|(o73*lW z@ibMF3Ut;k#UPrn&gW%9Mi&EtK*>9XJ#hQu*#cI>F=NcjzD(@)k377FPisI<3S>X_ zA2G0Xc!-0?|9y$}K*l%3pE5w=Ru4($MUqN}^mscJnI>(YQVH9ZH9=qI7%|9%fB0kU z=%9F>_V$eKbY)M9io_)(Xn5WRgUn*Z8ma5CiqoFkot=B+h3bhn)*~q;jPRa05A^KrAhtI@KO*&vo3O>!$=0SoDGOlHTdyqE$fy zzsGigbi!k2iVSQY{wdGtWT$Yes(l&TL?z^-=W(6YRa9gR18gZb2x6cHcY*YCr_;Fd zDg{My$Oz&%(RsN#0)m|7c$XE~U@vvw4LGHG$G z!ZwR#FNG-6d-?qF+j{l560s=a*H<%B(@1R>vjX=0Shz3URJ%Z0=S$I?fx9%e_jD{z z2ubQ5yIFIMFkCsI)ho$o!zFwE3X$Qz=Pgvp68$>*)PvHNVh1m-Wv+VTz@K2&dr?_s ztWO7+C)d$Tr3?v-HQ#wd7}0+0{$FuFX=!QpC$pbo&KhbZ*3CY=fB*M$XD%6W0=(RH z+!FWS%r2N4am-JcI*P8%{dbq#2_qkNC3|h!bgmN5-j`?`n4xZS)t1PCZU-~tWofBu zxr$Wan(`|HS^1e%oM66Mbj{#De_lW%ulaQWfi!a!@bK7>uAQga*u3Nn$V&LrgJH-_ zvZceWze-{IKdQGLfiu|DhF=InO7^!w@Fagy4l!LBQZuKMLDZkQA#b3ug|a9Mir2Yw z<4EY8cdX-N0en|n=5q>r^swb|b9?yS9RRJ5g07OZ_*eiT{J;BaF+Jzg;dx*IYCQJ3Geo0~zU`IOwKw2K!97L57NSZkM47}XSS zaBz(pTMmWBgihAg-B<6`^dvW7k)T<~#M`X8v{7B(+$c%ygieNBwnElFJ{hVp?ZxlG zF$Rjz|J-QoNeo1svD(@=IDMYa>lDC&=N^mX1KJQe_ zV?iK;zE)-{K*lT@_~UL)m@oPFVCVrkX4~i;2JHHfY9HTrw{zXhj;oWlKw81GtTOkf zP0oe`U>W7O--;`nyHQ( z`;%=VZ9)C29v<0@sDc4(+4JXEWfWC!L`Tb(*>0jbosRToH6r}>nmxEId!IgYCKARr zT>}@1J>vm6!fXfK4ymmEanO+auU^?spFSLBi;fP;cj_rhZDhHE%Ndv@6J7zABYklR zxg!)6wzkpNuIcYo1jO3p?oL9uvgwOl(tXYw;d7~#Ra4JXgM5ef5H9`6VSUBy9*mYR z>|?G9&)NsIbu$!sI`_nrC$C_VM#`jMZdfZbc+j9Dz)>D}K}2f#O^d_D%MRlKiX19@ zPqlYY<*5{yflmZ5aAa6$_aD7ZLGNP-I%P^s?mHk;lf#RfoXNW*!`7B zxlT_eDf#o)uXeadx6@)R7cGJ(aR@x`_b^eTR0qIhp-ET28KVbb`o&KMLVg>p5;X5~ z(e=Y5N5Pc{ueU6xkjfq&tZ=7qYl%A!=LG9X^h=yUT(KrIU8Arohle5%+OZ4*F_lqU zbm8JfE@IcIT|3`|6AG-yTFv*Bm5{a0FuH&>(pDnxJGHAGm84ZSw=lcETP6iS+d#c; zCV|%rWRTAl6>(H*xzqXFAKtz_h}{IXEsq|}qwmA^VBJNVZAc998JRt8+D`ri?02eX zvO>MBklZe;M^_Ne2xI5YThM8+t$bZxu5ssnr#Ig_8rYL^C&#D}+2Ud$6=i0cf!2d9 z1=)i(;-`)a?U4KIl%_YOK|$43Ol(q-9*pq}KqbvlCDHxqQ~&lo@gJELGjD=D z!ieV?z;txiq87RJ?uWDNj6X4P2`u72v5>zHMw)B;wRaGxh0b@gDDy^=e(e~_m zTS@Jp&j0ziXWTN!1mNoFxXhx<)v5oBz5kBqy8qwDVHHuf$f%GJsSp`uHH?sztb~jx z*)l?u3Q=T4QiSXzdy^z9A=!H+va{#!cy)e0x7+u+uJ85d_21PW@Ar9DXT4s}=i_l7 z$Ne~tyT%>F7u5P-CjncA)zW0WhN^+vQ9;mzF+oG4a}O>ssDrne2&K>|7StlvfTUL> zr!lbU>bi>A*9J8;$ov>4qHHhOKt+HPjkgAr!QMU-FfSooFluV(LNIOO4?Achv)PUHZLf3#Z4%e3#!TpVwF**vMI0c41Bi zPlcz(FCo+gV8w6K4vgI(=Vmj~ESN~%>`>rhjgBCJVq%5?7I+s3QoQ~^r!fdsl{DN( z)Or4XqXA7E3shNXMKDc5 z^WxA}e-_MbhW-0tONYDx8-=-%xnCKU zy5#q8-<~^+#7N-%qJ#+!Zbp$^wF8D0U|*v4!h1xgi%)uthKz=I(4kOfb0HM%4MJHy zoGx;#dJ3QnP{+UtTfcC^hO&V`TSH0V8iAwDX`&_`CL*GmM2v7?okA^G12R7h zX{9GXYg$8Vhbwwf9{W>^U2AeFKX-PM4V;66eInndbsuHPb`Rn zw$;W4IzT3XwZ@e`IO8Tvd3J;6iO=Ed;2T(ghseW|k4sKbiHZ(r4;is{S=kmkCRjT9 z$D!h@6nt7ed=IQbGVi9Fr|_xp*?@G@%Wba=Qy=ZUMbt>o$)>5|<6$tGNakgZizD9aK`OW)L*iJm%z zb#UI7j`U-ldw(C+oMB>YtP86qP}_vfFWtU#SR-j6ADS!U_fi4K+ zrDyUj7$ex)R_DX+2^>a>N`huA?l(xJvr~X_keLwu!RJFocZBW<%I~TmB{emqL*kt~ zvJ_`iKpOoQP@`?&Yxv^DV;2SQ9RMW&rR;iwDLC2)T4FtzvwE|maO+3*1{f}v)Pm#l zj#ZGKUzL}BYrTJ)z$h^^gdY6da{z-N>7w6rcXJ!+220ZL0hk4Q9-jv}9V~>68&L>% zc>l=kQj(Hn#Gg@efk+J{p|6-c2N?&9R$|owd*BE_ej~>b4B-a&CjnJ%vjgDHy+M0} zgDz`;86#AJaGqVp^v;B73I1_|S_J(HdN)E-^SqlJ+q4M)verY9BzL4n^emW>vJRx| z@McG?wOPMP@ZOAwj+TZZLnsoSsRqR7&@My<2h*~#5j?t`j=``G`r9pNA2+H|6T#wW zEPf{lk+Hm8j{Yv-N2v3HS57%bI%V8E3xCL(egk-e~x8*}*XZbZgFX5k~e zyy$JgmnDpl0HT5{HifSSD5QMm2LQ0Xs@7I5A$tEf0BV>n@%n>6@+3d%)vNQOh%NsG ztgBF$I6Hg(Jd8KHOY-RRxZl5TdXOAMSz9{=xeM5EQ{mmd4-5vYp)p!&yuWh24zJ*hxVWDf?hJT&VETZkf+~Q8Weo!Sq<8PcB_#TboX{}# zg7l0mj%0{39Ya67O~m$Yc)$6_p`b(V2e=kuftLYkiMWsPK`Mn3gZc6uD|i02NvR<4 z5nmw1JSs2{1PTJgm(K_ZDLx}Q0yrO2&q#;oWGa{M!pDJ~7&jN!amdH#KcRp?eTx+g z*b0assWklxJqNfos8rz<*5`g1Krf0|;&U)pVxpmW9u_t-JsrsImzp}EWCRass`?`nNTNe2lWp^Er~-)V4t7|t;*mQ5pf#WmM2P70BID?0{Z?xnHo`SuAQ|dA1*W^iZ0jz(Mtkp$;&EUIewy&ceJr?BFZJ zUkcEOfRR8CaF!iD2Ea)Ru~-Za0@Ey%HyB6^8O7s0BaD0%d|GRUVau?QL-lso+|trl9WsOzfEwW& zqiON+q2RGHGao&@2h|byi8*vF* zD^QKgm%;m!#o7C!c0~7|I=~ea^GT#&QaUpfjR;}@;eMnsuJ8f=!=MPh8^GH%9mq^k z)Z;kw($@ifuKHVMkK2ukA@OnwFal)06?vp){1S|p_C6j$6LI}IJ3rbBe9}7eYG3B-Elp(;?iT_V|aY-GU8qR~PK+>EyQ6WDEhTL7ExJDs=|Eo0{FZ z?F@uRf~O}=&Jc+Yx+pY*6=p)!PnomPZ#X$EMk|0giD^1aTNGqvn{MW)UCD1e0tXqm zH2|0^~Tm`ZEHUa6`j^uPaR-`!DS;6<5Go z7z{;_jfZ5y!@^KI!D4D1ArCilRJjpC*aVGrV{@IImBk*1ui;*2?N}) z@YP~K07S8X&IN-*fMD0al?60`Cj|oL|3S|rNaFFHwBV07QbUXD0csH-HndlG1lr2V zNK3uQ1=~_vPy$dE;qw14 z<+B{4WW%?Fc{0Jd`TtD>p;gXgbJTSW^ho1URYSKx2O-JJ~;yM3tr)pb;>z z(V~SsjN#Zx=!CmNual@I@RQNJ6F(s#_BIhV^hrw72 zR~&eYH#-VM0D^dxu0HliJy7LM^%QDClmI(3gm2Kqt4y%`0Jkje?OURA&v9xldRiTY zV=KVr$0Q|R zH<*JW5EH`&1{VAg@Vzlt#P>$CNzmg+3D8u2M65<~y6f&PcIp%&HWG7pON+3C!~ua> z908;njQIcuV+;)B>9LQ`P%)A{5TG^myeR4Eo_qmz2dUjAXffCL85?)Px#Rzn2pZV$20DM5e_8Ibed3--m+(}?5A-M)wW_#YKqEgnrd>OYD%{}BFao{9; z_+WGKqF;W#m}dYAHnBU9?f~z>iS7hshgS@UHJ=BZ{Qo<=H_-lLN)JFFDzCnnNf@fC z)1!!+YIo-`{a+B2YK4X)_##Iz@+K+kUO5eNa&qYyBUCVs0&Sz{OwcF0Dz$_33xxFL zOQw=q{|0l=@DO2~0nLM70lRq6&hZ97=9pwo$JnrP5H>1)4~3a1aMi!H zjq(1r?%%*bD)8M=TBC%5$38fT1Nd7&wV63|ANmfIf&@|MTV5DR<>J!fHv&VM!36UE zn~rO-e0vjow^_Ue40+^fM({w<8V|jMYY*xbI6{4rn8wrqzC50gkf9&E6BR|+u8LrT z7l;-QK?rB@xb8IW}GwEg(uF!1RC0Ei)#AdJzq)YaiM{JGo#z7G>qQ^?Aj_=K`@ za=n08P>g}=>KXzq3QAvCwqq^I@zr;_#|f+z%n1O;U^fRWVqwzYfZz;?Ho-t)EPJb( z2av+K_~tK)s}Yp{U81fd6}}${c2^g+Rb&DK~ zjuas0`}Z4A@8b4jm1uLeU})_Z!An_Pu!!!ED|vkB2&}Sc$hI=OuJAd5(&0Ld%L&~% zA=032?)&^dG~u!v|0hkD_#DEWt7IP@C3vBrbot4eSX-ZXSb-`JELk>m>;*hnDPj*- z@S#`z*k*>@R#%q_Ed$D_26N=o)2KQuDkqQ@LAC+H`EMkMd;*@t?;B@=q0WvjAId)k zzzwB}nGmxK?K63Z;8ai?BD{HRW6f|Ca(z`Z65+@uJ=lwGVErK;A+XQNT>L+LaFt-87|eTOb%wxK<|sw}WBcTwj8-+viY> zetZ^tJ~oD96Z%M~x7KqvV=&7bFv$FGwp@Y6r;AeC?ZC?>iSzkh>L zIz-CH%ZoPt%$q>9I`jV_Fk51DK4i?@JWhyrwZU(J=FK#$+5u}C3dMcP%gx=)4=`f} znGcr|zzT{JXa~JY44{^%A4O^VgzXvb;r{@>I=34wdLwuwX3Je~?ED8malgm|iwOMR z?O1M|Ph*f&^Hg!u;U40pr63DUOz;)ed=pnL$&@sQUq zua<#16LLWs$sJ={#HE&T$XxJT@Z@kH$-Gf*+2h)}x+y{LWtDf9{gbc^0S=~DG{D${ z7Up$FLaR`qI5axry{}@DL6G2lhLB}dIH*bP;PXpINO$iBf#pipQ?TyAsKNP*sK*Or zyZTcx%fvPOcpt`rD;{NLLw!?v%Ufo6Jpomp*?JiN!%spm4SS>NWt-2rVukr0j7`_> zxq|(N8{sF*5nAhkSu0`#%35%Y;LphwfYy_+%G~rJ!9N&C7L*L16zVr&nf5b%4~?7# z@CBq{Y#YEDG*VJhFWz7@j@s(#5U}pE1?dYGsQ_V_@DH8|07gNE!P8-LKU|8VkK&}F zGOKeE2r-1&P(FaYEXYIw>ki2mV7uVAyY{8LeM>-X5g;Mw*wDrnj*(x#h8}{B#DENe z!Uft#0nQzEkT4^7p_o8v=E@TB>Qz^@S1%4Nio(XmMr6UsHZ#zH@STQ+hcU^)e_VX1 zV@eUT@z?U;oF@Qc+Yv*eg*k`5KA2N~W3_+u#aN;0!ptW>Vpf^t-@H&U!TJYuBQS4M z64|-=v)cSKHNkxiZH@*#n4m(aO=o9eMtHB>D*)RG;BW=mJ055G_7B<~VEE_r=n)ougRgO%lXDm>1yt-v?m*sFH#Gp=j2}kK!IH*sfQBkr!-iVVl`rT|tC53_G>1_8WL>z`<~PV7ZVK8QBR?0Ie+M z(CF^k0BNv=%RV zFR?ei_R?}>4Lt=Bky#5I2nl956(2}e9AI}s#&%tSod%#ESdItju#ffU(K`Urf?>qbR>*6%?6{<@IvKXbWmdEhi~pJ;)60tb;?A>kNpcu*A7P^8!A& z;3!o;JCF~bWJGl|nQz~s^%u2om=mGbphuyDPyy^DJ389%>Q$DqWegjlPu&VZGlwUP zjvQkXY=Zo3k~v!ntofjr%|Yp4vY6*(80iB4h+b4vQGu8Fg<|Y&asc>=v;;dCCLa(u zfRaoj^3k_DV-$iaX~-1&!@;#h*qT!Us{;&-4d%h1Zkv=>iO%Qu?%%6gZ7+L7VTnF{dymkD(&$rObpdIeWK7X%nly0`Lz#;+N{`?9R#m znEWO8G*Ayh#;XR}dRJGGes&z!nK#m?JfIGTSHE_T1eO{6AIvO8fxo^;@hBrsQe?v| zUBOYrx3U&vR)<2Q9H>#ATXg}D1LFfejktqDYTBL`k!&yxKpp`7OMvm%QXfxLXlOPN zBk-!>`#otYAiMvZniyazAdnGGmx-9J;lBpnfesu4AKb$$GmoM0fM^)KC+esZ-`)LW zhb)*paS$nr7J3q5W9J&g`WJdI--k7{EnvOdx4S_uz#I$OD)1s}ANT-#bXl$5tIiwN zr#aP!rBFlh%I>INw_V4o?i4R1jQB>szsOYtpK!#AGWF5+e;R}LA$0(grBkq>5*9wN zt^{8Ng?p*MvGo<_)#JIL-k8eadl07K2C)c-+kcFY#a`-jxXB*U{eZ|KxLMsR%(KVuoOvS40zaW` zjv9_g*Q}U-!csHf4BoNSF{4r)xhtfI!MjesR!Z=^dGfo!%S)1-jl0Xbd3Aj{v6{qO5}M^CH0%gb9LIQlzH`~-smr5fhwO+7u59WN%5 zpa4M4jiJKwG#Uo9ok5r=V(J2y5oz}+X|~-DPXhe}f!=oT$oU$rlxjbE}*4FaL`86=IZWF?c6HO0&Zwp8Yn9>y$5J% z?IG6o^729-i>u_h)OAl9Y)3`K6oEhc?wKFoe;bG!o*2prRNx@A2p1tuBn2616JOZz zuVw+OA%^N7i1Asb3|4C&u`Uy);VKXa+z<8grH@sIa{3l>5e!U$`BFJMNuQvke1=Au zpu~gbWj`Zh#b9=J`(L*PI%&|f$ zhg}|!D7H2?(;hn1F!uL<8ffS>fM^dUnPzvcw8sGj^^4>Ezo{WAm4QP4AFaO3PnK#k zA@D^YuYeR343hVdYYq>Ca)Et*Z2R|zM@32C9pGglW)3RvS$b~<?)cnd5B$ST@KWlz;#h`ji#!I3f(f@Gr}^aH>;r80@sy@ZWx zV10lX2HZpvt~*^_X9NX5cKed{yOYiu%uq(b%!Zb>8T){ch;Rupc8bf)46e8iK!Agt zoroaEBUD=m{21;*60tu33yrvA)qmp&K$VJRV$0>*2nB?ikDUfgtW((JSx}&>s%irn z7Qn-=w!^;By}o_MP1H?KDR8ZtL{~dMc3L5B90{FcgJACeN`ZvoaC^EwLHh`S6j}*X zlXz+n#|)beW1NY1oD6+_TG|0Rx}mA5XET=8)>0^q(X0VsPeHE*Eg9Vt7*si9x0O8! z=JJkcDhs7#}%V)WFpM4L4d&&fCP)Smer{E zBhbZng5N<{bvRlNO*yCu5YvGk4J9~^B&IK5GTC-!J%(j*en@Zl`1fz$UL%#DM8Fxq z>=lbtAP|1wb@&WIIv<~Z(!asXUa4t!PcjRUGuQ&R3WKd!hAkuH!td>T%&%U7=4`KXLv z-BS4rxRrkYehwG|jMn4%V9-Snl=JdJ`~)YRMU1l9+??5pGB0ns{1vHyjie}0Dr*!a z4-EnYnjlCE(I#=kk{nLoyhTsL?$katKfTY_|rIJ_^(zo01^Y0A^~^$h#ZffU+Dv016J0y%w(^{wSArYiDn}e&nMFrarx1c9NoKj z$-9G`-`haLs-7=ADJ{;n-LNfpIrqIue{OyiKcC;;4jP6l{ufEdPdEw9DC`zIODD90 zc=^qCgi~#pgvInF)#-1g%V6;NUw{iV8n;-yUT8E@r9S9oe+6EU`Un6vj_W93>OJ0w zC|D`I3W?<&@8>SB=oJP403ej2eoj3@!_E2DH5(Hav@I|S=V%9P4~q~;Y1oC$=XqiL zb+-t{VwOkk2R>ndiqQ0*igb_nz?`d@_2D-%UeT3<5G&~XD%7OWU5y}7Cnn%6{l{E? z^tygAv4>?IKnbkhf$9RXPE>HUV?H1cp$mtHCPeAjw%YjZ+vLxbP<3AHT09Y2i?$W@ z2{6SGXEYQyPhEvh17ubV9B{($0}7=7niAkwwQcPGX711#)#gHcCMhWiv~Fo@(>+UO z9!zg|)LY-U!A(O3em2}^tt~7RY*O*3f}f2L4mAQGZ2Bj%$i|0bKEdY(Lsf1GN1&G= zW(6^w1YgN}GEd0zCoC6A!HURw)yiu|iNgn8KOPH*{=6Usl(yRD<-Gn&<1N*losk>; z06qw|cRoIRR3e2R(fi|**Ls;UiDD--oW(`Y!XWeQTZkk}F%$pU5ns}B#ex`cR%vM| zM!-kq-hOZ3gXsydeH>HMC>Q~!%)cc}kRcQSScqqV)!akk zs-pUB(k@QB_p6g+pu8#5Ve;uka75RyV(@$>BT26fYFw}0SW^Nf92SXfl<;p_TqlK%O z((T*(cq9S>u08&7T5OaD#qBWHK)AMdcBZ1HMq6NzX+rWw6-&Lqjs#F>|LpyD*v-5? zaaB_@d%{|o_}sUKh8M3-pZUjZ#d63iH)7B|;43oy7igq#SIn1V;&se6cBK6G9Rc$%tnKE;G?6N2UTb z=T$Y|&;qM#YHyElp`YhaA2VkV2I_j}4sbARs)HvV)TIJ%RAunafWyKmtF-hUdKy~d zRb*1kMj-vj0Anyd{z9IePN|^!a8E0`Nm<{cI zXl!nt2r(-C-ZaC5T>U{;vUWsOT))nQTd%#y2n`KZX{^uHD0A1oL%N13)k)M7WK>j! zAFrRo;Xrw5DWFIr`;4Qt<0#g&xTLcG)Y=Z`M~54plr#oXD~8c<^Mo*mu#>E-Hpjc= zCljr@dG_9>ae^QeyZELs=EAK(PZrmF6A=@w3&IZ6nU{`e9^XIHm3xeze;TbC5>BPy zacODKrnl#QbO-a_ee;0i3ZX_{F>DCEIdOSoJyZ8Rupqbyt>UBNojBUrVM90Kh1twN z7p&aBD!aN7Oomo5z`>t}iV#;Fu|QkM7y4c{Bn;G^Shfx|ZH!vSAsj0cx*{Nqa?W+`2 zcmnj97*1VSL~8lA`rSJ&Y~0M_^xWDgL@KvDF)#NOY%hnfIK&pjA3O|BvN-mi^J@VM zQ{9;Ek6{FW^91k_Xz#p|{`x7@&LZ-}yd?YOG$<-9pHg?hef`1NS?~goVX$cG$IVm7 zl1Mb@tib6dhBVR`BrL+h0jyKYyH7Ac6cf`iJpJc=<$XR^TTtN69zwwgJ%bZ|2R;YE z=69m?Hjb6o_NGhZ7sx5GZXg<%-oAa=NS_!F&aQ4C=3|N1{2o(0Y6Kt;1OpHj;pjXd z9t{#DYAPVW$2x9-W)E76m{o^5a3}(|M)?zgxTU~FcLH+=U@YQ+7;u3sv56ppoDUu% z%1$siF|P$x5J)9B78>(Rs3G9jO3;FAt}nyI0+Kj$*lVGWgQ2O0`68U>UW?mvoH#*Q zJqI)y^XuSYHdK+QWDz9^qylytI0LwW=3r(t%!f$SUF38dR{Zcnz(WQa0baNdyPvmu z{V{ob88EgGC7h7@2P=I;ZzP}VyJh)~Oufqrc6B&SK&0@^u-GFcIvP9^On6gLZrRz{ z0XC>7_(WKKu9l z(s&;hur9EndjgzN6J3K>j{+Yk)5}K~+hM?moQHWQQZnReil_k*E<$?EVY7z`VU6*P z8Z}g9wS5KHp@~pqlxZTTC1x1%kFdac`Zs&0L_r;%9_H&cQ`ebbeUoF^$``ACkwzA> zN1TuvZ|p*J2KxlGok;0kvt>K*umUXUL#C3$&|_5))oW5 zOP;79VL`4KuC1mfz|Q^&o;Im!`B?jfK{s~$o%>KTXou=uH&^d&?2+|55QYk)J&{+0 z!8sdl7#xI9eWc1LEsty4y`q;T)FLn*z>}X(edbNZ+hO%gx|jG|4`v_m|F1RsaWe-+ zXsCrHx(y)llQF6^U(h_^B|;is6RJuh3-k~)R3GCzXAIQTY|&h6MZLH?Jwl@0*Sw=j zohcp83HSFxeh!Wpn9zVt(#}{sp9(}#NwK>U(`q+*n|YE7Oy5|8EKoHP7O1EEMd5<0 zBrorSLIZDnVb>j)QXM*^Lh}fHVF^{uUc4J@+zEd3`1aH9>F}M=L(>AeCTM=31ibV8 z{MCK~&mV0YV38kFj{(4=u|5R66eV_lxfd$TAy~0;-kd*gz~--}X)60xI!cQ!rjh5s zHN03rIbnJU6}#5G2unO4bMF0y=)uC7$e74^5m%lr20N3zDV#%81kX@Uy-R<|(n1`faxI zS6*)Xx;2~bu4dXYPr@R9!l{paL${IEPn#7z-wjSgKFi*DQ`XgZX!w`{^<%Okr_7sA z_4}7yZLLK`asmfLmI`+@5br2E?D-{dZkoUC$no$GKXi}mYYbCr<1d@&&f2)ms^w@n zcdg@R^^ceShHNqY{pU6LM9zyete=qFr?2Fs9G64deXlsj%(Iu?KldYZ-on8}mDWc| zM%N_YrJc}M`&w(3xuEjxy;Zl1^YW|Ak>yWOGY)cDdC&Ldc$jTZFPZOd6{`@sIojm- zwmqwUyx`~OLbc`ZzrTkc+~ePTlh^-8j`$(p@4C4&9b5Oe4my_WOOhm7bkNwKCM3-+U8FYC)@}8aT$=?eH~7 zO6bOy*MIkToSz7KRPcNFS;IaK&Y_1}tF}7Ut>pfZZnlNvr6~iQM`q5|v(fu;pUxQm z!a(k;Z|SE*o)tRWC)-o*#5r3r%Bk;V-R%6kq@h^b^{S#6$MxNn?FOu6R7c&tT<7oW zMf~7OiZoxVj4n>HkhrNst<<#fV0g>5zGdpvy+&K|68F3ofla1Wu7$OjDCdmQyN}M& zT)A*8)R#T0i+5#DgwBSz?Q-QQ>Cb}Bhsr&Ez0;_4@36nqN~2McWKp5BeWqajckKx= zHTDor!IWfcr?-(oz4q=S-t~WdR91w2C` zj?F*EC%1V9>qk{76gM=U1@kD4oba(AS?v^jd4X#5`F7*Bo#^$2=YuU`GB+oT;-ATf z+0|5jDQF*Zv?Wia%3P>qE~mO0azv!4;j@AVx0u$!tb)?rp}p=)eFrk=gtLX{jQVAA z``TOmRP!|BD7v>Ld2Q}<4C}3vYMIGB8Amhh5hexqB&VMQgNK zqs|N8m@XfgYEGdV(R4^XLB<`lt4pUu?0(*?fA(CpTT=j2e8=aH3dJpAJ{wcor zLF~o>2i}aPjTiePYCgF4?-?;*Q&rE5bjZCpU(}2;-KABXzGSzQ%iGfrt+Esc zY9-b~_K>BHJ1JEN>ooiJ7vEm)kC;0_-X7*}+u$%=%wO{MSO2Pjj&s<^@u%Pa^c{5? z+gD{XonX3F8C$>-l3JxS0;F+gyns|B{4~fR<-iI;Wh5RzCV)h zhqz|ONPQQvj9Hn;>g)S9QrpJQJebvF1m8(UetnvFEm%uu<)phWlkusvyVRD_6a20V zX~*+PP+T1dU(4$qvjce}Ll;3l_Iq1NyHCUG*X8x*~X=#TV zgH#y2Am&wFMEHzK!*p)`nq6>g`D(p2TbdXe_a(iQ=C70| zyb}vXF}^e6r{YzfMVx*qTIMbmcvXSB_+_%#$nz&7JS`RA$H9y(f={+HZb- zcv+9UIgO9_Sw-?(W(C+)|>ummhRMgWmf2-??7W^Ia}fV&40lBtk2!SP$E*`uVr!s54$coY0|6J*yFA}Q#8L865=nJU9tQ2#WbhbW|eek z==DLH3-l#aSGBc|m}T+uuh7S&{B(bE*)L0o|FB{n+qF_7-rIX#Ou2kT}@^&#^{ z5}qQ;_4n%D(SzhY96MPc6l&NXJ-^~+7XF_6kibR7 zW9oLK171&p_EHC}h4m9n+2r~u!(O)L&G6&eX4*z+kKo(`Cui!b8Pz!ZxJEVjh&2sV zLwsjK_^9*v0Z`&aAxMvi>p8WFV`A+x!4 z!^bBzB~5cPCD8s`jY93p*zn)6H;N&xD;9!Qzg~a;y3#KB@wltk^{{s?6sc{k7XBsb zS1x2TOC$uZg%8F)?rndo4a4FX{>MaNSYdLpXrPGB4h1nE0)o9 z>`u?m*=+q^?oPjMW+#!>x{*>fK3j48en0PP;#5)5;vK6vV+<<8Hku zZ@+CTf3SId2pcGq5^7Kk^5Ni39LwV_vOFg#u`zp|+Cn(|%)8NW_5DT4$or0ollK&V1?bDQR{k#o6DEu@Es& zdEHCA)8V?Rx0+hg!s}7m^?35>Lm`89`TCBS*@mL;mZu!cqZ}mO)IP9KIH)($*<6xa z|M5vnQsANM8I4V5E=!&J`PQ9IO0L(I>1|ps=$fmR_7rtzFE$i4_IO#piRy{?#{2&5 z3di%VxDdt%yi%?$vh8i!2BnD&^M9F}3sr6>?TDA`88iHqnx&h5@tx6|na^=r8?NV= z&+KN~$s(PWy{K&HFpMSRM*Q&t!|YP+am^AC>|<#Xc3yPowjX#8=y zc_WBoJ10HA#APOo*XYdy^`X8xwR;8bO9M*>_Z?#tTkd;vT=&kayvP8ZPjh3ZTQgi+ zcgC*BUe5U8bmc5J$N9k`O(sdXG1V%6%2zx!N1|kVJGr8BY-#F?grY{uCB;qs9P8_} zPkg)b^$@jM`NT}JO3PH~+O6mj2Z1Nj12^O|+Gym3W1MtCj)h6SRQtvAH1Jq_>b*rq zsSWDYM#YJ^|$5950P}i==J?0D#B_|g8HdM_`lEkC9W*4$Uuile-!JFNB|9zC72hn^9sNl3~09{1ej-FIDxV&(kmN^NEPjeXzIzqfQ! zxA$INs~IupQqrbgeK2s$(Y8u>daJA2?}PE5zZO^IIQ+&+&j>YW9FSAbZHt!RnE%5_ zCdaFDD}nEAoS!<`d!dTZD3w&h%yZeqoo1oW>yEUpr&Ci#%rDf&yXypgShhDu5>L%j zl#cM-*OT08z$NC+%y=T&(=um|Pt(=yJ880(Vmu|>n<|2B&#ea;tV2f>s(9p;c9Ukj zP@${hDXmfC%U0Yu_E(Nrz+BU|wqN5!#12kL9TJPZ0dZ7~b|SYbSU=`^>~sC~B2x5H zX~lY~$nvP+tIx5Do?BhVT`!(a8RYhz{QKuf;hy+Q&T8cs8YkMnDzd7!X{Z^{$J!q; zdT+1B$US+0tJY7jx2)SFY#u}c;S^!xIg|E_ON~Exl)LNKCK9r| z=@@sM8|U~Gy0p+P%glefU#WeM&6f<-GY_df4&79&t)hQ4yFwk3f11f4LE-u3X*=G> zF>GZ&qxoyYpPtS$u-InM%=8x=f0>^$GMl@5I+R7={^#J@`is0T)STHT%JLoJMGG?p zucWQ}w6|t(YM8v$S$zW?vo_BiUy;A$Vh)&A0M zb(uEBD&!0KQp7?+^1Wt%>5abljWG)?VdKaC#XG&3R}Itisw4bDN(MnsrQfKfF9g=f1n)PM3_xW%=nvW-FG$u6F@@ueMmya2x8K{BTSmeoexM zDXqIsa8!)Lz23gNH%I;3%`Y)egnTT%1(oHvbeGjPU&(6A=;SJ$dP%vyG}%$&IZEdh zGiY$!srD;b;**vd?rI~xo3GO)qK?aK&P9YTq=##8@IGvDY3}T}N*&}#MVaDpIBYO= zPA|c}aKcuWeheC3(P*Xfbu)qDZ^C!^zc= zBnl^1s)X5nvNm!F@!j9bLUpEQj~Nz!qTo@Ms(fc><{(68IjTudwz{mX(WB~OO<%E~ z5c54HH{|zbcwfi^yOW{zUS5Z+o|>?a#9zCR())N+{?X7Ao!KfbnW*b1wM~lfxXYQKin3)h~7If)1UA?#aPWzq` zb$0$sO5gT#{#yL)^f)C{LP5m+8LQ^)3*7ls2fYO13V)MF?+3Pn=rRW_8QGxaevo2fxLw)r#haUC&?F^ zq8fITXX_De$Z~EpdD_}{Th(1F|Jgta^;XZKd}z$-;X)!F8sgT85ihg$^FcP&3oHXl zrdQpqsiuX0b#x`9QA=GqY!O3~DAgk!t8lSn&{4niMB4dd`}am&r>8Hf{C4_+^S6Rm z0!N579=Ol&pE(uwx=G=+!*s`#M;m*8W_q&L*;iFB?+SkyeJmvP%U#i>vAX7*f?wR{ zod?g=Ov@-HIY%phrG3U)>HG85Gtw5ZWRbf4qYTe|O3BnQvZJpERTI!3ylefJ##!#h zJH5b2nYqgLGGitFM3ySw3)~xiW*yo7%*+c7`uWfMs49EBA0DoS)?`eX**jV6XRyZc znDY+P>E1OLNLgRd_`TAc>2u2^Z*tDcSnvAy*2I3PRYuj5CA;QT;(7LwSi=hkCipLj ze4HuRgyve($$3#k9p*WKxgThLxfxB+kH$PkY6;zlzJEP2l9 z;};*$+$uO%{`*qy)qaVM8uuWFDzX!E^K~Tox2I~`Dl~q`@_ajbfrgu>MYBazuvt{_ zq)2|=jO6vt?>oI#05&?*@wSzw@G>o&|2~J-AyIkJrA0`9Xe?F zOq-8F0q2dT@wuN`-R-N3g0U~WLW5qL%sGj0Gp6zA5nh~s zEDOs>l+&Y&T=Y7DTtA2u+Rl!Ksx8b-ZxRQaeb&(2r5FEYh$12#d2?bk35&$r1M_6khxtp2w;RPYbtIZef~(a^>Gd0<&LkTi zrn&c|$ivlWK*qjHs-&o!*(CVxkMvn@zod-1P>ZmHjHD|=m+n43qftt>AaB!ga(sLw zbZ)1y_LmsP9)40)!%XXkUTm60d;ub&Rf9T;4_Wm%!!kV5?CoQ?o@hR^kk%61SM7Wx z$M>lC;fsn&w4DCgib}lgOVsf*^Pjx68rIrkQS+b_&DSCt zk7#5MO3g0(nQa~_NlunMcq1=Hs8o%U>#kNYIA-ONNk=#46Po3BwU1{vl?Uy{PnC)z1pgL;CElorwj z(YxDnYL@nfvuy^48B7OKP8a25xQ>PK-eX);eK99oA15%`!B@G|Lc8j~7T+?JxK7;? z`qYfy^-#gG>dDIv0<)J6b{Tuyx@fT(Jt>!E)f4|xarXyvaP@Zy>PFi)!+oh=$#aJ` zo?dbglsu@D+WBaHZykN;klg)T7Wa|qLb=jQT&=QUe>Z-6Z%q|9NYZJ&uQPcj|712T z**Nh1T%9jFc74>F+Og7rHYPH_pT;d;?^H+iEe6@n*0sSr6hW8qhC(xPo&>T{q&7z!~RaR>1uBT zji#vii@A}6psZb4-@aRh# zxNk2oO8>134LBxgeWQHv>?}k@Yh=OO+zOGV2_@ciR|?2}?~m4JEh)+GZLfNMcvY$4 zp8c1`drkh&J+$`Uc2)8*a$1zk`pVCCK}RReWaxfDkdPW*>IcQGOA3n=ln3T@Qum7F z?3nrd%yURlMLY8x=Y6YrqYDk@^O=50>!lq-VYkVP?XTwDn)!Km;X|B8QcStz-}noh zqL-8m*@S*nsuR=RD{>#s?Rmno!gjt=x_vn6fOYeE(sSxp|A@AQ3GK6An&LJLkWrIZ zkMLUm`s{*}+oovr)!`$zlJ_w_N{5rWNL<^u1b9gb&iURrcXUB|TWZ14fWR)X!&Ju|M}EvGYL8EU1MJnP1=DS<%v*;k-RE|H1;A8*MY5 zjK++32Q#gGaXD8UZW;Sbz0pb?o+q3{7e6|IT!k<8ng&^)j^h8@rZex_5TtL|n#4?|rc%qU z?$h$zSjf$^UW+ErIc)ncEzfrW=NAlqLp;7ga-wZ-0y+oBOp6s1eV+3W+bdY8b}sr% ze7K26_n11*mONN&UF5vjZLO2P&X`-(eei$U=SL#r#N}H=&;7dR&Se|vtIxy*q@|0a zYZ)4xi?;1*?IIot4oc z1h+p7yG!ehhZyHdJG&M6$DKFb;pi)Sv2vO7hSy#VzkAH_NN{WLq3pcJ(ZZK>WZpv> zm&wZcChnP~h6kNzziCanc$+ijNJ)*vvYE)sJ<{Co21X;Vl^d6ydeQs-GH<(j>&#~n zjvqBV(Le1N4xHNeTt$?URZVwJ;AG%2uTUPcxGt{*KRVSlD!s$6mo3h+?K|V$B$E4+ z;mx&6Zzc_Rzt?_yza*?3Mjyi!*~eTVSEouEz;5}*lZoSQ$rFofS0}bDE;SsrQjVuy zQC&|O{+yzny6wSOQsgQ2o1(pWWeKYS~vAJQgqkP`VAM@Tex1k5|TT5o|9Upozm#>6>bKV`C zJfAVd5~ZGcQEvZw!R$Dc4Zv0N|rAxAk8ng+2mAE&Yp4*q7#|yhsucN?j*00}sZPR@5Xt|GH z+`v9Buhd*tnR#Q^SSBsU*QdQ6(Mhe35T8FXArdxWpsOl-MSN~=*~<~lwT1ff@`t~O zvuckV{@y5%T(I$lq);g4ZO!>GdgWigc?v{~R`z>IOS<%RJ`%9ah$*s@nQvJCGV)Y_ zBw^?30dsNjuBPUBkBOedUJV8pKFL3|TY8TCBfrCR$R(xtKd8Gg?%Z*AeJCRA=a#qD z%(zT>#z-uGw6nF%_5;VI-oRS^%Bqcx#zp~~1*bpdE0s-CX=`oGX*ywd?kRr?XewUtaS)vdt@u|%qs^akaK zpE<6B?@yK%sTNt!Xo}c9TdB{DDRQ0^%ZbUZUvN~Cd9k07fqu`i@8-sy>5}v-Nl@iJ|kqZw~I z-Isz4M7V^BB`&>8G$9qdq^Td^(H3#ndix2n&`npvg-9cv=ofb^>Bh!J{J6>+T>W0v zzpr8)6?sVWbvk-&xVa-Emd>Lr>*Q=9mqPWhp=3RGrSe^pcd-IH<7WGsHQCbI8J$GC zX)fHHoW5r@{&Rn5QdSh%*6L`$@!DWN>Hg9c-s10-vGiN>+b4##&51-D_Qn+?%WB(v zSO})Qal@>f?);~*0IlOOug_kYKL5S+h52U7(&#;1rt@KsCi^bO-@W|$u5o`MSEhM& z%<_q;d8Ztmx(CmnxltzQ?iiKjQh0OqI>Wt_wWnQ1*uu_iw$98vR~NNVk@8sEPVla- zKcl5$o!Y&;oP5 zMwK%j@UZ<&y;v`Js6JZeDeL(3k5>u(H^v(VM!$#ToeBGD+1>44TS#1+LmKyP*M-`? z%2NT%=k8|tGrD-ZPI$G@BoAoy7=$Il zxq7b67*|c7nejM3^~_G-($6$;s$DV4M#`Zp?IWU=PK#}^`TFxCKyca#=6>2db8f^a|yyhqL;ZlZG-G!Ux!>Zhh zYUjTc%lLX6Ca=2M@yw8o-sp1SE{*ShKgC?DYuuaoC+oL%__sY=vpq@fNkvR2`4U}D z%?Mk!R@58gaaKtho|7NyPTD?rRm9Qn4QosCpUHi;ELPsvB-a<1I4QJda#tVL3C|7G z`ugZB=qfPFPl3cuIc<_++vYX;xS_J<=*2r$q-qEM^f~r9eJ~3jQTAM7Xwfw}(M9!g z|3}Xj+xoFU=fRFZroOVcP3DB#_Sbl(dGghaNot>JP~N4r6IlIi`qD5aSMA-0`nYQ4 zH!mr&Px44VNj{Nywl6X>;3H zpL)m2awO7_JT|hi#PHHdqL5prL3e}WrGBJu%)Cg}l|KC-S=@GhCY|`OQgK;98mrG+ z3gIAYwKVe=-}iJk^}kGP8BF^7q&0D0JPR2K&_7ETsC_Tg+*;5nFFz*y zkme@Ga}`g`jT!^#heh2?SJXDt6Eh8h&c%DW*Mw%XMB7``U+bskPtr35nN$okS-P7i6HAX9nV(mdrq8o0)7j7N*)kx$2%6s~N z$+?<3R-c7BI^&7m;Zp{$yYjNePv07SGE33vcr8Hs(A=rmSTd!tr>BFj={>LBo_eci zQEeO6xhOWSM>_XY)3jq@UL|)y^0;YV6^jM;=H*X*eSwKAx{HNWdfFd0OSG?L1Ya3C zEjHGnrNZx+2b!eZUuKhmtd6RXCX-2Ill1eDE1Dnp$MZspHyICX~` zc^z!-EFpOl+nZ%w{lP#YPvmm7dRSZB)N{F{iHp1DdLoiM-~2Yet$wUr{v@R{Pf$$T z_6duxwypLT7&|`tuwF`QG?$CvUn&0Ge5_?Q{LQ_5nM;gxu507=R<%YNBH0xO&ZqeY zTKG)A?rObqC_VMUt6#fz@>g?D-qFz%zQc6Nv^ChBZSOm!cawW5y>QG_@^T!;dn!V# zdwbWbxo>+JZTCk$w0`=n_g75d(S(wh92@!WQsNBdM{XW3&XlP9OHy|zFl(@pvU6N4 zE7X3pO}(gWxanv>paS_^&Vd7oR5#NeY8f1o|ITS{Ym;re%Sgc-XKz=e!|PH{sb$r*oL`!h zvb`2T4lfcN7{eK8_wsBhzw#bvwVw`4??9{*95xa5x$M@w{r+iy%U`Wg~>^EbZ%?MQ+ztA zN=@D1`1_A;qkZ?>(8%vGjToh?Ia58LFV{WzARDQ%9Q`HWl0i?gzGbWKg|O|p&c7W$ zcgB%amnrKUkYf3~zA#Z*RGOXg+Bl0hLp{Gp!23suGaUT&YfOhWr3>$W&-*iC zRo#}DlJ(ML$eY^uaPw))gVi=6mGSr8R$jESE68VhERsDkvv?c>CmfZn&sxHQ+4jzv z&D+|X)|wfyb$x&)-_5B?Dz5%N0YCx2{?p%p_jk~UAe;PG;JrOKal|iQetHnRtb@EH zs32rvZ{M=59}W(NNl*a*007WnAl3gDC=3o5J^yO{h?BGBrjiJPv}j|+HqB*!i}{)X z0002+{{#ATfBy=v??3TTK=8k0=E@%dMEoUq^Evv23HI>&0RR9101XMU$?qSH$)uwQ z!3$gCHGNlbVo8lb6h!&&?;Tp~;l8YR?%p}J&@>4E004jn1@BG%3kYHkj2%4xTB?wc zbkQ}mwzD-i*44m7WyLw^iSY?pv<_1??Az?u)c}4x00000pn*X)`R{;dJqg^r_0ajd zuTo2J@{FRGhOw<{uYumaKTREO&w@k}00000jRCUBe-}|<%E$P$d;z_Mk%?KWR(jBV k8vpDUF-bu`8>~qz4yJZ`?}um*Yv)F)Kuj5lO7=@5D5Dfr_{oJc9J&O8KS4qIqLzEYWS^I=rcVEbwd2G2B!RM#4^QZvYL$BB*85RvmonXR zjr-SfkI|?2_#eo0F&TOxe@OV-ZTX(K{?-GN4@gynQy*DhCQp)0HJQ1q`&6sGD=WzM zY!71>%M+TDNj%dFZ%6tIS+{+^C9&OG-0ywAO1xYi;G=$3j`tkj% z<+;zpjzQ9?ZQ~@V8yCG83%e5%5*h~`+O3Py6eY#CUh8mDF(YCw`JcD1l9G~)Oiivq zNkX4cXKPQ-%7=a24gv}7?ONptC-={=;o~lqxlZ+Ltgq5?>i!*xw|8}R7AOB7}s6&n)%5xtaF-d0l7clD*&R(Y;j(w_8Sa zw6xBhKab0`D7rQNE!W`k<;z1hp|Y9=1{0Gs7YF{kI;&rwLPJ7A461y6yu4PkG&Ai6 zDyJrCO7GZLE{}W+I=F4yHouLzWcFYo&-t;1iO$46wlSuy#d`U$dQfDcU6WeIXQ|K4 zyfDt=cYlRfbaeDS8qUA-^VFn)_T@95+y;E)l5H(5V?{h1O-z2&gwW>x&Ux`-c7EP_ zFpyT?z@Yv>qDqP9g0-KYU&QOTmS0oD#5ZD_DaWkD+A6%3niB*Iy_X#wQ`FcDOC2+0 z(^4)lUx;t24P!7azH#`9lakT{#f-OJOLl(!3bwXW%X6cn&531rmoHzwynXvNuWF;G zSXWN2_VF2my4)Q*cFfJqw$M&ioKYqNo#GYdB-a!X} zq@*N#2R3&0{Li-Mt{(ii zy2@=_xmMUBR^~QMUzlW2Viz41^=0ACojW%MD*HIn0l=7FZKx z)EiBQf^JkS^?SMf`JR%^s7g&wZ^uJN|L^h3D`hl?504KHs_W@_O!rrauaB!z%Um}z z`(EJ{qnDGLYg-?2N_#0ZER1!xjg8H!8n3W$eCqQH{q9UBPWW>vkXjb$XK7ilre|ek zU9kK9)Q|DBcFwCaQdRlFZhy-0fqj+vyZK{NpP#z)_=~vDT9{+0;flM9%R-9Oy~U|sw~24LFJHcF5nJUvapK31_W^PbkDc6wg($K7${3tV z&LGw}DQIJ5CFrv<|JthULv^*_vF4`u3rl$Ecx%RRLyX_%`VzBbh3k~Ql~q<|rUmzY zVTT|7k}0tQH-E}8_&87XoTu91GuL!MU0pp*cK!6HzkmOBRd~5wx^ziLC#J@9d~#C6 zbuw0$(-#|CHBqRegw}DSG4Atc#Vjojnh?QbDh>{>N=n?6m7B01;<#A$#7 z`}gm^diAP7@r~{>H}2BE-%FjCkN(3qFR|-mw4Y4gTw`7TH1D~N!XPSwE9<(L+V%1! zSB24Lt@y^x`LVC*RE6DZ&BD`@167;RI!2`qgOZ&-v|NVn!_hjpj4GFjZ}@wxKB>j- zkJyBN?Tgpb=Dk@cD8goE9UULdv-G%nM>Oc<=w9WIuMa=1^YYH!yPjTNot>R+HDYUj zrGitnUmAMMjVMzwv79;;9`sxEd}FcSd@X}tRKqYmJv~a?o$HfRJw+j@&&AgUDdrC> zuBYLMG}YCaxc+hN-LE9>e);mDImc*486oF!G0DYK;~QTC_t6#?7xV6miHcIAF2XT? zdphcQUf$B;;xpl51@R@+>~CMcew}IyU!pv6WTl!ye14upKC#%=($0>2&z@Lex0gnF z7JAVk5}U;0*}%@m=HTYWIuZ7eL0s(Q$-&l)OI6EF_L5RkaWx}YW~ULQkpn4e^6J#% zLCkXH<>fS-x?g&FJcsHIwA#9^uPmg=g?YNWm(RCeq7a>@lu^flU#{Wyy{O)v=eIs_ z=(P4RA?LBr(Wfbt&XzlmN64myD`w!v9V5@oG^GiVN&A}q>{)Z{*#ILg7wkl8nRVQ1 zpV%aq<=Nq1wP9_EWuh)SjNdwERaP2tMC(_ij<;p<-Rqg+P}oOCmT=CBYJF;|w?yG- zsabu*&0n9+UJ_gEx`uNw*=g+8_wAdkI(1krj&#pG2H$_Jm$-+Ahka&hXtniTpkRfG z%*tQCKAb8Og2JnxyD^@bob%_UcD8|m0qq(6q2b{gkw3%3r^4k`lEv27mj()RKFgdS z_BIErgRCls1!nd6*J?Lbt2TQ%zRmpoODFE@JssmDkbt9M)%NVTxbNERaKpTbn}h@* zj!8znee7$RriR92PCZ9_Q(QH-QF&KwtsG~U*XR#x4`pEb^1O#>T4L(mfp=9sT{yqjR+n4p*0Z zul<_|6J4a6+p`++8r_Lk>Mv>oULKq(Z`sUDxkroRvXc{E+{R|Rrs{QbbCm>v{1-1c z&YZFRmZKNRqOAYcc^qd^{&IhR|KY=j8N;7fR*LcQX|hDlxR=X>(1gFV(HKE(p_U1+ zNQ?d6*SC+9lr5NXhAsYu;m)7x#DZOYEbqdR(ACAM$cEu`?m`NBzqJ`!Blncb%8jA= z$P)VjG0%BR^v>J6_Qh7%;4^#B19Xgi7T)h>;M6NH`}r{lwRp8}+II;*nYUmpH_F@m z5kSEfywYI2F^gUO=wYuBi=e0)`qW_cJ@#M@PR?WEz9PqimzS42Iy=#Dj50Jz^sX&-|=ml6#n*nW>sAR#8#mv-GF0A%hl1Yqbv-78fg>$2GXiWUrt|8PwP+}JUB5iahii;Y`Y=X1!iXE)2FlFzFo;o_Vt{| zE#bQI*7@&`i>;Ea?3Fg1FO&WpqNS}Z;Gn(bPE8<~{EI((P1e%V5@(}qy3)YdcoV2g z1U0xK%FW3svfd2m>joAc4W#VMFMJA3NQd>p%&*$1-x1}$>p~Sp5mz{A8nE?%RcvEi zQ)zF#$jK3L8X>bXl92GnN&6YX9UJ{<&^LScRlNdMl#G+5nK+siW&+L)y}j}2yOyZa zygWTOe(O}3KD*GEB-&eD{p;^wb?3_~g%d`_mrM6-!KrG7uv%Qs)YKGS+!&|y5nyY; zd#(v9b0k!jO3w%g4SfbTn;xCEEB{(quI35KM^*~<6${@`+!TC=`pVp@))#vL1qy^j z<0_r7^IBUqc!#S>O9fAz%E)wy^6dQf4gKRR3jg1~4!ws$Sd?NZsj1uh`+dZRqLUtY;JCDv+aE5jk-9mw|4A~h>SdX^r*sRZ0XgRT81!s(YNMJN7BC56>#Vb zKJ{3^x%@#8&An%zk=YSm$2o1sy*b;!ov9oztFC2fIfgwGn^~u?Qhaf{)0xc5+Xr=Btfz~fYHlr~n}2=4PeS4yj<(Fe1ZuFny!==(^E$bn_Au!eaUwlnR7wx?&7I&t)CK7M?3VR~X>6}{*XHT7hFMSRO>VczFM4u%foM{tV-z60(XdkjY> z`)zn^Zme%E7;g?wju6(4t`J$4?43wf)q=SCojm`x*cO=|cFZu|T&FiqiSUv@WJFyT zbG7-F0@T^4Z;)np{I=Ui7b;t7XjfFLQ#mo$93MrbMofq=Bi&)R5C9qC>#i>K?CQF%gKBcwLehu zeR-Z@hCcD6&19%#M#?i6^Oecv1RZ4M0=iFh>z|pQcXl-(+ zIOJq}STeJ%=F=xn4-XKn=$IJRQ>PZFBJ|IwL?tJynlm1>E_!k&dj5$pNx=Ks+Iz}? z(>7lE^_D~TLqeG1AO7je|MgXl!Nt{y@OE%yk^~&|(fjXr9&u7dg@>nTWIc(GkE>PS zIYLJl8y|m(v0-h^n}LBLPD$IqpyB)ZnOlwKPU`9hf;h+b)%$o=sWDSwn}tUayy(A* z5vvHkf_Y=?Oe0^*qbbI1Pbs$cs}C#Xo{y&a$;k{p(z)8JtE+Nyat1C==Aa=K77b>+ z85&lX6)s-9RaWLzvNtP++xTU6_C5-VrKKf?f0_Bczrw`(+uL7*YzaDzFrPYgT*z5I zuT!{8oghU)yunYWv4iE*+jH~^$Cxy-US~$<^8J~p_|Vwc`1mo++iM*rJeKF4jEz|a zyyx-T@D7!g`m{8@eaF!Jc$=s#i`^+9Ay|mH*fCR zwd>-=i;ds?7Z(@1x^$@?L~LkP80BHtvz*&;Qcw^$t$}l&0q5g~56Od5!G!-qUH7WL zjyrpcG0d=$iGz)i=N;TsArPK&kD1Khx{_4!>hsRwxn-dDpwQ6VtgN8m;8ZUOCr8Jz zHFXFAj~{ERsj1=K(9+8JT~fSz@18KT$~u7i`+^|~@wHbsx(jgDr?=mFS6e$8#G2&3 zGM)+CFN70_N>h~FL~vja3=DK}aoM5HM?@sAD2{Jm~q%v#qUdyj}^N z@yr_peU>@&n0_|9JaTgzI*rXabZ`84uC#_Ww!_qwRCj_ zB+fGtfuQiClP=MU=PBQ_DbU&4*c>Dc95TrM+fEbH&{Wkjc;@Oa+)Z?d73&L0T{3p^6a!p3%=?AzS3cb3)>1_o7HzW62-x+9@?1+xb9 zK0Q1xeC-q2&NRaM9Y0BI@^8hqy*NH`yIOoZzx3Ce@xG~_yO$>(yg`I~ z1P7LnXU7C++ zf4Onf6qS{S9RwJB=GFZ^ld0pM2kuqJLHLl83MlLa?d2&rK_BSnF_v=A$a_X6IQ1dD zs3&NLT?0<&1y+@WJs>p~?2{@M%5GS2$f%32&uhxa?2=JOJBH#Rr*R$&W&$N@b8)^+ z_1@jP-#R*c))zYaXaKH6{WjJ>9DTgK>ptp+)O`4U&GUZixbuAL-At84#$MGOc^rd+n3(bh#6n=7z`u;HQnXb$LYv6B84$p|r|)PJBDl8{t{80Ss{_ zxn*g7{=tI>A}+tRN)G9BKIXG%MrCmK^qgH@8(15;00>ZcMppa>-Umb<3fqtIaRpU( z$S+4iM~XU)u;Gu9*A5K$E&T3)$W~0XB09IchJ)g>Hd70E$az~~cezCiy@sI2wQQX{ zF~5!S%PNw9jyM-ml9B?)9%g2af&?fkD&`n%Z+L-?F=@Wd1SnV5)D+zx8?x~iIPod3 z9UJ4Ses3WZ3C1QSD%0dW3khceDv<@ZS{Ggf-U+EO?H#B9j>Et3&_Us-G0oS`zTU5% z-4R^#6UZ&#y~M*u5ycBTckc9F=+J4ju|4`NBqD+;I2Bmg{`;G+-@hNDq~x*fdCgt5 z*7~9g@Ku`ez+5G$`uO;Gi^v>VVK}f=FW>+)zPMA+kOq8LZG%()(-Y$;=%}e*I}R(p zWoCE4x`70ExV!6$X2~-Px%{T?OaJ}b+Sqs?$%u2=>ZNY}hhqPZ-fz}L8d>edy4Kde zLyumVd_hX!q`Bndvks2L#K@S?M@iTn5*++Q#A6n$_qY+?irk?1gQFMhP^PG5j*EH6 zb~m~H$CFj#`Ok=mBvcR18`Y0A#jmfeRjw}@P?c8BemojG) z>nk8gv``+smuIJeU7=hOPaBYduW#k$fzgahF&ncnRfc7*w$*p{6QQ~;r_M`5(7Af- z$Tr&@*4EbK^dh=iTGI5vHw2wfJ_02NM@QWzyYeCa>2W>=6&W5Hf@mp|qV~GDScBSS zZluX)brEbO$c~B~Lf&ueKMrxXKZfe+;dyz}?*n!#h@$E*kBV;|K6FUNzGNL8_N76I zO0IUEUg6z#C)^2?uUD^LoiQk$>?@1$xr{yL6R;`&t_MAH$M)^NCnn<3szDK6=H)?+ zq9hHZ$hitC#mwwuGGraI_aI9SE)K`gEb<+=o#@I~8ZHy+6F&D?Q0rty=S00zQ=)K8 z>T?`DPQy1}s;i|kG|ti<7JzmF@%lsHzQV#nVvTva_~LT5k>9#YHYv`3yY&KECmIo} zQmlk}6tpo}*-u2xB&p{wbg7RuHD84phzthc6m(*s+@sKti#6-*K^7%<6tI{x2HJXh z%gdw5k>UFzejP>Icp@DvBP;vt*|Ufj&~bZudyU-(1HXJx(+G=?@6}WljgE_3{&-OJ z5if8KIy{JP%jeIG3vWtGMVG!ikp_O~?JY}9{Rxg}s&|M$kQhLxu+e;`w0GY=VVqpW z492WmIMk4JJ~DDaA>WL-S!eckXpT!E9q3pL0EK5&#B%4>t96ci;E#IkUU% z`pXqwdP1&=2yR$#mq4rhP=UMD;iFnkquKz;Oumcu`cefMdC+ZOI#FZDRvP5^X>(j9!_1 z)?Fk{=^MD@?{;?2@LQlP8q_jB#h)oevYgetHZFEaEZP3@EG}rGc)yX6(e_*Z9z%F1 zbT=6p8M7WrO>b`z8FgD*+Y9#n$3#7y6%{{6oVo;l{~G58RATktKY8W|AYUO3=JgoJ zRxlD2FI|d1Z}Tl(A@VWT6~$3HG&C1iR}JbzG&JTe+*?or&{;uz=Kp;2FZ)~No@-|V zuGE-jLE*Nw-A_t-Msd%pT=@-^OBZzlg|#J7c&Th){SSU}V%xcU z)gH^kF%Zh!hw8%T=W%2+OG-*W61`COP?{{9@)j3esje)2}H+R z3+G0|1s5t~h%Ir2Y=+HQl_e4_CAYHD7xe%~@Ybzc0qvIO8k^-qYBV%8 ztIaw8!TQ?7u3q^P@%ZuMwoFyGveySI_E1;Uy@R}kz4zk9i&%pTeHC6hs8bWigk3rH z5*F&hnHrZjpfxx_bZ)r2yt0C}iT%pkc189NIDR4+YI{ww{$e zxToNH1EgBpeBDO#LX9kMxCe1HW8=b*@tT^N(sjW=&^EYz5-J2dX3fy6xc!zdiHnQ( z7UFXgpk^y(v|1N2-@3>Z!yxK;j*qV}BLkg(ZEdc_!^4AU!{u@%i2GG)aiA7#K8cK! zN_t&XbU8(hNWHID@7(?#`W~d3$5BzQiLzwUH+147M~-~UGd9-Ik$W~+wLB7!lZvfx z_HP5Y&THw9C>#qw6yWkpsg1ZPKG>qr`dGF(|0mki*|2up4Gcsr9vK;VX;iU-vtjmh z6YkT1-{v~jB}a`-KH>8-;+7S2{K)u>N94GO`=hmp`PU;JsuP25Wt8hN#=e5KJ?BQI z=__umLNSV+7+reZUM`!Ke?`X+;0~P3%-)B;>4fjb^5~sAJA1EhS`|-hQhf3J*Jxu! zY>9Kpn>Whn#V#hj&itrHK|ztBq0nP!X!zZBe+VtNosCVJy&KvbI-}jC*8S!v_$H#> zbe~?)iwV4UY7vzqF$)L?=;jpeDa%aqw8qiKF?})hSW;DF<|B?Dz=PP$pVAP;?%%&( zeUG9Fa*X!AT;Sb86efr%Of^9Mkfr)@_anAh#mtSiL{_MdHpaEt-ohcPf@0R+-(UOi zIMcQHs5f0`TY&|6qSSX|SC>S0$3{S?7j*L8xh|qu_`RS;= zQnFa0bR5>f9s(XwuZ~~#-oP3|jV3Y$s*PajRES#N+S|(kg3NpZy1Kf0dV27q*66z7 zS#$ukEG^#5XQDG74`yU!Kn2n3fJ6+qnuL2AZg~0eWe6_w+je^qd4PZ#w!E3y5Kd6T z=g$d!Gz7WehYvySVUtOyRtWms{eNf>jx1d9msDXdI;;zhlp1oC=$ENOg}8hdhodg;@x0Y)z;KBC5f&=s1bDe9o39SSkWQ>LK^x27hOJ`<;9D+S*d<56rq;xzdLwkgL6Ucn^fdd*sLUE4@8rW$(ts zbl%x}kXU5U`jiueTxN&rclfvwGVcck-E=(&2BlW2EdnbM1q^gS{M7}O(v|?GP zT#Ylf)8JvjIBP?!ewdHeoy=rm{|FoPda@(2m_3=9kur+44r;^3ePsVV$( znw?$HV>bP=h@!TJlB#N0SQzb|on}7M&!0a}`XkQ(oX;#M!*DWa8xZHh($aMCrRWOQ zWbavc4-P9RC^QcG zMvy#;ijrP3jbIua9NgI0NWXL*yXxf0_xx+uuL1I*@!U{M5_Yo#=fje~Y^+-8$Rpl3 zizE-0)2D4flJH81r9N+j{cQkuaI_2hxNw;6ipIpZd>oxSNJRw?%GUPG@$I;T#tVw_ z@;~}J8ycCpVkUn5k}}n%D%Vd0!bo-F$c)sE&`+~6cmC`x2LjlpFf9i>GZ{E$Gc6{yiQn9>)2wFDPOv6A;P`?5xkxTMe5|ql*~bw z)R=t7Y)vy2A5YJ>S{(3%zgV6F;??$fKJ?J+O)_&XuLW=TM}NEN4qG=)!u&loHnsA5GlP7|j9w505K5$oLZ zpTBdt~zpC8{un*9|+a+3X@X$k5PP`);lds3wUJ6B*5R_xoP!=jw9) zSzLP6`(V%Li`?8pTL}+44_n*Z!lUOCii(R>@W+VC%!mK@@dI7}4J~b(_@4j7gXxK3 z+GlUxAcOJqr|ImO`k|}Z+j*V>%CM>?9XoJfaPlre05rB8JRLW2>hF_#Mw@J8SKyRF z%3K>cnVpwa1X0#zVbMR%EOo4LSAcE!8J@A%2}=WhRZpM3vwpslKrr0> zQ{8_zQ@Ha$@vqxr6IP0m5+^7_YCJ0{GxtHa-%79G)`N1Gs959gY45mGC$!w)XJust zaN!pei~}NN7SGPPh!!8iTI!F&@JOC{C`U5oM0D2(ExM4#o8A{=&Qg-O+HSp)j&hFQ zUKAD6qFk36s$977&ZxKUIu9Ls#dLNgnkHcO?c2ABz~BNYH1$rHf`&3GDk?aEqOJ^( zWHX~Ji+YIn+$8_?>(?({1SgzfXTOOQL5!QLYs5+Yx9PHJ>}SrL8o#T3nLYY*YAU1S zi{fH!mdFL_h{bmOh}`FDY<1Fy6ICui!gl;@!t=btI{Po}{pc*WIF*=x{`D_GCyB^Afy(s)|u8ggZ_1*h}z^YfFCkVK?hjTpx*yd&7Reir5p zL>1(bBDpMXNt{4?xO1)5rO#IGd_~C7hGceh|9$vy^+t7j@_UhSaaM;+^=IbhCdQ+5 zInDo^7PjvfsW2Mo?zZBg1Hg!_uJrZwtr*B~Gds%*zroW|7oOw8*2>F!sAY%}d}Ee9 zY$WLI6iRoVmZ_s(L*CPK_1Z!3*97C%G2@T#%rjOk9#5_Pi0D``eml;CR#_?CAK~OZmvRR;=^c zSIbz@C~RLO9sd0J1LeG-Aw*EQth6+)yUdDvtL{c7CN>#rLXF>BAF{p#5;2Wzinns{ z%M%K;eKgt}kPqURGjAI)SfdU3{8=U;_-_lu-Z&6MJ^s21u4%-cE{n!xSwMold-oc0 z#k7pFGBbb4)_T$L8-3Ak>8B|-3(K?g^gHy&`Qw|gOC{*q{b1fg0w1d0A?mgPC7}3} zi_jHpHh1@b!G}&GWRjr|D?ndgXl(y(g8yzr_+H*`8MW^&$iVwN@C3A&XQjvCMl1>3 znCxk0W@cO3Td)Rbc4jXhD6wSc=1z?=rr~UY_yUAIZi(Y#6%e31y?-GY4Y=McHPUC; z(W4~ouWZ`c^XH>epF=6)anse!H>E6f+>Bw-(qgK%(UA}t z=-apSx}40+W@=A>S_5{^jD4B=B1I8;m~VurYQQK-1a`eA2-NE3RaR(#{i5RU?mQM= zZw9_~=`rW~HBUN~jR6GhpmcEV)6vmM%cDjUeCN$VaM+8~Oqy)|dWe?K0HFk(hGZ{X zE0eMM&z~KM813CvqDjV;o|eXR=1fy}E(p#=Y!QOteJD^c=euKAg?o0uT)0d8VVx9( z=ttku)!A91zDeN_f@b^fq#rfm?h7EAoKOk^57|@vry(xRR8xtKn%vs}e`0cyKJfiB zEe=64U}y6}56VB;+S$X7rC%+N-SN7(c{SOS;2*vN#uNQkw$u=$3}>^n#e`>UVFd;2 z{a%Hud)T?TRh5*?G&S-%!FlI6S2ed0-t8j3^W4Vjv?g_Qe0;;OWBmcKWMg&pe3SRv zEiUXgBwzigmZJ8?edgyjJ94zy6CcxfF27*%RdcJ@A+91Qh%}a)(bVZSe^P| z$0B{`QCps9ANhRbK1ibRTUpn!n;wCZ7fJB}0q?(P_5!d^bvngbu>-=jD%8R8Y=^5}OZjJDPzR%*V4%e_6b*l6e{iAJNbjKLPv2=f2$4M|5N) zAvKJYdsYksB8 zurKRpwjrGf&lJ}})gUV;w`7!gc@T}FH|N`7KJ%RGxyZ`M><#=7986k9e-JD@9`5dk^=Hpm!sVG!yu)@6?ODH=@#@uI+>ZHaA|O0O zT%0{SZxdCuFet0x&GHZ&3aCcDlq#{nRGzS+PC91cS_>YN7xM)A!R4zJMyj4y*8=xy%>_=nfFVoD&VXI`LD(J(Ia_!>$h&6chmAY_mInu0c;+ z3zQ|u@(~}GB|tIh{aA11T=o~Hd?0(x+L}X@(LP@nYoceA{nc`9eSMrD#K-64e^j^? zs6kFzT7Zb;O)e0(**|Y+7*np4<+LOLDY?0!&az;(@);VuYs%_cAbFR!6Aq5Yn%%8J zk)IrvJrerq#Va*7XLRMh1OQyd+IlvT`c& z0qcc34lZWxCeVGN4Eyjyuh4wIj5^`~jp?cZ@1K6Ptm_0eg-zK^ig+*J$Pnk=jWJE3 zL@rj=%owlmV`|vZG2HCz;}ss-f%O^$=9d`Sf^4Ye8d*`)Saai7Cfh`% zESsL3mrQw-5F8qc1oyS+Ukm7e&X>_d(8MP*UIFq42Qvn)udicwDnv>%enpP^*RNj+ zHuX8|D;(kS^YyIB0FsXi!85@mP5Do-vDNkUB_@c1e?9A&SC*Fk2(wd<#;C~pP($E6 z3WJOTbk4$F!lE8{0W=1p*n0Hn#AGoUA__vMP7Oz@iX8}&UeBtvJogFPOQ7p!?ooDt z0rTdB@renqmHF|F_O|x+kH2PK<%tTY|L;cGgv{WY638zh>}d>dk)6xKnW6;EjVN^Tv6+^`aHX&ip=NIj=)q$%BxiWK_Kz1xp64kXF zfoIPKO8{q;apIUls&@AH2kRnzu9%~tvIWcXjtI&eI_$xUA`clyw11V|;XLuP<>4Gu zi!BhORFL)1!H%e_M9@0Mru<4-{StkX=fo3;nddx?~LJpg$)%l`TV~e$Ziz z{1D(f(xs4{%i!)DZrMiIJju?^&cPAvEs6-;yLazCefreTeKx-7%$YM{Vq!pG$B^Z~ z`Jt9M{~zilUH0~sm6ZiDUfzd%1wy(+kacQHtMT?{AYUP$VG}SesXkYHtA>D918ux% zxAWVp+SN)t4yaRSHnSl&u|$Su<-Z?lt;6q%J(KuDSj__=IgGtsS*b{ z=u+Pp+DS@EnwzsM_oDMDiQRwFG=ffHp1?u5M_!J7Ip72}Xs-0r<>u1~W%thZu2Hu<`*^=(yD$R%6fqXD6ZXlZInZJeH+ zo72qFLWDm7I<0k)C(s$p5@)x4%hR|~rzgZR`58>4Ev>AsKGavE2HC;UT+uso*mZhx zQb|#fgN-eg&w{)!NTN1t%g-i4?e%h6fn9+8XB0Dd#l$K>2OreDi9-C!+`=MKwTm&F zO;j}TVW}`t;a?m2-(ZHe>bB(Cl+o(<*Qq$Vr&P)|_}aA zo2teJu8xM4ds`j#)^F_;(|MF&etvD_{LFYg%?3DreQ|x0JVd+5+oPg7_&PC2VdF7! znqgwRNX|p}HLCRP{+hS#t(;@s*fxP%5vYN#|~?uRm!V z-(-%9+Z1JG5UVG*#k>a?f%8)<{&+aO7yqanDYWh7cYKkWDw(0NztJgR2a)ugjI0OG zA$~IrZ)^Z4jC5o}h4%XT`Y@N}nOBA)RX>`ZJuJ$~wCXKZ1r2i}3ffr zOEHk)G!N`k|7Eve5mb;jZv@N}=hXnn5A|7`g*EZxhslcS&gJQV1Z$|0&CT@x+z38* z*5lpE32yr`2k;n!%a`Cewu|&1s~`j9i71S&(y6A zDldLI2te6G%bq{Bhv4w^!K$ZF&D!G!Rc!+i4v+QxH>7O6Uc_W~C2ZFT*Z{>wl$Kfs zaZbJc1+^bPLgfrs?WIV#*>Wr#AvR>%1;$z1wvdnLDITkHPayxJ@)Q*C?o8tfY$ltS zoFpS7dk`9WebG9STBE|qo`(+KME=vXJgpUUOK88iH?dCk=&I+jrFBkH?)m)r^Bu{Q z%kmslK~J7MK?K6pwOBEOYR^v5;q>ed>yi8A?@dffdlGax$@lF$&BjJF*14Msk0h2H ze}C^5Km!Elx{YLKauNlB?5r$70B1NR@~lEJ4X4=CF({Pw^$U9y5hZZR`TC08*7_e& zV-I3lO-)7n6@q|w3%YhE{A0VA~}yk*5NUm}fojTiuiM_GR}Lh>y(dA{zA)m!h)c)=(e&3N~( zfFVgNQHI^N$=|QwnGRpx!rWYTb~e+&{!m#ar-vfR#C{rW5%%3WMj%9-N2ETgBn-=BPz~IuKx*L1Rj?7AdNmG!LGIATApuAsW z8gWUHmWe%`T4o_iL?3CnH$?8<|G!}qh_f#>enO^z4U=AXY-PEWW?k)l@jYetvm+r$E0(Qbmn zE@GShr(0xwSz3B$!-oS04rnVJhc822$FR%)00I(Ed@NwVksSm5e#evEIl-Vy@}7<0 zAA-CWp;{U3Ltg&=7C*j$ZR$VBa`tRK)V=G2<>excwfF$8A-vGxTBn3J{!p6naNP*_ zFKXHG53X?EU|}~CaSd5WjUzHB#l`##49T!#FP3rN21v=25)ry{M)#F}fAVpY=fnv{ z%pmrHp7{J5yhon(Xi~GvX;h`rU^~I#CQuSj-fBW0DWTTV#^xxW`2!@qDl%=vF^+)% za+euzevsUPr;m%vd7@O2uzfC$@UBQ&TH5UTb;0x(A3jJHgs<-yU+}zPO+om0aEQ_Fkb`6;3c0Ol7fp>a`e{em%EzHU!h8h^}%zR^c;b4^YVbaxtsYl$3lUDki2-iNF)5q?xI5=Je_6MT9*A_O7S>I7dtu zKT1fr!5_bSu=0P9)u)SZXy*@y)iRw9Sgfj!@ZskOtCiv*B@jc+w-3fPjR2mb5WTazrwtG?%^I;;x(W>--eW$yan{QVlF-WySx@09K35EjX;^z z4}IjCK8?aUOhh}T%I)0M+@1_O5M=$8Gc7euu{6Q-X zw~-QgL~OvFBlDLrXqT(4NuAL)&P=6HGJ|S=t(IKF|K+WRIzx`7?@h+CY>`qnRMB~< z#W7yk`1IaK*+!eV+@AbvasZEW`a*&i5l44^>swWGzzmZ)(lXzJjs+-si_}c)*c(YBRPmTl2B~O&@~4Jf(Z|i zC9+WNVNrhaQG^Oov=CE`>DdOwSgBFu(GiNtRCjkw=spffw%o{?CZt9?aKTe_Jn;I% zy0Wb>ET$DACvO7;0I|I_Xa?&ePXeOE+~^h7n1+R!nUl2Jy&gWXQB`k8w(R&wJ$@=^?pBoIDbWp;?Rwb+w-W&B7)AD!?l;Xx{JXFmodz;;+csx&^AW-Y z*RBY8X0+4wtdzHJJu&n3P`?}VHOIC?o8sT{A-mHI01dQ{f!&1 z6$vJc$0Hm6E}a;P2-D2t_vKDd-U$q} zD$?J#quz6;7qUFE($e#pcX4DZj9MJW{Ql~|9HYaK_U(g6m)}i&URNh?-kSN|1kTcs z4G0f4wX{Vb06I96H8R<%fh6!36r*>ha3{g{w7E1j>^H4Q5=1kLT*NF2wtL{Fs zvLsh7BQA;YGcR_~*tFDC`Kx|@o0u_ZWe%5r4R!Y4KlfJs;MCY(3pjV+A4vvfMd&FSe(fNTZGTu}deimjJ28x#_F|YC zNug`kt|j(89+b`1&P-4DMrs9GviJgSJun~DZsC_M)rSAC{^g~xxZ_X7|FF^nb{`}# zN_GFig9K48S3SKrgqnZI<4|D9c9S0i?Ra?2Ms}0Ue+SAQEZr|mvsl+Ow$HGRyQhvM z$@BEIsITId@LFu%0=36b_KG)B0q)Qq3FPmfAO-{=R3Vj@ih-5!!#X^a5TI5Hr7h9* zR;62EY?&&GK}5dkLDnw5gXy7k7X@pybGD5 zju0!?4ZmQ!u28@MB)f`&i5$OA9sBqUrKi=$&gS%@$6b;b!=(1Tqy!!g>8^3uYovLa} z%yi*I4_aAHP7Z>$i<%>G@>IWf#Q2$(is3tS?ORSG{76OF{J?9>$HSzC+ZT#P4 zODj<_Pz6|ccL)p!I2OYV+S!7e3R@C@MkDcg1+zm#W`*6*O3DB`W+`d{FuW2~*LF`nIC;gxFyML6`XC0* zi)O5^Py3Y!K_|vMuRJT8j5-8D1Qh0ZQ-O!UT@Lii#bBVjePRJ$FhhVPs>u%z z{og%Tean4?YqzqeezQ=K^w#R5rD=gn3{3&<5H+ zI|oU6MSOE~b5Gz0L@&^leGNd<6f;t}#~-V)f%Hxu{UkPw8|Hb>o%${bq~gf>;E)gm z2t3DsYHaBdW;EpHy^c;!AVdgWlgw2zeMWvvnSb%zmMocW5S3v1>`}z)uSlUUudeP3 zloSel9W$hUB&-&CxmnyL{VP|FA2@IevKHYUu%48^M%II{Fm5ichw$cI4c=ntBqlj| z8oKY~T`~(KnJ~FGW72_WB7fsOPP;gofhdIr=~{d!(iw9-)f2r(5r{Of(fx} zKHCB?W}Yu9B~!)>ydZ$gdy2B)@fiY`j&(p9g%NT>aq%|}y31_T&RQ2gee19;!qK)o z2Z?X~q9=2rUW6Wn-qHJGuCEhc-ii|;1UyJG&g-xSaYAY#R$NXfFp6wA@=6pkt+T|> zzHq^~(i>@5M7HlW3>TEfV8pv^Cdh=E@J=1|{t{*+;oZS>M1S!x%z`0jjeTYs1v3Py z!xoaq3@1`FHKz3~Eu)U5|2f%49QRY76XBJfDkK+nNY$S}vCn_Q`GC5LCqqE{$?YKo zAj?2p8-NNZ<>&+RGgt&@_zi5GidQbG5ufWXQ%N>gtDiTGa(p*$Qbw?yBemR!HS)4yci+-r3g<`Mm zIpl_s-bVEw@D3m=V>Ce0;GP)Ge4tStH#c`o!!VL4$fM0S@^4w3ny|ApG(IFqb5oPT zXVlh4K*YSN6+B)O^9Buz$d2Ah>cNPPPXI3B$oMmCzQQM(33$T6%M zqJ(|z?a~o)di{ax66I=am_K1vz$f~P;gEAFpP)ol-Ww>H{V0k)u%)?KJ4eQ=4 z>RvL^(qz&_1OgK&arZ&Qzi^?GpZOH5bKnM;&&WYod7X*VZ94YO_Qs8J&jpTUVr~ik zaA^i}8)T5MV}h-=)0|{1cxpwyZft!SOXN7_g1x3ImH^Vn)<|a$1bW=$uD-Lf#r-GKUPFlKURP)(9lxW#1umqLF$IQO3K`S+@@@)x zvu2B*bIWF*L?tz17^z9IbEcm3+wsQXb0#bHtr|@B6zwCn>3M_!=#Gp%iXv-*v4vP* zM3mYs36L2H?EoqWzHtvq``eKJsk@A+BTQE#Fx2ROo{NhMl3f&{TtE{hi!Z|;MKO~B zawjbsF&>rsZ(8bOZ7oF)iw09dy&3F^Yo&}npy5}qrd(No9Ros@&*_a=aHI8hB*Om} zr~rG_%El%h@iI&(z}VC?iXcin(KWt8;TYB_vgyQl`N~%%|J^qKKY#&&>@r&KVzX_P z`wWISyiHHg6HJ~GDQSu=qLG|VQaB;2$A1T*`Hd#~CHd?LIX<B?G@PVbarkp%ktqP&dC0`Zea#_8;ZPBV*=MY|+Psp>OyP zo?vAB&|j&r7?deO&n+Mjdwm_p1cltSXeYts4zZV3%i*}MDvM3&m$kqAfak7!oc)K< zqpL(AA?$Ltc6aZk&tfxCr=Xln_ow6R93%Q7|6s$K?MYe}dg^*A2@RL&+fIUm0B{)3 z_ZrQr)+2U;dSY1pjJ~m8*4IIUT1znjF!^yTCsMv(?ycwEQM|4Ic&_ zAn>YW9*trNV8T2Gm_oOU0&rWrixS?Wdo)v#naV4E8-a&+%M?G_?_<`UG)(4M_Uv>% z2=~3=nQeqF;&VL6RPkB_y)E>*`af#&*P!K0_SC_(|0ucjTZkWvcLM<5SR%8~@|R5Y z^z@)Pymg;3-8=#pfAcoF?Mbefct2y+UA%uL#&hJEKOFl#c(y88d$?D08w<(nG|^!GWjY19sHzZ`Hf~53q7`xAb2EI>RmN z8ckYE-#iaZN}Q-&eN6E>2lCorC5!V9)9mcaiux?{i5X7`o^*Y8~gr_M8OvpYb?%}dhk?{>qPR`e&*E>yDvB79Ub{X{UAW#zDeTZ?#63{89 zu;S_?_ntF36uSuT?hxPlE3j<0o9*l$zBr|d2gOSTy3mH4_kjaEusnJ4!SsKa2s7YYNP?wY61u{K1}s+hA78XodeaGfNk>-ASNJBC3#T zfb^&~lU}FmpZkQ13(f{eoZKgF znIFdPB1VwOR(Glu{2GI2Xe-qMIS)ti8A)XQ>#Nly&d;{LlP88#-t~ZK>5|;13QC9B z_VT0VY4|wn{43ZSRK$s58$2e&3NriZEH(wQE{kuB@=CJlkv!RprSdPrGlI$%(=yq9 zgDw?cc>%5Iw`-vn^t2Bf3j{(RQ`=}aXT3C)s%=)G z$MwqWX1?3fS6eN&jel}?2#yRQG9-qX1Je9ACZC^mvjCh&Qs+3gTCL(QL++IZum5% z*hC18qGVl3T(GssOv?=C)T8jN+8E21#fV)!wb;h@mI@v3K`Z9S`luTkG=!%-CvdPS z6VV(OA0z*S$NQug3+#n%%Bi0veovZl#$6;u z?Ri>Sz*?g{rAMD>{@-L66RAeD5OengO0KT`JndRm?R5M7Q$sG}D&L9|?IAK8(NN!|fC@QjxPmj-tZ^9l z<82)r)G{=}yPPd8>qh6oGm)S`H;LdWfqc5AV^L%# z^<9C7bNDn&td~tNag>$!)2?oR$5_jwq;dTzGsm#%JUoe+(e^UKmu3vR_x*t0U-hqs zyFirG|914<6?MEDzmVX~pLgmE%-|ZRwxCC0U|XK6?bi&R#8BA%y|qrdA*#2FJD3QJ4%@;V{4J1J-r zbQ=Lc3$~@YkuULPIsMjT(+}MB%DUqP1}FY6uHHKy%l`i#J`xp415sIVCM!u2vQk!7 zMx-RlPImT6Nhq_(N+KFck&q-Igd|F`vXfEB${F|bIIr*T{{HU!^T+3LT^G*tnD6)N z^;|D(Mn8MQcs=FPV1If)dzD~1;`?PU$kH1L2~fSOQFnpVbCm9Id~s>@`c-r*BCGE< z+et&xFueJJ(YLQ(g|erQ3Q0*wK=lD9488MX(*m`;w)M=+zYPmQa>P!)xMq3FLPBV% zpHQ|GQ16IzL}$#r>X5^FNszRU_7(bV&jf;h;rpA5>C}Opc-!}Px>UkCQ$F+9IStVn z9sP7d^dsTw{{oj0FoN>jz)Jz?GT2Ul5FthCBakVm@XY!Nqx8!uJxRZ585 zj2Mj(xOoILp{%oB-cuNs%lq;6HX>vQ3>=tX^8eXxyJCU^B z$LjOLW26ImzG`Q!n3-AsGAixhWW`O!l8GF;kS4-6G1P0KTTt z2C~B)s`pKMXMDl+owasZVbLpm^GHrhQftW_=E~o;-S)|-fi{Ct^&>x}28bo+M=%eiJ1%4uwmzMdgjN5-X;(e@@!riDYEO>2hB2f$OaJgkA;H zcBizXRy*Me+a~RJRnD;K@u5B^$Mff}n?>B%O#M+(SonF|GhXtGBMNEBt=CCt3;w0G zyI%z_@C9=n{J_AzMHtY0VBn2x`=ryO;3pUBwzg~_$fkUy= zyZ<^KiBcGjogwp2|2Jlv#IyGeosg&~AaK*xBIK>X%~@6L;%Y9*ToAMz=(MG@e(((E zl>?(fOIoE}A5OcmEoX=)K0*)=(PQIyX-$PcFuV0EeDEsv81q*YUcM?^aj5^= z!QVIjDB>4t7Si7N3f1k;nf-WqnU9fY>u`r6VxZty*VK4u{D_tXwX8P=%C?v{J0}ND z=)j1(ii_<{aQ4n1dI6~l*~C;*+b9|F=r#WB*ohP9#FF0YM!srae;Q?AVIfiw%6rl! zcy@`1#32hV8kr(%j%eUf26kz0FRa9Kijy=&g1(3=6J=xi=lKDI$i6nS%6|{a&g-ta z!ua$f^kcdAQ~*sX=u_ptk7XAfZS7SZ*T5(Fe zpgk9Awm_H=;h`^1Q}0*W|HYzq271!@wzJozSz(Ej6HRUzc{TIpBwU1p2`7=1w*Zyu zzwfJ+yb(_Yg$1OE2FAv-2%ft7YaL%Ag0gmSv82QAmz(R@_42~n-$Czu@mT9fc@b$ErU_)PT4OVQ@{UvXvLGSz#S0Ii<^S3$XwT zHLgINQ6eDYp?vCQoF6M8KaRTYCKm9Rq`%nj;9-tL*Rq$B8JOrIo~Fd{ z3c7(XuIuW@L~b?>;}yI%%~o-G z%Tgc%5o2f|^X>K{Znkob^c$-wi+r{B(KC>i#K7`pNF}ZEU*qo|JQ(2}GV>c>UNV_M zh*B+W)e)H#GF{*qJ(Z;G`Qu|o?WmQh!NAP%wc$8>1_ot&u50tF+CwbZ_~yW2z+Ejo z_2#dJlupizdWG3{O~NqO2Y$b}TI1kTSja7Z058o~5D$Kpc>CY)6~yKYs7{tXrCvUs za2|qHQRiHDNm)6K0vuY?}N2eTl+s>=K(%l`|T z6*cp=MK37KpL^36v|p&NIQldOwbw0V93(mpxxwFrJJ#tm&bXbEA^7bT+K0I0tPAg1 z;efkm*8AXAXbM4ul0iwzTRDfWI_7?Muurxz{o+&v>AkhL9YK^pP=y~-*rPW=on+k( zdNe$UKE#9&(s)pl$rG*qz(`j|=iUYRNE2GU&a;NdQV~y#7xtbkm_>E@;G1EZ zZcSP$3vpD#;F>y?3AoL@y!J2WW*!x4ZEoJ46t8msr;7|l9xF*;%JGbCjAM6azfXD> zckJ4%HBbf@&=S$NUt@lqwvG-qp-*=p&t_wCbw-XV_8{#++)Ao)B!EWF z7bFWs7>L~LOH^J#48*eaH$(TNtF8UJX#*2I9d>lM$Szg5$bhLKtEGKek?+quLt?|r zE+@C#rT?lXr9MhV_x!xfNP21=Tj4Uel&EXh4x4+)aN!{t*ce#e(?9uJK;=_;P5Xmt_bFYKB1j0yUq$| zvV*hp&c%V1gqX^Ms!WP3u-!6bVovlys)$?)yhK?B!m9c}wNYGHSOlljUE8r?4LUU} zQ3elcZ(g~w>blxqMa2(Yh`|%TVu=#$;NP9AW8B7NS;8v&CuPz;)T%?z;u6hQr;*a= z3D)S-cTjTDDUWk<)FGC*^u57muhPk+rw6Id!T$C@^dXzLD}*xY^Jm!RDx(#xC6kWa zQ;A^X3u>0q@nmOLI;UsTi}YaC?zj14NGBcMuT2DZ#vPIOMaBeL^l#rzh)Xetsz7r@ zU4s`LnKQWXAdeEvwi}L9Z%~pJqvV`*$tp}fggzGvWXk4i*0>VbC>0bGAhil9@>lFZ z2^A2a;B^nChs@?{QBiS;nVFdg6tWTuhdCiOc4KOuPDs}jr)5Vj@hauIA2jg zB;;!#IEMvwgd@&ys%5~y*a|GS#B2!}7?+1$O@BDxR`LqQxpPMi3?P52E&szRjYs)# zpuNEZ4*+1yl`$oYwTdhF^w2)w!>sh^*-gDg66;M9s@pTjS0-Ft;B4uA{zIaYq35Nx zBGoAgZNSf&zc6B_zJh6}Z*H;VvkGXBN#8PRHR2b#;D5$ZQ|Sx?HGC11c*PRMvDlR1 z;dQGS`giZzr2zd=>iS!_=il@1-aTVub7gIN^&dvU=OESe4!y9v^{|!WQG$?lI5@`( zUK2(aP^`XXx9%0t%zKQ*N@7pG-*P)SCnc2JSwb5f^v0F^O-2o5zeH|H_^ zz{4&q59KJVppDdGf^gGX)!$sZ#UbA+2kP&;LQCfQK&>Gpra~aFE9A3^RYJsKlGT3A z3pUiGzsK+DR;+!egw#%GJ%?8cI&N54_d5-cB(@35>@CEU5wfEV!aspXn@3Cnzo;kR z!!gfAd9~F1pUaLMB7sax-G0B=PkX<# zZxM7@r#{Qr{`SA3W{UQ?`?d%7dut9x|gX2 z92SEw{;;WOJ7Oj{bJi($BMs0D|N8R6Xud+sAJiyh_R;(-f;>@6ac|pJKX8Zd5;Awq zjg7NEJCM7S)VcqwF45fq?=Gj3Kc)C;{9U1n($14qBI>ZC8DT4(vT)JODpxb4_WnP0 zmfa5P2jmbyEZ{s4z1`vIw(^6i&cS@!h3)ySUMX2Gv?fFVAY_Qqn@J&cD^)=C{|0Dbx)o+VNlF{7r7*mPxQJ}_3W@fzd(ji zlHjpZXK`@m%GzAeNe3p1&sImUgV1Q4JuZnLKdjHKOq2v`Rvs5f$2qT5yv9rV z>Rmp=X*l(Ep0&zy=f6I+JaeY+&Bc}YTrKCOwrtN7BN3#h`Jwju^5m50*BxvIha%3g z-ag1c_`J80+`%l)07+<_75_!YRHtDDDI!=*YY)$k)x~~g-OpKU^g(Y?3&vL5dE;^} zn)AxW0+w*=cHqoXfshm(<=pI{VX9Tm}-O zfp8tSl2l7hHz&il<9AbaZGC)XRSbw)!v{@mD+%R%4MySmeDge$0jF8roV}L44^BKr z3XJXxMRtNuoy0_*euUh5{(=T&v`#`hH7+1I+trwr7}z}kOloto@gsI#MG<(_yC&R9 zgd#QteZbSmb1;yN;9F~liop}>0pm&EGIIl!WC>1dQv`={AIlDmE%L`8^ck|Lj`k^Wj!KDXo~^_iIs}ywF*;rBJ~!=eJp0{Wbm2gZ-8Z^Q#ln2$_|;bI7;hM-7N*5zZr z%a}5GRwq^+hd&@gUIVv~TU$JHTH29xvqbg5)*`{_BFRdy5hR``dzp&~@`cRTKvqhM zG=r+ zs>t@=&gzCiM z%U(BU|F54icDlgur;am0GyLSEZR6O*0AwGzw^HCFJo(JsAG z)e)a}ayjPWi3tDi3Wo5gRSS|_S$LO8e z6>n?mi5OG;yc!XC90h6IAg01`YV6U-id2xC$g)3?aa64J2SFH+>BD@>x3mQ-1dm!p z=iFDn1nq9cg`5^s_#PK5=?EH#%eO3a^SxCY1$&MwdF5Z0mn-c(w35)+`US7*0Pkbt zZKJyqtTSyiNmJ~EoKDN}GwX?xm9zsL^pImv?L9-<14Uj8}pU>9XIffag%qz zpS?s=QKtpre-W%+Q)~6MT(Ng>c>BqZsFiCVKU;K=tD^e;qhAZZ+=@O*l|lBc&9Z?| zW+NZ)sT4ex@*Gl|QL9I*3nX@zkaa@pOW?eIN4%K5fxZ~t zqU~6xj>^z4_SPun+|IUN%2gngUyw_n5SNrr^!4km2js$KbGn_1pc*L<8+C&>t|f$- zmH6&V`z0X?=Z>{0RjGz~EhB)~LaS$p7*+CqGOer6#~a{yP-N8uUX-kO^OTKgeQ{ z+7FD9$1f6Wf~8%z$GY#LkdsbXSD!*yYzOB<2py+zS`Q;QAa3Rw?>T(hHNoAo(V;7?{Wi5d-5xxfT_U;h3GZzOX)FTVIYsXU%5KfuxUIdTG)>`E^$?T zySf5x7D#AiFRA{e{610S#I34dVIjfAvij1&h`XS@i`O)rdDhz6THH19o2#hfl%Zii zC`b9X!_)Y5SuPd?4Il#E32E!p4px@nyFx`B|HcZMco6Eu$qeNZf?@vs$x*^JTo+b} zGUo1m{1?~eteSps?!c<8-q0GcHE(sE94hY#>NsB%8{Ud$&utxI;rGbOnw~zL{^b`B z)Ab4qK1-~;Y(BbWx;ap)yO)?H@j_7Dr(Y|Q(r9dC#J2C?`~$s!hX}a3dmrf7W_ET2 z3Li5uaj%94@cE-h=OBtit%-c#t=FB3P6C?mz{Aq+$ivCGA&auWa1d*#4{^(@KzaqN{&{=HN`Zbqg{1Vk0gV z7Rq^T@m`vjZr|oX$A1RGi^SIfX)1x|D^z8VoZOLafW3HxwqDOh{{6~w zE+MWzsaa0gD%UH{^I`R~u*4(i_-S;8(xrh^1Q+K?_dvu0rQN!P@X*0Le=@oTofG30 zBz*`}=Kr6@ieq$ydVz3`3nD81K4Hqf;J;&c1yZ96;j=07PvoU#BdF9jVt;hpWWwHS{kf zW>ID7gvAOR=d0##-`?+D4@@z?-LbP2csIU+x(dtWTG`+QNT`k!v%N%on48-aV%FGH zuSZ2qowW;|e|}1&>;ci+GBC7DN~dqhg-H5;b>^%hGZ zBnUrw$iP5DLPFwqdsE<-{z)Sf6Qt+JyB`XnJG3;CoR-F364GrYnWo?eCH|Re1;UDL zDl=v^zwJAQO}dS?zJ&eA$KmPg*RHJ*oMgx{u*U?N+S;q|Zg1HF)kNjQ;~2KQwnYqq zh)gZcvG+xojM74#o=cPvJ_yg+N~_6_RaJ*gOgNN+-5Yw1cYkhe{XORmR05B<>zBRv zTnS+hjm`4pT#aqeGc}LSp!=Wvg>gD)!giPa*<>tvkO>>zTPgW;!0huiO5$#TyaXSr z;q6LB#>RMauCbZAv8S@By0ZR2M{O0obD|5aEyS5w=T<585^?tc9q{O7iRRC>ybf60 zG;{z7+3oboPrp6jV|-!9J|?Es&F&btPe1|11K<4jNUQ~Y5KZ$6x(&x`_jH$c{ zI14!!9wSq3Kb8!8Uz@1fS%*Gwv$Z%} zq{*Z&{mFqt5Mc)I&o~r*LuQ^&nfX}EdLjwLF`sh`e=X#J1?>%K zhYP=6R>|<{_E8s4rU zU$14`J2AGR+TE)pP8>ITx-6vJ%@@{X>&IqFE(0lz(lRm{pDL{`B-ZpZuDWFK;1BF0 z6r-Eo|UZ3k`4|gAoV1{6ePwd^PHC93X$w z18k83yHq#dMj=EN4^yjTZv|)lDQ*??`uaImKphvTZp(@RKGEo!{^Yz=?#>-q_y_aneuaY7PDS7mucj96EX<-rs9G=)(_tv!k-V=Bpz903 zFPMrpOVemSCIhYa`vi8tMwH=g#9Z1X{`#436fnza36=7V)ZE zGRzOUmMuy5;*Z>09I^_$#Sm)AnbU$)mcHj$(DYzbiLMr*NCIR5~tS_go>2T&dv$* zr-s4`J1hI?{sX27>N+=Fg@uf=vQq;kcW`P2vqa2RvMu6k?dkb7<7=M`ERwNbe@Xl= zGzMj53ezj;gF`|Vd1w5wKDTx@T@kaE9nW2BF@Csbx(c%t1qFL0iR*^mOvIatzc}U%FfG3GF?p(>hyi7ivizu2X&=ht#w6sm`97jP zOkr<~DCZ#f6v?ZwA=)C!9Diae^UJNoE*UvA)JSyf4~*1w?$AM*MxGx18ax83K-Z;urCzO=5^!HxCPUZniwL^ zMly*%8l_9t7}uV(Dq;LUm4Wu9jZQ^1atm+*Fm;1A&~GY?K1N>9b+hEt=YgjqY5L;PBhjBH(G3i`?f9Hx zubX^j6|t~_JhO&2SW9xV1dEKrOE)R~vzJWjOH86u?j;*%Vp^r;Il4Z>Z9m;gV1F__ zz-z0i*tRXHxF%QOO&_^N6OvjO#=(5(E*={{h~+L99e?~KE9&j);8(OO`bpqJ-3*1Z zt2`*^?XlU*6&4yVeq&|lpq*>9%y4V`0zy!VBGW^6ZWp`z3Hlbq?WQItA8{^1PA_a1 zv>v6gKs2m!d#r{$k6!YXgc>dubu8X|8;)Pr;~>>YL{?bKh!iLDvu-?Y)G`eO+_JvQ z7Ee6a{NY=eN(Kfu)b+TL#1jW)*M>EqJ5cM^TIE{>6;QIHsnfxulqqM}1NeWC0uE7w&b?)3Fh{}JkT1&S7 zH>z&u%_DpN-l@Js9|Es5HS$bgLB>%#fB)3G_d$L@o~JhMj|z3MXIXJha>JU#f?1fT zff^B%mw1lGMl3IH-r|0hm-md$OclM?yUKQ3+>It@@sq!87A2w_OaVR0t{J7qKDwWD z`J^;{>FUzaXH)tyKn-%A-~ZSDHBwC`CY&(2#2Kx?H$a(Yy0QG^I^u!7%~g8CJ^N(G zWyicLu$w7F1c_2iD#(W9I{;hmYTHggkq_$QRKFX}H_ z;7-kBX<+m~vteRpAX>)G;F4#m#tKY4?}Pg2Jm&j(mu05vdy`fF-J&Sx=H*2%pFjMs z5xKe|Y!R3!bssPP&z|kDUqeKJ5?(Pqx)d|gq@<;pPGFwOEBMI#{r#7$E4I*9?oZ)K z@lTWL2d8|?ToVS|VMweW+*BY^{{26w|2ZWbVHC*??-Q(N3g42{s(iFnna;2p5UyOjV#n{PR&**o%T z^{qURqhQOMsK^$J6J=99W^4?_;l=v9cnZm`OYs_|1K@K#gXVxOatR8bKR>K^LwgGX z?pq+M890JkytUtww1MmCr5>rd4_5;ajeG7I_xB@$9PLUxOUJiw#Vm(1kQ{v)H}CXm z-UsKw{vc>S#NKX_J5KXA%o}JT*2rPf$nG{IeSy7-#6D4Hg^@yt34e^dzDZt_z6Z^A z^n)3xwaR-92AmU&(%iy7|Ho5GNNm_LiWxJQI6~_T*_9-tl0zD~Y1`-8+B5#6Tzke# z-nKNX-xc=N@de6b$(!1e$>?D^OGB!*DShXA#*tVjkW_#UJLai@cp_{aXgYUv?ulqv ze#i8pc0h4|I}nDwh!ixcDsXIH#ZkoVeQfbE&n!^xW&U66lmX77Sw@m|#lD2rIAz5NRhuf2XFTD!SCIn>2#tlmI zj!WNd5346N;xo=Lr7_{%Qr#<0sx)Qk07Q3uqp565&R=Muv%lM_<0ZVHJ;iI_Z-9gh z1*71Bw{S{3#JWb203|Up>>&q}LG_pf6xs3PTh66aeV6nx&)YBQ4$PwXr5?=q_ruvP zRjJ`Nn$5bd2;5CgHqqVcm4i&#U$3ThsnUqmK#vJC47~pdHT@5sJVBC!Pwu-jHg!k| zf)GY*Gln(puoO2b&~i9gcSyiwU#yu-U1Cl6wQ3_4tBtg$RteS)Y3T%)jhmA40ThB@ z=l6TjF)s65lM+|w2g_l<)dwrdb_@i=%%)bme7vDwj%;1wRM5bzxya-y$tZrjNcSOK zpL5gU7t`pZ_iVk6#RJfn>s`xDeD9*wHI?fgD+z?she#y)*|qjC)P>^vHB;dxgOIH6 z8ifWZDyv;hKUqHUaAKa$ zX06?2H=ddo;NGCsJh{xKg^`4bOBB&0{z|i{kM~dE1@$fKmhtJk|G7w(R%BS2B2p9D zBZHzWiRSV(v00ev8qz>2EPwnEG6~gu;m$w$M_>l~wU<}Cq#+cu^X7bWAu7k? z^>OoBBk>D2*cRe5A&<$(*xtU4L)VIX)j;w8r+p{>ua+GRJYS=STo(@ITPex0U`hB^ zsuPK928__LFZ|}Xp3?Am4;ajL9*vAGTwH87yx*yacofWw@)hRjYdOb%{(pOQk87jO zw6hKG7ZU{tcW)HjV4v z{c{BhFk%Q<@fUII*cOfVJzq?#<$3MNG0y|_`D?V#0s_Dc!Ql}eW!cEFngP#J)r7Mz z8tSOUZj&SYBwkF&W@Kj%Az_e}_gdVJeMwyUJOW`45f=ks4^ARmKbg==T%o584bMua zoITd5!bIygt^pmC(hw;m2>*soT55g)Ho0{pMX3O*WLx)RFLUR|-WVwPb zhgQ6GVvuyJ!v%yl*KVY1^Y4NmSGi))|jH6YJ>ijuI1AR-_H3URycFW}E0k4^ldalX%7en+4XKD>C&%%iAz|!jkvd=0F}(lH zvO7>xcu$b&)C1)fg0)X|(J32|C-R0awtf(=j@8*kGGA&;FcUk0efv*j^8}2Y<%Qp; zcqsYY1cs+T4g(gpsr)2yl~gAY1N@L!f4hzWjz`)Q7p$0Z1+b4o1&EnO*dAVi%b37j zC|_PI*Q*yG2p|zeZ3sB1ou9iU)UD1!vh=PHY9V_llMux9${#X1NEYWpcl%qyc@D=t zey}+19F+3Jc7@mpa?7wdxQ7|Zh{AzK(kwag_hZ{Gf%<~enM~?4?s|<3EVzzHUF3u?IKt$#8jmzr?%dh$0HxnNY zlB(FrE_>y&UefTPx+mIa6oo4#kQ9pWYdjsyl~;X)MqU&Y#CxzWXl}XEdz*i%V@Pmf zVfmvuCdE*ZKtQI2U`)&ClhO%XICw>0VhjlbaaYrY`CK>2%6q+@PIHm*#~>A3KQY4I zedgz}1nWGrlDGe~5Znl7M76Kxhx7s6$?d&#CaxM$`=VzI_+yc4<9e=a$EG?uC8;ID zO^P>`C8sjbj4U_PryC7$Zc?;f!SlY1VtN0><81rC5T=3Yk6iwE`SkAP-v*OCvv7k! zn!b%C4514e)h?Cm_M5%(o&-mZ|L-G3$z=V6;_unkl>=$mrICWhCF5cN!Q;sImPxxM z^2lMjD8~>207o|Dk)tkkui^H}#h4S!mj%NQ3yP}-NaBUoD`|PhkOg#5fgdA{qT## zCe7K6)2BPw_HmYBe^7+97sot_OItd8+wb-7(A}MG^}7ZhW61T{+j{iJ9cjIRC*mk$ z4-C-C#m_xGdM(fE2eB4x-L{RD)lRT*Wss5nB{Ih9?a?P_dWPT^#LFHwpX60yW^QKI zkT0f#pdk`Jc#xZeY>pB$VX>l}6+)E~2(E^cRl6prckO9pr)#_rC9cx`dSJzp=^d+x z^vgMCCeYyuQ;uj#{B4Hv^U>*lKRJeQ_EPP-gfcU&0MS7*r{yiHA`bBFuU=7MH##G7 zq(r(8&h#8TER_(mJrQ9eBv&u?LINNid)`d-41f}l@1%C7J|$Im7?6vqG-3ijCzeyK z=`)G7B+E$DW@kxe4u~C<^wN8;w~#VWlh~@JPdtsGEsd`%(<;lXOg(YYJ7;GY@uFEB zU%}@^Tg+1Vh7S8JZOO3uvV^12e0=N-rwx8jlbw-J&L%M?DFx+=umBO7hYuPBj}>%` z!^rW;u#h-^5rZr+p`%H_mUdEZ z7Kn+950yXf7}p$+X*$mVnj(IS0AWSL2x|BKl%5RgO!ja5p-enuGIv7DChUzdZJg$XML z+RxmJ5B)SOZi6aho7q<8Rms_VT-V2tS%?JRFa(|@X1CpfHRw!{{517L@X_bw6Ju)$ z`->#zQY)+ZSR3Z1Ncp$jBOY-rKdZkp=~btiG7qOs&Dr~lxvhMR{YW*P=LAv z0Weli+z1&JO;~E}$4AIgrc(b}HA{`p_{Jyy!}1A8sAftqI28EA6bw@6u0M~?R9HYK zZtW*SJl#+$J7dqdjyxW*2T+Ima^m9CfqK~nL6DskgmWnPNRG7^+g>=N}3oZ zJ7gN)8oXRA6ChYszCYhlYQq||HyYma=QZ9afPqAZf>5HW0P0CXS^2RsQpjqU%uhjW z!(c$!*U{D%HmE}+0Znm3z4ZrO0{Gr`$BB`V-g5Mtg~;*W^c01Kg@lGa!U9>9UVD^w zVSw=%W_MEqmv#1c9Tr#o9~#!Oya&NAXk6#@9p5URg$)~JKXc{$zaFQ6PICT)nx21-(FvnkvP{DZ**Bf#=)ClvJ+81IPX@em`w!k|X%UF8gIxE4(efX?Wht0Y9tEIX_3|pJ>EFmY zmhHb*x#B*a`@#@KVeIaBdP=*ZxHVTuLOe7O_T`IlMaW+OFHo7be)%$$^NXAdcj}Y^ zRI!5x0HuVpEX=E)0>%L0LYxqLyR8^aNeap|qBNgIrB*msvajEOmJEB*z{s;Km$k|V ze~yi@`AqGs&&RI)?4gE^dz|m{E~jX@bIUN1P(H6G4kH)ZEe&J6G2}a^*$x6${yA@l z^XCWKjKLhYJHGHy+`}4xaa}nNA39*3TqkuAy5eun!jzB`=CIDXtSb(&m|!w-t#?-Y z8=lL4g^IY?g&^&BP~4;Lre4cN62ghc{Ji6CC2&d&%#b2_a%5pUBTS=^-bos75VOBH1|yC>_qxQ~RAXgjB>{+)sRm0; zmGX;b2-E?GfPipjFao~t+sw~o0^CBg*!k%`?Bh$b9nQmZhz6}-FNk<$z477w``<FhxVh{GFA zcdnM5z(83TjQlWnj+AA3V5;o@C^_djE>+wKWGN54aaRarW#J@EC2I694n*?)l31x} zlBc~Av{sA<3L=czDd8oncs5fNe@*A=;jA!}qQKFDsipS3;O#p7;OF$`S)| zDUI*$J;Et=I_(eIdm@lgSeOR^U`T-nP?tsWgkRd);{P!fKi^-cY&#QQ@#<>(1|w`G zvUXA*mX5}96rR}S^M@=Xm6jKpFsaWppZ-zuf92JHTwq|Uqx9Mrrr#4|;`*8apyU^b z32z5?jx3T}xw|DiOHU1$XYpemyn2~#%OA2#E}eL(mD3V{F)QSpH|JWpgb%reD|DOlXDt7UeK&w9%PimyA{Q|rt9|Kef$l=%7&Fo;vHykqa) zkM!pD_ zQ)I%4$6rP~7*m?1xNVmsQk-6*zqsJ#W9%j`#RnD! z4J5P?wWlDC@8PO&JRrPsFfaet$jC;s-ejM$ZoFy?T>Heh_6)a9hj(g}mz8ymc)atS z!|)tnHpgH4%kDST6T=g;EtW286fea40K9PS$wJR^R#bF!Il$o&Zbsz_GTnjjX##;5O%C!SkHVplU(}GKtdSFx<|upt zJzqI>s-9n+?ms%L)(^0MgX|212OE06Iu-5Tw{M4|Cwen^3^VKb`=toe6j6{+^4$qO z7js+^F>&yZ{%7%?z5e+JQ|12R8sNL?Iu+2&FIOVJ;Nnvh)z!&opfj6XJ!r^w0ngDd zOdsWfPLrQT7SnA{tXDPmj~mxeb&A&83dNoJskcGYdDn`YFjcd0a72!6A!s#osKA56 z*5KovDL&E-3kxG1l2%t32^I2ETI@k3+PAGmN@o_MJB>HoTxtvYXR=Cd_0wWf zzDY1OQoYQ4fe7&L2Bro{VMTbRV*2`R@+%r>teTJzbEV_A=bE?(uDNC8OwgFrmQ>LWU{@K}>1CrQpd0ICN! z9;7Yq>5H8hU)}B9zpf%&hjRVzRQ>Lt-xaIvw<^9lLq=W`n|I$c0F1C@^b{QU0gIlP z@XUPxVT|MnTGuB)(uX&3G?c@fZ}P{5wo@Pz(8Ek$oI%3OQ*T&mJ}g`d(WwSnR$8e%GJnwCs8L$bOWsAm3Crc_0S%` zHF$dPNyCQ^7(0um3%Ccy+QmQqg$Za&m?n6-#Lb#K>uWK*jan#?mg@8ZkysoLsbN+l zU?6gsUeEHT{{%H5u`1tji z8_Wv-3nNgccL^vxsNF;He@`bbHK_Ogg4UD6imiigu3d3nNLrd3YX=^K7|+b8ia|H5 z>J-UNil*V2mTVm?-(({3PQ^*aO$Btp5LQlq8XFtKn7y3r?0jru&r9HnlHgUR(XX&0^U@%WZzu`3?P3%~MB4WZ>JyEAcS zz|#b0v+sD}TWe0*dPgd=iQgRf%aaAmq=Oo>SUP~^^!)4Ufz<_@LU_*<`K}-*3IRFI zzXE>wbylByQZj@b*(c3*X1_149KaX|V7WmRkK2_ny#?D8IV@P_I+#^Bx$hhmy6xS^ z=r#yQg7gk!<^hM*QzCRFsdhO!PjfVs%+D^*M=yKV?<%@#UxJql*D%HTb&})wb2!aS z%zdnR1Q?EAqrKL>;PU&TZ-I>H)6x}=z#4d`D;JJd3dAKfVYSdTcz39YAt!P4HWqMqu;WslXOe zM}vVQSt=#YJk%&DNGA9)|J%GWjUPeM0WT=6bjK%i)0_`g&#g?6@vQ6rS(wNo$bC^v zuJ4hGeX^6IV^x)cvYKT8fOcj1RhPDR93q5VXy?U0=vERZhiDQ>dh#!n&oEbdmvuWv z)7_Ey@2G`mxMHvC2(s$5AU2`$65W5-o}kzibrdK-;}c5a7La46u_}Ag9$D2!nl@!m z&At`NS7?xtst&0y5O7mBfYJq4?S}PC7Ou35F6P-+RAch!b8Qw~77bS+&Y%Pty+c|# z#phiJCK}EYyu2^n{U=(Z^I{Qn8l*X*b|q}7Q$C{5NA4L|^#f4AI++N1kW4g?l$HvnBO#foXv9@wMG^W5!RoVb_l-ml z!YH*>foHv{J|t0gQpt@rH;)uPy%b7!xJ9Z`0uG*65Ff&51PL`lCTdNvIr8m>nC!pc z3qjo!6sYHZ_05!gE29 z{vWNk){E72%Qe5|ni?7~NT5OLG|0f6>? zc&Op-=3TqBz&&ujk~eTbfVV`E1x;ea4uapdf}Z61dJt=CZQhq-o)< z^=l#MIed7)W@5vQs^%nkNkMzM--IkpIsF%@gFPrHuzFKboO__O0PC6b+^7Hg{(J>( zsGP{=9?`s8ufr0Xmxtk?HhwZOI-P%g)0_71+0*>_GrLmNz^D5d{ve$)4&rdF%yA** zqAt%4crS}!tib5xC0x1#ZUa|8J9I%YUD&oX__Pvfgrrryokvi438iw0C?~V0heyo5 zX0RLmt23>1)9b?~b6%93&=a>En)I&qP?|f`+9lfmXAAOiG5-M>%Fo&z(FKHTV<@$m zn)bA!P~QP9zC5|XZt4mgr9ST{UP{U9Z= zo_!|OH&kU3T6;{mMMWU~k8JS{9MD=y4C;Ry#dc={G}&DHV7UwY=Zi2I=@dL2^UlBv zk?tQwpKB$0geLHxpS;&G9*Fov^un- zhaeqHHy@<$b-A@R4c>0tpTtk@rCq?e;FRt}RE(sIj9o!HnZwj`{YOd<)h3taVqQkZ z!OUiKDOG>DedKuzhMGG&8^+gvZf{Te?Zu?bbO^;o=4*(Wm->~KGK-77>*99A{(6la z69Rwb3|wZ}pTB!6A?HLV9s(5a4YJSNTjnUOw=lcJ=k>aH)cVf?#7rUpHmJcb(b%!?U!+jN9~hWpp~y9WmIk+0K6`$(DQ@k-;8B zoir+csv36k0Pl8qB$@B{haH&6bN7ApF{qYH z&=|^rQtTiIe#*7&bKt^D01HNYOAACM?JzGfh2Hgq?yw%=r=#UdqH~*qj?+<)Ha4&# zP~%&3^D{)hKwlKA93$FDIUsb8N*Y9NEDmh$k9W{_D*Xs`bAAnLo28akJ=zB3Edf&f z`I9t2Y)?Q?kK^)Ts6_Aurd9clsa_bRTSwZ8snq(@OKusf7>@E$dR=5X&IS+Q^(W_` z^njN|wlwO`;O7vAmGnm)FwQ;h3eCJ@G=s8+LXDMVwf*!kkdd-J1FW=q@UBdn zE_jZo?dOZSHqQv@L*Psn8^JNR5%=A#1ef+hx>D0PG3X)_h{O|H zKQqDyTm{Y$@$XPxNO4>v&ulR9^t&sW=+emgC3xU>lfzaX9&&V)wtnlcpykC}7AC%E zvY;WZ4*T^i-fkPcJ~M%o53C(R5poD&cpJ6$jtg1e;1_VKrck8{$7-Mj=olB|Fim*; z=+RluA&CChtwP)Z8DzpV#LSD!f|ww6l&_XnC^ z@sOFkp1N5(3PeHy!(UskMyP{1qbWQ4p8S{6fe_7S$Au!`!;Z6q9jxur_s38PA`RUe z6V&YO?7lCTY+(wO8;W^1aPN+2#V#(%hx5PGxb<3dsz&g%Y`%$U%r?k94T(eum@hDo z0xAArYQm8~DE*AcFbyQHqIM}Bbt*bQEdsev>_s!52(+PksFc707u(x~=rW*C{p(?= zf+6kGF$vBa^@ErIG#pl61XSWd1P4G%3+q0EEFlLwJ0Z#9YuHba zm87Gq`}beq(hP(~(B7c)#3;I1uFjJel`SkR-oO;on{Oo2g=y#rhe`NWgF#=aKW>_s zFHnb-%B|`)Evbsx(`g)Zn-tO%#nRSh?zd~u;)W2sZ$fO)=0+$7O zg7~S32|Y;5?Y}*@Cvn}v6XOVkIus3MNmdNqfCc^JkG9vdg~-ymRPo)jRGqg7HH|Xg zn{oz;W;-d!@6fmoPlrF)$rBB(73t5y^kWrJ!4|ZeAzB@K)f##{4POh8;EZkDp-^!6 zDb|6jUL;sH-xmoR&|aH{?=nsh0HUaN9n;3(?a<}8hQVJ;W4sk?La*(l z;6P_MNGU*!$YWzsPOIU}V^>Fn@X1g%gfx5rLx2hQr%pk9hW|C%6ts+3m1KZcn5^O5 z&&f>njXP_&RB%}kBZ3HtqE0t0TianQZqk@>7OnWV_Sc+N7k_Y_tyTXFOW0Y|eIvKo z8*G6!_eYPcrdx4c?a;+Eg9oi69wXVSk%ta`E3C4)qa$TXIV4F9=MnO?=+PrBwDCqp zNB@}OFlvth`^JJ1ewd$=862jsz3K4Y$(`iaZ@75`!J|VBNtY&lgFCNYSGV_kg#$kE zxa0!s)NmW}2O2O40GHeXp8MQ9c;QSC`q162%bh9}AI`f3Yj*y~EFDw~d3n154V#H0 zOapaSrPfL!_)#bH7fO(0U?SDWu9Pe%mN%5W`Ahnd)so3EH?US4>Aj>tAJN>}Ixy*N z?%m4}d*O=8_7g9{Z6q1x&YhP&Ib^@cwgP^dfxpR^Z1eC1RxvVh5AucOnY^G~7fup_ zNgMO#s#HGd>#lmAOgUjczZ(+&>87>eqvSC@K@rUg#_4gbD6I$Er0+%AtzvMcoG%2;( z_e^zAF1LP19aKt9*;U;?2_w_x%3iFG!?XAX3lSe^2g&i<(5+zK{XFPaw!E~+?`4L3 zeo_Rp$BFxmQGEZuQB#c*$BtF6s$iHNEzs3yN~Rn+Xf@RzlJpC70toAz7DgM%$>v-^ zrXY5vY7ncilNvm*ivJ@U1t}bI~a?`lemgbn>+t7|Mm;pzB^;mSVVLS>`c>G{V=pF)_=|_xK5OdWw%+e%S2}h zCXFS&+(iU|!YD*2nte<5Ddevs(SCE}DZlYTxJU0)SO84-K`{4}ILIK3Qa$zDt{I1T z&rb5q@dtT%bBq6wcb)t2;d|#s+1co~oD0wpW9r54!QDY61qIW9^KQPBB?yyJ5Ov6+ z2UUU?vUr=uK)fbONSgx)E`e@DFK{Xzp?|-<OmMwaY}DiU$fQJ04m^zkXQ$g< zt|DS>G`fNxy(Jq!sM9A0;p#)#(*3gUUZQ#Op0jEP4_1UQtc~JPkb`yYnWJ#<4Gfc+ z2S8uYh&&!RCn2Jf9ULlXQUqCF1mE0?I@eA>YL46{l|l9)CL;OkOrs@PRyQu(v{5JneJ}RN*lOG6T_;*GfmUCC52m(7 z9Nr?GH-}^TiDk{+K1soEw#0qdJaAzUNS98^l|bHGa*%_)-1BhD{_NV`sXbzOi+;6Vo+-ycNj z`48<)*9@d0n+_@8ecWE1KwBelb#_4&2ALSJ+tT1nnGf7H8iW6`uNw~^`+=bS$PbMnCADs4?QyEYoB)q&p7*?&B$_1Ued|OT8 z2uw@l^D*%qQnWaXMcKxX3E?STVMK7j;ldJ@`T8|ag^)5&_;vNnX1LRz9~Yx8x)>Z* zofCiG>p6>z*Pyw~f!c=QY3tXY4ZqNNmMR?jXSx<+SP@Llyx;b{?nwck`*dDqhV)dQ!+9m zAu_U3sVHP5gzSW@BxJR$BxF^R?7fSu`}sNg{?79{uk(If*L`2t{dnBhbwBR@>HF2; zIF8SHzhAG{bNy^Yvi6i4MqurGQ3ZOJmm^#)>!fS~<0h^S4Y8f_R_D8xq!oeenLQO; zxD6?@iJ&tAgKR?|9|Lc<(&UHhAfh5L9k?=Z_X8D1bFQwg78d(UM03ybXFq%PYjGKG zYxdFiq1L`9h|nYb;MvDR__RX#m9CwqfXFhy>H>-w%D`9cWWr`zmCLM1yu$&tTu31~ zqeQ^8u+Isk1oCETUSQZUDe59m*id$E*+fmP&C~Mf(`Ks6QN)dbA`{K{_}F{LN2nq$ z6o6Xwy8Z(dQH(Q~O&tOj26Kq5cW#TXHB-C)7%^wq$U~mEIh&X~&Vha4Qi`^r;SRc6 z3kfY4+R?5%iD)2VK`k%@EeT=sX)2sr`?i`k-&wbA9i|STE*IBot-HLJ=dm^qOy3cv z+qCP1${MDe)Ns#rc}&%Y2k;3MpG98$Zb6j-)ApZY$OVRN2{72aG&pvJ?mvZbkK9ZY z7!OD2`_>XK4-ao}6S5F}YMAvbJ3FoWs>rUV<>j!mNGd3ZaJd}~gB9mJ*TVOX?&aA` zwxRdGY8SxGvE7fk`pbR3yfhZ#91rj2VPiZ}`-q)`jdvU9Pa%kChxskk8n&g>{tJQ zLX`Bfc%STT**)v7S6b#zL0krFnASe0Mze|V-O9FgGrs{)RGNh7z8Vk<;z^hu<^ILj zBLC`~K$W9i(N&aZA~7~L9`~tm=4`hz_P50skc2~9ln$D2nhzAmX-#Zhqki?h}%Z;WerO9(tD+b!yM9|Br&dt7(@V|gwUc!6H?Yk`#9z!9{+bR05 zY2j4tZf8$V%yNZ;JIn@+PC-)Jbia>Hc84sq*>)tXvw$c*eTl+Ri za6c@%xYtfu*Q&8Tq(}}{;4XW+p0^yS;)+KVwgkV{22m>Y?yIV#p>@skNeQU4 zjQ%{GJ2PTK1u7T+3f)`?%l!M&p5CoRJSUGEI>bB^3x zBYJlH$NO7f#~##}LtM6k3HDw2y*}E_aD9o0$Sq*DVP1jiO#S`&!mkT+;Mx&CwW2D_ z>6WRpUq{D5Hb3`G??Hxk^1I8{5${o0OfolptU%7*oQJo_1y|2S&^E** z=``M0A6fUV=@*_7SUxK#te?wb6LTP*vra}&^tRYgtZdTh_=dFRp?0Inp}52D9>*PY$RZ%pBek?7ol zi3KkNyUcj0YG4b;I5=D~OasU-5!?uJfIi=Q9|Sh^ita&k5l&JL3_8jhgl5Krr%%-s zV+f}2*Ixa7bwcALY%ZDZzB*v#X{l>ySj%1pO+JcZ?o*KYL4XGdhz8eN_GooI{j}x< zPic`znUnP-Zt_Uv;UK(yO-;MOWHi9WwE(&_g#2JLS1V(uL|jtyQ1a<{kZ3-{NySLn z;xdg0Ve|se^;-Fqj#EHPmxSYfPR)y!P0`j08I^jVXh#_TnK@I5MDDqc~%t~@;Q%#Oo8*t80Nr7VcFXU>DDToi=f~nw_NDRX9`RKk1*vH zo?|HfaD^JMmKgTjVSMuR=^x+#vWece{D(#w(aho*3W9Ut!q~YErDUv0v|9Ahc z(5WKd;fT_To$ius>iJSXS~^c;%& z+UxapchIEoB))h^3EWnZ#)%Gf*ArYO{z!a_Tnf%Gr4&uj91!HV(j(~j82Jq(lM_i( z)-1s$nU7KqH2Ihxj%u_<0{N1%b@G{|9|b=ikHRqJv-x4vkLaWkY4_|9_t#_Y8JTL{ zYaXnfgm^a2{|lbM>aga{PTVgLjY+Zr%EjtwEkqp<5g7?U0$$|bl6zmIoRTvc2+4VV zEqo|piKerc!tbtMua{O_O0S4w`%sKA`3dC|g1pnJflcHOD_o%yG)|og%VsS|O%4-VRG3Bo-3Jvg7)ER|aBT1H{Fb zD*vE>p}xr_qAGn0Ef~;{9S=U(7rHt-Q(mu>-P73Al;_y<-a(9y>v7u%Vz-6AkIZ2_ zK^=`X8&ptu$MCY=llPJ~MsZ1WXt|!!@f=A%K)H8jI~>1%Wl<5ejO@DcZG>eT$+t$9 zTrq+738zjU&%W9Sq3u~3Tk z%#NmL8tChb2?~bf3A*rOaP=(+^BN>{mcz?6PU_T@ElNpAwzS(vEWY?|XZaY4mA)`8 zv56-ASr{Gp;%>a>(TU-wey|}I!;S$FasildTGuSUW2+LD#>;_Ut@R~Y>GHkn{ro5* zlq2%CMW#w2T(h4w81jP$%{2;A_2Kb99K>Kn4{U?t8tIJBg=E}C4_tQKk)>I;cGsc8 zwW?&>3=-!y>a4esX$e<`i<1OUc_$t=n!qxrDtP;-FvL^=^QV>{p@)lhqfyS#MYW#`;d2g`H@9CLx!?(wtgOb%i z)SQbU(f#+H#xkr-IUc7!@-l5)H-elZX!?lFa92T?K!t4)R=mg`=AUTt^D=tiiC52zBzU++Q&iq-XF(% zQQnXjyv*YdbQL>Y#6N#(Z&wuNGkktKe(@n}6XL}j{Z6PysmSNwq+^#>i4C+Xmg>_A zP%+gePwgaPgW_*?z-~KNUw+nbd$eji>ph6`5MX4SmJc=Zb{b3RkauPnxuhklgw@Pq zFjktAqoLv3>Sopwt&&PSr!Frwzcn~MGNJZ7Twv%mJ9yfA6Z1hs*_n|e@%sbcHMO+t zcQexJd7+;7K~GU|&BgDp+!4A4TVL=R~u+IZG^@+FPlg@vrGma-Yr2hGl}(BUm$escxUk84h}fRX`@BhvtKE zI+}$P)9c9pOyby2#wz~*zyC+iLkf$gD9)=1H8QV$!q%S4g_krqU&EPjyoJzKX)g2=HvOJ=HPkjclC6b^JDxp7kMT}Q4d?H@@9TWQNl^o>H1N8+|u|iNA{=90t>*lN(jd~2cS8`Ew z@?S-f#;`5{WeLV_#5X1-lUb5~|K?bQAw^wnE!4Xgp-ziZ!ETv1Ze92lKf}LNmE8;5 z8mm->*@m0sN1q2iaTtm;T4PtjAVg|AxsXASjL?pVpK|yB$}ajn<#t0yZ>&nKJr9PG z%7&TzLm{dx+hFXq|Z?jU>*p=q-8e<{k6&t->8wy1p_H0MFeOtj<0U>=h zH~qn2Hn}^0RFW&+=1(i@wSR(EnjB)-weTQKc4ne9_X@1}}&3MdT9e^U1FXXd6LD zAtYjx&=$Jvg^E=ujv+DX_3yAp+^hk4ax!JlijH6$Vc1G@#dxF{Y(k65oqO}S8uz0k! zMUGohy+>5}LoU>Cl_m}nv3?(`5eEyGdo8WKsawG}%kR+iz7~)R`fGU?n%j=H#IyWe z`BuU8mazZc<==RKBSo|3k1PN>wKSYoXU5~5i98X*7-xcPd0+7c8w}$Ovw&KjX!2jH z0vnT8>FG5+Q@|Fc+0l8xhss0{9nqmVSioYQvvM=hZOY9PgFn`)T~Z$5?}A{i2#N=W zI{^0-TI<6hTj8Xp<|M;U99IR|g0YVVuKvV1g<7B8^L85&A{!g;=j|nQjCd0<2ae9N zr4QGf_o`;z(h-b{*nPjzzHmmNgu?)L3MBk3jc>=AyjU#YW*Bnj`SJUzwL$tj2@_jH7^j)n#z zM7VA;)FhF9ri^kv=Dl33%)FN^7!IS2#y=HzhL{RnH?#1*AZCop4)aVH_IuUC(pPGA zX=W%0Gs9Vr(z-sgsI~Y4HTO^ct%=}c(l#FMymgNawsnnr8bZ9edR zgy2lnmhwqkRO;%_nuMoq(Bu&i5RIvaOg6R#P5TzwtUsR8;2Pjm8GCZC?fB64n?dLd zACm-zkc+@u**8#X!fiYm0n86v<&;8}gpebs3Bx`IG0fuLnXwFQiu!^GQ2C^Ukz?Q+ zH4n|p&@3@%Dzl;Z3y)PXU=9B*ueZyugK_Z2Iz`UyyAn-rVIYs-p!>ooVgNKvme0Pe z`&53cEo!KEBRCcs`uZrO4ZnOtoDrt-xI*H?@XYrUUk9)5q(=0_Fo2@-%MIDXmhyQs zuueTah4Qy3f5G}Vnf($>IIxA(i`CDy{`osU?y#GE(41ZHrh9N~EQO**W>qBS9{XF3 zCTD+j6)P(%F;*Z83G$j(HpyH*bop9i{2oOm!3?Ed=J+?=TwGj_L;U#9zZdrh4SK6N zgNA@n?P~@>VG)tkks_44=#F}(00B}a)y&VJFF~SjUvT`SmLj)%c(FNZT?@xgjCAWp z*2r%Ca3PVmII}XP<${HthY%xoA4Aij6Xm;>f;RqfRMI<_qS<)UzF1rn_$TJmvwhc1 zobM*zR^S%Cv1*ePyjSM>jp^=ruLnY6{FWR2Gv{WG3T|+zLp*e&<#dA&kp0^94(`(w zEHbqT>O4C`s|}BR;P(55n$jcNhEvO*`_T=Vlg*a-=t;jx6c6%pTl^fdejh`LrSt1p zYKfticJ%blPgp4Ly+6%nTbpEiI-{l5r)ubH1@fY&xxCzjcBrD3guW8&>-KmNpBDn5 zdq|pQQPG&t)tlG;8GGB`R%MopON$qL>%VUKkp5VaD4uk2=Mrj&c)?0%_g0F!9%&lI zyuFlR>WPW>vD!-Iup0OqvC>sxM8_?eA}e~RQ`}%golT_AwJz;0&HQD%eC37R{Z)Gm zHepm9vU9j=7}0VgBRhvwID>lN?PCi)>XoZ>McZb%%_5~dovA`21*ARh*&T#`Ez<_d z`6DT44)Fw3^&E;)sV3E2z|w}$7MYjFCwlO#Z@WXe(>G}%1S|~6vS5bnHnQ0<#MrL1~<2MGU;N0ssRzPW>5jsr|U|L$qlM3_IZpyE^r_ zG5`}J4L@!v#gnXn?Uh6=Xnilaxy`?!mkBRs+(s4CGD}!f-74q!bAeITZO?vn9*(H1 z7t$-2ZmwFlYkk-PgcTv}lrq1GFgJqe-DFL3qUliRqKEpwLHCyVQ9WW0E^HK3o~448 zR3wr65zVPz^}9onRdgN`eV_3iF#{`~wbWB~rYEe+SL=XE5~DzAqm?HO13f;mDI@MF zQ+sbDn`s2CKf3C?pga)bbLiyS9g1vJhX9C4!)piht+$r>%MGhb!Jq5zvw1OUb!j1q zQqeW-enxL!N`9i^^`4iAP|As;h;|tLy@&v=h-Yuia4EYT+^}Rn2Xmj8f+Zgf=(Hag zSkkyf;j84RD&y`Qs$}%&BqF)U^694Q3>XU^BJmISq@fOI~#>nhPW|JH1cs0eIn!aiF z(0Sfj~0_Vb%; z%~#MRw=Djim>3*}-DZw?oeXi1*loZ@uxfFNbztO7rQ{ZjHblEwf zqKK9^_bD9Ei+Odb_Cni?LC)$HM(Fj4FaEGAZyg7G3J&q5F?qEe% z<))B&60o;Cc``UZ)#IKmF1Knutv%H{)Vmb%1T$k0yyi=|EwhXTW2D{RdpQ-Ko4&h9 zLmAc=cHpzsLBIp|-oqvpmFLi@V!aFsrrBSdZ)SnnP*U;r$Ca`q-Q8^()brhEb(s)l=)*(;O$UL5Bb}yfp+81b zl*uG76w|bD^-rZQtb=ko?CdXHvhoRVc9p&L1|FsD)P?qiCD80B13Slj>-bGS<-?!V z2Um<{SHpRgI>xSKv?#AKe-pS?ppmnwe0%v_-3%BFmUC>|Z+k6MV0To*049aYT^}qS z!nfnikTYTD!CF<1mIvCa7|~1TE?>TkutX@**}&MqkV?;7hqSE=b})d@Fa>IFq6EVZ z-x_l?yD-&LKg9qyUHbS)+-?T&FqY0vzy0n6Es-*YUFfee3;1Y%jAP8~w@sq*`ZyjXY=)*AzX`6+VwUN)KxbDIX zr+X8ee$Bf7H{Qk73Qwc^}sM?;K3RD1Y5zNo;bMN zVVs5wlc$QUB-7wz3^*4M37?N4bXN$HHP{gPYN3`l`_t;;pFf~xREUHHzwTmSm0LPa zrNGih@EF3nQ~EqV(F|O^du|9MQL&&?zm+GDqb{tcIIn!<)g%DD73AOjXhMz!G+iK+ zmchOTj?Wk^w70alK#*wOPG#Z*%LX*9U{m2(2MN+!RrHo%H4Vf+E!OIl{dATf5NwE$ zz~}J6tWqM@9=_1Hn%_%YC%}ufYs!5-W%tJ z3?$#cY_yz@6)5kl-y5p2cT3>yZ+kAvYMYEx0gF*(-HPP=ALTYtTNHhyKnNTA> zTV)Fwv&RfELb(MzXGnKw3PY0^&4H4kA$|KzDzC7x4SQDUIpy9IMhDn&G+N7E5U2=$ z4yiCu1eFDH@W@n@24~mVHyp&4hn((Y2}o>oE*XjU!|``lys_0Y5U#lH15o! z2HxeuE_T2ikc*iOG^FQOb4Z8GafY`hAU>|1I2S^vDRs}#r1 zX{;;%@g>-Zi`r?tqrlAR=eC%Q6$&MPAw`Soc`Jo(;}TBMjhr07Kp6qffrq&TQa_A4 z!6+>)EghH-SX#1uNc2k*R^`f^X^O7w={pjLI|deC9J~6TLRzdD-}~gnhuY8=WYyY z0rgBT={>a8tV$YvEyo$wC;0STmsFpS`O1E^T6LvX3IhSJJhhu2&vJ~gZ13atTS|;l z0rbFN3ZjN}!IxeGRm_{eA08f(ga_fn-qR1O=b6`$rx~DEDD2tdA;Lh7sWH}+*w1^_ z=;aA+rUtryn>TBoU4UBhhuAYD$zJYSlb(@rB&Oa#p>%_bdb^!SfGT?acV=5IGlb{{ zps>CN6+n}Q-k$rQji71zsaFUS0z89gY2aFD1ok75)zv1-TGi6pnzur8i0ZKMAM;r1 z*n(rNM+9rNC>P|8M2Q92+Sw&LXptKvZy6TTo>u?~CVqoB((Cz-&-*3&`|uz4G}5*C zu8NU6{}Jb61dc-#bHxk8P;@2mwM?d6|I$N_fK)+wTqtVr;n+gsy7{_@W;uVJObXK3hcGl~Rj{eJm3iCF9y0!D?~ZqlK4w11=i<|3FU z`T1Jr*D@oeg&4n> z+!~q2blc+MvD)kt!{_msCS7$DywP%+|#3*)Ga5%|Fkb94@JxK;Y%eH>b-@=M6+3&XNSB+rN0iu8=VInL4xs+OS%lo9yNgUO)X}bkm6;gCFe#3az@f)CGM1f*H07)sCB>%CP>AX{R z=#T561;_eN#b;_Ia$dLBD+UKP|y(t&1Um^&b;C~67Lr~ze zM?Nta3@vDFmjBneG@~{@_wB$$#;PaS`U_7l4 zE$Y*dlxHsz1Ch~N6$QKs?M#ce4kQbvxN)D;&L76vMj zRN0=Xh(F!9?cNhNq0Z0uz`nIDFckUCWd&h`o&LdF|14=tS{yUmjlWwJdQM#JDj7FHkh%~=Ue6YKLE(J^MsVkiRdemF-Xfx+4wN*AReb9PN~ez}u4jBA zC~Eed;Kac^pLi2PL&PN$)*M8Zbx5(zHoE1Z{lPlZ>-TF0SvO9~`5UN)zufOspGrIx z&1xnTTfdjb#Rt|%^Ve|4@ZA$|kaKj*txn(N!e)LN-^4WYtE)IB^W5)I;`~Y zGX^K)O9MSqdd$9)SRv4tDE~r{cidAAl*vfThB(!e+sl{XdI;4e>e9GpTtfvGGZ#y?Wev(zbhoXiG>KC8K8Mit1rJU{ozY`jJW>C{{y5aMMI6$JXu07ff z0tr|E_?GPsSf$X#&7M&z??=^Gldn1$8T-0ET)3H`1-^uk6lGTWi2U}gtaP>_Y-c58yuH80%UNL9my zLEYGio9QC=sq*5;4H!%qR_~~Lnt`vqiJ7065W;enf$r8&x@rs|r9zn}5PWNG$TxHV zL+6x7@6*dHO+q=MR7mua<$s1Vmg>=E#9V}$K7&Psh>6E5LdwNIuCMnD&s^VkiIZI$ zp3WD81|LTmf7!lEXh1J|Zgx6@vCAJ4Ps{m3DI4r?MgfvweJMlMHL^ClDJwo}VgRnK z?YuNU^{VaB9yW_9rsaG4*GDsWPn|p#z>&U>>b9SZ_VNANadBI3gzniid1+;z{)Si- z1G*d*$q$Q;^&jC#t>BVEZHz?=T<^Bfc&OR6ns6NHZ8xN*VXc!+KtVhaL5Q>FYz51b;O+-W0GTYI^)ijj`w9;(7_mC7z)$(!&$)5gNIl-n){r z5S=W0nx03Yy;w zi~3|wSKOt!0|xll`_jZjnhHj+JPIA&q%IXgEOE8)UptH(vU%SP}GNC^vi ziU1QcZa!ITBew$6->Rtlgw1j&oNO^#*IpV#c z6^+MO4AQ&0t2naQkx!COI=wku z5Slu13DX3c=5OCvgR83gT8?p|Ja?2Mw~wbD@Fo0KOKRLs;}4`%_b`05PwWorA%^8w z!8W_)?~hso$zh>JI62C_4h=4CeSJ4@v7A_|*zU^ifx0&} zRUW`2slu3`vIerJ-^OvEV+B&Y<6cd}Gs6Pv*bCc~|J6-Chpi-tGDbJRwt-e7R!t8Q zH0Y)fPicYL0Tf37g3r7EIr!SGvOIfEzfVAXDHp@}R-x)(H_7kczkhT*Db^ZBvV}YTn`V<+9ktP7Y@Ds{4N$Buk4K?{S%D#9f>F(_gyP$Vw;qD+w z?%cWa@?uZo1{XN<0@O&EE;-9zdM-G`c^Fb%EovD}fa3_pwYX2M!eZBI2uyi#c}dBV zjCG|ry8jW~dI#MBCSnoF`{x2lFL{7^!1gWPf=g49tt-!BQJB~Un;awF^> z%72Z?;sNS(N5Z1O?5t-BziT5WrVR3W-pbTf0mWqyyKhUGb(H+NO+_Afaw*P5~@qJ}1e2 z3u*!^$GujBT|}mgL;`9?+*&^60Fczu;OMYnXX*i*V!#kUhQlR!jKbDD+k=YeLP5Xa zNufe6CeCb?DO5rY?h-qF5|0(vI2%m(gcXDWEy&Buqxt=@#?V*BQNZH0OKX^5bUx*_ zFfuvGkJYm_(+9SF`!DWD*7#Rv(5^?Rs<2HZQI97A6Uo*aq0e$jTK~Xx@p8aJ_3KzT zQa(>{QTc)5u=UQTC9%?T4aRx9^R0!5FshL(aDE{oM2mF0CGYzxr|o{wqmvqenKsqC zi3MdKoFX{a@*qT)a~@Ll_fSa!X(ePF8D&Ll zjXrjI;^G=D<2{Uk$>QIl+y=H%UecR<)rKP zD~A%jAN$)#QOhCpD!@gwu4Hfar zy$5742`U;xqDl>3hS9267twwAxKmM>-3D~l7SIukQC^>t6C@f-#y z2QSI31)JV02e^fg8}E7Or<|?_C5K20nb<5Ibf(2ajF;Jzvx$lpF1{Et2NI@ec+RV2F;u zKaZfpUKIHXCDc3M3<$Zh@5t+mEMH3bJXXw8-8W4T&B)Nyq*X8mk#LWKx0=$K^$Q2C zczaDJ-hDnDU)AIO^Ui@mc`@ibl$p(@*A_g&jW7JAF4{h{$d|)JwZr!VuU5asP%TO+ z2cZ(!QkMaRO;QMk44qI06BAa9bYVj!i5V``dhnF#aS_B4eJrVQa%R3+)kBxenp2mW zV<`7Lf4*n1Ey{nRwf0DNj7lnYBOnG!Z2E~;W}(87lY5tjdj~2Ns!dEkn7$&d>1lfU z(D*p6a-8^O&N*Grf3%3_Jg44)bOdil5cv^P^9=;gPR*gl-q$o#DtgIRMf!NI3I!fg zr@e9Kl-;Uzv0DA#Zj=njN4mR;c*I>kU^cz^)v?yT+QU$lPzqQd>yPVf?D~V%Cv2we#|yxof-ufq^#H4tXRc2FH*}M61sfc zvPWIV&0|=r;5yOP!NBP~U8x~1&-8ZyV# zZqK&OLSd#m&2932W{kD(N3Ngq65x_M$ta1{_$FJJ=( z`Ie3d{2reA14VvD3l@I^!AQwS+^jHcf}Lk}+gH#lf%u#{MR--+xMXX)6BUJqx}ZVa zxDWDK;U5#WIEK}p@D#Jiy79LwbqL}7{7+YECn9zAo={KR!LKoM`)*5~0?34ByydCR z&#nmU6ofbZiVs}L2<0mFT+A~W?rK(eK*9Lw=Xa78IZW3?5c#flWbq}@&)91@bRTHv z9_*md;W`UHsKLRXfKm-2R~BWH@|EB!k$x+4@?Wcf@A}RKNkZQcKh54 zdNlX0=g%iW2(HgZ=HVm27fB4@si87yYI^O+dXP(guNRU^mqxEr?6{z z^~!Umzg|;_$s`lwiaycug?b2+5sMR-@i9jv9Ru@s^BHB$p)dTd3VymUV;6hIkRkGy zYT^9Ba+)oCi7^FRC9G?`TBr@G3s6PtTsZ zFY^}tw$>vJl5bYi6Y2c$9iUtTTG_SKFX}g~H|8-f*mtkfW8P*_!SwZsRW21JAR2du z;K1Ad+-6&qBXF=1I2Xb!c!atyEpqbo>fm2Wt>pOFe@3CSM-WR-QZXgk;?dkH?9Gs+ ze6W(v$KgX(qSVRd%e{f@Rzi)J9EA@Gk);69{8#%D)!}}UiUqj^yzw2*R+#!Ik^8jv zxkKI(A)vx8tF~t9* z5q5+`ypd-5hri7n%MnX>9U%Eikzl)`GU!_QRY-2mRANN3($kedVeM@u@Gdx#xngSI zp3SmAG~@qG2D4xkS(t0dq7L90tbHpyXGrt}Ic_?L4CujLdnFaN-6fq%W+=iq!+-+m za_p)M60{$b`iWK@>wR2`XwYi?Kvm!gigL7SY)n8X9NMKAI1N)|UDv z&f0us)omDMr`$DWq?WU?I&d_k-tx$H8qg`F%nnD%FZ*%0LR0bmwmu)SpkT9mVj}58 z!lxl;#8xr|=Dx-jBjh8q^-j+ElL;ZZ8PGb03^I~b44^UYWZdgP%K_I&LGgLdGI(-C z)`6bhew{%WON->dg|*kvzpkJDEFS{E>?Ba^*C*GgzYRp_>Z-3&2lxk;7@{*-kEm&Lrt)ck@N;0EBry; zl!d_}0FoXyI9Wc*kjt*r*`p;1Py-sip^~Hb6;V3FiY0u@89D+D6fnq>1)(ip=%wzN zGrWqEP1ZsXQ4LX}Mk+n0zSs4>A{x~F1NSVrjwK{F3?%XLpa*IjS&&*X*mQTA;hN%k zW~t0`rO`bvv9LT+SUT>+;0Wes6X(q|DDGzCz%pfEV#2HyW4Gq*>{X6rK}?Pj$z+!6 zLb8C)HB5^8e~sP4NmNL6`!|&8(@ixaqu36+D-yAL;K(q(LTsxUTsxdM-FgFo^emst z9cWq6u7*RzO-Ro>>>x!b9*2I8%pPPkcuWRxK`r`o6lNYEDi1m5g^1c-I~})Yv(jdV z-uq;E?tl*uF#W0?_~d^+s2sdOQxO_qvW(`Ma*7!lu&T~>lav+`(#Er(sTtZ8-Dv9& zp|~?x)0=TMe}7~h#Hg5o{P@8kb>c5n#R{kZw@8#L+#f;BSlUayt`j^0wEqYzANeIf zCN-OPvVDGYT1)HA1>|C{yPg2`iAX*Z{E7~5r-2Tg@kx4mw^f`4KSw`9<=aA#EU#Dk zX56lkgP=WB<@oV6RgMSL9%*E>j2b*3TIE?`NZGk=hOb8Q>gVpZP^KrD%O&ZfoG!9Z zx9}xy&@XO6eO9LkEz=qi1)VJ22}FdDWxxtar)zg%!fRi671Rm?SLV%kACt{%z@F7# z14$IJV2Y)l+`2Ba>ss+K?4n#b)n|SA`=9jOVASA=;G5yI#lUyN^a+QoP-F1IL4EFa zAVe>G!?$uP`U&Tv@-6}W^Vd>BG#ezm?tO}1t*9UwjRd`;KR~)mHM`?1t-MHi9Q(a3 zT2z4GmD}9D?k@m%8D5u^6hclX!Vb3IIJ+`TOX7%o zEW=g)$<{%*`i%$HvKq^LjEbSrL6NZXBueowL7Odj0A_%-rmhdCp^yUsx~j*t}_;tD<`RgjGKUch&d;0ss6|-_m;%IVkVUaCh7Nx`V`vbZtC0d|L#`g5Q;c z60-c%r;KvWukJBX`P4`0(`omIVoNfqv5T+D5y)@#(E`I|&<_o=T6%NIK*g37#S zcc@&n>1pgu|5?*qQv;%>6v41A=&%EP@?d}=|Ej--u)56BZH|@Hzw+253`3nS`-|ego8^LtZ#Fi2$M-vDT99e5A^+vemmpVU`EH@U3G4sG71``H$q$wm>)}Q-!}z?tq^|F$y6yhi z$Mu#;R0Dui$heBx6)3Uny2AY`VY`lqq)d^@&I$eu)2oc|y4B zzf<-evQe2l`j3>o4p?rMp~8f%$3V^moMF)avjMRh|n6n;vm&Ery zu{we(n&zhQ(uUwYipLeBom_dMSlKtd*781doJ)yIUZp6znu38TEIh%ypCU@Vkr38u zVPyW$`kc@59AE>lVXgQtIi_zKd{$;qmf!xi1;aU=^UT4uE39F!lk@)j$ihkkGN^Ll z`44K?P}6>(x*!Mrbu$r~8T*L{2Awl!N~{|b;o}{A{`{KvXaA#~_#+;>5aaAu(*d7V zF;$R>LDvTGR$<1vXKEg#H`r6kEYzq!h=_o`wGWIoP0`IJ(1T0l67dBvYaSpH*`R-m zZ*WB*OZpi~l7miC$a8QRVSZypzmDP>Fs3e4Ku}kJQ1q&<&jbF|`z~@;^opDuURTkD zLT%h<^|uc~qP<}j_t%vSfn33G56UsAg#S>o{Vq~P%k2|QKv0O%&ZLtPXyp&Fad4s9 z3oo(PUv3$h6MC#pg&OO6fv!maOsxJ&(avIwzB1@G56c3XsXOYo1$;ni1FMUkp1v71 zRE*Ts7s@Gwg8}rKV14;aUS}uTD0suLXU))=5qRiGd-!#+0loXjkAnGvHOrw4&c8S68}L&*YlPxwy<>a$ytQF#F+1 zgXhpGV?!L-c2QQ7C4y40`X_tUP+xx@_Ne}BM9>QcZ=1v@WBv;+Z6X_x|n*j7C7I`={&aZ@+eOYR6_sRoCsqk9o{lpA~>K7VC!WY1_lN^!ni%1 z`joN$z$P{)FK_Eilt}7kq7Ab0PFt*+=_AwGZuFYIhgqL9l+w7sWXA&j?zP8 z`fVL;0Mj9$th^2y?HKG5QMe$67TK|Icb^75lX+&ulzL~08^c15*BY1d({m%1$cz7wp)MUem)d83(#=}{NCEz$l zW;lnq>o6TgPs-uaOiHCABUkAJc+ffi*OdsvgQUjWcallx$qoa@s8^>2R+~P3I_CO* zo$n#C)RW^T!41|FUGw9@wZ$Xotw_G%WV!19*Z)4ok183CFg`xzKO76cc9OB7{TJF+ zmD(g9`u?Auf{KSw)uV(XW?7>G^F8wr7?rb-g?!NVe2pA~b>e&f&UAgJi*I2#WaL-* zW4`Qc^)52hxSbcsOktrYQy@shzT&3O~*gTk8ouK>@A6Yp!QZS=0&omhiO{aOULL7JK_X28O4vO+>m`LcUEJV z?vVCZ!S`PRcIWEn_}*4OuX9@X@^xA+{rh*%E`Qt-E#&#$*k`VOrtgQi%}>rNYF}O% z>-`dMaR1nIPBvcJ2O2Qk$--Xme*AdcJe1jTq2+?k1_EK6Nq3gO>5N1!48iRS>-Zax zPvCwCd0P1f9WGBtJPt=egonPMzvM;VfkdimG^Hk1Lt_X>D}|bmt}NpzPj*9nebHI| zn0n4~309~*=vdAPtAflAzlO|S%=kd6FC1k4F&+Z%k_t}5yPkPp>4D+cnM~c&;b_5O z)nO;Xdjq)1l-t?wK)s-f?$?G+ug3hvJpU+VFL2--7MNEd#t_y+#zHhnXZc~uC@$ai z3Wuu^vHA7D4BiCtfu~QOjeuO&|9RxDXHE~Lk*k(@+XM4P7bDS~M{s&& zVxOnTFkh4Kw!FHH81gAE+$?x1UH7Fv*UAZ#uFHmUaX%bY-uZ$ ziE~HNzeD)pl6dbE<}oJwiTi<+Nj?bQ2;zd0a<&quhormb|J7d_%Pq$D`*vw%dBTSv zo4+$_1Z19NzFj`%0w=!NCo^Iw1CG_H!mk%yPWtNpfuAfvhj^Z3NgUI`Uq7(kuFUs< z(?&CkA7dvM~w|3^+xj{7^a+_W_K zgP!T!{Ot|-!5C0ZYX%1mccGTNPD{}5O_UVH&$9W`M?5$-3kJe;h9U5s@Ft9U+8}W-jyfI3#<$c=n6lu6fIXl^^lGY3lF5K2Ddw1N!ZXtZs^+?o*(b3EW z7k78@$hwPl6YclNzgm{ag-2$~31m}7GwbNU<||#Bhbb@$*;{aNihcM{F|Bz{80__H z*RCxrxW5tXjX;;_DJ>%|UUaYgJo9dxSzo3n>_V5eH$Gz@9UmOrzH688XPnbpKwQxRCj++W}=c95$k86*NskK6SprE@T_mXxf%Df%|7keCQ6Y=)-{py}b<6#LPmpO>n9Wpg@?BdS~foK;R3rwy|ISp#h0RLYQW{ zb+oRJmz!JrsA(xcu08j~yq8|$w7x56+Ckj;6}m3Y&X{`3d$aA>5h@jww`~^jb|a&s zkD{YB8Q!s~WNY&P2nx4Br9qI$JEST{$Kq zTZ$b89j?q`K1=_@ve9>E_4NnG$G^`Cgq9=K7%Q)i4piBgc!?P8Y*io@o3F~J8IV_@ zhPJPJ%5D6G;boO_4KB$06!)2Z)V%mm?F;PC$nG|c4$D|_(FG%;t={}FvLy0+n8%Kh z-=tRXE-2P&YgC)37nV{-CdS8uJNJUNdk_tQRe=m5_9@iM}<6b}2r|9+O(^BhzEy{QRW0zZA zC34}@Y0m^GJ7qP&75!ty!pAT=J_9 zF$LC0#r5_$O&mDFQQP+m<*j|gaQM!^*6e2bb=RX)TP9qv$zqSa9rNJpd6%_VU!^ij zN?=gX^&lQWThSH_az)R7szp@WS0C-Xm!+RZYb(uf{KWyv?rgTaOJx;Ma;7$tSvTah zII+9p{hy6jR0FDdraSyESLiY8U#>1#k*tC5QOnMROZudW(m*WT^W{3boEGK9EA8ht z_P7$>2_7COjj;PfUzM-rN`Lw^)rL0hxN`9`dOEu30VQy1Fusj95alENh?8fd^6gY> zn=?NwE-uc^{J8pN4K6wOruCBiY4p!7KYjU4{QwSqj@QXOplD0*X0t0-UTCJnBA|%1 zr2Bb|B{k_~8m_xZAuj_pTt&w7xr#c+afyqH#20kh=D^FB`N+R08^bCZ9}{ESuJ)?D zTn0=G>YM(hJbj&inmJ>*KiQ*?`;IbpeV)K4Y3xbuW4i1Qxajk_BkK;|z(b7cMNp7% ziZ#o9GV%xUJRCRXr-FT6buavw-p7V;TGxg9y*43E3N;rB40$4u&a-TKmp_s>zQH!S zRpr{1MF@f1FiM5gYW9@zpC&ZAj)gl-DcUzL0^- z70$4FOHrC6*Srw)iYBVfxu&H9)U%VZ0PKE z;r9K+Fypp!_YLt5VqV&;4ww0I`?96=(v#O#%ZZaqa0n1U)#EHd@F0oc``CKQaUUG| zu_WR39rZ^lZ*HDWu2O9l0(S>Q>ntsf_=dXcdqnjfvvkeB7ma40T74(reP4xh6+&@D zp+VXrIs54((M6+mMM6P-gb0K}6r`1-%+0Jmky;{N(#Fds&rP@Y^z`5|Z8#(?Eq&xj z^9PN&;e=IxAp;q`7CsG`6qh#?F)#YZwQW5>{0OVTNLmua0A@r|qwDt}W(>6%Yd)Ws z+D00^LYpzvcGgkg1|b=TX=D~^V)V+^c`JWfW;K@s7Fz=Qb~1gwr2n{+aCS%J*(yw| z{?vmiSUTZFWW5SfKWBm=OU~CQ+X&pSfCZmHCJ1|=-@krETWAxT6%;$x)`}ap(A_$~ z$!WeoI}*7w=slbmB#<4iqeE<8DVk14HH+d0mzI`3P|KY*p9GF*d1=s}>dSC9V}1D2 zuwFUwnfbaI;LxplfcTB{!mlf>Yc9f~BG*pjYpWhnd9Lnc>C07`9_j5h=VLlD@$~8N z??p_Gp@B1}#16m{p**da2A&kzZPdK`6ZLLckr?6T3)rQqdip0lmJfEUl{j()MRc#T z4y-5;oWMMBN#EqwJlNXvXd73?UCVbO_5}di5oi%y0)3ejC5CwiySME;oMtB7bqQiXALPWEJW`?c=;}{1qK;fW(d^qiWBn?qJFFVJP zAAM=c$a**NVePtTPq1IXjng>1G=lC{kG(B#gfgujwhrW{rP=^0!B-DJO2x;Tni|7c zFscD&U3EF{Y}B>!>f><{ayOI(SBTAKo}S-E_W(bEl<}y`aQKJYBVrCeeA`B1V`7f5 zKZ=Wc5KsH&c2$p)?vsx0VW*-So1uf$%RVQ3J=JtOn8Xh*Mc#w)PU0)!qeo%2`emlX zQQ_~q!zLA_CK;pYCy}Li`g||C^8*qQwUGXlhuyRLCUY5t3NeLXq(kiJ73*}^8p>C6 zo{Yg&eOb_cVpw%n?En%#hMd1-I@s9QI637ludZ{8m(nGSg+}Fb8C{EYR&|2Pk=6Ss zOJEX{r*A{866(U2aoen%CRL~%C_HvaUx@Zc*>N@__2onKxZUbU-)L^n1yMJdZz1-E`Q`Ama1af392iMt!>#^Aekxek8iMA2|l|4Lgnd&SE)8T z$Ai|9tmDBQg1+!VG$PJK_1@5XPhJQ6BP}WvByuUopKl3;1w_d!SOZ(Cq<Yr+q*KR3z4X)h)Y0&U#OzEDkUZof(?NLPyB0qEI%q2Nzp z`Le1v*#;d9Z|mqQm?$Fr>_yhKit!U{osN&x1_F_fh2%PO2Zu?RGf6x3R>Su)%btNW z%7Km^H*buXe$(@uoKNO81jLOS?!;}V%pgWRsV+Gs%duI^bAD3yJKf_o?z8-vaqmBK zVn-p`xG9`pVp54FcL_9rUKtKz9o^?JXMlCt_>ao z5dke?{9W)a=IQb87zvAb6cE_3%a{5DE{%_o90U&QHN$$Qru@CrJCNV9;=8(}0kp@& zq?7km_=(UV9YB5$ z1On`TKHci={5w`i>AXndbDaE9i6k=pPU=yycV<&??p^RaM{L1;@fI07sUBNYCyltH zVl&HqNaI7Oroq%Fv=|rNCT3@!*IOQSpEk#;JY163%<$6KYdS3cIhY>47v+d9!#6^V lY{d0HHB4BAZT0HvR*vHh#b>H-VZ9(J$*IXcJ7MDYe*jxGg75$U diff --git a/_book/tranlate_books/book-riscv-rev1/images/c3/p4.png b/_book/tranlate_books/book-riscv-rev1/images/c3/p4.png deleted file mode 100644 index 80dfd00957fedbbcddc9bb148c7a74b211019ad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31547 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 OnLEqMJloVI^nU=@T&}7B diff --git a/_book/tranlate_books/book-riscv-rev1/images/c3/p5.png b/_book/tranlate_books/book-riscv-rev1/images/c3/p5.png deleted file mode 100644 index 5dc1ba2f3f7dc247742f78338199a58d84fb966d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37156 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 cYnOjOdeUjp@!GOh zAUwvr*fSaKk#UI_VEXnT95w1V&X&qWeH@BA_Be{VUBhStCDD0wMXP+{px1dWl3*o7 z1(D66iR;MY`ZWLCXj`9H%FqiMrIdZ+E!(lVqAMBI>+sbft(6MONBj3yAJ!>6Q@%4J zFjCO7tQMZU-hHvvddh}d+Z^u(zgRd(RKsemgTIO6EM#_SKiiw0Se*OzyM6!y-77U{ zf!+^MS;kSIA+s|ya8n5d--1DWj}7Ou`q4%rsoU$l-!j=58LBO$jPs*y$9WT7$M_+G z)4A0V^R&#)%tqtx`1>cPyfz7(0URb!Un<pTOl>v^y3k;svUQy=7n^Q_H z2hds5U@W&>lYDFO(uN6PdNlJdB2ibHiFr6$yI8`1x(~KKx(&Ru8yAt>5xt7`XU zf0YiX;`StVZyI58|ILYtvWk9j`Fg046PI?!9^1>LNQRhE%2}vBx>>k&go?(9&0?6Q zF+@M+mub0iBB|?E={?P?SVSgcvBSK>&}CZ3yn80^YzenyK97`@e(+)U9b$}SLS>dIiF=@TwB7ai zY>A6vOFvgMaIz=pj&#UldlAvo(Sn8l@Mu}?nRGzBVurY13#9o;_ZOB?U)SxcM8<}| z%9`C>jv&L2G&?g5rzDAEmWDP$3CEY6v@B=H#DlLzoLx0W=+`z}nHh$yFYvL3sDkwbXd=M_BD zak47hFVaS1v|7e5KlxWc_vp1{Bc31CdDj6A3Rx0^j-f1+$R%BR zNsjhM;Ivst!t>HImALNppCWWVE}P5KTDPBUpQbttuR}3?eJ`Bv*sU#=Ja>{W|ENek z1l}!wIJ6-M@8H2~HPmAs`ro0z+@5*?eVd=dn7!_cE`o|*RQZG$0kZKm*<*3mSd`r9*y>O;q44zLxkXF@1lR!!Qy zy}dS8MHJZG9EQj@-!uhPq8uX3mGGc(Yjt+nDppEEPQu_JKNJ}F2#-F zP*(0VGY+?kc>7cJ$&J~`_0LT7OyiO%&e`cNzK@~Cu{xSFyRL64YI0}pcjZyt9XmCW z()f=P5|C=`8d+QsSpRK=tbLm^W}sQ68-CseK6aC*XuTMoD)l?aCzm9VngA{m9+|WN%1XSZ{We@ykRP`m^($+tb n{{LH7pZ|jz|3(@O4TVZNxI65dkQV{hK~quCl&_I}9sEB4pY8Ni diff --git a/_book/tranlate_books/book-riscv-rev1/images/c3/p6.png b/_book/tranlate_books/book-riscv-rev1/images/c3/p6.png deleted file mode 100644 index 4986c775065563d6a961143b46253899cba4c95a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193826 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

                                                                                HD>0Q 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 diff --git a/_book/tranlate_books/book-riscv-rev1/summary.html b/_book/tranlate_books/book-riscv-rev1/summary.html deleted file mode 100644 index 6660c23..0000000 --- a/_book/tranlate_books/book-riscv-rev1/summary.html +++ /dev/null @@ -1,854 +0,0 @@ - - - - - - - book-riscv-rev1 · 6.S081 All-In-One - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                -
                                                                                - - - - - - - - -
                                                                                - -
                                                                                - -
                                                                                - - - - - - - - -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                - -

                                                                                BOOK-RISCV-REV1

                                                                                -

                                                                                XV6:一个简单,类UNIX的教学用操作系统

                                                                                -

                                                                                本书是6.S081最重要的参考书目,其中详细的介绍了XV6的设计细节,在课程前往往需要阅读对应章节,做实验时也要回来查看。

                                                                                -
                                                                                copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: -2021-08-19 09:43:44 -
                                                                                - -
                                                                                - -
                                                                                -
                                                                                -
                                                                                - -

                                                                                results matching ""

                                                                                -
                                                                                  - -
                                                                                  -
                                                                                  - -

                                                                                  No results matching ""

                                                                                  - -
                                                                                  -
                                                                                  -
                                                                                  - -
                                                                                  -
                                                                                  - -
                                                                                  - - - - - - - - - - - - - - -
                                                                                  - - -
                                                                                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_book/tranlate_books/book-riscv-rev1/summary.md b/_book/tranlate_books/book-riscv-rev1/summary.md deleted file mode 100644 index a94c327..0000000 --- a/_book/tranlate_books/book-riscv-rev1/summary.md +++ /dev/null @@ -1,6 +0,0 @@ -# BOOK-RISCV-REV1 - -XV6:一个简单,类UNIX的教学用操作系统 - -本书是6.S081最重要的参考书目,其中详细的介绍了XV6的设计细节,在课程前往往需要阅读对应章节,做实验时也要回来查看。 - diff --git a/book.json b/book.json index d1d5c8c..078ee14 100644 --- a/book.json +++ b/book.json @@ -4,8 +4,6 @@ "plugins": [ "-lunr", "-search", - "-highlight", - "code-highlighter", "search-pro", "github", "chapter-fold", @@ -41,7 +39,7 @@ "favicon": "images/book.ico", "code-optimize": { "copyButtons": true, - "showLines": true + "showLines": false } } } \ No newline at end of file diff --git a/images/book.ico b/images/book.ico new file mode 100644 index 0000000000000000000000000000000000000000..27b1fabf5bd72a40e442293a78a88e1dadc94077 GIT binary patch literal 67646 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 K1=X~G! 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 literal 0 HcmV?d00001 diff --git a/labs/answers/lab4.md b/labs/answers/lab4.md new file mode 100644 index 0000000..3cc0184 --- /dev/null +++ b/labs/answers/lab4.md @@ -0,0 +1,195 @@ +# Lab4: Traps + +# 1. RISC-V assembly + +**(1)**. 在a0-a7中存放参数,13存放在a2中 + +**(2)**. 在C代码中,main调用f,f调用g。而在生成的汇编中,main函数进行了内联优化处理。 + +从代码`li a1,12`可以看出,main直接计算出了结果并储存 + +**(3)**. 在`0x630` + +**(4)**. `auipc`(Add Upper Immediate to PC):`auipc rd imm`,将高位立即数加到PC上,从下面的指令格式可以看出,该指令将20位的立即数左移12位之后(右侧补0)加上PC的值,将结果保存到dest位置,图中为`rd`寄存器 + +![img](images/p1.png) + +下面来看`jalr` (jump and link register):`jalr rd, offset(rs1)`跳转并链接寄存器。jalr指令会将当前PC+4保存在rd中,然后跳转到指定的偏移地址`offset(rs1)`。 + +![img](images/p2.png) + +来看XV6的代码: + +```asm + 30: 00000097 auipc ra,0x0 + 34: 600080e7 jalr 1536(ra) # 630 +``` + +第一行代码:`00000097H=00...0 0000 1001 0111B`,对比指令格式,可见imm=0,dest=00001,opcode=0010111,对比汇编指令可知,auipc的操作码是0010111,ra寄存器代码是00001。这行代码将0x0左移12位(还是0x0)加到PC(当前为0x30)上并存入ra中,即ra中保存的是0x30 + +第2行代码:`600080e7H=0110 0...0 1000 0000 1110 0111B`,可见imm=0110 0000 0000,rs1=00001,funct3=000,rd=00001,opcode=1100111,rs1和rd的知识码都是00001,即都为寄存器`ra`。这对比jalr的标准格式有所不同,可能是此两处使用寄存器相同时,汇编中可以省略`rd`部分。 + +ra中保存的是0x30,加上0x600后为0x630,即`printf`的地址,执行此行代码后,将跳转到printf函数执行,并将PC+4=0X34+0X4=0X38保存到`ra`中,供之后返回使用。 + +**(5)**. 57616=0xE110,0x00646c72小端存储为72-6c-64-00,对照ASCII码表 + + 72:r 6c:l 64:d 00:充当字符串结尾标识 + + 因此输出为:HE110 World + + 若为大端存储,i应改为0x726c6400,不需改变57616 + +**(6)**. 原本需要两个参数,却只传入了一个,因此y=后面打印的结果取决于之前a2中保存的数据 + +# 2. Backtrace + +这个函数就是实现曾经调用函数地址的回溯,这个功能在日常的编程中也经常见到,编译器报错时就是类似的逻辑,只不过题目的要求较为简单,只用打印程序地址,而实际的报错中往往打印程序文件名,函数名以及行号等信息(最后的可选练习就是实现这样的功能)。 + +```c +/** + * @brief backtrace 回溯函数调用的返回地址 + */ +void +backtrace(void) { + printf("backtrace:\n"); + // 读取当前帧指针 + uint64 fp = r_fp(); + while (PGROUNDUP(fp) - PGROUNDDOWN(fp) == PGSIZE) { + // 返回地址保存在-8偏移的位置 + uint64 ret_addr = *(uint64*)(fp - 8); + printf("%p\n", ret_addr); + // 前一个帧指针保存在-16偏移的位置 + fp = *(uint64*)(fp - 16); + } +} +``` + +​ 根据提示:返回地址位于栈帧帧指针的固定偏移(-8)位置,并且保存的帧指针位于帧指针的固定偏移(-16)位置。先使用`r_fp()`读取当前的帧指针,然后读出返回地址并打印,再将`fp`定位到前一个帧指针的位置继续读取即可。 + +根据提示:XV6在内核中以页面对齐的地址为每个栈分配一个页面。使用`PGROUNDUP(fp) - PGROUNDDOWN(fp) == PGSIZE`判断当前的`fp`是否被分配了一个页面来终止循环。 + +# 3. Alarm + +这项练习要实现定期的警报。首先是要通过`test0`,如何调用处理程序是主要的问题。程序计数器的过程是这样的: + +1. `ecall`指令中将PC保存到SEPC +2. 在`usertrap`中将SEPC保存到`p->trapframe->epc` +3. `p->trapframe->epc`加4指向下一条指令 +4. 执行系统调用 +5. 在`usertrapret`中将SEPC改写为`p->trapframe->epc`中的值 +6. 在`sret`中将PC设置为SEPC的值 + +可见执行系统调用后返回到用户空间继续执行的指令地址是由`p->trapframe->epc`决定的,因此在`usertrap`中主要就是完成它的设置工作。 + +**(1)**. 在`struct proc`中增加字段,同时记得在`allocproc`中将它们初始化为0,并在`freeproc`中也设为0 + +```c +int alarm_interval; // 报警间隔 +void (*alarm_handler)(); // 报警处理函数 +int ticks_count; // 两次报警间的滴答计数 +``` + +**(2)**. 在`sys_sigalarm`中读取参数 + +```c +uint64 +sys_sigalarm(void) { + if(argint(0, &myproc()->alarm_interval) < 0 || + argaddr(1, (uint64*)&myproc()->alarm_handler) < 0) + return -1; + + return 0; +} +``` + +**(3)**. 修改usertrap() + +```c +// give up the CPU if this is a timer interrupt. +if(which_dev == 2) { + if(++p->ticks_count == p->alarm_interval) { + // 更改陷阱帧中保留的程序计数器 + p->trapframe->epc = (uint64)p->alarm_handler; + p->ticks_count = 0; + } + yield(); +} +``` + +接下来要通过`test1`和`test2`,要解决的主要问题是寄存器保存恢复和防止重复执行的问题。考虑一下没有alarm时运行的大致过程 + +1. 进入内核空间,保存用户寄存器到进程陷阱帧 +2. 陷阱处理过程 +3. 恢复用户寄存器,返回用户空间 + +而当添加了alarm后,变成了以下过程 + +1. 进入内核空间,保存用户寄存器到进程陷阱帧 +2. 陷阱处理过程 +3. 恢复用户寄存器,返回用户空间,但此时返回的并不是进入陷阱时的程序地址,而是处理函数`handler`的地址,而`handler`可能会改变用户寄存器 + +因此我们要在`usertrap`中再次保存用户寄存器,当`handler`调用`sigreturn`时将其恢复,并且要防止在`handler`执行过程中重复调用,过程如下 + +**(1)**. 再在`struct proc`中新增两个字段 + +```c +int is_alarming; // 是否正在执行告警处理函数 +struct trapframe* alarm_trapframe; // 告警陷阱帧 +``` + +**(2)**. 在allocproc和freeproc中设定好相关分配,回收内存的代码 + +```c +/** + * allocproc.c + */ +// 初始化告警字段 +if((p->alarm_trapframe = (struct trapframe*)kalloc()) == 0) { + freeproc(p); + release(&p->lock); + return 0; +} +p->is_alarming = 0; +p->alarm_interval = 0; +p->alarm_handler = 0; +p->ticks_count = 0; + +/** + * freeproc.c + */ +if(p->alarm_trapframe) + kfree((void*)p->alarm_trapframe); +p->alarm_trapframe = 0; +p->is_alarming = 0; +p->alarm_interval = 0; +p->alarm_handler = 0; +p->ticks_count = 0; +``` + +**(3)**. 更改usertrap函数,保存进程陷阱帧`p->trapframe`到`p->alarm_trapframe` + +```c +// give up the CPU if this is a timer interrupt. +if(which_dev == 2) { + if(p->alarm_interval != 0 && ++p->ticks_count == p->alarm_interval && p->is_alarming == 0) { + // 保存寄存器内容 + memmove(p->alarm_trapframe, p->trapframe, sizeof(struct trapframe)); + // 更改陷阱帧中保留的程序计数器,注意一定要在保存寄存器内容后再设置epc + p->trapframe->epc = (uint64)p->alarm_handler; + p->ticks_count = 0; + p->is_alarming = 1; + } + yield(); +} +``` + +**(4)**. 更改`sys_sigreturn`,恢复陷阱帧 + +```c +uint64 +sys_sigreturn(void) { + memmove(myproc()->trapframe, myproc()->alarm_trapframe, sizeof(struct trapframe)); + myproc()->is_alarming = 0; + return 0; +} +``` \ No newline at end of file diff --git a/labs/answers/lab5.md b/labs/answers/lab5.md new file mode 100644 index 0000000..7fc1b35 --- /dev/null +++ b/labs/answers/lab5.md @@ -0,0 +1,247 @@ +# Lab5: xv6 lazy page allocation + +# Eliminate allocation from sbrk() + +这个实验很简单,就仅仅改动`sys_sbrk()`函数即可,将实际分配内存的函数删除,而仅仅改变进程的`sz`属性 + +```c +uint64 +sys_sbrk(void) +{ + int addr; + int n; + + if(argint(0, &n) < 0) + return -1; + + // lazy allocation + myproc()->sz += n; + + return addr; +} +``` + + + +# Lazy allocation + +根据提示来做就好,另外6.S081对应的视频课程中对这部分代码做出了很大一部分的解答。 + +**(1)**. 修改`usertrap()`(***kernel/trap.c***)函数,使用`r_scause()`判断是否为页面错误,在页面错误处理的过程中,先判断发生错误的虚拟地址(`r_stval()`读取)是否位于栈空间之上,进程大小(虚拟地址从0开始,进程大小表征了进程的最高虚拟地址)之下,然后分配物理内存并添加映射 + +```c + uint64 cause = r_scause(); + if(cause == 8) { + ... + } else if((which_dev = devintr()) != 0) { + // ok + } else if(cause == 13 || cause == 15) { + // 处理页面错误 + uint64 fault_va = r_stval(); // 产生页面错误的虚拟地址 + char* pa; // 分配的物理地址 + if(PGROUNDUP(p->trapframe->sp) - 1 < fault_va && fault_va < p->sz && + (pa = kalloc()) != 0) { + memset(pa, 0, PGSIZE); + if(mappages(p->pagetable, PGROUNDDOWN(fault_va), PGSIZE, (uint64)pa, PTE_R | PTE_W | PTE_X | PTE_U) != 0) { + kfree(pa); + p->killed = 1; + } + } else { + // printf("usertrap(): out of memory!\n"); + p->killed = 1; + } + } else { + ... + } +``` + +**(2)**. 修改`uvmunmap()`(***kernel/vm.c***),之所以修改这部分代码是因为lazy allocation中首先并未实际分配内存,所以当解除映射关系的时候对于这部分内存要略过,而不是使系统崩溃,这部分在课程视频中已经解答。 + +```c +void +uvmunmap(pagetable_t pagetable, uint64 va, uint64 npages, int do_free) +{ + ... + + for(a = va; a < va + npages*PGSIZE; a += PGSIZE){ + if((pte = walk(pagetable, a, 0)) == 0) + panic("uvmunmap: walk"); + if((*pte & PTE_V) == 0) + continue; + + ... + } +} +``` + + + +# Lazytests and Usertests + +**(1)**. 处理`sbrk()`参数为负数的情况,参考之前`sbrk()`调用的`growproc()`程序,如果为负数,就调用`uvmdealloc()`函数,但需要限制缩减后的内存空间不能小于0 + +```c +uint64 +sys_sbrk(void) +{ + int addr; + int n; + + if(argint(0, &n) < 0) + return -1; + + struct proc* p = myproc(); + addr = p->sz; + uint64 sz = p->sz; + + if(n > 0) { + // lazy allocation + p->sz += n; + } else if(sz + n > 0) { + sz = uvmdealloc(p->pagetable, sz, sz + n); + p->sz = sz; + } else { + return -1; + } + return addr; +} +``` + +**(2)**. 正确处理`fork`的内存拷贝:`fork`调用了`uvmcopy`进行内存拷贝,所以修改`uvmcopy`如下 + +```c +int +uvmcopy(pagetable_t old, pagetable_t new, uint64 sz) +{ + ... + for(i = 0; i < sz; i += PGSIZE){ + if((pte = walk(old, i, 0)) == 0) + continue; + if((*pte & PTE_V) == 0) + continue; + ... + } + ... +} +``` + +**(3)**. 还需要继续修改`uvmunmap`,否则会运行出错,关于为什么要使用两个`continue`,请看本文最下面 + +```c +void +uvmunmap(pagetable_t pagetable, uint64 va, uint64 npages, int do_free) +{ + ... + + for(a = va; a < va + npages*PGSIZE; a += PGSIZE){ + if((pte = walk(pagetable, a, 0)) == 0) + continue; + if((*pte & PTE_V) == 0) + continue; + + ... + } +} +``` + +**(4)**. 处理通过sbrk申请内存后还未实际分配就传给系统调用使用的情况,系统调用的处理会陷入内核,scause寄存器存储的值是8,如果此时传入的地址还未实际分配,就不能走到上文usertrap中判断scause是13或15后进行内存分配的代码,syscall执行就会失败 + +- 系统调用流程: + + - 陷入内核**==>**`usertrap`中`r_scause()==8`的分支**==>**`syscall()`**==>**回到用户空间 + +- 页面错误流程: + + - 陷入内核**==>**`usertrap`中`r_scause()==13||r_scause()==15`的分支**==>**分配内存**==>**回到用户空间 + +因此就需要找到在何时系统调用会使用这些地址,将地址传入系统调用后,会通过`argaddr`函数(***kernel/syscall.c***)从寄存器中读取,因此在这里添加物理内存分配的代码 + +```c +int +argaddr(int n, uint64 *ip) +{ + *ip = argraw(n); + struct proc* p = myproc(); + + // 处理向系统调用传入lazy allocation地址的情况 + if(walkaddr(p->pagetable, *ip) == 0) { + if(PGROUNDUP(p->trapframe->sp) - 1 < *ip && *ip < p->sz) { + char* pa = kalloc(); + if(pa == 0) + return -1; + memset(pa, 0, PGSIZE); + + if(mappages(p->pagetable, PGROUNDDOWN(*ip), PGSIZE, (uint64)pa, PTE_R | PTE_W | PTE_X | PTE_U) != 0) { + kfree(pa); + return -1; + } + } else { + return -1; + } + } + + return 0; +} +``` + +## 为什么使用两个continue + +这里需要解释一下为什么在两个判断中使用了`continue`语句,在课程视频中仅仅添加了第二个`continue`,利用`vmprint`打印出来初始时刻用户进程的页表如下 + +``` +page table 0x0000000087f55000 +..0: pte 0x0000000021fd3c01 pa 0x0000000087f4f000 +.. ..0: pte 0x0000000021fd4001 pa 0x0000000087f50000 +.. .. ..0: pte 0x0000000021fd445f pa 0x0000000087f51000 +.. .. ..1: pte 0x0000000021fd4cdf pa 0x0000000087f53000 +.. .. ..2: pte 0x0000000021fd900f pa 0x0000000087f64000 +.. .. ..3: pte 0x0000000021fd5cdf pa 0x0000000087f57000 +..255: pte 0x0000000021fd5001 pa 0x0000000087f54000 +.. ..511: pte 0x0000000021fd4801 pa 0x0000000087f52000 +.. .. ..510: pte 0x0000000021fd58c7 pa 0x0000000087f56000 +.. .. ..511: pte 0x0000000020001c4b pa 0x0000000080007000 +``` + +除去高地址的trapframe和trampoline页面,进程共计映射了4个有效页面,即添加了映射关系的虚拟地址范围是`0x0000~0x3fff`,假如使用`sbrk`又申请了一个页面,由于lazy allocation,页表暂时不会改变,而不经过读写操作后直接释放进程,进程将会调用`uvmunmap`函数,此时将会发生什么呢? + +`uvmunmap`首先使用`walk`找到虚拟地址对应的PTE地址,虚拟地址的最后12位表征了偏移量,前面每9位索引一级页表,将`0x4000`的虚拟地址写为二进制(省略前面的无效位): + +``` +{000 0000 00}[00 0000 000](0 0000 0100) 0000 0000 0000 +``` + +- `{}`:页目录表索引(level==2),为0 +- `[]`:二级页表索引(level==1),为0 +- `()`:三级页表索引(level==0),为4 + +我们来看一下`walk`函数,`walk`返回指定虚拟地址的PTE,但我认为这个程序存在一定的不足。walk函数的代码如下所示 + +```c +pte_t * +walk(pagetable_t pagetable, uint64 va, int alloc) +{ + if(va >= MAXVA) + panic("walk"); + + for(int level = 2; level > 0; level--) { + pte_t *pte = &pagetable[PX(level, va)]; + if(*pte & PTE_V) { + pagetable = (pagetable_t)PTE2PA(*pte); + } else { + if(!alloc || (pagetable = (pde_t*)kalloc()) == 0) + return 0; + memset(pagetable, 0, PGSIZE); + *pte = PA2PTE(pagetable) | PTE_V; + } + } + return &pagetable[PX(0, va)]; +} +``` + +这段代码中`for`循环执行`level==2`和`level==1`的情况,而对照刚才打印的页表,`level==2`时索引为0的项是存在的,`level==1`时索引为0的项也是存在的,最后执行`return`语句,然而level==0时索引为4的项却是不存在的,此时`walk`不再检查`PTE_V`标志等信息,而是直接返回,因此即使虚拟地址对应的PTE实际不存在,`walk`函数的返回值也可能不为0! + +那么返回的这个地址是什么呢?level为0时 + +有效索引为0~3,因此索引为4时返回的是最后一个有效PTE后面的一个地址。 + +因此我们不能仅靠PTE为0来判断虚拟地址无效,还需要再次检查返回的PTE中是否设置了`PTE_V`标志位。 \ No newline at end of file diff --git a/labs/answers/lab6.md b/labs/answers/lab6.md new file mode 100644 index 0000000..77e20e8 --- /dev/null +++ b/labs/answers/lab6.md @@ -0,0 +1,269 @@ +# Lab6: Copy-on-Write Fork for xv6 + +跟着提示一步一步来 + +**(1).** 在***kernel/riscv.h***中选取PTE中的保留位定义标记一个页面是否为COW Fork页面的标志位 + +```c +// 记录应用了COW策略后fork的页面 +#define PTE_F (1L << 8) +``` + +**(2).** 在***kalloc.c***中进行如下修改 + +* 定义引用计数的全局变量`ref`,其中包含了一个自旋锁和一个引用计数数组,由于`ref`是全局变量,会被自动初始化为全0。 + + 这里使用自旋锁是考虑到这种情况:进程P1和P2共用内存M,M引用计数为2,此时CPU1要执行`fork`产生P1的子进程,CPU2要终止P2,那么假设两个CPU同时读取引用计数为2,执行完成后CPU1中保存的引用计数为3,CPU2保存的计数为1,那么后赋值的语句会覆盖掉先赋值的语句,从而产生错误 + +```c +struct ref_stru { + struct spinlock lock; + int cnt[PHYSTOP / PGSIZE]; // 引用计数 +} ref; +``` + +- 在`kinit`中初始化`ref`的自旋锁 + +```c +void +kinit() +{ + initlock(&kmem.lock, "kmem"); + initlock(&ref.lock, "ref"); + freerange(end, (void*)PHYSTOP); +} +``` + +* 修改`kalloc`和`kfree`函数,在`kalloc`中初始化内存引用计数为1,在`kfree`函数中对内存引用计数减1,如果引用计数为0时才真正删除 + +```c +void +kfree(void *pa) +{ + struct run *r; + + if(((uint64)pa % PGSIZE) != 0 || (char*)pa < end || (uint64)pa >= PHYSTOP) + panic("kfree"); + + // 只有当引用计数为0了才回收空间 + // 否则只是将引用计数减1 + acquire(&ref.lock); + if(--ref.cnt[(uint64)pa / PGSIZE] == 0) { + release(&ref.lock); + + r = (struct run*)pa; + + // Fill with junk to catch dangling refs. + memset(pa, 1, PGSIZE); + + acquire(&kmem.lock); + r->next = kmem.freelist; + kmem.freelist = r; + release(&kmem.lock); + } else { + release(&ref.lock); + } +} +void * +kalloc(void) +{ + struct run *r; + + acquire(&kmem.lock); + r = kmem.freelist; + if(r) { + kmem.freelist = r->next; + acquire(&ref.lock); + ref.cnt[(uint64)r / PGSIZE] = 1; // 将引用计数初始化为1 + release(&ref.lock); + } + release(&kmem.lock); + + if(r) + memset((char*)r, 5, PGSIZE); // fill with junk + return (void*)r; +} +``` + +- 添加如下四个函数,详细说明已在注释中,这些函数中用到了`walk`,记得在***defs.h***中添加声明,最后也需要将这些函数的声明添加到***defs.h***,在cowalloc中,读取内存引用计数,如果为1,说明只有当前进程引用了该物理内存(其他进程此前已经被分配到了其他物理页面),就只需要改变PTE使能`PTE_W`;否则就分配物理页面,并将原来的内存引用计数减1。该函数需要返回物理地址,这将在`copyout`中使用到。 + +```c +/** + * @brief cowpage 判断一个页面是否为COW页面 + * @param pagetable 指定查询的页表 + * @param va 虚拟地址 + * @return 0 是 -1 不是 + */ +int cowpage(pagetable_t pagetable, uint64 va) { + if(va >= MAXVA) + return -1; + pte_t* pte = walk(pagetable, va, 0); + if(pte == 0) + return -1; + if((*pte & PTE_V) == 0) + return -1; + return (*pte & PTE_F ? 0 : -1); +} + +/** + * @brief cowalloc copy-on-write分配器 + * @param pagetable 指定页表 + * @param va 指定的虚拟地址,必须页面对齐 + * @return 分配后va对应的物理地址,如果返回0则分配失败 + */ +void* cowalloc(pagetable_t pagetable, uint64 va) { + if(va % PGSIZE != 0) + return 0; + + uint64 pa = walkaddr(pagetable, va); // 获取对应的物理地址 + if(pa == 0) + return 0; + + pte_t* pte = walk(pagetable, va, 0); // 获取对应的PTE + + if(krefcnt((char*)pa) == 1) { + // 只剩一个进程对此物理地址存在引用 + // 则直接修改对应的PTE即可 + *pte |= PTE_W; + *pte &= ~PTE_F; + return (void*)pa; + } else { + // 多个进程对物理内存存在引用 + // 需要分配新的页面,并拷贝旧页面的内容 + char* mem = kalloc(); + if(mem == 0) + return 0; + + // 复制旧页面内容到新页 + memmove(mem, (char*)pa, PGSIZE); + + // 清除PTE_V,否则在mappagges中会判定为remap + *pte &= ~PTE_V; + + // 为新页面添加映射 + if(mappages(pagetable, va, PGSIZE, (uint64)mem, (PTE_FLAGS(*pte) | PTE_W) & ~PTE_F) != 0) { + kfree(mem); + *pte |= PTE_V; + return 0; + } + + // 将原来的物理内存引用计数减1 + kfree((char*)PGROUNDDOWN(pa)); + return mem; + } +} + +/** + * @brief krefcnt 获取内存的引用计数 + * @param pa 指定的内存地址 + * @return 引用计数 + */ +int krefcnt(void* pa) { + return ref.cnt[(uint64)pa / PGSIZE]; +} + +/** + * @brief kaddrefcnt 增加内存的引用计数 + * @param pa 指定的内存地址 + * @return 0:成功 -1:失败 + */ +int kaddrefcnt(void* pa) { + if(((uint64)pa % PGSIZE) != 0 || (char*)pa < end || (uint64)pa >= PHYSTOP) + return -1; + acquire(&ref.lock); + ++ref.cnt[(uint64)pa / PGSIZE]; + release(&ref.lock); + return 0; +} +``` + +- 修改`freerange` + +```c +void +freerange(void *pa_start, void *pa_end) +{ + char *p; + p = (char*)PGROUNDUP((uint64)pa_start); + for(; p + PGSIZE <= (char*)pa_end; p += PGSIZE) { + // 在kfree中将会对cnt[]减1,这里要先设为1,否则就会减成负数 + ref.cnt[(uint64)p / PGSIZE] = 1; + kfree(p); + } +} +``` + +**(3).** 修改`uvmcopy`,不为子进程分配内存,而是使父子进程共享内存,但禁用`PTE_W`,同时标记`PTE_F`,记得调用`kaddrefcnt`增加引用计数 + +```c +int +uvmcopy(pagetable_t old, pagetable_t new, uint64 sz) +{ + pte_t *pte; + uint64 pa, i; + uint flags; + + for(i = 0; i < sz; i += PGSIZE){ + if((pte = walk(old, i, 0)) == 0) + panic("uvmcopy: pte should exist"); + if((*pte & PTE_V) == 0) + panic("uvmcopy: page not present"); + pa = PTE2PA(*pte); + flags = PTE_FLAGS(*pte); + + // 仅对可写页面设置COW标记 + if(flags & PTE_W) { + // 禁用写并设置COW Fork标记 + flags = (flags | PTE_F) & ~PTE_W; + *pte = PA2PTE(pa) | flags; + } + + if(mappages(new, i, PGSIZE, pa, flags) != 0) { + uvmunmap(new, 0, i / PGSIZE, 1); + return -1; + } + // 增加内存的引用计数 + kaddrefcnt((char*)pa); + } + return 0; +} +``` + +**(4).** 修改`usertrap`,处理页面错误 + +```c +uint64 cause = r_scause(); +if(cause == 8) { + ... +} else if((which_dev = devintr()) != 0){ + // ok +} else if(cause == 13 || cause == 15) { + uint64 fault_va = r_stval(); // 获取出错的虚拟地址 + if(fault_va >= p->sz + || cowpage(p->pagetable, fault_va) != 0 + || cowalloc(p->pagetable, PGROUNDDOWN(fault_va)) == 0) + p->killed = 1; +} else { + ... +} +``` + +**(5).** 在`copyout`中处理相同的情况,如果是COW页面,需要更换`pa0`指向的物理地址 + +```c +while(len > 0){ + va0 = PGROUNDDOWN(dstva); + pa0 = walkaddr(pagetable, va0); + + // 处理COW页面的情况 + if(cowpage(pagetable, va0) == 0) { + // 更换目标物理地址 + pa0 = (uint64)cowalloc(pagetable, va0); + } + + if(pa0 == 0) + return -1; + + ... +} +``` \ No newline at end of file diff --git a/labs/answers/lab7.md b/labs/answers/lab7.md new file mode 100644 index 0000000..40f0e3b --- /dev/null +++ b/labs/answers/lab7.md @@ -0,0 +1,163 @@ +# Lab7: Multithreading + +# Uthread: switching between threads + +本实验是在给定的代码基础上实现用户级线程切换,相比于XV6中实现的内核级线程,这个要简单许多。因为是用户级线程,不需要设计用户栈和内核栈,用户页表和内核页表等等切换,所以本实验中只需要一个类似于`context`的结构,而不需要费尽心机的维护`trapframe` + +(1). 定义存储上下文的结构体`tcontext` + +```c +// 用户线程的上下文结构体 +struct tcontext { + uint64 ra; + uint64 sp; + + // callee-saved + uint64 s0; + uint64 s1; + uint64 s2; + uint64 s3; + uint64 s4; + uint64 s5; + uint64 s6; + uint64 s7; + uint64 s8; + uint64 s9; + uint64 s10; + uint64 s11; +}; +``` + +(2). 修改`thread`结构体,添加`context`字段 + +```c +struct thread { + char stack[STACK_SIZE]; /* the thread's stack */ + int state; /* FREE, RUNNING, RUNNABLE */ + struct tcontext context; /* 用户进程上下文 */ +}; +``` + +(3). 模仿***kernel/swtch.S,***在***kernel/uthread_switch.S***中写入如下代码 + +```asm +.text + +/* +* save the old thread's registers, +* restore the new thread's registers. +*/ + +.globl thread_switch +thread_switch: + /* YOUR CODE HERE */ + sd ra, 0(a0) + sd sp, 8(a0) + sd s0, 16(a0) + sd s1, 24(a0) + sd s2, 32(a0) + sd s3, 40(a0) + sd s4, 48(a0) + sd s5, 56(a0) + sd s6, 64(a0) + sd s7, 72(a0) + sd s8, 80(a0) + sd s9, 88(a0) + sd s10, 96(a0) + sd s11, 104(a0) + + ld ra, 0(a1) + ld sp, 8(a1) + ld s0, 16(a1) + ld s1, 24(a1) + ld s2, 32(a1) + ld s3, 40(a1) + ld s4, 48(a1) + ld s5, 56(a1) + ld s6, 64(a1) + ld s7, 72(a1) + ld s8, 80(a1) + ld s9, 88(a1) + ld s10, 96(a1) + ld s11, 104(a1) + ret /* return to ra */ +``` + +(4). 修改`thread_scheduler`,添加线程切换语句 + +```c +... +if (current_thread != next_thread) { /* switch threads? */ + ... + /* YOUR CODE HERE */ + thread_switch((uint64)&t->context, (uint64)¤t_thread->context); +} else + next_thread = 0; +``` + +(5). 在`thread_create`中对`thread`结构体做一些初始化设定,主要是`ra`返回地址和`sp`栈指针,其他的都不重要 + +```c +// YOUR CODE HERE +t->context.ra = (uint64)func; // 设定函数返回地址 +t->context.sp = (uint64)t->stack + STACK_SIZE; // 设定栈指针 +``` + +# Using threads + +来看一下程序的运行过程:设定了五个散列桶,根据键除以5的余数决定插入到哪一个散列桶中,插入方法是头插法,下面是图示 + +不支持在 Docs 外粘贴 block + +这个实验比较简单,首先是问为什么为造成数据丢失: + +> 假设现在有两个线程T1和T2,两个线程都走到put函数,且假设两个线程中key%NBUCKET相等,即要插入同一个散列桶中。两个线程同时调用insert(key, value, &table[i], table[i]),insert是通过头插法实现的。如果先insert的线程还未返回另一个线程就开始insert,那么前面的数据会被覆盖 + +因此只需要对插入操作上锁即可 + +(1). 为每个散列桶定义一个锁,将五个锁放在一个数组中,并进行初始化 + +```c +pthread_mutex_t lock[NBUCKET] = { PTHREAD_MUTEX_INITIALIZER }; // 每个散列桶一把锁 +``` + +(2). 在`put`函数中对`insert`上锁 + +```c +if(e){ + // update the existing key. + e->value = value; +} else { + pthread_mutex_lock(&lock[i]); + // the new is new. + insert(key, value, &table[i], table[i]); + pthread_mutex_unlock(&lock[i]); +} +``` + +# Barrier + +额。。。这个也比较简单,只要保证下一个round的操作不会影响到上一个还未结束的round中的数据就可 + +```c +static void +barrier() +{ + // 申请持有锁 + pthread_mutex_lock(&bstate.barrier_mutex); + + bstate.nthread++; + if(bstate.nthread == nthread) { + // 所有线程已到达 + bstate.round++; + bstate.nthread = 0; + pthread_cond_broadcast(&bstate.barrier_cond); + } else { + // 等待其他线程 + // 调用pthread_cond_wait时,mutex必须已经持有 + pthread_cond_wait(&bstate.barrier_cond, &bstate.barrier_mutex); + } + // 释放锁 + pthread_mutex_unlock(&bstate.barrier_mutex); +} +``` \ No newline at end of file diff --git a/labs/answers/lab8.md b/labs/answers/lab8.md new file mode 100644 index 0000000..fc9d583 --- /dev/null +++ b/labs/answers/lab8.md @@ -0,0 +1,303 @@ +# Lab8: Locks + +# Memory allocator + +本实验完成的任务是为每个CPU都维护一个空闲列表,初始时将所有的空闲内存分配到某个CPU,此后各个CPU需要内存时,如果当前CPU的空闲列表上没有,则窃取其他CPU的。例如,所有的空闲内存初始分配到CPU0,当CPU1需要内存时就会窃取CPU0的,而使用完成后就挂在CPU1的空闲列表,此后CPU1再次需要内存时就可以从自己的空闲列表中取。 + +(1). 将`kmem`定义为一个数组,包含`NCPU`个元素,即每个CPU对应一个 + +```c +struct { + struct spinlock lock; + struct run *freelist; +} kmem[NCPU]; +``` + +(2). 修改`kinit`,为所有锁初始化以“kmem”开头的名称,该函数只会被一个CPU调用,`freerange`调用`kfree`将所有空闲内存挂在该CPU的空闲列表上 + +```c +void +kinit() +{ + char lockname[8]; + for(int i = 0;i < NCPU; i++) { + snprintf(lockname, sizeof(lockname), "kmem_%d", i); + initlock(&kmem[i].lock, lockname); + } + freerange(end, (void*)PHYSTOP); +} +``` + +(3). 修改`kfree`,使用`cpuid()`和它返回的结果时必须关中断,请参考《XV6使用手册》第7.4节 + +```c +void +kfree(void *pa) +{ + struct run *r; + + if(((uint64)pa % PGSIZE) != 0 || (char*)pa < end || (uint64)pa >= PHYSTOP) + panic("kfree"); + + // Fill with junk to catch dangling refs. + memset(pa, 1, PGSIZE); + + r = (struct run*)pa; + + push_off(); // 关中断 + int id = cpuid(); + acquire(&kmem[id].lock); + r->next = kmem[id].freelist; + kmem[id].freelist = r; + release(&kmem[id].lock); + pop_off(); //开中断 +} +``` + +(4). 修改`kalloc`,使得在当前CPU的空闲列表没有可分配内存时窃取其他内存的 + +```c +void * +kalloc(void) +{ + struct run *r; + + push_off();// 关中断 + int id = cpuid(); + acquire(&kmem[id].lock); + r = kmem[id].freelist; + if(r) + kmem[id].freelist = r->next; + else { + int antid; // another id + // 遍历所有CPU的空闲列表 + for(antid = 0; antid < NCPU; ++antid) { + if(antid == id) + continue; + acquire(&kmem[antid].lock); + r = kmem[antid].freelist; + if(r) { + kmem[antid].freelist = r->next; + release(&kmem[antid].lock); + break; + } + release(&kmem[antid].lock); + } + } + release(&kmem[id].lock); + pop_off(); //开中断 + + if(r) + memset((char*)r, 5, PGSIZE); // fill with junk + return (void*)r; +} +``` + +# Buffer cache + +这个实验的目的是将缓冲区的分配与回收并行化以提高效率,这个实验折腾了一天,有些内容还是比较绕的, + +(1). 定义哈希桶结构,并在`bcache`中删除全局缓冲区链表,改为使用素数个散列桶 + +```c +#define NBUCKET 13 +#define HASH(id) (id % NBUCKET) + +struct hashbuf { + struct buf head; // 头节点 + struct spinlock lock; // 锁 +}; + +struct { + struct buf buf[NBUF]; + struct hashbuf buckets[NBUCKET]; // 散列桶 +} bcache; +``` + +(2). 在`binit`中,(1)初始化散列桶的锁,(2)将所有散列桶的`head->prev`、`head->next`都指向自身表示为空,(3)将所有的缓冲区挂载到`bucket[0]`桶上,代码如下 + +```c +void +binit(void) { + struct buf* b; + char lockname[16]; + + for(int i = 0; i < NBUCKET; ++i) { + // 初始化散列桶的自旋锁 + snprintf(lockname, sizeof(lockname), "bcache_%d", i); + initlock(&bcache.buckets[i].lock, lockname); + + // 初始化散列桶的头节点 + bcache.buckets[i].head.prev = &bcache.buckets[i].head; + bcache.buckets[i].head.next = &bcache.buckets[i].head; + } + + // Create linked list of buffers + for(b = bcache.buf; b < bcache.buf + NBUF; b++) { + // 利用头插法初始化缓冲区列表,全部放到散列桶0上 + b->next = bcache.buckets[0].head.next; + b->prev = &bcache.buckets[0].head; + initsleeplock(&b->lock, "buffer"); + bcache.buckets[0].head.next->prev = b; + bcache.buckets[0].head.next = b; + } +} +``` + +(3). 在***buf.h***中增加新字段`timestamp`,这里来理解一下这个字段的用途:在原始方案中,每次`brelse`都将被释放的缓冲区挂载到链表头,禀明这个缓冲区最近刚刚被使用过,在`bget`中分配时从链表尾向前查找,这样符合条件的第一个就是最久未使用的。而在提示中建议使用时间戳作为LRU判定的法则,这样我们就无需在`brelse`中进行头插法更改结点位置 + +```c +struct buf { + ... + ... + uint timestamp; // 时间戳 +}; +``` + +(4). 更改`brelse`,不再获取全局锁 + +```c +void +brelse(struct buf* b) { + if(!holdingsleep(&b->lock)) + panic("brelse"); + + int bid = HASH(b->blockno); + + releasesleep(&b->lock); + + acquire(&bcache.buckets[bid].lock); + b->refcnt--; + + // 更新时间戳 + // 由于LRU改为使用时间戳判定,不再需要头插法 + acquire(&tickslock); + b->timestamp = ticks; + release(&tickslock); + + release(&bcache.buckets[bid].lock); +} +``` + +(5). 更改`bget`,当没有找到指定的缓冲区时进行分配,分配方式是优先从当前列表遍历,找到一个没有引用且`timestamp`最小的缓冲区,如果没有就申请下一个桶的锁,并遍历该桶,找到后将该缓冲区从原来的桶移动到当前桶中,最多将所有桶都遍历完。在代码中要注意锁的释放 + +```c +static struct buf* +bget(uint dev, uint blockno) { + struct buf* b; + + int bid = HASH(blockno); + acquire(&bcache.buckets[bid].lock); + + // Is the block already cached? + for(b = bcache.buckets[bid].head.next; b != &bcache.buckets[bid].head; b = b->next) { + if(b->dev == dev && b->blockno == blockno) { + b->refcnt++; + + // 记录使用时间戳 + acquire(&tickslock); + b->timestamp = ticks; + release(&tickslock); + + release(&bcache.buckets[bid].lock); + acquiresleep(&b->lock); + return b; + } + } + + // Not cached. + b = 0; + struct buf* tmp; + + // Recycle the least recently used (LRU) unused buffer. + // 从当前散列桶开始查找 + for(int i = bid, cycle = 0; cycle != NBUCKET; i = (i + 1) % NBUCKET) { + ++cycle; + // 如果遍历到当前散列桶,则不重新获取锁 + if(i != bid) { + if(!holding(&bcache.buckets[i].lock)) + acquire(&bcache.buckets[i].lock); + else + continue; + } + + for(tmp = bcache.buckets[i].head.next; tmp != &bcache.buckets[i].head; tmp = tmp->next) + // 使用时间戳进行LRU算法,而不是根据结点在链表中的位置 + if(tmp->refcnt == 0 && (b == 0 || tmp->timestamp < b->timestamp)) + b = tmp; + + if(b) { + // 如果是从其他散列桶窃取的,则将其以头插法插入到当前桶 + if(i != bid) { + b->next->prev = b->prev; + b->prev->next = b->next; + release(&bcache.buckets[i].lock); + + b->next = bcache.buckets[bid].head.next; + b->prev = &bcache.buckets[bid].head; + bcache.buckets[bid].head.next->prev = b; + bcache.buckets[bid].head.next = b; + } + + b->dev = dev; + b->blockno = blockno; + b->valid = 0; + b->refcnt = 1; + + acquire(&tickslock); + b->timestamp = ticks; + release(&tickslock); + + release(&bcache.buckets[bid].lock); + acquiresleep(&b->lock); + return b; + } else { + // 在当前散列桶中未找到,则直接释放锁 + if(i != bid) + release(&bcache.buckets[i].lock); + } + } + + panic("bget: no buffers"); +} +``` + +(6). 最后将末尾的两个小函数也改一下 + +```c +void +bpin(struct buf* b) { + int bid = HASH(b->blockno); + acquire(&bcache.buckets[bid].lock); + b->refcnt++; + release(&bcache.buckets[bid].lock); +} + +void +bunpin(struct buf* b) { + int bid = HASH(b->blockno); + acquire(&bcache.buckets[bid].lock); + b->refcnt--; + release(&bcache.buckets[bid].lock); +} +``` + + + +踩过的坑: + +1. bget中重新分配可能要持有两个锁,如果桶a持有自己的锁,再申请桶b的锁,与此同时如果桶b持有自己的锁,再申请桶a的锁就会造成死锁!因此代码中使用了`if(!holding(&bcache.bucket[i].lock))`来进行检查。此外,代码优先从自己的桶中获取缓冲区,如果自身没有依次向后查找这样的方式也尽可能地避免了前面的情况。 +2. 在`bget`中搜索缓冲区并在找不到缓冲区时为该缓冲区分配条目必须是原子的!在提示中说`bget`如果未找到而进行分配的操作可以是串行化的,也就是说多个CPU中未找到,应当串行的执行分配,同时还应当避免死锁。于是在发现未命中(Not cached)后,我写了如下的代码(此时未删除`bcache.lock`) + +```c +// 前半部分查找缓冲区的代码 +// Not cached +release(&bcache.buckets[bid].lock); +acquire(&bcache.lock); +acquire(&bcache.buckets[bid].lock); +// 后半部分分配缓冲区的代码 +``` + +这段代码中先释放了散列桶的锁之后再重新获取,之所以这样做是为了让所有代码都保证申请锁的顺序:先获取整个缓冲区的大锁再获取散列桶的小锁,这样才能避免死锁。**但是这样做却破坏了程序执行的原子性**。 + +在`release`桶的锁并重新`acquire`的这段时间,另一个CPU可能也以相同的参数调用了`bget`,也发现没有该缓冲区并想要执行分配。最终的结果是一个磁盘块对应了两个缓冲区,破坏了最重要的不变量,即每个块最多缓存一个副本。这样会导致`usertests`中的`manywrites`测试报错:*panic: freeing free block* \ No newline at end of file diff --git a/labs/answers/lab9.md b/labs/answers/lab9.md new file mode 100644 index 0000000..2e3ec0c --- /dev/null +++ b/labs/answers/lab9.md @@ -0,0 +1,222 @@ +# Lab9: file system + +# Large files + +(1). 在fs.h中添加宏定义 + +```c +#define NDIRECT 11 +#define NINDIRECT (BSIZE / sizeof(uint)) +#define NDINDIRECT ((BSIZE / sizeof(uint)) * (BSIZE / sizeof(uint))) +#define MAXFILE (NDIRECT + NINDIRECT + NDINDIRECT) +#define NADDR_PER_BLOCK (BSIZE / sizeof(uint)) // 一个块中的地址数量 +``` + +(2). 由于`NDIRECT`定义改变,其中一个直接块变为了二级间接块,需要修改inode结构体中`addrs`元素数量 + +```c +// fs.h +struct dinode { + ... + uint addrs[NDIRECT + 2]; // Data block addresses +}; + +// file.h +struct inode { + ... + uint addrs[NDIRECT + 2]; +}; +``` + +(3). 修改`bmap`支持二级索引 + +```c +static uint +bmap(struct inode *ip, uint bn) +{ + uint addr, *a; + struct buf *bp; + + if(bn < NDIRECT){ + ... + } + bn -= NDIRECT; + + if(bn < NINDIRECT){ + ... + } + bn -= NINDIRECT; + + // 二级间接块的情况 + if(bn < NDINDIRECT) { + int level2_idx = bn / NADDR_PER_BLOCK; // 要查找的块号位于二级间接块中的位置 + int level1_idx = bn % NADDR_PER_BLOCK; // 要查找的块号位于一级间接块中的位置 + // 读出二级间接块 + if((addr = ip->addrs[NDIRECT + 1]) == 0) + ip->addrs[NDIRECT + 1] = addr = balloc(ip->dev); + bp = bread(ip->dev, addr); + a = (uint*)bp->data; + + if((addr = a[level2_idx]) == 0) { + a[level2_idx] = addr = balloc(ip->dev); + // 更改了当前块的内容,标记以供后续写回磁盘 + log_write(bp); + } + brelse(bp); + + bp = bread(ip->dev, addr); + a = (uint*)bp->data; + if((addr = a[level1_idx]) == 0) { + a[level1_idx] = addr = balloc(ip->dev); + log_write(bp); + } + brelse(bp); + return addr; + } + + panic("bmap: out of range"); +} +``` + +(4). 修改`itrunc`释放所有块 + +```c +void +itrunc(struct inode *ip) +{ + int i, j; + struct buf *bp; + uint *a; + + for(i = 0; i < NDIRECT; i++){ + ... + } + + if(ip->addrs[NDIRECT]){ + ... + } + + struct buf* bp1; + uint* a1; + if(ip->addrs[NDIRECT + 1]) { + bp = bread(ip->dev, ip->addrs[NDIRECT + 1]); + a = (uint*)bp->data; + for(i = 0; i < NADDR_PER_BLOCK; i++) { + // 每个一级间接块的操作都类似于上面的 + // if(ip->addrs[NDIRECT])中的内容 + if(a[i]) { + bp1 = bread(ip->dev, a[i]); + a1 = (uint*)bp1->data; + for(j = 0; j < NADDR_PER_BLOCK; j++) { + if(a1[j]) + bfree(ip->dev, a1[j]); + } + brelse(bp1); + bfree(ip->dev, a[i]); + } + } + brelse(bp); + bfree(ip->dev, ip->addrs[NDIRECT + 1]); + ip->addrs[NDIRECT + 1] = 0; + } + + ip->size = 0; + iupdate(ip); +} +``` + +# Symbolic links + +(1). 配置系统调用的常规操作,如在***user/usys.pl***、***user/user.h***中添加一个条目,在***kernel/syscall.c***、***kernel/syscall.h***中添加相关内容 + +(2). 添加提示中的相关定义,`T_SYMLINK`以及`O_NOFOLLOW` + +```c +// fcntl.h +#define O_NOFOLLOW 0x004 +// stat.h +#define T_SYMLINK 4 +``` + +(3). 在***kernel/sysfile.c***中实现`sys_symlink`,这里需要注意的是`create`返回已加锁的inode,此外`iunlockput`既对inode解锁,还将其引用计数减1,计数为0时回收此inode + +```c +uint64 +sys_symlink(void) { + char target[MAXPATH], path[MAXPATH]; + struct inode* ip_path; + + if(argstr(0, target, MAXPATH) < 0 || argstr(1, path, MAXPATH) < 0) { + return -1; + } + + begin_op(); + // 分配一个inode结点,create返回锁定的inode + ip_path = create(path, T_SYMLINK, 0, 0); + if(ip_path == 0) { + end_op(); + return -1; + } + // 向inode数据块中写入target路径 + if(writei(ip_path, 0, (uint64)target, 0, MAXPATH) < MAXPATH) { + iunlockput(ip_path); + end_op(); + return -1; + } + + iunlockput(ip_path); + end_op(); + return 0; +} +``` + +(4). 修改`sys_open`支持打开符号链接 + +```c +uint64 +sys_open(void) +{ + ... + + if(ip->type == T_DEVICE && (ip->major < 0 || ip->major >= NDEV)){ + ... + } + + // 处理符号链接 + if(ip->type == T_SYMLINK && !(omode & O_NOFOLLOW)) { + // 若符号链接指向的仍然是符号链接,则递归的跟随它 + // 直到找到真正指向的文件 + // 但深度不能超过MAX_SYMLINK_DEPTH + for(int i = 0; i < MAX_SYMLINK_DEPTH; ++i) { + // 读出符号链接指向的路径 + if(readi(ip, 0, (uint64)path, 0, MAXPATH) != MAXPATH) { + iunlockput(ip); + end_op(); + return -1; + } + iunlockput(ip); + ip = namei(path); + if(ip == 0) { + end_op(); + return -1; + } + ilock(ip); + if(ip->type != T_SYMLINK) + break; + } + // 超过最大允许深度后仍然为符号链接,则返回错误 + if(ip->type == T_SYMLINK) { + iunlockput(ip); + end_op(); + return -1; + } + } + + if((f = filealloc()) == 0 || (fd = fdalloc(f)) < 0){ + ... + } + + ... + return fd; +} +``` \ No newline at end of file diff --git a/labs/answers/summary.md b/labs/answers/summary.md new file mode 100644 index 0000000..10345d5 --- /dev/null +++ b/labs/answers/summary.md @@ -0,0 +1,6 @@ +# 实验解析 + +这里存放了各个实验的逐步解析,水平有限,可能并非最优解。 + +前几个实验当时没有做记录,以后再补上 + diff --git a/labs/requirements/images/p2.png b/labs/requirements/images/p2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e35f7289ac2509bc2613a1fb2e87b10524507a0 GIT binary patch literal 186063 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

                                                                                  ijLj z2RAM8G*hlSPmfmpE#*drCE03mP90K1{1H0H{&dX95q{$6ott}s1}*L;+NFcWzOp88 zY(-==Nfv4g5st3nc7VTVzf*!`SQ68L=;nyznNF(%%C zEb!v+2^N+z*T8lV4y2&nE6Vp<&O)!eZZ5HaYb?=_myuate-%eAFx>gGetf8w7`UuY z!So3V5Rkf--uyj5P*j0n6P{VqX<~Alp@LWV5Hb^NGJ6LH&V1ta7$<9XDVtCKgiJ9ZtuM>rwk5E?a#~QXYtR559v6OU|NxU^D|g;7d;LYw)gz>-_s^w)bu6TtEtR4|Ht|FH=)eZ2msx`Nc2D zI(156_!xkd+`F^p%rS`lQPH>psvI87|@>XY<+k;t=hy~>+|*tX(fFyn~1GQWs_Lo)*=ZrgVm;O~U6&L=7NcivgV zu5{DUqj%UHwwz^QAL@Uo#-zzjoOZSEi#-Ehr#9@){u}o9$IK@rUM3IkvIq7O>@az8>(&Vv3KN%2n=Ff! zWO$@(Or{^RES?thx}l+giD3CpP{DB}Z@yT2F@J(6Y!abDmkKpmb_!FcA!UNz|cOyf2(Tm-K(ms+>{sH-)t8<;l5KoGhr)e_q7+a zsNfoia$28!3LZc9sg3=O(KmI+KO8c7U&Nl}RAo;ctbZGm&4>dh<`%2`d&pjKpx?b( z5B7F{KkvNM+~E%qXl1pyQ2x^ELa9o4EZnckoIu zoXf>0WKdo>Xn8N68t6VS)V~q(?y4v9#__wMuClTccT4TY$bd^U4@;Ab_G*rez>g@a zz!3n+d{y!=+zKvSXsA9uiZo=3AqEHpC<@IEUI{Ut%h2%CTkux#dfu}~koP@1Sm^_} zj`6*(Z*zaMgocsYX9G*k(B9$eLGf={*0QZzQaW$6^t(l=Si1e{ZDmG4YJTkaIsEMg zW6G9>-QtU&e)4g777{Vy{V`Bd`S^!;57N$O2d%bA_uu5=#J4yF0M?6llL#Q;us84G8}i&gB9_(re=Zhen3%|UoK4T z!0z4jC$VJuADseWy%ZRjPLLr1RWj0*C@+d1iZzCp@qG&xS8J7|UCwpQBLA7w=lAH* zgOs9I0zMwXA)}LAsQO4KCiR-C-l`hcz0t58GP9Y!@YOXL))0&sAHQ70AHa`OOY2~A zGOIXVzI?$Zj+#OPPY>?Nks%WF76OYY{kmYpg0^d_y2oC?t97kUR)SoF7Fi<@f=gvO zEhoI6m8ajwxpK3FRmb0o6ljO}UMhmO978@@( z|0oLhJsa%oZorwfe4|l*8eoz!7k_PNSdgtfIl~2|?k~W1UhH%9<=kuz5*s5K|BV|r z+sP?_HjGF1$)?WE)paHBkZ&$EF&YXd^p!7_Bbm4XstB_V1`=J^t`fzF$2}xBWA6o| z*}Z#rXXk4AlQ8c~nwKjogf$z0xdy|Bzl7dGINYb_;<}iLFWFL3|eX8$w@5UIOKy8bGBBM`cFUQ$zAuzPBy+kAK8a@A5-HGi;~mOXz_SE#Rof7n7Nq zEsV;MnwN#Wc=E)<*;&Ccg~1=}JoZcK>K=)R5bdvjbGCN)Mk}~}T09-VNgvaLN%+bD zHN#c>0aw)T@h)Js{yUAp4~MHBkW-smapajPAI#{)meXu^9#i?%cdmStSCfj)D$l8F~4WfUM}fMHJG_FrpiT^^cHz)yCAv6p40Y-AGFeotG{(#Xfzm%|SI%v?KWtwkLiQ>b{8N~gG=mNLzVuQ{zu`Mq_v`%{%04x&kPJU}R>ygI;cX3f1dVu z|L(xY*2SOyF4Z$d056$8V1S;!ZODj>ElKqsHhk-Rvwv|Ps|cL|p)bSRQ(oNubaxPw z;5Xl*4GjzkBgm`rnx|PY(P#2Cb?Pn;1C|3|eT&6X(auAExx7Re&&KZ+Eu~Ov=E`8t#B5JYG;GD@s2oxY*A;;c4sofXwTVPh&;lmLXzY~LOifow0)&q(*bqKJ@BEU0^XZY#DyB$}rEJ2qjq znUS22l`*&4h3N7|X8Vf- z^2_%bzF1WhGFp1pQq)}}GOJY0cUSWCxT>yjRzmdtES{e|)r^~%(P94qO?k}P)_vxa z2J7fF?2a+14Lvrh10b*?{Qwp=w;d>2{9L0 z79g2G9XuD%SD(m>>0ud;Rj#^w@xTVb-mx?=P?yqdoT-7zabQEPAe)-zvB1V$Q$r;3 z69%3YQ{L8zYFwrqG*|O|qqyTb59e@>_inJgibhS?c^us4(S1bSrui(AKwwK@nbV*1Q5YY`F(z7~Vg%mWOCS$7U9&n(Int8w>7s=U5K(3>mo_;+&=7j;?? zBse{BRkU!BTG_^A_m{hv8v4uigtVmSLI0T6x@*_33rdCMG1t9eW4LD74K@0(U1!3f zG7w|7Y(mm$VRknr?<|eQp+oaYbufq)_^XLT0|3pM4tHk!6p1FLLG*kjDFve-puTi` zV3W$Q5hH$m`&OPxZeS9TdMrgIV$jg9u`l?;6+8c{Aev&KQ^fDU%Rz6&*GLb8p7Qc@ z`4;F|D16$&q#|o+qydRZ%(ioTh(zjg#&b5cx-WDZ@pC0hctU`B_Amh2qapggXEx96w4#mb9wPw%() zR?dM#x0*510u;?(6x&@Caic*nSqL{A_9uvq#ZXlF^=GVW7!7nX-==1mwsylc?=O@{ zHMVB`rm{Fw_N27Mi?OWO_;@prw>~IAdZT{tXl5TyGg#6Jw|C78f04iae;t94Va_n5 z*t%`ot=xqR79jhf%wzrEl0}Q`)^5vwa~=nvP(m#51m1{UIO|nD%{(x64Na>j+|rVT z-14Vu8Aw2pb0;e01+8BhOLaXp#RTgom|KhUf`W&ae2%D&F&}}F5XWNc2YSv$_EsDu#D3uT5cMwUE_t;wMtL$Jpea$Hdet3E8RdD9o2TYUIB zkzXzpwlL-o`p0273Y+Wnm-G@jW+au$+q#m!sBd>fM_c0VfYAlu<?OTY5Ba1Vm0 z#^|Spu92OC4u=U^if0IXCC=}|uQ4J~&4Qi%%!~&N5G9kAD%5_;g2Y~K4qCEs6b&`< zW(Gsc9v)Nv_-ic`0az-a8H^v}*5M987YBV^uP|_XQ~zD$@kx^=`OfJP5z$Olj(NtS8K7z`zLUzzx+v?&`^S}MUVi?(1bi2y zdskfC2z~u$=a(Nka%8dZ#0@kQ7MdC{nSf@;w-<|vBBZSJlwO^o&bnG%hEZK-)3pUg zQ9U&&VCe`R1G|kIGsgbkOByYK^#XT7XxCblTQIy(ALZB>n03V|Vn&`vMr(kWOMmQ( zgzXG(YpuU(OGSR+0bAdcG7(j&pT7dBL|7?WQba#(cCbRXlMUudroVKvT@*=ReAQa$ozLtefv+*+##Y+0ZR1RpY#ruS%8Ep>!rH3g z6u0`Xdm~UDgTp9WrI<}0+hCynWKz=iy_?g5?w<>oIb`=xl^vBM2%Hi9_r{zlWapf) zoFRA>=bzSZX8Ux~Yt$|9(B+Tv_Fo+#Mieh#tZ=kJpHkGx!2w))7VsG@8Iix)yaqz# zUh2rCT2tf8-$7Sv3(n&&!CB=u#2n3C9=YgnV{-sVGk5?ctE_oAO)BN5>#VtRHxkig z&CNt26FHvvg|x)P%m)GMgM(3neFJm=1Uzn#GVu<7yKy_6WRvLrw+CQ-L! z3UmdS;KnJEB9Vow`{VPhd;$HUaj;57yuo|}kT_;+7uEX8^)PH4e`iVaZA^mf_7LB{ z4hMlETeKZE-(A`sI>D^-Q*(39&ZvZuU%=Eo*+1~c>DHJgG#L1d0G8gqy_9yT%1@bh zvejj7z0@UDfj0|~NsrHXUn(Cm9uMo4B}Mo-_xrL6!s(ckf}tYyqhYlS4gB_L zCM=0fbj{}c3^OzwAO6o=|66bg4<)n1K6aaj!Ek;3tErBTopFesUI}3oFAnB&{tt3# zGZW$#aCv6AyioEic`L%B{Izp?Hj%4=`cs7aZQe2Op@6(rCy9$|!P||i7 zzgpQBSu9ysQDLN#k8qlcGV|axjPD6tukX;EH{5>2*LVg>Uqt$V?L8Zg-a13KQ4TXQ~SJ`cm>G-+sn2-~iT~yn2Z@-&erL@ zJ|rYlZ!EE!qOAisr>Qj)6;Jn;-NL#62*gQG{Y96%1eZY;2tPg%zn5}ZzoF$#YwJ>U zC}RVY9BXeJC3hyRGwh7D{2+&EGp7(20v0q79Ctn{!)U4V`@7vfMymg#Xk_3qxAtuf zVmSCawDFdaQWzFItgHmwC8ToVe8HZlo64O^vs`&kFNU(>Se~)krDyD3^S4W<#b6*q zr6YI|O`oU9HFtYBs~(j8_n$wnJ<^Dlf}PtZY9_~u^s#I)i4V<^61gN&cW7{u)zzsF zGZ$YA`9y)9tJtsK&ULgi1yv6R$V;6Vc^}wBd5*i2Q;*nS%u6dDKAeunKwaH96BBo1 zlc(7ZyV*j|#uuwkdAYf&=mRcZ{LOo(qWDHR3h?pFBG$uTs*_XQ#WeveB8JR0qIi7M z=KYC@y(J_f`Ra}*D!UY3J_oaU;16<&Azm9>Dx~nOWQMI z{;sYzw#grZbriEqTa@lLM$z8QEfM6oRqvu~0e}|%2*#SH&D%r6Kxt)nKjgq6E$k5v zgZ$Tz4>JcB6ui9h?V4iF$@5pN^(ZFfq_QBz()EUsp&rdqv z=gidU&72K!Z6J}JQY4|vqO-W0d@n%$emBclj7<=djh-~Wx|Zi;W9!h=8q3~HzJP(b zIX<1A3gQUPLIiO3?w3LWLF>JY)J*dO`5hwb`zQI@JFX+c!EUmM@#?HuHG-Zcn-w^G=M~A4J%Sp798nYy~rb7AfgB2adVq@vC0G2b`G}q!*zb zU$;J=h>D}?nO#^Boz$@7Q46P2p1r<79h%!`P5pT+fB@;Qh3}@*z)^N)vnylmYsv+(-gtF@dvv3yZ?etDiMeS94-Wqk%M9}JYNQ)X-nb-aYOO#Q4@*i+ zWH5~&fU%cVYM-qdleH$Wqa&@(#y~|u)hOL-+m^$I_jN~pAJ$LJZ7FG*$oCXO1h(j?tMgRJ})@)i(% zGEzaw%YLWmn;$Bq`y^Jp6H#`!ogHX6=fY{I;K6U-0A(c~;G0J1XaCd1EsGi)rVsgq z9Z+-nR@mn;fg|s^9skl1`n7r$h1v9%ZlZ`_49ngwUO|*$un!{Ne&j3ot>YyVHQURT zmC>CQ?1Kz107m$#ZBokGyh-C`V_4de{h_fjvAu{!p|3{&V%$ z{GaDk9gV^d%HkUX5@F3Ai|aiep;5+}9bbdZJ;RrfRTIw>qN0Z}ZnU^D7vsg(Dfl*J z5MSR-8$bRM@Td7CFnR8A!4rNkCg7ZP%-})?C7JG-zo$6C=ULbDm$86TSF;L0XZRp}RvynljX3d0 zzNLb$j2V6Nv-@-aooC;@dv~iR|bM&pCp-cadXUsoC5@NbImEm>i6#9khqo&1>U>gIvNl8_Or`ziYysM`9$Fa7N zl@!nSC|O=V0YW2N=_7wW#a9duh1$Uuh~%6PM<)YN0>v@9wcDvG42h`4XuHllZN)HQJn4E-i%xNP`|)g@ z;DLSA)>~;IgL-e34u=V6j{?W{418!NoSmGshcVvRtD>6DCWM0Blc5F(W<&?|BmclV z&ZR;MK3h=m9bi%*552i&^Fo<%^Q+tB%DS z42p+yb~1+AjTvU%a}UrFJ0mMiWuhRr=wKIAC5{KC#ZL5@~$?j8Nq19Un~-J-J&m3uIP*d)+%?t zP18mePYP+J2xDO6JjBk%`6CJ*TFDzjNBN@VD|f2yCNAdL7$MPbHZI1&!RcQ)&h4R; zd%tQA@7x!|E7k2gla<~!{z1wQ-!doK`Q)0PM;-BRr_oS_paaoq9gF?tbcb8t?>x4~ z;I8GC__+!6Gwy32@GUB*c)m)Z$Dfimrq_=f7WB8u%JppxVrKeV5j(zG)V*6b%S=$y+&(|@mq-4SM)Ep2sA|jM!*8f&Dq0jo z76&e`46aNXiVf$Sr5~G{2b-PUar1Sp%H3LgZ1r0r^F8taXkSlBQkcNDo4}x=IZ7@& zGIK${NVA$p0+2|g@4U|_ywCW5gWhVEy$5E6!PP5yc7Y$B2Qk!y@Q$2}A09q*=+Mr^ z8y(sU64#q6@0xRXbLl@I#9;A^rBr^yiX7hTzml~ov0^AE*k7Pq>+iV!it*_ymqkdf zmeds*b{sImhm1K7NeSPAmZm0Qd{{a=yL{zw#-2-RD=Fi0?Jva)w$N6T##rusQxk*c zH}BtH4Db5qc`~b;NY9bnRQoxeax?J{4N}L|f51Ei5=(A1u|gB&4xKe;f%Bw5K4q%7 zUY&i9-9mf!+=hAgUc72e1zMKM4q?zWtf5xN*xbRlCUO)+#$CHkzL}Xb1jCUrFwkL% zm2~g^;tYDg>6G4MJ+DtqfuNW6nEFy-f+K}v#xKiBCo@=f0ep>%1d$_1YwDXl83}o} z(cRl?Zl2iz8W+>5F0X1N+PY<`v-4iLK8phaoc>L6--~ekRy7;!=DhyKRnN^2d2wD0 z{H1+p2ZWh|xQcVn;CJa2D%;)lN*%M(J62#XqNPKJ!tl^3~GH$F6GOji&GJ|8td6H-m$6@?`k7yWl%J5cG9 zSbH2(;ntnl@nD zK_jWim0&eo$KB(E)mhc=(@~DjdGzq%iR+pbIdhBG<_=KVA&@+Ba;AHFKFfCKL&~D` zqErN?%pO_{XFu^ahWy+(MCTVR6=Da|45 zB0#~Mm!%uW(fupfRF@_W4QZY<{3QZy*?AV5$C<(Q_jz=HLDJ)PPbFL6g0x%B;A`{j z4j{!8laQLc&q%C$_8xz>yujrnnJd|Xl0;uwfQ@nQ5mA=o^-NO@wZC40t3h;*9Sw07 zbm&+~x1dY%hI=B7;~QnE-XaI7pi@;fu?T!@XG(G9qneBD5VC$xgusPNA zqludO>>|MrW$3tZf0(?xOmTvvvCA!f_wGpT)0}G;c}7(t|3PMEYRVMiIWq>lw$U^X zR#bR_YMNWqsJGoazn#{A?$J7WC(=YY@+!rK!4!JKC5CH`>&C#5gZ#Y0HsAVTp6=Da7|OX+35hZb*7-47zjC4MyaxW~@#^H~_rqg3wWu zhX`iDgwDIw)hsG1WW;d({5oP6F_zQ|g@=_je36_*;?uRhhG(3#`Y0x{$hvN^X%0E^ zQ1zrPirm-I_KY2p!JDe|N3MDQfXwZ9VkFEShz;)Z3jBH%wXua@DZM?fbHK=x?t)Gh zire5{Yz%~`l3;K1>3Lar*{M^@M=j6w_s)NE_3EHeqkceJYf4;cQYUN_Wr8y2!iq-P zEP9(y^<{C>L=IRXv!@dAJ0!#!9vUW0%vC9Yduo`r0x1i2sN2dDT6PGME|b>C-wH_k zj1SMm8|E9jmt2ODe*q?nK9>%`#CE0oc@;xX;TCgkfcpUeQBeba(RXmc*hTTUwzd*f zs5Wz}y$&2LWML>IK;apwHeJhK%Gk}QZ6wRerc0EKhAfy0>m-DxR{Dj8~H3NQ3Om49()5vCk^dhsQe zYRJ&QxJJ?TGySK~WY>B<{-o6Hq~xa;R%*w17&=D@R($D8|0>y@@W_8fyONj3ip+)l zR(*(Tx8^BjD?$KA80q&+^-%R^&LCC&;}f%ww31E$!zQl(Dw!-a;*G|9Wyk5CUj~bb z!lcJ+a6qKyyM~$ePX_f_#&I{bTjIPBa)4$$hpt6g@|on#R2elfOACZ;&jq_;H*LBC z;-gbNVE^s&dp`L4SR}}3O$?hnJ81WwJwp_wD?ApTK^7FJHd0F7e7s$gt2v|+CWj7CU|tncfT_W z@59Pt16+yYHXk+sG&ERzI{K)=;avLVYczKS^SXOZKEn(_znaVhAhLMDf)&kG%KgS& zsjjXjPSn=A4p2-Rx9%>c#XqLQT^Q(m9FFWtJ1kW_)UKp6URa^FEqR)LL6Y>-qE(3K z&!0Ktc4dt(>r7#7!)V$;MF~6#zZt?3Dt_P9502+>+1l&06pjk9OYDE&Mm#Roey%nl zgyERr%EL@4VOSA6SE9d}IsRbM#ARa8oH&lLJ^M5a7p_%NtB!b7?P_qmE4?kCDGX{& zOeS!p&W4rU4pr|h85fgDM!dR!r8IXq(tH=XCMT(-x%ULbBwSL~&`?<|daC~<*T%NX znmtFj&I;}J5ULh^7V&K>oh=;#M+UkibRh6!W*bXwyRC(r6To0lAEJxCzF}_xu&}HL zMC}tC+s?49_Wm(@otWt8Svan7G^3(~Oekky1<+{Sv!_opPDQk`O0Rfr&ekP% z^VO347h#&fnW3p-rHg#Zo*`YAOqRb4<(%gB1J9i`>P&cUO7~?5A87yF?J{~{g>+)` z2S-{|Z47d_&RHuO$+c*;I_ZHq?7)SwWjV^?8=cZmjod$jxlBY*&i@C=$caS8wO9Xh z`nZA36yM1K~B6Muq&S_V0Ar!KusdWy?4gMK(+y z4pZuQtKgtkyKDu4XV{E9i)PGi@;!EL9>OGhl7R}_mZ#634}H%5ZWOoZKzU=jgG=&5 zoX>`ol{_r@p^j6+g}R!8CDRh@vr|6Yi+7j_f{I5NWV57oMU-K$Z!t-+T;CV`#bWbH z4N*i10coZ58=h@q|AZZUg7X#!}cH5KQ&FdbL9^+z!~}-21DHa?3`7s z7+GRvwHfcm#Lq{cxs2IFY^Pm+eL&DPd>F=$AXI4oxJ=J-;5o74yMWT%V{xRo(&}BA zxqzfdNRUqyum@E4dtM?tWi~@n3?CAIm8sY(S$(gJU z>bLd#;JwdrcxG;&Wqd**GU3aWv1?n$cwLqJo)-HveMKk3Qvv_Lz>RRhxO{AMknLVodWtdNWzUhxCa9CwU1x$9~!A6Kl=-;w{jn>Fev-rXV_*yig zj&{QkCDYINQ(h9WlS7A{8?>fU-c!%n^#P+l9e> z@_qZyewFO9|M(29E_>!rT==QqBW2G|0)=tY-UA0TpYgfT(hr_wTTyzAZ|W+xF1{^B z$;9v@X^EjM1QGR-izc6Ywuk}qYf6pKIVX)(*I9oh$vX9v_}bA4&H~Uc$ZdgAi4qW5 z1vL!@)KoA`m*=B*dp!(`AJN_~&Wx%>zSBbM4;K{tzrM~p9?SlH<99gvM|I!V z_4%CRIFI8vWinz%KD*pmvfj4*kdfKjE8asR3rHznJE_nFRF2z~)(<};fyA?NG&KN6QjE|o+ z-UqAoud8fG(vW~)oPf?;{hAYeWR~TCF6mLYU7`?@7#wI9^lxy4G4V@Q+AyhP#Kr+C zT$@a_=KcG_1rjW)9b5QTd`zx?(C#Q|ZZ3B3FA06d?B--0H}kCOR%}CWsP{Rt`}HNP za*Zu$eJ?8W<~$hYFL`V$aof7z42}-Rs z(Z`PqeoyGmhrUlEWn8=F0vlUZRW7vf)ty~aemio)#2N}w;)6N!G4J7bKglab#*-J0 z8pF)SW(vSw%gmrJ5%QHIk8v-kH(uk}MVXg0eX7!)SrFyDuqWX*3RM}$oE0O47wS6* zWYCfzicln9Mw|$ODXYu6$uYFW)cwXk|>Kqw4eH_ZMC1Oj`@6?=eY7=Q%~nPpPgV`JUbO zRkN63Zxn`7ZCjcM@MyqM)S|F`tSQs;=>zs_F9OGbc>AM)^fU1ln=w z(np$E5R{Qe9W=w}P4F`FxUlfFQuI;sXy9tNx29%W_KKpJ0Mmp)KaG^}9e?>U!T zE%uPq;Ikb+s|xTV#?~E!)U&7FQRMM~V7bv*(fTIM8JnM(xr!~C0s%#RgQ9Th&DyFg zht^y2`>IuJZcxDo44QZ!W!uf0EjSw7;Re4@kd+l26)Bybx_9XmzXsm5y4*ZgoT6ok zi!f+9f6+Y%P#Z)NcDO)krt7(qmD_mp=1sm*%>ub2Eb-&Q%zK(f6QqW4TV?df?0QN{o&`&e7$(*>QDYp;86Wf8x>i5OWX==C2BnDlKFHWEgXwx49C7fxMs9BI zq(S~rgTH=tfkCx#<0lqpQzB|_eDVJMdm8yWS2SD6`lBwi+?5XOw(QllYd`h?n?P63)t%m!CV;~iGU^?--32ux33toTVq)t4_ z^55F!*{dcH_F#bR*T&MeA>EL7&>s5sS>>ClgY2(p$)bR$;A8O+g;x$h*g7eR#}N>D z)Qcetm7FD?;@~wWk(o@&wokT}nR@;B51I||TnU5V#&=DEmHD^aVM7cac^%&XCzvkI zzeB+{>-x28gC;wl_!!rlcx!5GtT-j^^`XSXMydnh8ZR)ceuaRfwTr~iQGeFjzZ3ey znEzItL*MAzM>qOtJG*nP7S)c$=$+pY8yc>Y8(qLT+XikvcI=TGRhS_HV^8*&!&|;j zm3pQb&N81^w#-80Wx4wLsjTWZ;t+5{kC0&t^!4vEI3#I6vl*>NMEgXrSf61%7e3>X zlFYTqEY`fv!Kb1t33R4#?CtBLe9EdZo%_eRVZi`-kP~;+>6=vpZ-oZwUIgQ;PXy=F zH>g`hW=aGbt@Tf(WTDr~dbz>aNrL-7S|Dd3(3pzxFh({;zV=4A z_3}DdhAH!<&p<5hPaa@^9wR^bc5l`J21mH-q(eRvsqTCGN82NCF2?rv7ilabVT@f? z$~5@j0;i?@2mIXo`}WNM9XFVrI57UT%X?)XiUbntX-O7_Yl-1($wN)rL#h5}#TEUAFZS z`GCMOIB_g4Adh}3OBgWjm5`nwt>@J=X{@;Y{H$TG1F8EzD!Zn=gy=zXJ9!fRxG8Or zZ5<>_D69$R&h6h&OGE9v?E}}wTt;^I@b=hqnHDxSDpQ>PE;8%lsq2m1I>$!mD}9I0 zv~yf)uc!A)n?kC2^yFRuDAujgvGv*+e?J{5qg@jCIZ06(RlfG%; zFh-5wm{egvTPOA0`fvgc3nw6GU(o9wY@eWhWxq@VhY6AnIT+mm;bde*lLuU`kTG$n zJQOrSQGy~u>t8Xs$*1^ev$LG2oT1a;w2$Yg@_2=)QTQAD()TY>UvXnYSZr(!wZD^s z^kB`dvTR-37!`tZp`+t_O1AvN&P2hSI&fptJCU;#g{V-QVhsPsF{!bSxb|S%s~%t0 zJ0G3j*v80D>%L1kxHM+1Exdky4~fRSFuCV}`?&4^l|TyI0>p{;30{EKX7f6U0`~Il z2&8i*Uf9bXfd1jkP~^ywBTj!@pSpZkozv@(QaSs`%>E;Q>Qu#Bwiwx_I9tV9cX^!2 z)F7jyeaL13ZQ@ai9U4=9?r+N%<>p=}xc)eN>W*e5jZ)=|l#P{g zzHRAlb$(@8Ve{7_K7mQ^xPGD1mKOrGh-gR+gI4~E=B+lt8ke{VB;x#f!D$FIH|>&p zNctH344^6n{lPiZ=EAs(ve%cWPyeb|1nDZT2*HNsFF(9;nZ|8(b)8Bjfm=h_9=Hcz zsa9zHjdawziQ+Y~e{KAF^#@(5M3gpWh7FBYCPL=He(U2jan(`UdQG*O19ND*j$h~` z($co~`N6Ud)ema5g%Y+(S`=&V-W@D}rWZ0(g#8S^ceJu{P~&`IHKin|Gcld)gib?P zaoe-!@pbyAaarD+@%MaY!uA5A9D~D5wMuVjbtOju`^V$jjk02HfV|bx2ak4YAh|FI48Jv%kwjW*& z0h`b1j_TM)s&5dFlkWOx+c>!+)3?57)8=yDPVe{YR|{50%$e2=&D%_!@3`~>IV|p7 zW!#y|MyOANI&1}P225Z36=UE6GVK+%*DES2>gcpkiU|om`lh(=t|sLS738vea!Q5*vwtq9M*x)5vNCwh5c=99p?EE zVY7MOC(+|fR*Kaq1QWKxPuueWT9knCPF|X&Tp~E;eiERTgoLGaNA<4wCrg#$;ZBcm zc5Uj{If^U0ZLCO&yArY3n|?M{rn8l8hS$vYAl{Z*hLZ*0E~`*pVlHa)dy4`Fdu?7`Ba@1&(Wxn$ zhrd1{|2iu_zh~&^xxU!g^VQ5-$?Qqvb5~8kf`=@bclzIsYK(WbAw!&e^MHaxtL|`# z$K8XlUk6yh_lMsFrtV<#^T&^D2hD2%&Yl>FkoXwx5OdzgiC#qijdngQxhOC*`J+9- za>z#44CE;@Y?k8UGkE{7(Y80S>jvIMgp#H=ZQ6^10?Dhdma|eYq!BIGtft*V+(!E9 z%T*y)3bG4NTb(UQS^nZshJ6*Axf*mlW<;3{f(h&pnvy7i827}N}uE-6l>-HL9+>_*nS_|@jMZQ*^^T{^i(D&PvFSnxv zX`n9qm>7Cpo$1qS%)DN|el708NN3uCVv|wdWnyJQ*lG$zU;x9-3UuK%mzK=# zrU7}`$)S5tm)=Ahi^eyL@qaMsms&2W4%_wK&|~?O3%VmiZ-j<~aU(+m^P(ov+^`}qUYJIJL_GVfD{{=kQ_hD-RK-3a=hJ{|Z1balV4ui{Nt3o@`g9_7 z0Dz5BIl#HJ-qw>U6jv?FcTFA^>m;iUBK6G7*2<2W+tac7-3fc}0vJMUezOa;iU!ZA zHaQv+&`^5p%NquBYPSHvLs{Tw&_1{2&mU0e7432ushp<~6OZ{1`u($Kp}93sC41ND zgM=V`4?dk4fJV-2cGP@L@%2)smL}W&k`-8`9J~vPk~<>O7i}es;%En(k2X`?V@t9$ zLUA-2EW_#=ZTk%;34~)~{upjut2U&^*#%7y z_HcqJG)Au}O9zd8vN7`G(X;Vx=G6`#m->} zy0CBrb7jSp<6sQ;-3hWP#pB-CU9q|=ueh(9fJJCF1e-rI*OzGaz7`+v2oYKQsK4Jx z#YJ#5e5maMjFs+ZoT+WwZEHB7C)l-k5nDnWt}mr1W^V1Yl2`2EZ;2iNkXRk`A!ngDJD9*gxsPkJr4v#U*$m~ks2dv*Sm!SeE^ z+F4JZS{v2TP#h0I`QdsYE+!`P*)to>-xa``Z^n-o#jF+Tmo={iI_}Q}O5LmS^#*m` zvx@RMsCZfkoh9jJbTRxL$5DT@sH}qSj1l=*5@VBfrBRMM=gVo z(_L3-$`l);1-5&aSA3c1bo?}IIx6SSI9Tur^FQpMvBt6E#Dx@LPH*vB+e0_CR@@gG zlbR+H9CwUHU9heH_RV3Dqw-4KGd8-+sK80Zodzoh?*LaMnVH`0#Kj|m9}kx{Gtv;w z!mL$tqKk1n-5@8Y-@G%5Z*6?}M4WaT?D-R-$r)RrGsR@sSq{GmJIxF$GJiRFK-f!pilueDzv9Ohnt@J}QS+MCLE1_NL=>76b+ljK(bG$nK zZXY}u9AlBTQNtZYtPVn&6#Q@^=7Oh*#gy3 zR<+AXjpb@T3^%(|m1YeYC35bm60thDLNm(45tXQZyWRE=C8MXaz&ah96Y*W%~`^3i=QA8-1@=7;qX#>#uB=$mrn6A94IR*t)Od{GZnWK>WdL; z-exjwSM_64?1@Ml`Z#6XRv=Ty=%D;|U#YDBEW!EL72)&WBc_5bs7?2w>X5q5t4ZSN-%T{IlCI|9+S)wg2n zIAI*)m4>vF?7Ah*jzr(vmvu?+KY#Wj%^vvfEE4&-;i}m7ZThaC8(RCcu{ps>ubl|R z4Fp5;C??5;RQx5%Jvc13kfQKoYFhnPi`^Z^YD>DM9_j>>f7k)3l=uRWU&j7k~Y0keq1V9Bf-0) z{pMX#?~G6N-&$L|A0V7HDiTN{sf(9J3k(bU6r98PILS-Ym4gx3w!FF5r3d4!5VFB&jq;TL!HdUtVfGmnwSvbtzde>cfpSOE>^5!NrhO!viPL<9Ieg9H z;(?L}#K{2RKz?EVBYKJAi{T+W884?DaXKO*F*bHoy|7YEaiD!EwDRLp>w7uVW8DNt z^+*Pqn!i1E1`yM(ww8&%G4Ag1)!9Thx&wwbm=dgNX0sILh)j^bvm+H_09&8Qt$;VH z$!i|L_g1lXh3P59PW`)gIk~yMzP_O+PX_ruq*52=M0ZavQAd}W%?T&N%+pwz;BTx1 z;ZOCuLb&_Ex#Os6=0@!)uD8*)itu*;wwj__ z_^0+rCUZ&|*VG~oOvh^0)4X+3PMH*3nyLfRm?bgIG*%+4pEW$^;_7-lvWHKQM}c1F z3LHK>?~{4o2o3@{e@KT8k$WQVhXx0aN=q*2(AhI<6~p9r8*1j%`X7c{pyQdxzl*0vgKgZ=Dm1Y?I^46$XuY~Qx+ zq-(dA)5+ZoPLq~JN(a{5^eS&Bai2{V z&ZDrte@9rw#weMT=QX)jYS`=>E8R3-18p7DCBxWfZtAvgBCi%UIVCiW>djlXYK|Q? zc5%5DxiV880SMlTuK@R`Yk@?151-LvM`|ZW@rm+O6L#nlY_DB2HZ`>{nBGaGcM9;F zL2{e@Vi;@B#&zycsXy$OTl&?b^Hc0hKrRah6!~Yb#xPevKzD?Ax3_lJb6zZyUFTM3 zw^(M_uz>pAXI5=`PLf5TUEk2-QMQ438CT%RLh#eurL0UzTGJ$G7Uv@k(c1~XzZIv- ziNY;q>biC7cU}#)cujMWgx%YYf5qNkf(f^q*OMFRriY9_AjJ z!%lS-72lVm*8Er)fRhAQF<|}~bnY-2GSrar`zRbr`mHSz!R883E^9Nga=xiC%^St~(7kp; zFc}+&VnkS7zG2v-R$kX&+jJ{loKwj;NVzhV(qBTK#3stYrewN8iJ+pQ(wwd?cSPzn zJ~85$&0R!hXPK%neM#RW(V_rI(6ZDld%!`brb(kAL&M9{V#Zr=>4YX&Q9r%^V($a7 z)Y)ChuW535cAxsGtw)h+C2Z5kBE>EZF;X{bO9uK0f1;zW0L4Z5(ASi~D>-9k^y@tQ z+@R{Ngqnb{KyL-cmZoZ|sxd#77&B`d-EkC62&Eo zZUgFp6ugl8kG490c6+wGDkbrH!A5-51H)=ad|>)U4Fh<$9qyl<_Z`C1MPjcNVp zIIP}$bg<2d;%u>;gRE1qWdm9Mi8*CuZ98DKxy)qHjH#8g7G}PbV9p3`dto z?`Y^Ly4Kw5Kh?j3)lro_?X@EQAe2^Q!5+0We~kE zN`x*6c#L@hj~1Q@WxMHWL(p9zZ*Ax(oQz9 z+~%Cb!IRY>+BfI#+L~iBqi%+*-_U>+!_F$58rr*_2(L3tMLJaY5LO243W(<2Mi3%NhL&27d!i~{f81{nuLcs@_0fWle z3tRXstOTRmV$yi*u!9WCLj3%@24vYM2C=3KIvkn1k^-e|rec?U_i%YOga>e8epr85 z*^uC1QeFg86c?SLA>x5#?0r+6u%ubS-k`TG=giG}p~@Kn2VKP~QUja{r@8RRnn@Xg(tm%rwS?g<5x`W=BG7Ny}2gu7iu- z3Vt{t`cu=#BsDx+`h={=;UFtf>NK>~GeqZD^3N#~CaAL8n&Btt&p9K=(mrbU;x%C6 z$>DJkI@(v+auwc70wGdWjl3~&BA%!gCIj96X;=&ow^9vIacl?0L>pb!Kw8?=-=`OuTk;b5ik2^Z5ca@3(el)y6C4_`#DsCzZKP<RR$_>tQ|61Fo6@osU$}WDW zjEuoMck_e76ff~E_kB4Qf|NJ>oYDfsBiCLbe>{wM*M>rU2Lc7dNEMd=XD5;(hKYII8lBo7S3^XC^ zL&T_uR&V(qJtChg0as`+d$xOTMc+a55${Pl$5G*#`w>2Mlj1_^cP%;lt(R~Ho92|o zoE7GQ*}KQo$hf~l?PAsXJf;4is?5G659p&5wXk68`T*VN&0t>abHcrY+19@2n@E8( zncm`%OPxC1y+P}vUO`&&??=pher*&yJ%l7Duk^oEhY#4HH9h0K7TVGQ9XKE{?(zaQ ztO5C}7gr;V0A(Ore;_)6RMg#e1bs6fL19edDc|g#RsH_`Aa?E)FcEQo1#D|3x#WM3 zKMnQsoGC={$&a2@Q0MSqQ32!>6^Tnn)}DN8>pr}OjubMp_t-X)C!jQ8 zlkoboQIrX8O;ez_O(ZUbET1`Q)SM`1N@c+A!a97KvhWM2tQ1^t^77)>4rI}HBiM?u zagXmCX=*u=O=2;BDSwLi$`IsUlHINoe`Btzjv0ePb4~Koi0JAxP%fdbAZ4QYpWY`cHCwbXbwlB!;u2bPkR-`RvBJ|_m5sw)$2}y)ld``82 z59a>rq*lY8crme49-`nEhZPQz7asN0Iwu=!7GV_YcH zM<_i-@;YUy)lD8~0o`B8jltdx*vx9nWqR%!&G{u=L|QY1%t2&+GkB@+RYRUDtGru8HZ>FWyL_Y!La{e> z`g9@T4IcJ{s=o%0hcovXdyCwA3E$|k2mb42?gK2lE|`Zi8vf{48*e7mX0aj-< z-Y|Xw%aHODjPU5ou;^%S7C(^>G5MwCmKiwkS-ZYuUCD^ThI%(SUzHNe;T8`}ZE0=AMaMJkknULDEJmbf z%vAB0xVu$dPHQp@BER5lveqHX-F)xwv zXvg}l5k=Y)CpHDNPX>@jH2OD0MO!Kh^cY{FnVfd!f*KbduHAwp9tVH@GpaCHHf?I( zpDmIb=-uLZS4F>@sKrnCL*M)*-3gH9O+%&robSH+GLi?F9Gj`i9LZKMgv^Z#kZ;zL zs;c6o4ON}@-TMly;e zs~|yXYXI!jRYal{-O{8*KEM8aKuM|N`VtU#)E2!}Q<0mvPg@Rvh3T5bGo;xX3Z=nxzo^NJkY(q?FBeTTtXd3}v9B0I|bxUH~Lpi!{Q(A8q6 zun06aaQDgQokW99ItWV%BqfPdaoO9^dRm6T_w;0oL#Kd^PqntSE?@t17y|d&bXUK^`#fq!XoKw&$_4eJ@my9rZ z+BCtQnfaBe6KfBs^ykd!GD2z0n8T@T74^4B2O>F=y;?JjgBy{1AYC|OW8ume8>=D- z2%CRjLcQ?Cr)?)4>g($__PY5czoi#*;`z#dnqYU4pNT1;sEOsyZDZQ3M(pPjF@$tY z>}_|~b7^9EU_ijQ*QdYjQ|fO*e`*xlYInSIrXD6VA*ONJs~Ki$M--_Sn#PqJy^&Yv zc4af>?hhaOXH~O2KqGOKg(+)D$VhE}|LWS{p}hwGXFLktEz&p zvG&W9C-)p3LfYy_^q~|j?1V^D&s%++lLqesGmx|$c6p?RyS-rgfrWIGm}mO2szR?l z#mB-~OI{%Ppfs2<<7HLV7Z;sN)?-H~DJs69Y@Nyd*|bT++PhoJ!M^$|7axyvjjXJL zmOQUBwDj%AD;5c)gmqf-g5z+H>UZfnRZD8Vwd%Ef?Gk6H7IN47Mq1iZRT;O<$6aGx zyW6eK%2p07>^XwS|MG2sW|+T4Lw$YjFbE;~JqnX{-nolQM_u3vi-;oly$Q4=n`S{C zqjRA+ODJ!U?zQBk?2+sfB^)25afc09zLZ978aI5P8zrr1{Olg)36|*KTT1qbd~(f9 zId?ch^S4ndaRFSz9k&i%1Sn$0Xr}35f&NA|B}kW5#rvf znw`*^m-|ePp=uF{ZtqLpx`nt!Jd%a89EZD#uC_wSp_)990cbG{en8oZ*# z5s5M@`|2wzE3=R}#MA)_*`Kj`YwS9fQUrh8rk8i~SFCuZ3S8ot_QW`}c36 zs*$xqEhQ4Ykv>L=%`cxRvxIt [!WARNING|label:Attention] +> 在你开始写代码之前,请阅读xv6手册《book-riscv-rev1》的第2章、第4章的第4.3节和第4.4节以及相关源代码文件: +> +> - 系统调用的用户空间代码在***user/user.h***和***user/usys.pl***中。 +> - 内核空间代码是***kernel/syscall.h***、***kernel/syscall.c***。 +> - 与进程相关的代码是***kernel/proc.h***和***kernel/proc.c***。 + +要开始本章实验,请将代码切换到**syscall**分支: + +```bash +$ git fetch +$ git checkout syscall +$ make clean +``` + +如果运行`make grade`,您将看到测试分数的脚本无法执行`trace`和`sysinfotest`。您的工作是添加必要的系统调用和存根(stubs)以使它们工作。 + +# System call tracing(moderate) + +> [!TIP|label:YOUR JOB] +> 在本作业中,您将添加一个系统调用跟踪功能,该功能可能会在以后调试实验时对您有所帮助。您将创建一个新的`trace`系统调用来控制跟踪。它应该有一个参数,这个参数是一个整数“掩码”(mask),它的比特位指定要跟踪的系统调用。例如,要跟踪`fork`系统调用,程序调用`trace(1 << SYS_fork)`,其中`SYS_fork`是***kernel/syscall.h***中的系统调用编号。如果在掩码中设置了系统调用的编号,则必须修改xv6内核,以便在每个系统调用即将返回时打印出一行。该行应该包含进程id、系统调用的名称和返回值;您不需要打印系统调用参数。`trace`系统调用应启用对调用它的进程及其随后派生的任何子进程的跟踪,但不应影响其他进程。 + +我们提供了一个用户级程序版本的`trace`,它运行另一个启用了跟踪的程序(参见***user/trace.c***)。完成后,您应该看到如下输出: + +```bash +$ trace 32 grep hello README +3: syscall read -> 1023 +3: syscall read -> 966 +3: syscall read -> 70 +3: syscall read -> 0 +$ +$ trace 2147483647 grep hello README +4: syscall trace -> 0 +4: syscall exec -> 3 +4: syscall open -> 3 +4: syscall read -> 1023 +4: syscall read -> 966 +4: syscall read -> 70 +4: syscall read -> 0 +4: syscall close -> 0 +$ +$ grep hello README +$ +$ trace 2 usertests forkforkfork +usertests starting +test forkforkfork: 407: syscall fork -> 408 +408: syscall fork -> 409 +409: syscall fork -> 410 +410: syscall fork -> 411 +409: syscall fork -> 412 +410: syscall fork -> 413 +409: syscall fork -> 414 +411: syscall fork -> 415 +... +$ +``` + +在上面的第一个例子中,`trace`调用`grep`,仅跟踪了`read`系统调用。`32`是`1< [!TIP|label:YOUR JOB] +> 在这个作业中,您将添加一个系统调用`sysinfo`,它收集有关正在运行的系统的信息。系统调用采用一个参数:一个指向`struct sysinfo`的指针(参见***kernel/sysinfo.h***)。内核应该填写这个结构的字段:`freemem`字段应该设置为空闲内存的字节数,`nproc`字段应该设置为`state`字段不为`UNUSED`的进程数。我们提供了一个测试程序`sysinfotest`;如果输出“**sysinfotest: OK**”则通过。 + +**提示:** + +- 在***Makefile***的**UPROGS**中添加`$U/_sysinfotest` +- 当运行`make qemu`时,***user/sysinfotest.c***将会编译失败,遵循和上一个作业一样的步骤添加`sysinfo`系统调用。要在***user/user.h***中声明`sysinfo()`的原型,需要预先声明`struct sysinfo`的存在: + +```c +struct sysinfo; +int sysinfo(struct sysinfo *); +``` + +一旦修复了编译问题,就运行`sysinfotest`;但由于您还没有在内核中实现系统调用,执行将失败。 + +- `sysinfo`需要将一个`struct sysinfo`复制回用户空间;请参阅`sys_fstat()`(***kernel/sysfile.c***)和`filestat()`(***kernel/file.c***)以获取如何使用`copyout()`执行此操作的示例。 +- 要获取空闲内存量,请在***kernel/kalloc.c***中添加一个函数 +- 要获取进程数,请在***kernel/proc.c***中添加一个函数 + + + +# 可选的挑战 + +- 打印所跟踪的系统调用的参数(easy)。 +- 计算平均负载并通过`sysinfo`导出(moderate)。 \ No newline at end of file diff --git a/labs/requirements/lab3.md b/labs/requirements/lab3.md new file mode 100644 index 0000000..24a1d6b --- /dev/null +++ b/labs/requirements/lab3.md @@ -0,0 +1,105 @@ +# Lab3: page tables + +在本实验室中,您将探索页表并对其进行修改,以简化将数据从用户空间复制到内核空间的函数。 + +> [!WARNING|label:Attention] +> 开始编码之前,请阅读xv6手册的第3章和相关文件: +> +> - ***kernel/memlayout.h***,它捕获了内存的布局。 +> - ***kernel/vm.c***,其中包含大多数虚拟内存(VM)代码。 +> - ***kernel/kalloc.c***,它包含分配和释放物理内存的代码。 + +要启动实验,请切换到pgtbl分支: + +```bash +$ git fetch +$ git checkout pgtbl +$ make clean +``` + +# Print a page table (easy) + +为了帮助您了解RISC-V页表,也许为了帮助将来的调试,您的第一个任务是编写一个打印页表内容的函数。 + +> [!TIP|label:YOUR JOB] +> 定义一个名为`vmprint()`的函数。它应当接收一个`pagetable_t`作为参数,并以下面描述的格式打印该页表。在`exec.c`中的`return argc`之前插入`if(p->pid==1) vmprint(p->pagetable)`,以打印第一个进程的页表。如果你通过了`pte printout`测试的`make grade`,你将获得此作业的满分。 + +现在,当您启动xv6时,它应该像这样打印输出来描述第一个进程刚刚完成`exec()`ing`init`时的页表: + +``` +page table 0x0000000087f6e000 +..0: pte 0x0000000021fda801 pa 0x0000000087f6a000 +.. ..0: pte 0x0000000021fda401 pa 0x0000000087f69000 +.. .. ..0: pte 0x0000000021fdac1f pa 0x0000000087f6b000 +.. .. ..1: pte 0x0000000021fda00f pa 0x0000000087f68000 +.. .. ..2: pte 0x0000000021fd9c1f pa 0x0000000087f67000 +..255: pte 0x0000000021fdb401 pa 0x0000000087f6d000 +.. ..511: pte 0x0000000021fdb001 pa 0x0000000087f6c000 +.. .. ..510: pte 0x0000000021fdd807 pa 0x0000000087f76000 +.. .. ..511: pte 0x0000000020001c0b pa 0x0000000080007000 +``` + +第一行显示`vmprint`的参数。之后的每行对应一个PTE,包含树中指向页表页的PTE。每个PTE行都有一些“`..`”的缩进表明它在树中的深度。每个PTE行显示其在页表页中的PTE索引、PTE比特位以及从PTE提取的物理地址。不要打印无效的PTE。在上面的示例中,顶级页表页具有条目0和255的映射。条目0的下一级只映射了索引0,该索引0的下一级映射了条目0、1和2。 + +您的代码可能会发出与上面显示的不同的物理地址。条目数和虚拟地址应相同。 + +**一些提示:** + +- 你可以将`vmprint()`放在***kernel/vm.c***中 +- 使用定义在***kernel/riscv.h***末尾处的宏 +- 函数`freewalk`可能会对你有所启发 +- 将`vmprint`的原型定义在***kernel/defs.h***中,这样你就可以在`exec.c`中调用它了 +- 在你的`printf`调用中使用`%p`来打印像上面示例中的完成的64比特的十六进制PTE和地址 + +> [!NOTE|label:QUESTION] +> 根据文本中的图3-4解释`vmprint`的输出。page 0包含什么?page 2中是什么?在用户模式下运行时,进程是否可以读取/写入page 1映射的内存? + +# A kernel page table per process (hard) + +Xv6有一个单独的用于在内核中执行程序时的内核页表。内核页表直接映射(恒等映射)到物理地址,也就是说内核虚拟地址`x`映射到物理地址仍然是`x`。Xv6还为每个进程的用户地址空间提供了一个单独的页表,只包含该进程用户内存的映射,从虚拟地址0开始。因为内核页表不包含这些映射,所以用户地址在内核中无效。因此,当内核需要使用在系统调用中传递的用户指针(例如,传递给`write()`的缓冲区指针)时,内核必须首先将指针转换为物理地址。本节和下一节的目标是允许内核直接解引用用户指针。 + +> [!TIP|label:YOUR JOB] +> 你的第一项工作是修改内核来让每一个进程在内核中执行时使用它自己的内核页表的副本。修改`struct proc`来为每一个进程维护一个内核页表,修改调度程序使得切换进程时也切换内核页表。对于这个步骤,每个进程的内核页表都应当与现有的的全局内核页表完全一致。如果你的`usertests`程序正确运行了,那么你就通过了这个实验。 + +阅读本作业开头提到的章节和代码;了解虚拟内存代码的工作原理后,正确修改虚拟内存代码将更容易。页表设置中的错误可能会由于缺少映射而导致陷阱,可能会导致加载和存储影响到意料之外的物理页存页面,并且可能会导致执行来自错误内存页的指令。 + +**提示:** + +- 在`struct proc`中为进程的内核页表增加一个字段 +- 为一个新进程生成一个内核页表的合理方案是实现一个修改版的`kvminit`,这个版本中应当创造一个新的页表而不是修改`kernel_pagetable`。你将会考虑在`allocproc`中调用这个函数 +- 确保每一个进程的内核页表都关于该进程的内核栈有一个映射。在未修改的XV6中,所有的内核栈都在`procinit`中设置。你将要把这个功能部分或全部的迁移到`allocproc`中 +- 修改`scheduler()`来加载进程的内核页表到核心的`satp`寄存器(参阅`kvminithart`来获取启发)。不要忘记在调用完`w_satp()`后调用`sfence_vma()` +- 没有进程运行时`scheduler()`应当使用`kernel_pagetable` +- 在`freeproc`中释放一个进程的内核页表 +- 你需要一种方法来释放页表,而不必释放叶子物理内存页面。 +- 调式页表时,也许`vmprint`能派上用场 +- 修改XV6本来的函数或新增函数都是允许的;你或许至少需要在***kernel/vm.c***和***kernel/proc.c***中这样做(但不要修改***kernel/vmcopyin.c***, ***kernel/stats.c***, ***user/usertests.c***, 和***user/stats.c***) +- 页表映射丢失很可能导致内核遭遇页面错误。这将导致打印一段包含`sepc=0x00000000XXXXXXXX`的错误提示。你可以在***kernel/kernel.asm***通过查询`XXXXXXXX`来定位错误。 + +# Simplify `copyin`/`copyinstr`(hard) + +内核的`copyin`函数读取用户指针指向的内存。它通过将用户指针转换为内核可以直接解引用的物理地址来实现这一点。这个转换是通过在软件中遍历进程页表来执行的。在本部分的实验中,您的工作是将用户空间的映射添加到每个进程的内核页表(上一节中创建),以允许`copyin`(和相关的字符串函数`copyinstr`)直接解引用用户指针。 + +> [!TIP|label:YOUR JOB] +> 将定义在***kernel/vm.c***中的`copyin`的主题内容替换为对`copyin_new`的调用(在***kernel/vmcopyin.c***中定义);对`copyinstr`和`copyinstr_new`执行相同的操作。为每个进程的内核页表添加用户地址映射,以便`copyin_new`和`copyinstr_new`工作。如果`usertests`正确运行并且所有`make grade`测试都通过,那么你就完成了此项作业。 + +此方案依赖于用户的虚拟地址范围不与内核用于自身指令和数据的虚拟地址范围重叠。Xv6使用从零开始的虚拟地址作为用户地址空间,幸运的是内核的内存从更高的地址开始。然而,这个方案将用户进程的最大大小限制为小于内核的最低虚拟地址。内核启动后,在XV6中该地址是`0xC000000`,即PLIC寄存器的地址;请参见***kernel/vm.c***中的`kvminit()`、***kernel/memlayout.h***和文中的图3-4。您需要修改xv6,以防止用户进程增长到超过PLIC的地址。 + +**一些提示:** + +- 先用对`copyin_new`的调用替换`copyin()`,确保正常工作后再去修改`copyinstr` +- 在内核更改进程的用户映射的每一处,都以相同的方式更改进程的内核页表。包括`fork()`, `exec()`, 和`sbrk()`. +- 不要忘记在`userinit`的内核页表中包含第一个进程的用户页表 +- 用户地址的PTE在进程的内核页表中需要什么权限?(在内核模式下,无法访问设置了`PTE_U`的页面) +- 别忘了上面提到的PLIC限制 + +Linux使用的技术与您已经实现的技术类似。直到几年前,许多内核在用户和内核空间中都为当前进程使用相同的自身进程页表,并为用户和内核地址进行映射以避免在用户和内核空间之间切换时必须切换页表。然而,这种设置允许边信道攻击,如Meltdown和Spectre。 + +> [!NOTE|label:QUESTION] +> 解释为什么在`copyin_new()`中需要第三个测试`srcva + len < srcva`:给出`srcva`和`len`值的例子,这样的值将使前两个测试为假(即它们不会导致返回-1),但是第三个测试为真 (导致返回-1)。 + +# 可选的挑战练习 + +- 使用超级页来减少页表中PTE的数量 +- 扩展您的解决方案以支持尽可能大的用户程序;也就是说,消除用户程序小于PLIC的限制 +- 取消映射用户进程的第一页,以便使对空指针的解引用将导致错误。用户文本段必须从非0处开始,例如4096 \ No newline at end of file diff --git a/labs/requirements/lab4.md b/labs/requirements/lab4.md new file mode 100644 index 0000000..f4b1771 --- /dev/null +++ b/labs/requirements/lab4.md @@ -0,0 +1,215 @@ +# Lab4: traps + +本实验探索如何使用陷阱实现系统调用。您将首先使用栈做一个热身练习,然后实现一个用户级陷阱处理的示例。 + +> [!WARNING|label:Attention] +> 开始编码之前,请阅读xv6手册的第4章和相关源文件: +> +> - ***kernel/trampoline.S***:涉及从用户空间到内核空间再到内核空间的转换的程序集 +> - ***kernel/trap.c***:处理所有中断的代码 + +要启动实验,请切换到`traps`分支: + +```bash +$ git fetch +$ git checkout traps +$ make clean +``` + +# RISC-V assembly (easy) + +理解一点RISC-V汇编是很重要的,你应该在6.004中接触过。xv6仓库中有一个文件***user/call.c***。执行`make fs.img`编译它,并在***user/call.asm***中生成可读的汇编版本。 + +阅读***call.asm***中函数`g`、`f`和`main`的代码。RISC-V的使用手册在[参考页](https://pdos.csail.mit.edu/6.828/2020/reference.html)上。以下是您应该回答的一些问题(将答案存储在***answers-traps.txt***文件中): + +1. 哪些寄存器保存函数的参数?例如,在`main`对`printf`的调用中,哪个寄存器保存13? +2. `main`的汇编代码中对函数`f`的调用在哪里?对`g`的调用在哪里(提示:编译器可能会将函数内联) +3. `printf`函数位于哪个地址? +4. 在`main`中`printf`的`jalr`之后的寄存器`ra`中有什么值? +5. 运行以下代码。 + +```c +unsigned int i = 0x00646c72; +printf("H%x Wo%s", 57616, &i); +``` + +程序的输出是什么?这是将字节映射到字符的[ASCII码表](http://web.cs.mun.ca/~michael/c/ascii-table.html)。 + +输出取决于RISC-V小端存储的事实。如果RISC-V是大端存储,为了得到相同的输出,你会把`i`设置成什么?是否需要将`57616`更改为其他值? + +[这里有一个小端和大端存储的描述](http://www.webopedia.com/TERM/b/big_endian.html)和一个[更异想天开的描述](http://www.networksorcery.com/enp/ien/ien137.txt)。 + +6. 在下面的代码中,“`y=`”之后将打印什么(注:答案不是一个特定的值)?为什么会发生这种情况? + +```c +printf("x=%d y=%d", 3); +``` + +# Backtrace(moderate) + +回溯(Backtrace)通常对于调试很有用:它是一个存放于栈上用于指示错误发生位置的函数调用列表。 + +在***kernel/printf.c***中实现名为`backtrace()`的函数。在`sys_sleep`中插入一个对此函数的调用,然后运行`bttest`,它将会调用`sys_sleep`。你的输出应该如下所示: + +```bash +backtrace: +0x0000000080002cda +0x0000000080002bb6 +0x0000000080002898 +``` + +​ 在`bttest`退出qemu后。在你的终端:地址或许会稍有不同,但如果你运行`addr2line -e kernel/kernel`(或`riscv64-unknown-elf-addr2line -e kernel/kernel`),并将上面的地址剪切粘贴如下: + +```bash +$ addr2line -e kernel/kernel +0x0000000080002de2 +0x0000000080002f4a +0x0000000080002bfc +Ctrl-D +``` + +​ 你应该看到类似下面的输出: + +``` +kernel/sysproc.c:74 +kernel/syscall.c:224 +kernel/trap.c:85 +``` + +​ 编译器向每一个栈帧中放置一个帧指针(frame pointer)保存调用者帧指针的地址。你的`backtrace`应当使用这些帧指针来遍历栈,并在每个栈帧中打印保存的返回地址。 + + + +**提示:** + +- 在***kernel/defs.h***中添加`backtrace`的原型,那样你就能在`sys_sleep`中引用`backtrace` + +- GCC编译器将当前正在执行的函数的帧指针保存在`s0`寄存器,将下面的函数添加到***kernel/riscv.h*** + +```c +static inline uint64 +r_fp() +{ + uint64 x; + asm volatile("mv %0, s0" : "=r" (x) ); + return x; +} +``` + +​ 并在`backtrace`中调用此函数来读取当前的帧指针。这个函数使用[内联汇编](https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html)来读取`s0` + +- 这个[课堂笔记](https://pdos.csail.mit.edu/6.828/2020/lec/l-riscv-slides.pdf)中有张栈帧布局图。注意返回地址位于栈帧帧指针的固定偏移(-8)位置,并且保存的帧指针位于帧指针的固定偏移(-16)位置 + +![img](images/p2.png) + +- XV6在内核中以页面对齐的地址为每个栈分配一个页面。你可以通过`PGROUNDDOWN(fp)`和`PGROUNDUP(fp)`(参见***kernel/riscv.h***)来计算栈页面的顶部和底部地址。这些数字对于`backtrace`终止循环是有帮助的。 + + + +一旦你的`backtrace`能够运行,就在***kernel/printf.c***的`panic`中调用它,那样你就可以在`panic`发生时看到内核的`backtrace`。 + + + +# Alarm(Hard) + +> [!TIP|label:YOUR JOB] +> 在这个练习中你将向XV6添加一个特性,在进程使用CPU的时间内,XV6定期向进程发出警报。这对于那些希望限制CPU时间消耗的受计算限制的进程,或者对于那些计算的同时执行某些周期性操作的进程可能很有用。更普遍的来说,你将实现用户级中断/故障处理程序的一种初级形式。例如,你可以在应用程序中使用类似的一些东西处理页面故障。如果你的解决方案通过了`alarmtest`和`usertests`就是正确的。 + +你应当添加一个新的`sigalarm(interval, handler)`系统调用,如果一个程序调用了`sigalarm(n, fn)`,那么每当程序消耗了CPU时间达到n个“滴答”,内核应当使应用程序函数`fn`被调用。当`fn`返回时,应用应当在它离开的地方恢复执行。在XV6中,一个滴答是一段相当任意的时间单元,取决于硬件计时器生成中断的频率。如果一个程序调用了`sigalarm(0, 0)`,系统应当停止生成周期性的报警调用。 + +你将在XV6的存储库中找到名为***user/alarmtest.c***的文件。将其添加到***Makefile***。注意:你必须添加了`sigalarm`和`sigreturn`系统调用后才能正确编译(往下看)。 + +`alarmtest`在`test0`中调用了`sigalarm(2, periodic)`来要求内核每隔两个滴答强制调用`periodic()`,然后旋转一段时间。你可以在***user/alarmtest.asm***中看到`alarmtest`的汇编代码,这或许会便于调试。当`alarmtest`产生如下输出并且`usertests`也能正常运行时,你的方案就是正确的: + +```bash +$ alarmtest +test0 start +........alarm! +test0 passed +test1 start +...alarm! +..alarm! +...alarm! +..alarm! +...alarm! +..alarm! +...alarm! +..alarm! +...alarm! +..alarm! +test1 passed +test2 start +................alarm! +test2 passed +$ usertests +... +ALL TESTS PASSED +$ +``` + +​ 当你完成后,你的方案也许仅有几行代码,但如何正确运行是一个棘手的问题。我们将使用原始存储库中的***alarmtest.c***版本测试您的代码。你可以修改***alarmtest.c***来帮助调试,但是要确保原来的`alarmtest`显示所有的测试都通过了。 + +## test0: invoke handler(调用处理程序) + +首先修改内核以跳转到用户空间中的报警处理程序,这将导致`test0`打印“alarm!”。不用担心输出“alarm!”之后会发生什么;如果您的程序在打印“alarm!”后崩溃,对于目前来说也是正常的。以下是一些**提示**: + +- 您需要修改***Makefile***以使***alarmtest.c***被编译为xv6用户程序。 + +- 放入***user/user.h***的正确声明是: + +```c +int sigalarm(int ticks, void (*handler)()); +int sigreturn(void); +``` + +- 更新***user/usys.pl***(此文件生成***user/usys.S***)、***kernel/syscall.h***和***kernel/syscall.c***以允许`alarmtest`调用`sigalarm`和`sigreurn`系统调用。 + +- 目前来说,你的`sys_sigreturn`系统调用返回应该是零。 + +- 你的`sys_sigalarm()`应该将报警间隔和指向处理程序函数的指针存储在`struct proc`的新字段中(位于***kernel/proc.h***)。 + +- 你也需要在`struct proc`新增一个新字段。用于跟踪自上一次调用(或直到下一次调用)到进程的报警处理程序间经历了多少滴答;您可以在***proc.c***的`allocproc()`中初始化`proc`字段。 + +- 每一个滴答声,硬件时钟就会强制一个中断,这个中断在***kernel/trap.c***中的`usertrap()`中处理。 + +- 如果产生了计时器中断,您只想操纵进程的报警滴答;你需要写类似下面的代码 + +```c +if(which_dev == 2) ... +``` + +- 仅当进程有未完成的计时器时才调用报警函数。请注意,用户报警函数的地址可能是0(例如,在***user/alarmtest.asm***中,`periodic`位于地址0)。 + +- 您需要修改`usertrap()`,以便当进程的报警间隔期满时,用户进程执行处理程序函数。当RISC-V上的陷阱返回到用户空间时,什么决定了用户空间代码恢复执行的指令地址? + +- 如果您告诉qemu只使用一个CPU,那么使用gdb查看陷阱会更容易,这可以通过运行 + +```bash +make CPUS=1 qemu-gdb +``` + +- 如果`alarmtest`打印“alarm!”,则您已成功。 + +## test1/test2(): resume interrupted code(恢复被中断的代码) + +`alarmtest`打印“alarm!”后,很可能会在`test0`或`test1`中崩溃,或者`alarmtest`(最后)打印“test1 failed”,或者`alarmtest`未打印“test1 passed”就退出。要解决此问题,必须确保完成报警处理程序后返回到用户程序最初被计时器中断的指令执行。必须确保寄存器内容恢复到中断时的值,以便用户程序在报警后可以不受干扰地继续运行。最后,您应该在每次报警计数器关闭后“重新配置”它,以便周期性地调用处理程序。 + +作为一个起始点,我们为您做了一个设计决策:用户报警处理程序需要在完成后调用`sigreurn`系统调用。请查看***alarmtest.c***中的`periodic`作为示例。这意味着您可以将代码添加到`usertrap`和`sys_sigreurn`中,这两个代码协同工作,以使用户进程在处理完警报后正确恢复。 + + + +**提示:** + +- 您的解决方案将要求您保存和恢复寄存器——您需要保存和恢复哪些寄存器才能正确恢复中断的代码?(提示:会有很多) + +- 当计时器关闭时,让`usertrap`在`struct proc`中保存足够的状态,以使`sigreurn`可以正确返回中断的用户代码。 + +- 防止对处理程序的重复调用——如果处理程序还没有返回,内核就不应该再次调用它。`test2`测试这个。 + +- 一旦通过`test0`、`test1`和`test2`,就运行`usertests`以确保没有破坏内核的任何其他部分。 + + + +# 可选的挑战练习 + +- 在`backtrace()`中打印函数的名称和行号,而不仅仅是数字化的地址。(hard) \ No newline at end of file diff --git a/labs/requirements/lab5.md b/labs/requirements/lab5.md new file mode 100644 index 0000000..badfdd7 --- /dev/null +++ b/labs/requirements/lab5.md @@ -0,0 +1,98 @@ +# Lab5: xv6 lazy page allocation + +操作系统可以使用页表硬件的技巧之一是延迟分配用户空间堆内存(lazy allocation of user-space heap memory)。Xv6应用程序使用`sbrk()`系统调用向内核请求堆内存。在我们给出的内核中,`sbrk()`分配物理内存并将其映射到进程的虚拟地址空间。内核为一个大请求分配和映射内存可能需要很长时间。例如,考虑由262144个4096字节的页组成的千兆字节;即使单独一个页面的分配开销很低,但合起来如此大的分配数量将不可忽视。此外,有些程序申请分配的内存比实际使用的要多(例如,实现稀疏数组),或者为了以后的不时之需而分配内存。为了让`sbrk()`在这些情况下更快地完成,复杂的内核会延迟分配用户内存。也就是说,`sbrk()`不分配物理内存,只是记住分配了哪些用户地址,并在用户页表中将这些地址标记为无效。当进程第一次尝试使用延迟分配中给定的页面时,CPU生成一个页面错误(page fault),内核通过分配物理内存、置零并添加映射来处理该错误。您将在这个实验室中向xv6添加这个延迟分配特性。 + +> [!WARNING|label:Attention] +> 在开始编码之前,请阅读xv6手册的第4章(特别是4.6),以及可能要修改的相关文件: +> - ***kernel/trap.c*** +> - ***kernel/vm.c*** +> - ***kernel/sysproc.c*** + +要启动实验,请切换到`lazy`分支: + +```bash +$ git fetch +$ git checkout lazy +$ make clean +``` + + + +# Eliminate allocation from sbrk() (easy) + +> [!TIP|label:YOUR JOB] +> 你的首项任务是删除`sbrk(n)`系统调用中的页面分配代码(位于***sysproc.c***中的函数`sys_sbrk()`)。`sbrk(n)`系统调用将进程的内存大小增加n个字节,然后返回新分配区域的开始部分(即旧的大小)。新的`sbrk(n)`应该只将进程的大小(`myproc()->sz`)增加n,然后返回旧的大小。它不应该分配内存——因此您应该删除对`growproc()`的调用(但是您仍然需要增加进程的大小!)。 + +试着猜猜这个修改的结果是什么:将会破坏什么? + +进行此修改,启动xv6,并在shell中键入`echo hi`。你应该看到这样的输出: + +```bash +init: starting sh +$ echo hi +usertrap(): unexpected scause 0x000000000000000f pid=3 + sepc=0x0000000000001258 stval=0x0000000000004008 +va=0x0000000000004000 pte=0x0000000000000000 +panic: uvmunmap: not mapped +``` + +“`usertrap(): …`”这条消息来自***trap.c***中的用户陷阱处理程序;它捕获了一个不知道如何处理的异常。请确保您了解发生此页面错误的原因。“`stval=0x0..04008`”表示导致页面错误的虚拟地址是`0x4008`。 + + + +# Lazy allocation (moderate) + +> [!TIP|label:YOUR JOB] +> 修改***trap.c***中的代码以响应来自用户空间的页面错误,方法是新分配一个物理页面并映射到发生错误的地址,然后返回到用户空间,让进程继续执行。您应该在生成“`usertrap(): …`”消息的`printf`调用之前添加代码。你可以修改任何其他xv6内核代码,以使`echo hi`正常工作。 + +**提示:** + +- 你可以在`usertrap()`中查看`r_scause()`的返回值是否为13或15来判断该错误是否为页面错误 +- `stval`寄存器中保存了造成页面错误的虚拟地址,你可以通过`r_stval()`读取 +- 参考***vm.c***中的`uvmalloc()`中的代码,那是一个`sbrk()`通过`growproc()`调用的函数。你将需要对`kalloc()`和`mappages()`进行调用 +- 使用`PGROUNDDOWN(va)`将出错的虚拟地址向下舍入到页面边界 +- 当前`uvmunmap()`会导致系统`panic`崩溃;请修改程序保证正常运行 +- 如果内核崩溃,请在***kernel/kernel.asm***中查看`sepc` +- 使用pgtbl lab的`vmprint`函数打印页表的内容 +- 如果您看到错误“incomplete type proc”,请include“spinlock.h”然后是“proc.h”。 + +如果一切正常,你的lazy allocation应该使`echo hi`正常运行。您应该至少有一个页面错误(因为延迟分配),也许有两个。 + + + +# Lazytests and Usertests (moderate) + +我们为您提供了`lazytests`,这是一个xv6用户程序,它测试一些可能会给您的惰性内存分配器带来压力的特定情况。修改内核代码,使所有`lazytests`和`usertests`都通过。 + +- 处理`sbrk()`参数为负的情况。 +- 如果某个进程在高于`sbrk()`分配的任何虚拟内存地址上出现页错误,则终止该进程。 +- 在`fork()`中正确处理父到子内存拷贝。 +- 处理这种情形:进程从`sbrk()`向系统调用(如`read`或`write`)传递有效地址,但尚未分配该地址的内存。 +- 正确处理内存不足:如果在页面错误处理程序中执行`kalloc()`失败,则终止当前进程。 +- 处理用户栈下面的无效页面上发生的错误。 + +如果内核通过`lazytests`和`usertests`,那么您的解决方案是可以接受的: + +```bash +$ lazytests +lazytests starting +running test lazy alloc +test lazy alloc: OK +running test lazy unmap... +usertrap(): ... +test lazy unmap: OK +running test out of memory +usertrap(): ... +test out of memory: OK +ALL TESTS PASSED +$ usertests +... +ALL TESTS PASSED +$ +``` + + + +# 可选的挑战练习 + +- 让延时分配协同上一个实验中简化版的`copyin`一起工作。 \ No newline at end of file diff --git a/labs/requirements/lab6.md b/labs/requirements/lab6.md new file mode 100644 index 0000000..5870891 --- /dev/null +++ b/labs/requirements/lab6.md @@ -0,0 +1,80 @@ +# Lab6: Copy-on-Write Fork for xv6 + +虚拟内存提供了一定程度的间接寻址:内核可以通过将PTE标记为无效或只读来拦截内存引用,从而导致页面错误,还可以通过修改PTE来更改地址的含义。在计算机系统中有一种说法,任何系统问题都可以用某种程度的抽象方法来解决。Lazy allocation实验中提供了一个例子。这个实验探索了另一个例子:写时复制分支(copy-on write fork)。 + +在开始本实验前,将仓库切换到cow分支 + +```bash +$ git fetch +$ git checkout cow +$ make clean +``` + +## 问题 + +xv6中的`fork()`系统调用将父进程的所有用户空间内存复制到子进程中。如果父进程较大,则复制可能需要很长时间。更糟糕的是,这项工作经常造成大量浪费;例如,子进程中的`fork()`后跟`exec()`将导致子进程丢弃复制的内存,而其中的大部分可能都从未使用过。另一方面,如果父子进程都使用一个页面,并且其中一个或两个对该页面有写操作,则确实需要复制。 + +## 解决方案 + +copy-on-write (COW) fork()的目标是推迟到子进程实际需要物理内存拷贝时再进行分配和复制物理内存页面。 + +COW fork()只为子进程创建一个页表,用户内存的PTE指向父进程的物理页。COW fork()将父进程和子进程中的所有用户PTE标记为不可写。当任一进程试图写入其中一个COW页时,CPU将强制产生页面错误。内核页面错误处理程序检测到这种情况将为出错进程分配一页物理内存,将原始页复制到新页中,并修改出错进程中的相关PTE指向新的页面,将PTE标记为可写。当页面错误处理程序返回时,用户进程将能够写入其页面副本。 + +COW fork()将使得释放用户内存的物理页面变得更加棘手。给定的物理页可能会被多个进程的页表引用,并且只有在最后一个引用消失时才应该被释放。 + + + +# Implement copy-on write (hard) + +> [!TIP|label:YOUR JOB] +> 您的任务是在xv6内核中实现copy-on-write fork。如果修改后的内核同时成功执行`cowtest`和`usertests`程序就完成了。 + +为了帮助测试你的实现方案,我们提供了一个名为`cowtest`的xv6程序(源代码位于***user/cowtest.c***)。`cowtest`运行各种测试,但在未修改的xv6上,即使是第一个测试也会失败。因此,最初您将看到: + +```bash +$ cowtest +simple: fork() failed +$ +``` + +“simple”测试分配超过一半的可用物理内存,然后执行一系列的`fork()`。`fork`失败的原因是没有足够的可用物理内存来为子进程提供父进程内存的完整副本。 + +完成本实验后,内核应该通过`cowtest`和`usertests`中的所有测试。即: + +```bash +$ cowtest +simple: ok +simple: ok +three: zombie! +ok +three: zombie! +ok +three: zombie! +ok +file: ok +ALL COW TESTS PASSED +$ usertests +... +ALL TESTS PASSED +$ +``` + +**这是一个合理的攻克计划:** + +1. 修改`uvmcopy()`将父进程的物理页映射到子进程,而不是分配新页。在子进程和父进程的PTE中清除`PTE_W`标志。 +2. 修改`usertrap()`以识别页面错误。当COW页面出现页面错误时,使用`kalloc()`分配一个新页面,并将旧页面复制到新页面,然后将新页面添加到PTE中并设置`PTE_W`。 +3. 确保每个物理页在最后一个PTE对它的引用撤销时被释放——而不是在此之前。这样做的一个好方法是为每个物理页保留引用该页面的用户页表数的“引用计数”。当`kalloc()`分配页时,将页的引用计数设置为1。当`fork`导致子进程共享页面时,增加页的引用计数;每当任何进程从其页表中删除页面时,减少页的引用计数。`kfree()`只应在引用计数为零时将页面放回空闲列表。可以将这些计数保存在一个固定大小的整型数组中。你必须制定一个如何索引数组以及如何选择数组大小的方案。例如,您可以用页的物理地址除以4096对数组进行索引,并为数组提供等同于***kalloc.c***中`kinit()`在空闲列表中放置的所有页面的最高物理地址的元素数。 +4. 修改`copyout()`在遇到COW页面时使用与页面错误相同的方案。 + +**提示:** + +- lazy page allocation实验可能已经让您熟悉了许多与copy-on-write相关的xv6内核代码。但是,您不应该将这个实验室建立在您的lazy allocation解决方案的基础上;相反,请按照上面的说明从一个新的xv6开始。 +- 有一种可能很有用的方法来记录每个PTE是否是COW映射。您可以使用RISC-V PTE中的RSW(reserved for software,即为软件保留的)位来实现此目的。 +- `usertests`检查`cowtest`不测试的场景,所以别忘两个测试都需要完全通过。 +- ***kernel/riscv.h***的末尾有一些有用的宏和页表标志位的定义。 +- 如果出现COW页面错误并且没有可用内存,则应终止进程。 + +# 可选的挑战练习 + +- 修改xv6以同时支持lazy allocation和COW。 +- 测量您的COW实现减少了多少xv6拷贝的字节数以及分配的物理页数。寻找并利用机会进一步减少这些数字。 \ No newline at end of file diff --git a/labs/requirements/lab7.md b/labs/requirements/lab7.md new file mode 100644 index 0000000..89e41d1 --- /dev/null +++ b/labs/requirements/lab7.md @@ -0,0 +1,186 @@ +# Lab7: Multithreading + +本实验将使您熟悉多线程。您将在用户级线程包中实现线程之间的切换,使用多个线程来加速程序,并实现一个屏障。 + +> [!WARNING|label:Attention] +> 在编写代码之前,您应该确保已经阅读了xv6手册中的“第7章: 调度”,并研究了相应的代码。 + +要启动实验,请切换到thread分支: + +```bash +$ git fetch +$ git checkout thread +$ make clean +``` + +# Uthread: switching between threads (moderate) + +在本练习中,您将为用户级线程系统设计上下文切换机制,然后实现它。为了让您开始,您的xv6有两个文件:***user/uthread.c***和***user/uthread_switch.S***,以及一个规则:运行在***Makefile***中以构建`uthread`程序。***uthread.c***包含大多数用户级线程包,以及三个简单测试线程的代码。线程包缺少一些用于创建线程和在线程之间切换的代码。 + +> [!TIP|label:YOUR JOB] +> 您的工作是提出一个创建线程和保存/恢复寄存器以在线程之间切换的计划,并实现该计划。完成后,`make grade`应该表明您的解决方案通过了`uthread`测试。 + +完成后,在xv6上运行`uthread`时应该会看到以下输出(三个线程可能以不同的顺序启动): + +```bash +$ make qemu +... +$ uthread +thread_a started +thread_b started +thread_c started +thread_c 0 +thread_a 0 +thread_b 0 +thread_c 1 +thread_a 1 +thread_b 1 +... +thread_c 99 +thread_a 99 +thread_b 99 +thread_c: exit after 100 +thread_a: exit after 100 +thread_b: exit after 100 +thread_schedule: no runnable threads +$ +``` + +该输出来自三个测试线程,每个线程都有一个循环,该循环打印一行,然后将CPU让出给其他线程。 + +然而在此时还没有上下文切换的代码,您将看不到任何输出。 + +您需要将代码添加到***user/uthread.c***中的`thread_create()`和`thread_schedule()`,以及***user/uthread_switch.S***中的`thread_switch`。一个目标是确保当`thread_schedule()`第一次运行给定线程时,该线程在自己的栈上执行传递给`thread_create()`的函数。另一个目标是确保`thread_switch`保存被切换线程的寄存器,恢复切换到线程的寄存器,并返回到后一个线程指令中最后停止的点。您必须决定保存/恢复寄存器的位置;修改`struct thread`以保存寄存器是一个很好的计划。您需要在`thread_schedule`中添加对`thread_switch`的调用;您可以将需要的任何参数传递给`thread_switch`,但目的是将线程从`t`切换到`next_thread`。 + + + +**提示:** + +- `thread_switch`只需要保存/还原被调用方保存的寄存器(callee-save register,参见LEC5使用的文档《Calling Convention》)。为什么? +- 您可以在***user/uthread.asm***中看到`uthread`的汇编代码,这对于调试可能很方便。 +- 这可能对于测试你的代码很有用,使用`riscv64-linux-gnu-gdb`的单步调试通过你的`thread_switch`,你可以按这种方法开始: + +```bash +(gdb) file user/_uthread +Reading symbols from user/_uthread... +(gdb) b uthread.c:60 +``` + +这将在***uthread.c***的第60行设置断点。断点可能会(也可能不会)在运行`uthread`之前触发。为什么会出现这种情况? + +一旦您的xv6 shell运行,键入“`uthread`”,gdb将在第60行停止。现在您可以键入如下命令来检查`uthread`的状态: + +`(gdb) p/x *next_thread` + +使用“`x`”,您可以检查内存位置的内容: + +`(gdb) x/x next_thread->stack` + +您可以跳到`thread_switch` 的开头,如下: + +`(gdb) b thread_switch` + +`(gdb) c` + +您可以使用以下方法单步执行汇编指令: + +`(gdb) si` + +gdb的在线文档在[这里](https://sourceware.org/gdb/current/onlinedocs/gdb/)。 + +# Using threads (moderate) + +在本作业中,您将探索使用哈希表的线程和锁的并行编程。您应该在具有多个内核的真实Linux或MacOS计算机(不是xv6,不是qemu)上执行此任务。最新的笔记本电脑都有多核处理器。 + +这个作业使用UNIX的pthread线程库。您可以使用`man pthreads`在手册页面上找到关于它的信息,您可以在web上查看,例如[这里](https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_mutex_lock.html)、[这里](https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_mutex_init.html)和[这里](https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_create.html)。 + +文件***notxv6/ph.c***包含一个简单的哈希表,如果单个线程使用,该哈希表是正确的,但是多个线程使用时,该哈希表是不正确的。在您的xv6主目录(可能是`~/xv6-labs-2020`)中,键入以下内容: + +```bash +$ make ph +$ ./ph 1 +``` + +请注意,要构建`ph`,***Makefile***使用操作系统的gcc,而不是6.S081的工具。`ph`的参数指定在哈希表上执行`put`和`get`操作的线程数。运行一段时间后,`ph 1`将产生与以下类似的输出: + +``` +100000 puts, 3.991 seconds, 25056 puts/second +0: 0 keys missing +100000 gets, 3.981 seconds, 25118 gets/second +``` + +您看到的数字可能与此示例输出的数字相差两倍或更多,这取决于您计算机的速度、是否有多个核心以及是否正在忙于做其他事情。 + +`ph`运行两个基准程序。首先,它通过调用`put()`将许多键添加到哈希表中,并以每秒为单位打印puts的接收速率。之后它使用`get()`从哈希表中获取键。它打印由于puts而应该在哈希表中但丢失的键的数量(在本例中为0),并以每秒为单位打印gets的接收数量。 + +通过给`ph`一个大于1的参数,可以告诉它同时从多个线程使用其哈希表。试试`ph 2`: + +```bash +$ ./ph 2 +100000 puts, 1.885 seconds, 53044 puts/second +1: 16579 keys missing +0: 16579 keys missing +200000 gets, 4.322 seconds, 46274 gets/second +``` + +这个`ph 2`输出的第一行表明,当两个线程同时向哈希表添加条目时,它们达到每秒53044次插入的总速率。这大约是运行`ph 1`的单线程速度的两倍。这是一个优秀的“并行加速”,大约达到了人们希望的2倍(即两倍数量的核心每单位时间产出两倍的工作)。 + +然而,声明`16579 keys missing`的两行表示散列表中本应存在的大量键不存在。也就是说,puts应该将这些键添加到哈希表中,但出现了一些问题。请看一下***notxv6/ph.c***,特别是`put()`和`insert()`。 + +> [!TIP|label:YOUR JOB] +> 为什么两个线程都丢失了键,而不是一个线程?确定可能导致键丢失的具有2个线程的事件序列。在***answers-thread.txt***中提交您的序列和简短解释。 + +> [!TIP] +> 为了避免这种事件序列,请在***notxv6/ph.c***中的`put`和`get`中插入`lock`和`unlock`语句,以便在两个线程中丢失的键数始终为0。相关的pthread调用包括: +> * `pthread_mutex_t lock; // declare a lock` +> * `pthread_mutex_init(&lock, NULL); // initialize the lock` +> * `pthread_mutex_lock(&lock); // acquire lock` +> * `pthread_mutex_unlock(&lock); // release lock` +> 当`make grade`说您的代码通过`ph_safe`测试时,您就完成了,该测试需要两个线程的键缺失数为0。在此时,`ph_fast`测试失败是正常的。 + +不要忘记调用`pthread_mutex_init()`。首先用1个线程测试代码,然后用2个线程测试代码。您主要需要测试:程序运行是否正确呢(即,您是否消除了丢失的键?)?与单线程版本相比,双线程版本是否实现了并行加速(即单位时间内的工作量更多)? + +在某些情况下,并发`put()`在哈希表中读取或写入的内存中没有重叠,因此不需要锁来相互保护。您能否更改***ph.c***以利用这种情况为某些`put()`获得并行加速?提示:每个散列桶加一个锁怎么样? + +> [!TIP|label:YOUR JOB] +> 修改代码,使某些`put`操作在保持正确性的同时并行运行。当`make grade`说你的代码通过了`ph_safe`和`ph_fast`测试时,你就完成了。`ph_fast`测试要求两个线程每秒产生的`put`数至少是一个线程的1.25倍。 + +# Barrier(moderate) + +在本作业中,您将实现一个[屏障](http://en.wikipedia.org/wiki/Barrier_(computer_science))(Barrier):应用程序中的一个点,所有参与的线程在此点上必须等待,直到所有其他参与线程也达到该点。您将使用pthread条件变量,这是一种序列协调技术,类似于xv6的`sleep`和`wakeup`。 + +您应该在真正的计算机(不是xv6,不是qemu)上完成此任务。 + +文件***notxv6/barrier.c***包含一个残缺的屏障实现。 + +```bash +$ make barrier +$ ./barrier 2 +barrier: notxv6/barrier.c:42: thread: Assertion `i == t' failed. +``` + +2指定在屏障上同步的线程数(***barrier.c***中的`nthread`)。每个线程执行一个循环。在每次循环迭代中,线程都会调用`barrier()`,然后以随机微秒数休眠。如果一个线程在另一个线程到达屏障之前离开屏障将触发断言(assert)。期望的行为是每个线程在`barrier()`中阻塞,直到`nthreads`的所有线程都调用了`barrier()`。 + +> [!TIP|label:YOUR JOB] +> 您的目标是实现期望的屏障行为。除了在`ph`作业中看到的lock原语外,还需要以下新的pthread原语;详情请看[这里](https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_cond_wait.html)和[这里](https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_cond_broadcast.html)。 +> * `// 在cond上进入睡眠,释放锁mutex,在醒来时重新获取` +> * `pthread_cond_wait(&cond, &mutex);` +> * `// 唤醒睡在cond的所有线程` +> * `pthread_cond_broadcast(&cond);` + +确保您的方案通过`make grade`的`barrier`测试。 + +`pthread_cond_wait`在调用时释放`mutex`,并在返回前重新获取`mutex`。 + +我们已经为您提供了`barrier_init()`。您的工作是实现`barrier()`,这样panic就不会发生。我们为您定义了`struct barrier`;它的字段供您使用。 + +**有两个问题使您的任务变得复杂:** + +- 你必须处理一系列的`barrier`调用,我们称每一连串的调用为一轮(round)。`bstate.round`记录当前轮数。每次当所有线程都到达屏障时,都应增加`bstate.round`。 +- 您必须处理这样的情况:一个线程在其他线程退出`barrier`之前进入了下一轮循环。特别是,您在前后两轮中重复使用`bstate.nthread`变量。确保在前一轮仍在使用`bstate.nthread`时,离开`barrier`并循环运行的线程不会增加`bstate.nthread`。 + +使用一个、两个和两个以上的线程测试代码。 + + + + diff --git a/labs/requirements/lab8.md b/labs/requirements/lab8.md new file mode 100644 index 0000000..4c6d9ec --- /dev/null +++ b/labs/requirements/lab8.md @@ -0,0 +1,184 @@ +# Lab8: locks + +在本实验中,您将获得重新设计代码以提高并行性的经验。多核机器上并行性差的一个常见症状是频繁的锁争用。提高并行性通常涉及更改数据结构和锁定策略以减少争用。您将对xv6内存分配器和块缓存执行此操作。 + +> [!WARNING|label:Attention] +> 在编写代码之前,请确保阅读xv6手册中的以下部分: +> - 第6章:《锁》和相应的代码。 +> - 第3.5节:《代码:物理内存分配》 +> - 第8.1节至第8.3节:《概述》、《Buffer cache层》和《代码:Buffer cache》 + +要开始本实验,请将代码切换到`lock`分支 + +```bash +$ git fetch +$ git checkout lock +$ make clean +``` + +# Memory allocator(moderate) + +程序***user/kalloctest.c***强调了xv6的内存分配器:三个进程增长和缩小地址空间,导致对`kalloc`和`kfree`的多次调用。`kalloc`和`kfree`获得`kmem.lock`。`kalloctest`打印(作为“#fetch-and-add”)在`acquire`中由于尝试获取另一个内核已经持有的锁而进行的循环迭代次数,如`kmem`锁和一些其他锁。`acquire`中的循环迭代次数是锁争用的粗略度量。完成实验前,`kalloctest`的输出与此类似: + +```bash +$ kalloctest +start test1 +test1 results: +--- lock kmem/bcache stats +lock: kmem: #fetch-and-add 83375 #acquire() 433015 +lock: bcache: #fetch-and-add 0 #acquire() 1260 +--- top 5 contended locks: +lock: kmem: #fetch-and-add 83375 #acquire() 433015 +lock: proc: #fetch-and-add 23737 #acquire() 130718 +lock: virtio_disk: #fetch-and-add 11159 #acquire() 114 +lock: proc: #fetch-and-add 5937 #acquire() 130786 +lock: proc: #fetch-and-add 4080 #acquire() 130786 +tot= 83375 +test1 FAIL +``` + +`acquire`为每个锁维护要获取该锁的`acquire`调用计数,以及`acquire`中循环尝试但未能设置锁的次数。`kalloctest`调用一个系统调用,使内核打印`kmem`和`bcache`锁(这是本实验的重点)以及5个最有具竞争的锁的计数。如果存在锁争用,则`acquire`循环迭代的次数将很大。系统调用返回`kmem`和`bcache`锁的循环迭代次数之和。 + +对于本实验,您必须使用具有多个内核的专用空载机器。如果你使用一台正在做其他事情的机器,`kalloctest`打印的计数将毫无意义。你可以使用专用的Athena 工作站或你自己的笔记本电脑,但不要使用拨号机。 + +`kalloctest`中锁争用的根本原因是`kalloc()`有一个空闲列表,由一个锁保护。要消除锁争用,您必须重新设计内存分配器,以避免使用单个锁和列表。基本思想是为每个CPU维护一个空闲列表,每个列表都有自己的锁。因为每个CPU将在不同的列表上运行,不同CPU上的分配和释放可以并行运行。主要的挑战将是处理一个CPU的空闲列表为空,而另一个CPU的列表有空闲内存的情况;在这种情况下,一个CPU必须“窃取”另一个CPU空闲列表的一部分。窃取可能会引入锁争用,但这种情况希望不会经常发生。 + +> [!TIP|label:YOUR JOB] +> 您的工作是实现每个CPU的空闲列表,并在CPU的空闲列表为空时进行窃取。所有锁的命名必须以“`kmem`”开头。也就是说,您应该为每个锁调用`initlock`,并传递一个以“`kmem`”开头的名称。运行`kalloctest`以查看您的实现是否减少了锁争用。要检查它是否仍然可以分配所有内存,请运行`usertests sbrkmuch`。您的输出将与下面所示的类似,在`kmem`锁上的争用总数将大大减少,尽管具体的数字会有所不同。确保`usertests`中的所有测试都通过。评分应该表明考试通过。 + +```bash + $ kalloctest +start test1 +test1 results: +--- lock kmem/bcache stats +lock: kmem: #fetch-and-add 0 #acquire() 42843 +lock: kmem: #fetch-and-add 0 #acquire() 198674 +lock: kmem: #fetch-and-add 0 #acquire() 191534 +lock: bcache: #fetch-and-add 0 #acquire() 1242 +--- top 5 contended locks: +lock: proc: #fetch-and-add 43861 #acquire() 117281 +lock: virtio_disk: #fetch-and-add 5347 #acquire() 114 +lock: proc: #fetch-and-add 4856 #acquire() 117312 +lock: proc: #fetch-and-add 4168 #acquire() 117316 +lock: proc: #fetch-and-add 2797 #acquire() 117266 +tot= 0 +test1 OK +start test2 +total free number of pages: 32499 (out of 32768) +..... +test2 OK +$ usertests sbrkmuch +usertests starting +test sbrkmuch: OK +ALL TESTS PASSED +$ usertests +... +ALL TESTS PASSED +$ +``` + +**提示:** + +- 您可以使用***kernel/param.h***中的常量`NCPU` +- 让`freerange`将所有可用内存分配给运行`freerange`的CPU。 +- 函数`cpuid`返回当前的核心编号,但只有在中断关闭时调用它并使用其结果才是安全的。您应该使用`push_off()`和`pop_off()`来关闭和打开中断。 +- 看看***kernel/sprintf.c***中的`snprintf`函数,了解字符串如何进行格式化。尽管可以将所有锁命名为“`kmem`”。 + +# Buffer cache(hard) + +这一半作业独立于前一半;不管你是否完成了前半部分,你都可以完成这半部分(并通过测试)。 + +如果多个进程密集地使用文件系统,它们可能会争夺`bcache.lock`,它保护***kernel/bio.c***中的磁盘块缓存。`bcachetest`创建多个进程,这些进程重复读取不同的文件,以便在`bcache.lock`上生成争用;(在完成本实验之前)其输出如下所示: + +```bash +$ bcachetest +start test0 +test0 results: +--- lock kmem/bcache stats +lock: kmem: #fetch-and-add 0 #acquire() 33035 +lock: bcache: #fetch-and-add 16142 #acquire() 65978 +--- top 5 contended locks: +lock: virtio_disk: #fetch-and-add 162870 #acquire() 1188 +lock: proc: #fetch-and-add 51936 #acquire() 73732 +lock: bcache: #fetch-and-add 16142 #acquire() 65978 +lock: uart: #fetch-and-add 7505 #acquire() 117 +lock: proc: #fetch-and-add 6937 #acquire() 73420 +tot= 16142 +test0: FAIL +start test1 +test1 OK +``` + +您可能会看到不同的输出,但`bcache`锁的`acquire`循环迭代次数将很高。如果查看***kernel/bio.c***中的代码,您将看到`bcache.lock`保护已缓存的块缓冲区的列表、每个块缓冲区中的引用计数(`b->refcnt`)以及缓存块的标识(`b->dev`和`b->blockno`)。 + +> [!TIP|label:YOUR JOB] +> 修改块缓存,以便在运行`bcachetest`时,bcache(buffer cache的缩写)中所有锁的`acquire`循环迭代次数接近于零。理想情况下,块缓存中涉及的所有锁的计数总和应为零,但只要总和小于500就可以。修改`bget`和`brelse`,以便bcache中不同块的并发查找和释放不太可能在锁上发生冲突(例如,不必全部等待`bcache.lock`)。你必须保护每个块最多缓存一个副本的不变量。完成后,您的输出应该与下面显示的类似(尽管不完全相同)。确保`usertests`仍然通过。完成后,`make grade`应该通过所有测试。 + +```bash +$ bcachetest +start test0 +test0 results: +--- lock kmem/bcache stats +lock: kmem: #fetch-and-add 0 #acquire() 32954 +lock: kmem: #fetch-and-add 0 #acquire() 75 +lock: kmem: #fetch-and-add 0 #acquire() 73 +lock: bcache: #fetch-and-add 0 #acquire() 85 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 4159 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 2118 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 4274 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 4326 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 6334 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 6321 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 6704 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 6696 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 7757 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 6199 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 4136 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 4136 +lock: bcache.bucket: #fetch-and-add 0 #acquire() 2123 +--- top 5 contended locks: +lock: virtio_disk: #fetch-and-add 158235 #acquire() 1193 +lock: proc: #fetch-and-add 117563 #acquire() 3708493 +lock: proc: #fetch-and-add 65921 #acquire() 3710254 +lock: proc: #fetch-and-add 44090 #acquire() 3708607 +lock: proc: #fetch-and-add 43252 #acquire() 3708521 +tot= 128 +test0: OK +start test1 +test1 OK +$ usertests + ... +ALL TESTS PASSED +$ +``` + +请将你所有的锁以“`bcache`”开头进行命名。也就是说,您应该为每个锁调用`initlock`,并传递一个以“`bcache`”开头的名称。 + +减少块缓存中的争用比`kalloc`更复杂,因为bcache缓冲区真正的在进程(以及CPU)之间共享。对于`kalloc`,可以通过给每个CPU设置自己的分配器来消除大部分争用;这对块缓存不起作用。我们建议您使用每个哈希桶都有一个锁的哈希表在缓存中查找块号。 + +在您的解决方案中,以下是一些存在锁冲突但可以接受的情形: + +- 当两个进程同时使用相同的块号时。`bcachetest test0`始终不会这样做。 +- 当两个进程同时在cache中未命中时,需要找到一个未使用的块进行替换。`bcachetest test0`始终不会这样做。 +- 在你用来划分块和锁的方案中某些块可能会发生冲突,当两个进程同时使用冲突的块时。例如,如果两个进程使用的块,其块号散列到哈希表中相同的槽。`bcachetest test0`可能会执行此操作,具体取决于您的设计,但您应该尝试调整方案的细节以避免冲突(例如,更改哈希表的大小)。 + + + +`bcachetest`的`test1`使用的块比缓冲区更多,并且执行大量文件系统代码路径。 + + + +**提示:** + +- 请阅读xv6手册中对块缓存的描述(第8.1-8.3节)。 +- 可以使用固定数量的散列桶,而不动态调整哈希表的大小。使用素数个存储桶(例如13)来降低散列冲突的可能性。 +- 在哈希表中搜索缓冲区并在找不到缓冲区时为该缓冲区分配条目必须是原子的。 +- 删除保存了所有缓冲区的列表(`bcache.head`等),改为标记上次使用时间的时间戳缓冲区(即使用***kernel/trap.c***中的`ticks`)。通过此更改,`brelse`不需要获取bcache锁,并且`bget`可以根据时间戳选择最近使用最少的块。 +- 可以在`bget`中串行化回收(即`bget`中的一部分:当缓存中的查找未命中时,它选择要复用的缓冲区)。 +- 在某些情况下,您的解决方案可能需要持有两个锁;例如,在回收过程中,您可能需要持有bcache锁和每个bucket(散列桶)一个锁。确保避免死锁。 +- 替换块时,您可能会将`struct buf`从一个bucket移动到另一个bucket,因为新块散列到不同的bucket。您可能会遇到一个棘手的情况:新块可能会散列到与旧块相同的bucket中。在这种情况下,请确保避免死锁。 +- 一些调试技巧:实现bucket锁,但将全局`bcache.lock`的`acquire`/`release`保留在`bget`的开头/结尾,以串行化代码。一旦您确定它在没有竞争条件的情况下是正确的,请移除全局锁并处理并发性问题。您还可以运行`make CPUS=1 qemu`以使用一个内核进行测试。 + +# 可选的挑战练习 + +在buffer cache中进行无锁查找。提示:使用gcc的`__sync_*`函数。您如何证明自己的实现是正确的? \ No newline at end of file diff --git a/labs/requirements/lab9.md b/labs/requirements/lab9.md new file mode 100644 index 0000000..e4434dc --- /dev/null +++ b/labs/requirements/lab9.md @@ -0,0 +1,116 @@ +# Lab9: file system + +在本实验室中,您将向xv6文件系统添加大型文件和符号链接。 + +> [!WARNING|label:Attention] +> 在编写代码之前,您应该阅读《xv6手册》中的《第八章:文件系统》,并学习相应的代码。 + +获取实验室的xv6源代码并切换到fs分支: + +```bash +$ git fetch +$ git checkout fs +$ make clean +``` + +# Large files(moderate) + +在本作业中,您将增加xv6文件的最大大小。目前,xv6文件限制为268个块或`268*BSIZE`字节(在xv6中`BSIZE`为1024)。此限制来自以下事实:一个xv6 inode包含12个“直接”块号和一个“间接”块号,“一级间接”块指一个最多可容纳256个块号的块,总共12+256=268个块。 + +`bigfile`命令可以创建最长的文件,并报告其大小: + +```bash +$ bigfile +.. +wrote 268 blocks +bigfile: file is too small +$ +``` + +测试失败,因为`bigfile`希望能够创建一个包含65803个块的文件,但未修改的xv6将文件限制为268个块。 + +您将更改xv6文件系统代码,以支持每个inode中可包含256个一级间接块地址的“二级间接”块,每个一级间接块最多可以包含256个数据块地址。结果将是一个文件将能够包含多达65803个块,或256*256+256+11个块(11而不是12,因为我们将为二级间接块牺牲一个直接块号)。 + +## 预备 + +`mkfs`程序创建xv6文件系统磁盘映像,并确定文件系统的总块数;此大小由***kernel/param.h***中的`FSSIZE`控制。您将看到,该实验室存储库中的`FSSIZE`设置为200000个块。您应该在`make`输出中看到来自`mkfs/mkfs`的以下输出: + +``` +nmeta 70 (boot, super, log blocks 30 inode blocks 13, bitmap blocks 25) blocks 199930 total 200000 +``` + +这一行描述了`mkfs/mkfs`构建的文件系统:它有70个元数据块(用于描述文件系统的块)和199930个数据块,总计200000个块。 + +如果在实验期间的任何时候,您发现自己必须从头开始重建文件系统,您可以运行`make clean`,强制`make`重建***fs.img***。 + +## 看什么 + +磁盘索引节点的格式由***fs.h***中的`struct dinode`定义。您应当尤其对`NDIRECT`、`NINDIRECT`、`MAXFILE`和`struct dinode`的`addrs[]`元素感兴趣。查看《XV6手册》中的图8.3,了解标准xv6索引结点的示意图。 + +在磁盘上查找文件数据的代码位于***fs.c***的`bmap()`中。看看它,确保你明白它在做什么。在读取和写入文件时都会调用`bmap()`。写入时,`bmap()`会根据需要分配新块以保存文件内容,如果需要,还会分配间接块以保存块地址。 + +`bmap()`处理两种类型的块编号。`bn`参数是一个“逻辑块号”——文件中相对于文件开头的块号。`ip->addrs[]`中的块号和`bread()`的参数都是磁盘块号。您可以将`bmap()`视为将文件的逻辑块号映射到磁盘块号。 + +## 你的工作 + +修改`bmap()`,以便除了直接块和一级间接块之外,它还实现二级间接块。你只需要有11个直接块,而不是12个,为你的新的二级间接块腾出空间;不允许更改磁盘inode的大小。`ip->addrs[]`的前11个元素应该是直接块;第12个应该是一个一级间接块(与当前的一样);13号应该是你的新二级间接块。当`bigfile`写入65803个块并成功运行`usertests`时,此练习完成: + +``` +$ bigfile +.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. +wrote 65803 blocks +done; ok +$ usertests +... +ALL TESTS PASSED +$ +``` + +运行`bigfile`至少需要一分钟半的时间。 + +**提示:** + +- 确保您理解`bmap()`。写出`ip->addrs[]`、间接块、二级间接块和它所指向的一级间接块以及数据块之间的关系图。确保您理解为什么添加二级间接块会将最大文件大小增加256*256个块(实际上要-1,因为您必须将直接块的数量减少一个)。 +- 考虑如何使用逻辑块号索引二级间接块及其指向的间接块。 +- 如果更改`NDIRECT`的定义,则可能必须更改***file.h***文件中`struct inode`中`addrs[]`的声明。确保`struct inode`和`struct dinode`在其`addrs[]`数组中具有相同数量的元素。 +- 如果更改`NDIRECT`的定义,请确保创建一个新的***fs.img***,因为`mkfs`使用`NDIRECT`构建文件系统。 +- 如果您的文件系统进入坏状态,可能是由于崩溃,请删除***fs.img***(从Unix而不是xv6执行此操作)。`make`将为您构建一个新的干净文件系统映像。 +- 别忘了把你`bread()`的每一个块都`brelse()`。 +- 您应该仅根据需要分配间接块和二级间接块,就像原始的`bmap()`。 +- 确保`itrunc`释放文件的所有块,包括二级间接块。 + +# Symbolic links(moderate) + +在本练习中,您将向xv6添加符号链接。符号链接(或软链接)是指按路径名链接的文件;当一个符号链接打开时,内核跟随该链接指向引用的文件。符号链接类似于硬链接,但硬链接仅限于指向同一磁盘上的文件,而符号链接可以跨磁盘设备。尽管xv6不支持多个设备,但实现此系统调用是了解路径名查找工作原理的一个很好的练习。 + +## 你的工作 + +> [!TIP|label:YOUR JOB] +> 您将实现`symlink(char *target, char *path)`系统调用,该调用在引用由`target`命名的文件的路径处创建一个新的符号链接。有关更多信息,请参阅`symlink`手册页(注:执行`man symlink`)。要进行测试,请将`symlinktest`添加到***Makefile***并运行它。当测试产生以下输出(包括`usertests`运行成功)时,您就完成本作业了。 + +```bash +$ symlinktest +Start: test symlinks +test symlinks: ok +Start: test concurrent symlinks +test concurrent symlinks: ok +$ usertests +... +ALL TESTS PASSED +$ +``` + +**提示:** + +- 首先,为`symlink`创建一个新的系统调用号,在***user/usys.pl***、***user/user.h***中添加一个条目,并在***kernel/sysfile.c***中实现一个空的`sys_symlink`。 +- 向***kernel/stat.h***添加新的文件类型(`T_SYMLINK`)以表示符号链接。 +- 在k***ernel/fcntl.h***中添加一个新标志(`O_NOFOLLOW`),该标志可用于`open`系统调用。请注意,传递给`open`的标志使用按位或运算符组合,因此新标志不应与任何现有标志重叠。一旦将***user/symlinktest.c***添加到***Makefile***中,您就可以编译它。 +- 实现`symlink(target, path)`系统调用,以在`path`处创建一个新的指向`target`的符号链接。请注意,系统调用的成功不需要`target`已经存在。您需要选择存储符号链接目标路径的位置,例如在inode的数据块中。`symlink`应返回一个表示成功(0)或失败(-1)的整数,类似于`link`和`unlink`。 +- 修改`open`系统调用以处理路径指向符号链接的情况。如果文件不存在,则打开必须失败。当进程向`open`传递`O_NOFOLLOW`标志时,`open`应打开符号链接(而不是跟随符号链接)。 +- 如果链接文件也是符号链接,则必须递归地跟随它,直到到达非链接文件为止。如果链接形成循环,则必须返回错误代码。你可以通过以下方式估算存在循环:通过在链接深度达到某个阈值(例如10)时返回错误代码。 +- 其他系统调用(如`link`和`unlink`)不得跟随符号链接;这些系统调用对符号链接本身进行操作。 +- 您不必处理指向此实验的目录的符号链接。 + +# 可选的挑战练习 + +实现三级间接块 \ No newline at end of file diff --git a/labs/use_git/git1.md b/labs/use_git/git1.md index 27f8658..f512736 100644 --- a/labs/use_git/git1.md +++ b/labs/use_git/git1.md @@ -1,7 +1,7 @@ # 将实验代码提交到github > [!DANGER] -> MIT 6.S081 这门课程每个lab对应一个git分支,所以请不要擅自修改原有分支 +> MIT 6.S081 这门课程每个lab对应一个git分支,所以请不要擅自将***.git***目录删除或更改origin指向的仓库地址 1. **首先将mit的实验代码克隆到本地** diff --git a/tranlate_books/C Pointers, gdb.md b/tranlate_books/C Pointers, gdb.md new file mode 100644 index 0000000..14f9f03 --- /dev/null +++ b/tranlate_books/C Pointers, gdb.md @@ -0,0 +1,226 @@ +# C, Pointers, gdb + +# 我的第一个内存bug + +![img](images/p1.png) + +# C语言中的内存 + +1. **静态内存** + +- 全局变量,可在整个程序中访问 +- 使用`static`关键字定义,和在全局范围中定义的变量一样。 + +1. **栈内存** + +- 函数中的局部变量。函数退出后**自动销毁**。 + +1. **堆内存** + +- 您使用`malloc()`和`free()`控制这些变量的创建和销毁 +- 由于使用结束后必须调用`free()`,可能会导致内存泄漏 + +# C语言指针 + +指针是一个64位整数,其值是内存中的地址。 + +每个变量都有一个地址,所以每个变量都会有对应的指针,包括指向指针的指针,指向指针的指针的指针,以此类推。 + +指针可以处理`++`, `--`, `+`,`-`这样的算数运算 + +## 指针语法 + +```c +int x = 5; +int *x_addr = &x; //等同于int* x_addr = &x; 例如值为0x7ffd2766a948 +*x_addr = 6; //可以使用*运算符访问基础值 +int x_value = *x_addr; //解引用,这将得到6 +int arr1[10]; //数组隐含了指针!稍后将详细介绍。 +int *arr2[20]; //指针数组,使arr2成为指向指针的指针 +void *myPtr; +``` + +试试这些!在***user/***下创建一个新的程序,就像在Util中一样 + +## 回到内存 + +```c +char *makeABC() { + char y[3] = {'a', 'b', 'c'}; + return y; +} +``` + +这有什么错误? + +## 指针算术运算,耶! + +假设我们有一些值为`0x100002`的`char *c`。 + +```c +c++; // 0x100003 +c += 4; // 0x100007 +``` + +就该如此啊! + +## 指针算术运算,唉... + +假设我们有一些值为`0x100002`的`int *i`。 + +```c +i++; //0x100006 +i += 4; //0x100016 +``` + +指针以基本数据类型的长度(以字节为单位)进行加减。 + +# C语言数组 + +C数组是存储特定数据类型的连续内存块。变量实际就是数组起始位置的指针。 + +```c +char myString[40]; // myString的类型是char* +char *myArrayOfStrings[20]; // myArrayOfStrings的类型是char** +int counting[5] = {1, 2, 3, 4, 5}; // counting类型为int* +``` + +括号运算符`[]`(例如访问`arr[1]`)只是指针算法的语法糖。 + +假设我们定义了`int arr[4] = {5, 6, 7, 8};`那么下面这些是等价的: + +```c +arr[2] = 50; +*(arr + 2) = 50; // 记住指针的算术运算! +2 [arr] = 50; // 加法是交换的(排列次序不影响结果)! +``` + +## C语言数组的缺陷 + +我们可以通过越界访问数组来访问或修改非法内存。C不提供任何检查。 + +这种行为可能是意想不到的。 + +需要时使用您的size变量! + +# C语言的位运算符 + +一切最终都是比特位,C语言允许我们操纵这些比特。 + +以下均为二进制数: + +``` +& (and/与): 10001 & 10000 -> 10000 +| (or/或): 10001 | 10000 -> 10001 +^ (xor/异或): 10001 ^ 10000 -> 00001 +~ (complement/取反): ~10000 -> 01111 +<< (left shift/左移): 1 << 4 -> 10000 (binary) -> 16 (decimal) +>> (right shfit/右移): 10101 >> 3 -> 10 (binary) +``` + +我们可以将这些运算符组合起来,使标志设置变得简单: + +定义位偏移`flag0 = 0`, `flag1 =1`, `flag2 = 2`. + +要设置标志`flag0`和`flag2`: + +`flags = (1 << flag0) | (1 << flag2)` -> 101 + +要检查在整型标志变量中标志是否被设置: + +`if(flags & flag1)` -> 101 & 010 == 0 (false!) + +# C语言类型转换 + +在C语言中进行类型转换的语法是:`(newType)variable` + +将`void*`转换为`char*`: `(char*)myVoidPtr` + +从表达式转换为`uint64`:`(uint64)(2 + 3)`, `(uint64)myVoidPtr` + +关于一些好的例子,请参见***kalloc.c***和***vm.c***。 + +```c +extern char end[]; // first address after kernel. +void kfree(void *pa) { + struct run *r; + if (((uint64)pa % PGSIZE) != 0 || (char *)pa < end || (uint64)pa >= PHYSTOP) + panic("kfree"); + ... +} +``` + +# C语言的#include + +`.h`文件包含声明(构成) + +`.c`文件包含定义(实现) + +基本上从不`#include` `.c`类型的文件! + +[include卫兵](https://en.wikipedia.org/wiki/Include_guard#:~:text=In the C and C,dealing with the include directive.)帮助处理嵌套/重复`#include`(在xv6中没有使用太多) + +> [!NOTE] +> include卫兵是指这样的结构 +> +> `#ifndef XXXX_H` +> +> `#define XXXX_H` +> +> `...` +> +> `#endif` + +使用`extern`关键字!将函数的可见性扩展到程序中的所有文件。 + +# 一个关于指针的示例 + +```c +#include +#include + +void +f(void) +{ + int a[4]; + int *b = malloc(16); + int *c; + int i; + + printf("1: a = %p, b = %p, c = %p\n", a, b, c); + + c = a; + for (i = 0; i < 4; i++) + a[i] = 100 + i; + c[0] = 200; + printf("2: a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d\n", + a[0], a[1], a[2], a[3]); + + c[1] = 300; + *(c + 2) = 301; + 3[c] = 302; + printf("3: a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d\n", + a[0], a[1], a[2], a[3]); + + c = c + 1; + *c = 400; + printf("4: a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d\n", + a[0], a[1], a[2], a[3]); + + c = (int *) ((char *) c + 1); + *c = 500; + printf("5: a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d\n", + a[0], a[1], a[2], a[3]); + + b = (int *) a + 1; + c = (int *) ((char *) a + 1); + printf("6: a = %p, b = %p, c = %p\n", a, b, c); +} + +int +main(int ac, char **av) +{ + f(); + return 0; +} +``` \ No newline at end of file diff --git a/tranlate_books/Calling Convention.md b/tranlate_books/Calling Convention.md new file mode 100644 index 0000000..c873a6c --- /dev/null +++ b/tranlate_books/Calling Convention.md @@ -0,0 +1,82 @@ +# Calling Convention + +本章描述了RV32和RV64程序的C编译器标准和两个调用约定:附加标准通用扩展(RV32G/RV64G)的基础ISA约定,以及缺乏浮点单元(例如RV32I/RV64I)实现的软浮点约定。 + +> 使用ISA扩展的实现可能需要扩展调用约定。 + +# 18.1 C语言的数据类型和对齐方式 + +表18.1总结了RISC-V C程序本机支持的数据类型。在RV32和RV64 C编译器中,C中的`int`类型都是32位。另一方面,`long`和指针都与整数寄存器位数一致,所以在RV32中,两者都是32位,而在RV64中,两者都是64位。同样,RV32采用ILP32整数模型,而RV64是LP64。在RV32和RV64中,C类型`long long`是64位整数,`float`是遵循IEEE754-2008标准的32位浮点数,`double`是遵循IEEE754-2008标准的64位浮点数,`long double`是遵循IEEE754-2008标准的128位浮点数。 + +C类型`char`和`unsigned char`都是8位无符号整数,当存储在RISC-V整数寄存器中时是零扩展。`unsigned short`是16位无符号整数,当存储在RISC-V整数寄存器中时是零扩展。`signed char`是8位有符号整数,当存储在RISC-V整数寄存器中时是符号扩展的,即比特位从(XLEN-1)到7都是相等的。`short`是16位有符号整数,当存储在寄存器中时是符号扩展的。 + +在RV64中,32位的数据类型(如`int`)以合适的符号扩展存储在整数寄存器中;也就是说,比特位从63到31都是相等的。即使是无符号的32位类型,这个限制也适用。 + +RV32和RV64 C编译器和兼容软件将所有上述数据类型存储在内存中时保持自然对齐。 + +| **C数据类型** | **描述** | **RV32中字节数** | **RV64中字节数** | +| ------------- | -------------- | ---------------- | ---------------- | +| `char` | 字符值/字节 | 1 | 1 | +| `short` | 短整型 | 2 | 2 | +| `int` | 整型 | 4 | 4 | +| `long` | 长整型 | 4 | 8 | +| `long long` | 超长整型 | 8 | 8 | +| `void*` | 指针 | 4 | 8 | +| `float` | 单精度浮点型 | 4 | 4 | +| `double` | 双精度浮点型 | 8 | 8 | +| `long double` | 扩展精度浮点型 | 16 | 16 | + +表18.1:基于RISC-V指令集的C编译器数据类型 + +# 18.2 RVG调用协定 + +RISC-V调用约定尽可能在寄存器中传递参数。为此,最多使用八个整数寄存器**a0**-**a7**和八个浮点寄存器**fa0**-**fa7**。 + +如果函数的参数被概念化为C结构体的字段,结构体中的每个字段都按指针长度对齐,则参数寄存器是该结构体中前八个指针字长参数的副本。如果第i(i<8)个参数是浮点类型,则在浮点寄存器**fai**中传递;否则,在整数寄存器**ai**中传递。但是,浮点参数如果属于`union`或结构体中数组字段的一部分,就会在整数寄存器中传递。此外,变参函数的浮点参数(未显式命名参数列表的函数)在整数寄存器中传递。 + +小于指针字长的参数在参数寄存器的最低有效位(LSB)中传递。相应地,栈上传递的小于指针字长的参数出现在指针字的较低地址中,因为RISC-V有一个小端存储系统。 + +当在堆栈上传递两倍于指针字大小的基本参数时,它们是自然对齐的。当它们在整数寄存器中传递时,它们驻留在对齐的偶数号-奇数号寄存器对中,偶数寄存器保存最低有效位。例如,在RV32中,函数`void foo(int, long long)`的第一个参数在**a0**中传递,第二个参数在**a2**和**a3**中传递。**a1**中不传递任何内容。 + +大于指针字大小两倍的参数通过引用传递。 + +结构体中未在参数寄存器中传递的部分在栈上传递。栈指针**sp**指向未在寄存器中传递的第一个参数。 + +函数在整数寄存器**a0**和**a1**以及浮点寄存器**fa0**和**fa1**中返回值。只有当浮点值是原始值(传入时**fa0**和**fa1**作为参数寄存器,原始值是指该参数不改变而直接返回)或作为仅有一两个浮点值组成的结构体的成员时,才会从浮点寄存器中返回。长度恰好为两个指针字长的其他返回值将在**a0**和**a1**中返回。较大的返回值完全在内存中传递;调用方分配此内存区域,并将指针作为隐式的第一个参数传递给被调用方。 + +在标准的RISC-V调用约定中,栈向下增长,栈指针始终保持16字节对齐。 + +除了自变量和返回值寄存器之外,还有在调用中不稳定的七个整数寄存器**t0**-**t6**和十二个浮点寄存器**ft0**-**ft11**作为临时寄存器,如果之后使用,调用者必须保存它们。十二个整数寄存器**s0**-**s11**和十二个浮点寄存器**fs0**-**fs11**在调用中受保护,如果使用,被调用者必须保存它们。表18.2显示了调用约定中每个整数和浮点寄存器的作用。 + +| **寄存器** | **ABI名称** | **描述** | **保存者** | +| ---------- | ----------- | ----------------- | ---------- | +| x0 | zero | 硬布线零 | | +| x1 | ra | 返回地址 | 调用者 | +| x2 | sp | 栈指针 | 被调用者 | +| x3 | gp | 全局指针 | | +| x4 | tp | 线程指针 | | +| x5-7 | t0-2 | 临时暂存单元 | 调用者 | +| x8 | s0/fp | 保留寄存器/帧指针 | 被调用者 | +| x9 | s1 | 保留寄存器 | 被调用者 | +| x10-11 | a0-1 | 函数参数/返回值 | 调用者 | +| x12-17 | a2-7 | 函数参数 | 调用者 | +| x18-27 | s2-11 | 保留寄存器 | 被调用者 | +| x28-31 | t3-6 | 临时暂存单元 | 调用者· | +| f0-7 | ft0-7 | 浮点临时暂存单元 | 调用者 | +| f8-9 | fs0-1 | 浮点保留寄存器 | 被调用者 | +| f10-11 | fa0-1 | 浮点参数/返回值 | 调用者 | +| f12-17 | fa2-7 | 浮点参数 | 调用者 | +| f18-27 | fs2-11 | 浮点保留寄存器 | 被调用者 | +| f28-31 | ft8-11 | 浮点临时暂存单元 | 调用者 | + +表18.2 RISC-V调用协定寄存器的使用 + +# 18.3 软浮点数调用协定 + +软浮点调用约定用于缺乏浮点硬件的RV32和RV64实现。它避免使用了F、D和Q标准扩展中的所有指令,从而避免使用**f**寄存器。 + +完整参数的传递和返回方式与RVG约定相同,栈规则也相同。浮点参数使用长度相同的整型参数的规则在整数寄存器中传递和返回。例如,在RV32中,函数`double foo(int, double, long double)`的第一个参数在**a0**中传递,第二个参数在**a2**和**a3**中传递,第三个参数通过**a4**传递引用;其结果在**a0**和**a1**中返回。在RV64中,参数以**a0**、**a1**和**a2**-**a3**对形式传递,结果以**a0**形式返回。 + +动态舍入模式和累计异常标志可以通过C99头文件***fenv.h***提供的程序访问。 + +> 注:为了编写高精度浮点数的运算,编程人员需要控制浮点数环境的各个方面:结果如何舍入,浮点数表达式如何简化与变换,如何处理浮点数异常(如下溢之类的浮点数异常是忽略还是产生错误)等等。C99引入了***fenv.h***来控制浮点数环境。 \ No newline at end of file diff --git a/tranlate_books/Introduction.md b/tranlate_books/Introduction.md new file mode 100644 index 0000000..75379b4 --- /dev/null +++ b/tranlate_books/Introduction.md @@ -0,0 +1,597 @@ +# Introduction + +# 课程介绍 + +6.S081 2020 Lecture 1: OS概述 + +## 概述 + +- 6.S081目标 + - 了解操作系统(OS)的设计和实现 + +- 动手扩展小型操作系统的实践经验 + +- 有编写系统软件的实际操作经验 + +- 操作系统的目的是什么? + - 为方便和可移植性而对硬件进行抽象 + +- 在多种应用中实现硬件的多路复用 + +- 隔离应用程序,多个程序互不干扰 + +- 允许在合作的应用程序之间共享 + +- 控制共享安全 + +- 不要妨碍高效 + +- 支持广泛的应用 + +- 组织方式:分层结构 + - 用户应用层:vi、gcc、DB和c + +- 内核服务层 + +- 硬件层: CPU、RAM、磁盘、网络等 + +我们非常关心接口和内部内核结构 + +- 操作系统内核通常提供什么服务? + - 进程(一个正在运行的程序) + +- 内存分配 + +- 文件内容 + +- 文件名,目录 + +- 访问控制(安全性) + +- 其他:用户、IPC(进程间通信)、网络、时间、终端 + +- 什么是应用程序/内核接口? + - “系统调用” + +- 例子,在UNIX(如Linux, macOS, FreeBSD)中的C语言中: + +```c +fd = open("out", 1); +write(fd, "hello\n", 6); +pid = fork(); +``` + +- 这些看起来像函数调用,但实际上不是 + +- 为什么操作系统的设计和实现是困难和有趣的? + - 恶劣的环境:古怪的硬件,很难调试 + +- 许多设计张力: + - 高效vs抽象/便携/通用 + +- 强大的vs简单的接口 + +- 灵活vs安全 + +- 功能交互:'fd = open(); fork()` + +- 用途多种多样:笔记本电脑、智能手机、云计算、虚拟机、嵌入式 + +- 不断发展的硬件:NVRAM、多核、高速网络 + +- 你会很高兴你选了这门课,如果你… + - 关心计算机运行的背后发生了什么 + +- 喜欢基础架构 + +- 需要追踪漏洞或安全问题 + +- 注重高性能 + +## 课程结构 + +- 网上课程信息: + +[6.S081官网](https://pdos.csail.mit.edu/6.S081/),网站中包含了课程表,作业,实验 + +[Piazza](https://piazza.com/):公告,讨论,实验帮助 + +- 视频课程 + - 操作系统的想法 + +- 通过代码和xv6的书,xv6(一个小的操作系统)的案例研究 + +- 实验背景 + +- 操作系统相关论文 + +- 上课前提交一个关于阅读材料的问题。 + +- 实验: + - 重点是:实践经验(基本上每个星期一个实验) + +- 实验的三种类型: + - 系统编程(下周截止…) + +- OS原语,例如线程切换。 + +- xv6的OS内核扩展,例如网络。 + +- 使用piazza提问/回答实验室的问题。 + +- 讨论很好,但请不要看别人的解决方案! + +- 评分: + - 70%的实验室,基于测试(与运行的测试相同)。 + +- 20%的实验室检查会议:我们会问你关于随机选择的实验室的问题。 + +- 10%的家庭作业和课堂/广场讨论。 + +- 没有考试,没有小测验。 + +- 请注意,大部分成绩来自实验室,请尽早开始! + +## UNIX系统调用简介 + +- 应用程序通过系统调用查看操作系统;这种接口将是我们关注的重点。 + - 让我们从查看程序如何使用系统调用开始。 + +- 您将在第一个实验室中使用这些系统调用。 + +- 并在随后的实验室中进行扩展和改进。 + +- 我将展示一些示例,并在xv6上运行它们。 + +xv6的结构与UNIX系统(如Linux)类似。但是要简单得多——您将能够理解xv6的全部内容附带的书解释了xv6的工作原理和原因 + +- 为什么选择UNIX ? + - 开源代码,有良好的文档,干净的设计,广泛使用 + +- 如果您需要了解Linux内部,学习xv6将有所帮助 + +- xv6在6.S081中有两个角色: + - 核心函数的例子:虚拟内存,多核,中断,等等 + +- 大多数实验的起点 + +- xv6运行在RISC-V上,就像当前的6.004一样 + +- 您将在qemu机器仿真器下运行xv6 + +### 例子:`copy.c`:复制输入到输出 + +```c +char buf[64]; + +while(1){ +int n = read(0, buf, sizeof(buf)); +if(n <= 0) + break; +write(1, buf, n); +} + +exit(0); +``` + +从输入中读取字节,并将其写入输出 + +`copy.c`是用C语言写的,克尼根和里奇(K&R)的《C程序设计语言》可以帮助你学习C语言,另外你可以通过官网上时间表中的`example`指向的链接找到这些示例程序 + +其中`read()`和`write()`是系统调用 + +- read()/write()的第一个参数是一个“文件描述符”(fd) + +> 它传递给内核,告诉系统调用要读/写哪个“打开的文件”,fd必须是已经打开过的,可以指向文件/设备/套接字等等。一个进程可以打开很多文件,有很多`fd`,UNIX约定:fd 0是“标准输入”,1是“标准输出” + +- 第二个read()参数是一个指向要读取的内存的指针 + +- 第三个参数是要读取的最大字节数 + +> read()可以读得更少,但不能读得更多 + +- 返回值:实际读取的字节数,或-1表示错误 + +> 注意:copy.c不关心数据的格式,UNIX I/O是8位字节,解释是特定于应用程序的,例如数据库记录,C源,等等 + +文件描述符来自哪里? + +### 例子:`open.c`,创建一个文件 + +```c +// open.c: create a file, write to it. + +#include "kernel/types.h" +#include "user/user.h" +#include "kernel/fcntl.h" + +int +main() +{ + int fd = open("output.txt", O_WRONLY | O_CREATE); + write(fd, "ooo\n", 4); + + exit(0); +} +``` + +`open()`创建文件,返回文件描述符fd(或-1表示错误),`fd`是一个短整数,`fd`索引到内核维护的每个进程表中 + +不同的进程具有不同的`fd`命名空间,也就是说,文件描述符1对于不同的进程通常意味着不同的东西,然而这些例子忽略了可能的错误——但你不要这么草率! + +《xv6》中的图1.2列出了系统调用的参数、返回值,或者你查看UNIX手册页,例如。`man 2 open` + +- 当程序调用像open()这样的系统调用时会发生什么? + + + +`open`看起来像一个函数调用,但实际上是一个特殊的指令 + +1. 硬件保存一些用户寄存器 +2. 硬件增加特权级别 +3. 硬件会跳转到内核中一个已知的“入口点” +4. 现在在内核中运行C代码 +5. 内核调用系统调用执行 + - open()在文件系统中查找文件名 + - 它可能会等待磁盘 + - 它更新内核数据结构(缓存,FD表) +6. 恢复用户寄存器 +7. 减少特权级别 +8. 回到程序中的调用点,它将继续运行 + +我们将在后面的课程中看到更多细节 + +- Shell是UNIX系统上的命令行界面。 + + shell会打印“$”提示符提示输入命令,它允许您运行UNIX命令行实用程序,这对系统管理、文件处理、开发、脚本编写非常有用 + +```bash +$ ls +$ ls > out +$ grep x < out +``` + +UNIX也支持其他类型的交互,例如窗口系统,图形用户界面,服务器,路由器,等等。但是,通过shell实现分时是UNIX最初的重点。我们可以通过shell执行许多系统调用。 + +### 例子:`fork.c`:创建一个新的过程 + +```c +// fork.c: create a new process + +#include "kernel/types.h" +#include "user/user.h" + +int +main() +{ + int pid; + + pid = fork(); + + printf("fork() returned %d\n", pid); + + if(pid == 0){ + printf("child\n"); + } else { + printf("parent\n"); + } + + exit(0); +} +``` + +shell会为您键入的每个命令创建一个新进程,例如,对于 + +```bash +$ echo hello +``` + +来说`fork()`系统调用创建一个新进程,内核复制调用进程的指令、数据、寄存器、文件描述符、当前目录 + +“父进程”和“子进程”的唯一的区别是:`fork()`在父进程中返回pid,在子进程中返回0,pid(进程ID)是一个整数,内核给每个进程一个不同的pid + +因此:`fork.c`的`printf("fork() returned %d\n", pid);`会在父子两个进程中执行 + +“`if(pid == 0)`”允许代码进行区分父子进程 + +fork让我们创建一个新进程,那么我们如何在这个进程中运行一个程序呢? + +### 例子:`exec.c`:用可执行文件替换调用进程 + +```c +// exec.c: replace a process with an executable file + +#include "kernel/types.h" +#include "user/user.h" + +int +main() +{ + char *argv[] = { "echo", "this", "is", "echo", 0 }; + + exec("echo", argv); + + printf("exec failed!\n"); + + exit(0); +} +``` + +shell是如何运行程序的?例如 + +```bash +$ echo a b c +``` + +程序存储在一个文件中,指令和初始内存由编译器和链接器创建 + +有一个叫echo的文件,包含指令 + +```bash +$ echo +``` + +`echo.c`文件内容如下 + +```c +#include "kernel/types.h" +#include "user/user.h" + +int +main(int argc, char *argv[]) +{ + int i; + + for(i = 1; i < argc; i++){ + write(1, argv[i], strlen(argv[i])); + if(i + 1 < argc){ + write(1, " ", 1); + } else { + write(1, "\n", 1); + } + } + exit(0); +} +``` + +- `exec()`系统调用 + - 用可执行文件替换当前进程 + - 丢弃指令和数据存储器 + - 从文件中加载指令和内存 + - 保存文件描述符 + +- `exec(filename, argument-array)` + - argument-array保存命令行参数;exec将参数传递给main() + - 执行`cat user/echo.c` + - `echo.c`程序演示了如何查看命令行参数 + +### 例子:`forkexec.c`。`fork()`一个新进程,`exec()`一个程序 + +```c +#include "kernel/types.h" +#include "user/user.h" + +// forkexec.c: fork then exec + +int +main() +{ + int pid, status; + + pid = fork(); + if(pid == 0){ + char *argv[] = { "echo", "THIS", "IS", "ECHO", 0 }; + exec("echo", argv); + printf("exec failed!\n"); + exit(1); + } else { + printf("parent waiting\n"); + wait(&status); + printf("the child exited with status %d\n", status); + } + + exit(0); +} +``` + +- `forkexec.c`包含一个常见的UNIX习惯用法: + - fork()一个子进程 + - exec()子进程中的命令 + - 父进程调用`wait()`等待子进程结束 + +- 对于您键入的每个命令,shell都会fork/exec/wait + - 在`wait()`完成之后,shell打印下一个提示符 + - 若想让程序在后台运行,可在命令的最后加上符号`&`,这样shell会跳过`wait()` + +- `exec(status)`-> ` wait(&status)` + - 状态约定:0表示成功,1表示命令遇到错误 + +- 注意:`fork()`会复制,但是`exec()`会丢弃复制的内存 + +这似乎很浪费,在“copy-on-write”实验室中,你将透明的删除复制 + +### 例子:`redirect.c`,重定向命令的输出 + +```c +#include "kernel/types.h" +#include "user/user.h" +#include "kernel/fcntl.h" + +// redirect.c: run a command with output redirected + +int +main() +{ + int pid; + + pid = fork(); + if(pid == 0){ + close(1); + open("output.txt", O_WRONLY|O_CREATE); + + char *argv[] = { "echo", "this", "is", "redirected", "echo", 0 }; + exec("echo", argv); + printf("exec failed!\n"); + exit(1); + } else { + wait((int *) 0); + } + + exit(0); +} +``` + +shell如何完成重定向呢? + +```bash +$ echo hello > out +``` + +答案是:通过`fork`产生子进程,然后在子进程中改变文件描述符1,再调用`exec`执行echo + +- 注意:open()总是选择最小的未使用文件描述符;在重定向中,由于`close(1)`使得1成为了最小的文件描述符 + +- `fork` 、FDs(文件描述符)和`exec`可以很好地交互以实现I/O重定向 + - 将`fork`和`exec`分离给了子进程一个在`exec`之前更改文件描述符的机会 + +文件描述符提供了一种间接性:命令只使用描述符0和1,而不需要知道文件描述符到底指向去哪里 + +`exec`会保存shell所设置的文件描述符 + +- 因此:只有shell需要知道I/O重定向,而不是每个程序 + +- 关于设计决策,有必要问一下“为什么”: + - 为什么要采用这些I/O和流程抽象?为什么不是别的? + - 为什么要提供文件系统?为什么不让程序以自己的方式使用磁盘呢? + - 为什么使用文件描述符?为什么不将文件名传递给write()? + - 为什么文件是字节流,而不是磁盘块或格式化的记录? + - 为什么不合并fork()和exec()呢? + - UNIX设计工作得很好,但我们将看到其他设计! + +### 例子:`pipe1.c`,通过管道交流 + +```c +// pipe1.c: communication over a pipe + +#include "kernel/types.h" +#include "user/user.h" + +int +main() +{ + int fds[2]; + char buf[100]; + int n; + + // create a pipe, with two FDs in fds[0], fds[1]. + pipe(fds); + + write(fds[1], "this is pipe1\n", 14); + n = read(fds[0], buf, sizeof(buf)); + + write(1, buf, n); + + exit(0); +} +``` + +shell是如何实现管道的呢 + +```bash +$ ls | grep x +``` + +- 文件描述符可以指向“管道”,也可以指向文件 + +- `pipe()`系统调用创建两个文件描述符 + - 第一个用于读取 + - 第二个用于写入 + +- 内核为每个管道维护一个缓冲区 + - `write()`追加到缓冲区 + - `read()`等待数据 + +### 例子:`pipe2.c`,进程之间的通信 + +```c +#include "kernel/types.h" +#include "user/user.h" + +// pipe2.c: communication between two processes + +int +main() +{ + int n, pid; + int fds[2]; + char buf[100]; + + // create a pipe, with two FDs in fds[0], fds[1]. + pipe(fds); + + pid = fork(); + if (pid == 0) { + write(fds[1], "this is pipe2\n", 14); + } else { + n = read(fds[0], buf, sizeof(buf)); + write(1, buf, n); + } + + exit(0); +} +``` + +- 管道和`fork()`很好地结合在一起来实现`ls | grep x` + - shell创建一个管道, + - 然后执行两次`fork` + - 然后将`ls`的文件描述符1连接到管道的写文件描述符 + - 将`grep`的文件描述符0连接到管道的读文件描述符 + +管道是一个单独的抽象,但与fork()结合得很好。 + +### 例子:`list.c`,列出目录中的文件 + +```c +#include "kernel/types.h" +#include "user/user.h" + +// list.c: list file names in the current directory + +struct dirent { + ushort inum; + char name[14]; +}; + +int +main() +{ + int fd; + struct dirent e; + + fd = open(".", 0); + while(read(fd, &e, sizeof(e)) == sizeof(e)){ + if(e.name[0] != '\0'){ + printf("%s\n", e.name); + } + } + exit(0); +} +``` + +ls如何得到一个目录中的文件列表呢? + +你可以打开一个目录并读取它->文件名 + +"`.`"是进程当前目录的伪名称 + +请参阅`ls.c`了解更多细节 + +## 总结 + +- 我们已经了解了UNIX的I/O、文件系统和进程抽象。 + +- 接口很简单——只有整数和I/O缓冲区。 + +- 抽象组合得很好,例如I/O重定向。 + +你们将在下周的第一个实验中使用这些系统调用。 \ No newline at end of file diff --git a/tranlate_books/Use GUN Debugger.md b/tranlate_books/Use GUN Debugger.md new file mode 100644 index 0000000..ed70859 --- /dev/null +++ b/tranlate_books/Use GUN Debugger.md @@ -0,0 +1,126 @@ +# 使用GUN Debugger + +# 6.828的GDB + +- 我们提供一个名为**.gdbinit**的文件,自动设置GDB以用于QEMU + - 必须在lab或xv6目录中运行GDB + - 编辑***~/.gdbinit***以执行其他需要的GDB初始化 + +- 以带有或不带有GDB的方式使用`make`指令启动QEMU + - 带有GDB:运行`make qemu[-nox]-gdb`,然后在第二个Shell中启动GDB(`iscv64-linux-gnu-gdb`) + - 如果以单核方式启动,则使用`make CPUS=1 qemu-gdb` + - 不带有GDB:当不需要GDB时使用`make qemu[-nox]`命令 + + +# GDB命令 + +- 当你不知道某个命令怎么使用时,运行`help <命令名称>`来获取帮助 +- 在无歧义的情况下,所有命令都可以被简写 + +``` +c`=`co`=`cont`=`continue +``` + +- 一些额外的简写已经被定义,例如 + +``` +s`=`step` 以及 `si`=`stepi +``` + + + +## 单步调试 + +- `step`一次运行一行代码。当有函数调用时,它将步进到被调用的对象函数。 +- `next`也是一次运行一行代码。但当有函数调用时,它不会进入该函数。 +- `stepi`和`nexti`对于汇编指令是单步调试。 + +所有命令都可以采用一个数字参数来指定重复执行的次数。按回车键将重复上一个命令。 + + + +## 运行调试 + +- `continue`运行代码,直到遇到断点或使用``中断它 +- `finish`运行代码,直到当前函数返回 +- `advance `运行代码,直到指令指针到达指定位置 + + + +## 断点 + +- `break `在指定的位置设置断点。 + 位置可以是内存地址(`*0x7c00`)或名称(`monbacktrace`,`monitor.c:71`) + +- 如需修改断点请使用`delete`,`disable`,`enable` + +## 条件断点 + +- `break if `在指定位置设置断点,但仅在满足条件时中断。 +- `cond `在现有断点上添加条件。 + +## 监视点 + +类似于断点,但条件更为复杂。 + +- `watch `每当表达式的值更改时,将停止执行 +- `watch -l

                                                                                  `每当指定内存地址的内容发生变化时,就会停止执行。 + - 命令`wa var`和`wa -l &var`有什么不同呢? +- `rwatch [-l] `将在读取表达式的值时停止执行。 + +## 检查命令 + +- `x`以您指定格式(`x/x`表示十六进制,`x/i`表示汇编,等等)打印内存的原始内容。 +- `print`计算一个C表达式并将结果以合适的类型打印。它通常比`x`更有用 +- 使用`p *((struct elfhdr *) 0x10000)`的输出比`x/13x 0x10000`的输出好得多 + +## 其他检查命令 + +- `info registers`打印每个寄存器的值 +- `info frame`打印当前栈帧 +- `list `在指定位置打印函数的源代码 +- `backtrace`或许对于你的lab1中的工作很有用处 + +## 布局 + +GDB有一个文本用户界面,在curses用户界面中显示有用的信息,如代码列表、反汇编和寄存器内容 + +- `layout `切换到给定的用户界面 + +例如`layout split`,效果如下 + +![img](images/p2.png) + + + +## 其他技巧 + +- 你可以使用`set`命令在执行期间更改变量的值。 +- 你必须切换符号文件才能获得除内核以外环境的函数和变量名。例如,当调试JOS时: + +``` +symbol-file obj/user/ +symbol-file obj/kern/kernel +``` + +> 符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中所有的变量信息都记录在这个文件中。所以调试应用程序时,这个文件是非常重要的。用 Visual C++ 和 WinDbg 调试程序时都要用到这个文件。 + + + +# 其他 + +`layout asm`:查看汇编 +`layout reg`:查看寄存器 +`info reg`:查看寄存器 +`b *0x1234`:在指定地址设定断点 + +# QEMU使用 + +`Ctrl+a c`:进入控制模式 +`info mem`:打印页表 + +# 总结 + +- 使用`help`命令查看使用手册 +- GDB是非常强大的,我们今天只触及表面 +- 花费一个小时的时间学习如何使用GDB是非常值得的 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c10/s0.md b/tranlate_books/book-riscv-rev1/c10/s0.md new file mode 100644 index 0000000..6704e76 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c10/s0.md @@ -0,0 +1,7 @@ +# 第五章 中断和设备驱动 + +驱动程序是操作系统中管理特定设备的代码:它配置硬件设备,告诉设备执行操作,处理由此产生的中断,并与可能正在等待设备输入/输出的进程进行交互。编写驱动可能很棘手,因为驱动程序与它管理的设备同时运行。此外,驱动程序必须理解设备的硬件接口,这可能很复杂,而且缺乏文档。 + +需要操作系统关注的设备通常可以被配置为生成中断,这是陷阱的一种。内核陷阱处理代码识别设备何时引发中断,并调用驱动程序的中断处理程序;在xv6中,这种调度发生在`devintr`中(***kernel/trap.c***:177)。 + +许多设备驱动程序在两种环境中执行代码:上半部分在进程的内核线程中运行,下半部分在中断时执行。上半部分通过**系统调用**进行调用,如希望设备执行I/O操作的`read`和`write`。这段代码可能会要求硬件执行操作(例如,要求磁盘读取块);然后代码等待操作完成。最终设备完成操作并引发中断。驱动程序的**中断处理程序**充当下半部分,计算出已经完成的操作,如果合适的话唤醒等待中的进程,并告诉硬件开始执行下一个正在等待的操作。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c10/s1.md b/tranlate_books/book-riscv-rev1/c10/s1.md new file mode 100644 index 0000000..9c713f3 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c10/s1.md @@ -0,0 +1,17 @@ +# 5.1 代码:控制台输入 + +控制台驱动程序(***console.c***)是驱动程序结构的简单说明。控制台驱动程序通过连接到RISC-V的UART串口硬件接受人们键入的字符。控制台驱动程序一次累积一行输入,处理如`backspace`和`Ctrl-u`的特殊输入字符。用户进程,如Shell,使用`read`系统调用从控制台获取输入行。当您在QEMU中通过键盘输入到xv6时,您的按键将通过QEMU模拟的UART硬件传递到xv6。 + +驱动程序管理的UART硬件是由QEMU仿真的16550芯片。在真正的计算机上,16550将管理连接到终端或其他计算机的RS232串行链路。运行QEMU时,它连接到键盘和显示器。 + +UART硬件在软件中看起来是一组**内存映射**的控制寄存器。也就是说,存在一些RISC-V硬件连接到UART的物理地址,以便载入(load)和存储(store)操作与设备硬件而不是内存交互。UART的内存映射地址起始于`0x10000000`或`UART0` (***kernel/memlayout.h***:21)。有几个宽度为一字节的UART控制寄存器,它们关于UART0的偏移量在(***kernel/uart.c***:22)中定义。例如,LSR寄存器包含指示输入字符是否正在等待软件读取的位。这些字符(如果有的话)可用于从RHR寄存器读取。每次读取一个字符,UART硬件都会从等待字符的内部FIFO寄存器中删除它,并在FIFO为空时清除LSR中的“就绪”位。UART传输硬件在很大程度上独立于接收硬件;如果软件向THR写入一个字节,则UART传输该字节。 + +Xv6的`main`函数调用`consoleinit`(***kernel/console.c***:184)来初始化UART硬件。该代码配置UART:UART对接收到的每个字节的输入生成一个接收中断,对发送完的每个字节的输出生成一个发送完成中断(***kernel/uart.c***:53)。 + +xv6的shell通过***init.c*** (***user/init.c***:19)中打开的文件描述符从控制台读取输入。对`read`的调用实现了从内核流向`consoleread` (***kernel/console.c***:82)的数据通路。`consoleread`等待输入到达(通过中断)并在`cons.buf`中缓冲,将输入复制到用户空间,然后(在整行到达后)返回给用户进程。如果用户还没有键入整行,任何读取进程都将在`sleep`系统调用中等待(***kernel/console.c***:98)(第7章解释了`sleep`的细节)。 + +当用户输入一个字符时,UART硬件要求RISC-V发出一个中断,从而激活xv6的陷阱处理程序。陷阱处理程序调用`devintr`(***kernel/trap.c***:177),它查看RISC-V的`scause`寄存器,发现中断来自外部设备。然后它要求一个称为PLIC的硬件单元告诉它哪个设备中断了(***kernel/trap.c***:186)。如果是UART,`devintr`调用`uartintr`。 + +`uartintr`(***kernel/uart.c***:180)从UART硬件读取所有等待输入的字符,并将它们交给`consoleintr`(***kernel/console.c***:138);它不会等待字符,因为未来的输入将引发一个新的中断。`consoleintr`的工作是在***cons.buf***中积累输入字符,直到一整行到达。`consoleintr`对`backspace`和其他少量字符进行特殊处理。当换行符到达时,`consoleintr`唤醒一个等待的`consoleread`(如果有的话)。 + +一旦被唤醒,`consoleread`将监视***cons.buf***中的一整行,将其复制到用户空间,并返回(通过系统调用机制)到用户空间。 \ No newline at end of file diff --git a/_book/tranlate_books/book-riscv-rev1/c5/s0.md b/tranlate_books/book-riscv-rev1/c10/s10.md similarity index 100% rename from _book/tranlate_books/book-riscv-rev1/c5/s0.md rename to tranlate_books/book-riscv-rev1/c10/s10.md diff --git a/_book/tranlate_books/book-riscv-rev1/c5/s1.md b/tranlate_books/book-riscv-rev1/c10/s2.md similarity index 100% rename from _book/tranlate_books/book-riscv-rev1/c5/s1.md rename to tranlate_books/book-riscv-rev1/c10/s2.md diff --git a/tranlate_books/book-riscv-rev1/c10/s3.md b/tranlate_books/book-riscv-rev1/c10/s3.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s4.md b/tranlate_books/book-riscv-rev1/c10/s4.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s5.md b/tranlate_books/book-riscv-rev1/c10/s5.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s6.md b/tranlate_books/book-riscv-rev1/c10/s6.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s7.md b/tranlate_books/book-riscv-rev1/c10/s7.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s8.md b/tranlate_books/book-riscv-rev1/c10/s8.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c10/s9.md b/tranlate_books/book-riscv-rev1/c10/s9.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c5/s0.md b/tranlate_books/book-riscv-rev1/c5/s0.md index e69de29..6704e76 100644 --- a/tranlate_books/book-riscv-rev1/c5/s0.md +++ b/tranlate_books/book-riscv-rev1/c5/s0.md @@ -0,0 +1,7 @@ +# 第五章 中断和设备驱动 + +驱动程序是操作系统中管理特定设备的代码:它配置硬件设备,告诉设备执行操作,处理由此产生的中断,并与可能正在等待设备输入/输出的进程进行交互。编写驱动可能很棘手,因为驱动程序与它管理的设备同时运行。此外,驱动程序必须理解设备的硬件接口,这可能很复杂,而且缺乏文档。 + +需要操作系统关注的设备通常可以被配置为生成中断,这是陷阱的一种。内核陷阱处理代码识别设备何时引发中断,并调用驱动程序的中断处理程序;在xv6中,这种调度发生在`devintr`中(***kernel/trap.c***:177)。 + +许多设备驱动程序在两种环境中执行代码:上半部分在进程的内核线程中运行,下半部分在中断时执行。上半部分通过**系统调用**进行调用,如希望设备执行I/O操作的`read`和`write`。这段代码可能会要求硬件执行操作(例如,要求磁盘读取块);然后代码等待操作完成。最终设备完成操作并引发中断。驱动程序的**中断处理程序**充当下半部分,计算出已经完成的操作,如果合适的话唤醒等待中的进程,并告诉硬件开始执行下一个正在等待的操作。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c5/s1.md b/tranlate_books/book-riscv-rev1/c5/s1.md index e69de29..9c713f3 100644 --- a/tranlate_books/book-riscv-rev1/c5/s1.md +++ b/tranlate_books/book-riscv-rev1/c5/s1.md @@ -0,0 +1,17 @@ +# 5.1 代码:控制台输入 + +控制台驱动程序(***console.c***)是驱动程序结构的简单说明。控制台驱动程序通过连接到RISC-V的UART串口硬件接受人们键入的字符。控制台驱动程序一次累积一行输入,处理如`backspace`和`Ctrl-u`的特殊输入字符。用户进程,如Shell,使用`read`系统调用从控制台获取输入行。当您在QEMU中通过键盘输入到xv6时,您的按键将通过QEMU模拟的UART硬件传递到xv6。 + +驱动程序管理的UART硬件是由QEMU仿真的16550芯片。在真正的计算机上,16550将管理连接到终端或其他计算机的RS232串行链路。运行QEMU时,它连接到键盘和显示器。 + +UART硬件在软件中看起来是一组**内存映射**的控制寄存器。也就是说,存在一些RISC-V硬件连接到UART的物理地址,以便载入(load)和存储(store)操作与设备硬件而不是内存交互。UART的内存映射地址起始于`0x10000000`或`UART0` (***kernel/memlayout.h***:21)。有几个宽度为一字节的UART控制寄存器,它们关于UART0的偏移量在(***kernel/uart.c***:22)中定义。例如,LSR寄存器包含指示输入字符是否正在等待软件读取的位。这些字符(如果有的话)可用于从RHR寄存器读取。每次读取一个字符,UART硬件都会从等待字符的内部FIFO寄存器中删除它,并在FIFO为空时清除LSR中的“就绪”位。UART传输硬件在很大程度上独立于接收硬件;如果软件向THR写入一个字节,则UART传输该字节。 + +Xv6的`main`函数调用`consoleinit`(***kernel/console.c***:184)来初始化UART硬件。该代码配置UART:UART对接收到的每个字节的输入生成一个接收中断,对发送完的每个字节的输出生成一个发送完成中断(***kernel/uart.c***:53)。 + +xv6的shell通过***init.c*** (***user/init.c***:19)中打开的文件描述符从控制台读取输入。对`read`的调用实现了从内核流向`consoleread` (***kernel/console.c***:82)的数据通路。`consoleread`等待输入到达(通过中断)并在`cons.buf`中缓冲,将输入复制到用户空间,然后(在整行到达后)返回给用户进程。如果用户还没有键入整行,任何读取进程都将在`sleep`系统调用中等待(***kernel/console.c***:98)(第7章解释了`sleep`的细节)。 + +当用户输入一个字符时,UART硬件要求RISC-V发出一个中断,从而激活xv6的陷阱处理程序。陷阱处理程序调用`devintr`(***kernel/trap.c***:177),它查看RISC-V的`scause`寄存器,发现中断来自外部设备。然后它要求一个称为PLIC的硬件单元告诉它哪个设备中断了(***kernel/trap.c***:186)。如果是UART,`devintr`调用`uartintr`。 + +`uartintr`(***kernel/uart.c***:180)从UART硬件读取所有等待输入的字符,并将它们交给`consoleintr`(***kernel/console.c***:138);它不会等待字符,因为未来的输入将引发一个新的中断。`consoleintr`的工作是在***cons.buf***中积累输入字符,直到一整行到达。`consoleintr`对`backspace`和其他少量字符进行特殊处理。当换行符到达时,`consoleintr`唤醒一个等待的`consoleread`(如果有的话)。 + +一旦被唤醒,`consoleread`将监视***cons.buf***中的一整行,将其复制到用户空间,并返回(通过系统调用机制)到用户空间。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c5/s2.md b/tranlate_books/book-riscv-rev1/c5/s2.md new file mode 100644 index 0000000..5e820c0 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c5/s2.md @@ -0,0 +1,8 @@ +# 5.2 代码:控制台输出 + +在连接到控制台的文件描述符上执行`write`系统调用,最终将到达`uartputc`(***kernel/uart.c***:87) 。设备驱动程序维护一个输出缓冲区(`uart_tx_buf`),这样写进程就不必等待UART完成发送;相反,`uartputc`将每个字符附加到缓冲区,调用`uartstart`来启动设备传输(如果还未启动),然后返回。导致`uartputc`等待的唯一情况是缓冲区已满。 + +每当UART发送完一个字节,它就会产生一个中断。`uartintr`调用`uartstart`,检查设备是否真的完成了发送,并将下一个缓冲的输出字符交给设备。因此,如果一个进程向控制台写入多个字节,通常第一个字节将由`uartputc`调用`uartstart`发送,而剩余的缓冲字节将由`uartintr`调用`uartstart`发送,直到传输完成中断到来。 + +需要注意,这里的一般模式是通过**缓冲区**和**中断机制**将设备活动与进程活动解耦。即使没有进程等待读取输入,控制台驱动程序仍然可以处理输入,而后续的读取将看到这些输入。类似地,进程无需等待设备就可以发送输出。这种解耦可以通过允许进程与设备I/O并发执行来提高性能,当设备很慢(如UART)或需要立即关注(如回声型字符(echoing typed characters))时,这种解耦尤为重要。这种想法有时被称为I/O并发 + diff --git a/tranlate_books/book-riscv-rev1/c5/s3.md b/tranlate_books/book-riscv-rev1/c5/s3.md new file mode 100644 index 0000000..65bfe34 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c5/s3.md @@ -0,0 +1,6 @@ +# 5.3 驱动中的并发 + +你或许注意到了在`consoleread`和`consoleintr`中对`acquire`的调用。这些调用获得了一个保护控制台驱动程序的数据结构不受并发访问的锁。这里有三种并发风险:运行在不同CPU上的两个进程可能同时调用`consoleread`;硬件或许会在`consoleread`正在执行时要求CPU传递控制台中断;并且硬件可能在当前CPU正在执行`consoleread`时向其他CPU传递控制台中断。第6章探讨了锁在这些场景中的作用。 + +在驱动程序中需要注意并发的另一种场景是,一个进程可能正在等待来自设备的输入,但是输入的中断信号可能是在另一个进程(或者根本没有进程)正在运行时到达的。因此中断处理程序不允许考虑他们已经中断的进程或代码。例如,中断处理程序不能安全地使用当前进程的页表调用`copyout`(注:因为你不知道是否发生了进程切换,当前进程可能并不是原先的进程)。中断处理程序通常做相对较少的工作(例如,只需将输入数据复制到缓冲区),并唤醒上半部分代码来完成其余工作。 + diff --git a/tranlate_books/book-riscv-rev1/c5/s4.md b/tranlate_books/book-riscv-rev1/c5/s4.md new file mode 100644 index 0000000..ffc2c1d --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c5/s4.md @@ -0,0 +1,11 @@ +# 5.4 定时器中断 + +Xv6使用定时器中断来维持其时钟,并使其能够在受计算量限制的进程(compute-bound processes)之间切换;`usertrap`和`kerneltrap`中的`yield`调用会导致这种切换。定时器中断来自附加到每个RISC-V CPU上的时钟硬件。Xv6对该时钟硬件进行编程,以定期中断每个CPU。 + +RISC-V要求定时器中断在机器模式而不是管理模式下进行。RISC-V机器模式无需分页即可执行,并且有一组单独的控制寄存器,因此在机器模式下运行普通的xv6内核代码是不实际的。因此,xv6处理定时器中断完全不同于上面列出的陷阱机制。 + +机器模式下执行的代码位于`main`之前的***start.c***中,它设置了接收定时器中断(***kernel/start.c***:57)。工作的一部分是对CLINT(core-local interruptor)硬件编程,以在特定延迟后生成中断。另一部分是设置一个scratch区域,类似于trapframe,以帮助定时器中断处理程序保存寄存器和CLINT寄存器的地址。最后,`start`将`mtvec`设置为`timervec`,并使能定时器中断。 + +计时器中断可能发生在用户或内核代码正在执行的任何时候;内核无法在临界区操作期间禁用计时器中断。因此,计时器中断处理程序必须保证不干扰中断的内核代码。基本策略是处理程序要求RISC-V发出“软件中断”并立即返回。RISC-V用普通陷阱机制将软件中断传递给内核,并允许内核禁用它们。处理由定时器中断产生的软件中断的代码可以在`devintr` (***kernel/trap.c***:204)中看到。 + +机器模式定时器中断向量是`timervec`(***kernel/kernelvec.S***:93)。它在`start`准备的scratch区域中保存一些寄存器,以告诉CLINT何时生成下一个定时器中断,要求RISC-V引发软件中断,恢复寄存器,并且返回。定时器中断处理程序中没有C代码。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c5/s5.md b/tranlate_books/book-riscv-rev1/c5/s5.md new file mode 100644 index 0000000..30113a9 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c5/s5.md @@ -0,0 +1,11 @@ +# 5.5 真实世界 + +Xv6允许在内核中执行时以及在执行用户程序时触发设备和定时器中断。定时器中断迫使定时器中断处理程序进行线程切换(调用`yield`),即使在内核中执行时也是如此。如果内核线程有时花费大量时间计算而不返回用户空间,则在内核线程之间公平地对CPU进行时间分割的能力非常有用。然而,内核代码需要注意它可能被挂起(由于计时器中断),然后在不同的CPU上恢复,这是xv6中一些复杂性的来源。如果设备和计时器中断只在执行用户代码时发生,内核可以变得简单一些。 + +在一台典型的计算机上支持所有设备是一项艰巨的工作,因为有许多设备,这些设备有许多特性,设备和驱动程序之间的协议可能很复杂,而且缺乏文档。在许多操作系统中,驱动程序比核心内核占用更多的代码。 + +UART驱动程序读取UART控制寄存器,一次检索一字节的数据;因为软件驱动数据移动,这种模式被称为程序I/O(Programmed I/O)。程序I/O很简单,但速度太慢,无法在高数据速率下使用。需要高速移动大量数据的设备通常使用直接内存访问(DMA)。DMA设备硬件直接将传入数据写入内存,并从内存中读取传出数据。现代磁盘和网络设备使用DMA。DMA设备的驱动程序将在RAM中准备数据,然后使用对控制寄存器的单次写入来告诉设备处理准备好的数据。 + +当一个设备在不可预知的时间需要注意时,中断是有意义的,而且不是太频繁。但是中断有很高的CPU开销。因此,如网络和磁盘控制器的高速设备,使用一些技巧减少中断需求。一个技巧是对整批传入或传出的请求发出单个中断。另一个技巧是驱动程序完全禁用中断,并定期检查设备是否需要注意。这种技术被称为轮询(polling)。如果设备执行操作非常快,轮询是有意义的,但是如果设备大部分空闲,轮询会浪费CPU时间。一些驱动程序根据当前设备负载在轮询和中断之间动态切换。 + +UART驱动程序首先将传入的数据复制到内核中的缓冲区,然后复制到用户空间。这在低数据速率下是可行的,但是这种双重复制会显著降低快速生成或消耗数据的设备的性能。一些操作系统能够直接在用户空间缓冲区和设备硬件之间移动数据,通常带有DMA。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c5/s6.md b/tranlate_books/book-riscv-rev1/c5/s6.md new file mode 100644 index 0000000..0ea18f4 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c5/s6.md @@ -0,0 +1,5 @@ +# 5.6 练习 + +1. 修改***uart.c***以完全不使用中断。您可能还需要修改***console.c*** +2. 为以太网卡添加驱动程序 + diff --git a/tranlate_books/book-riscv-rev1/c6/s0.md b/tranlate_books/book-riscv-rev1/c6/s0.md new file mode 100644 index 0000000..12cfde8 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s0.md @@ -0,0 +1,10 @@ +# 第六章 锁 + +大多数内核,包括xv6,交错执行多个活动。交错的一个来源是多处理器硬件:计算机的多个CPU之间独立执行,如xv6的RISC-V。多个处理器共享物理内存,xv6利用共享(sharing)来维护所有CPU进行读写的数据结构。这种共享增加了一种可能性,即一个CPU读取数据结构,而另一个CPU正在更新它,甚至多个CPU同时更新相同的数据;如果不仔细设计,这种并行访问可能会产生不正确的结果或损坏数据结构。即使在单处理器上,内核也可能在许多线程之间切换CPU,导致它们的执行交错。最后,如果中断发生在错误的时间,设备中断处理程序修改与某些可中断代码相同的数据,可能导致数据损坏。单词并发(concurrency)是指由于多处理器并行、线程切换或中断,多个指令流交错的情况。 + +内核中充满了并发访问数据(concurrently-accessed data)。例如,两个CPU可以同时调用`kalloc`,从而从空闲列表的头部弹出。内核设计者希望允许大量的并发,因为这样可通过并行性提高性能,并提高响应能力。然而,结果是,尽管存在这种并发性,内核设计者还是花费了大量的精力来使其正确运行。有许多方法可以得到正确的代码,有些方法比其他方法更容易。以并发下的正确性为目标的策略和支持它们的抽象称为并发控制技术(concurrency control techniques)。 + +Xv6使用了许多并发控制技术,这取决于不同的情况。本章重点介绍了一种广泛使用的技术:**锁**。锁提供了互斥,确保一次只有一个CPU可以持有锁。如果程序员将每个共享数据项关联一个锁,并且代码在使用一个数据项时总是持有相关联的锁,那么该项一次将只被一个CPU使用。在这种情况下,我们说锁保护数据项。尽管锁是一种易于理解的并发控制机制,但锁的缺点是它们会扼杀性能,因为它们会串行化并发操作。 + +本章的其余部分解释了为什么xv6需要锁,xv6如何实现它们,以及如何使用它们。 + diff --git a/tranlate_books/book-riscv-rev1/c6/s1.md b/tranlate_books/book-riscv-rev1/c6/s1.md new file mode 100644 index 0000000..e2fdf37 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s1.md @@ -0,0 +1,68 @@ +# 6.1 竞态条件 + +作为我们为什么需要锁的一个例子,考虑两个进程在两个不同的CPU上调用`wait`。`wait`释放了子进程的内存。因此,在每个CPU上,内核将调用`kfree`来释放子进程的页面。内核分配器维护一个链接列表:`kalloc()`(***kernel/kalloc.c***:69) 从空闲页面列表中取出(pop)一个内存页面;`kfree()`(***kernel/kalloc.c***:47) 将一个内存页面添加(push)到空闲列表上。为了获得最佳性能,我们可能希望两个父进程的`kfree`可以并行执行,而不必等待另一个进程,但是考虑到xv6的`kfree`实现,这将导致错误。 + +![img](../images/c6/p1.png) + +图6.1更详细地说明了这项设定:链表位于两个CPU共享的内存中,这两个CPU使用`load`和`store`指令操作链表。(实际上,每个处理器都有cache,但从概念上讲,多处理器系统的行为就像所有CPU共享一块单独的内存一样)如果没有并发请求,您可能以如下方式实现列表push操作: + +```c +struct element { + int data; + struct element *next; +}; + +struct element *list = 0; + +void +push(int data) +{ + struct element *l; + + l = malloc(sizeof *l); + l->data = data; + l->next = list; + list = l; +} +``` + +![img](../images/c6/p2.png) + +如果存在隔离性,那么这个实现是正确的。但是,如果多个副本并发执行,代码就会出错。如果两个CPU同时执行`push`,如图6.1所示,两个CPU都可能在执行第16行之前执行第15行,这会导致如图6.2所示的不正确的结果。然后会有两个类型为`element`的列表元素使用`next`指针设置为`list`的前一个值。当两次执行位于第16行的对`list`的赋值时,第二次赋值将覆盖第一次赋值;第一次赋值中涉及的元素将丢失。 + +第16行丢失的更新是竞态条件(race condition)的一个例子。竞态条件是指多个进程读写某些共享数据(至少有一个访问是写入)的情况。竞争通常包含bug,要么丢失更新(如果访问是写入的),要么读取未完成更新的数据结构。竞争的结果取决于进程在处理器运行的确切时机以及内存系统如何排序它们的内存操作,这可能会使竞争引起的错误难以复现和调试。例如,在调试`push`时添加`printf`语句可能会改变执行的时间,从而使竞争消失。 + +避免竞争的通常方法是使用锁。锁确保互斥,这样一次只有一个CPU可以执行`push`中敏感的代码行;这使得上述情况不可能发生。上面代码的正确上锁版本只添加了几行(用黄色突出显示): + +```c +struct element { + int data; + struct element *next; +}; + +struct element *list = 0; +struct lock listlock; + +void +push(int data) +{ + struct element *l; + + l = malloc(sizeof *l); + l->data = data; + acquire(&listlock); + l->next = list; + list = l; + release(&listlock); +} +``` + +`acquire`和`release`之间的指令序列通常被称为临界区域(critical section)。锁的作用通常被称为保护`list`。 + +当我们说锁保护数据时,我们实际上是指锁保护适用于数据的某些不变量集合。不变量是跨操作维护的数据结构的属性。通常,操作的正确行为取决于操作开始时不变量是否为真。操作可能暂时违反不变量,但必须在完成之前重新建立它们。例如,在链表的例子中,不变量是`list`指向列表中的第一个元素,以及每个元素的`next`字段指向下一个元素。`push`的实现暂时违反了这个不变量:在第17行,`l->next`指向`list`(注:则此时`list`不再指向列表中的第一个元素,即违反了不变量),但是`list`还没有指向`l`(在第18行重新建立)。我们上面检查的竞态条件发生了,因为第二个CPU执行了依赖于列表不变量的代码,而这些代码(暂时)被违反了。正确使用锁可以确保每次只有一个CPU可以对临界区域中的数据结构进行操作,因此当数据结构的不变量不成立时,将没有其他CPU对数据结构执行操作。 + +您可以将锁视为串行化(serializing)并发的临界区域,以便同时只有一个进程在运行这部分代码,从而维护不变量(假设临界区域设定了正确的隔离性)。您还可以将由同一锁保护的临界区域视为彼此之间的原子,即彼此之间只能看到之前临界区域的完整更改集,而永远看不到部分完成的更新。 + +尽管正确使用锁可以改正不正确的代码,但锁限制了性能。例如,如果两个进程并发调用`kfree`,锁将串行化这两个调用,我们在不同的CPU上运行它们没有任何好处。如果多个进程同时想要相同的锁或者锁经历了争用,则称之为发生冲突(conflict)。内核设计中的一个主要挑战是避免锁争用。Xv6为此几乎没做任何工作,但是复杂的内核会精心设计数据结构和算法来避免锁的争用。在链表示例中,内核可能会为每个CPU维护一个空闲列表,并且只有当CPU的列表为空并且必须从另一个CPU挪用内存时才会触及另一个CPU的空闲列表。其他用例可能需要更复杂的设计。 + +锁的位置对性能也很重要。例如,在`push`中把`acquire`的位置提前也是正确的:将`acquire`移动到第13行之前完全没问题。但这样对`malloc`的调用也会被串行化,从而降低了性能。下面的《使用锁》一节提供了一些关于在哪里插入`acquire`和`release`调用的指导方针。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s2.md b/tranlate_books/book-riscv-rev1/c6/s2.md new file mode 100644 index 0000000..cb7ca64 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s2.md @@ -0,0 +1,26 @@ +# 6.2 代码:Locks + +Xv6有两种类型的锁:自旋锁(spinlocks)和睡眠锁(sleep-locks)。我们将从自旋锁(注:自旋,即循环等待)开始。Xv6将自旋锁表示为`struct spinlock` (***kernel/spinlock.h***:2)。结构体中的重要字段是`locked`,当锁可用时为零,当它被持有时为非零。从逻辑上讲,xv6应该通过执行以下代码来获取锁 + +```c +void +acquire(struct spinlock* lk) // does not work! +{ + for(;;) { + if(lk->locked == 0) { + lk->locked = 1; + break; + } + } +} +``` + +不幸的是,这种实现不能保证多处理器上的互斥。可能会发生两个CPU同时到达第5行,看到`lk->locked`为零,然后都通过执行第6行占有锁。此时就有两个不同的CPU持有锁,从而违反了互斥属性。我们需要的是一种方法,使第5行和第6行作为原子(即不可分割)步骤执行。 + +因为锁被广泛使用,多核处理器通常提供实现第5行和第6行的原子版本的指令。在RISC-V上,这条指令是`amoswap r, a`。`amoswap`读取内存地址`a`处的值,将寄存器`r`的内容写入该地址,并将其读取的值放入`r`中。也就是说,它交换寄存器和指定内存地址的内容。它原子地执行这个指令序列,使用特殊的硬件来防止任何其他CPU在读取和写入之间使用内存地址。 + +Xv6的`acquire`(***kernel/spinlock.c***:22)使用可移植的C库调用归结为`amoswap`的指令`__sync_lock_test_and_set`;返回值是`lk->locked`的旧(交换了的)内容。`acquire`函数将swap包装在一个循环中,直到它获得了锁前一直重试(自旋)。每次迭代将1与`lk->locked`进行swap操作,并检查`lk->locked`之前的值。如果之前为0,swap已经把`lk->locked`设置为1,那么我们就获得了锁;如果前一个值是1,那么另一个CPU持有锁,我们原子地将1与`lk->locked`进行swap的事实并没有改变它的值。 + +获取锁后,用于调试,`acquire`将记录下来获取锁的CPU。`lk->cpu`字段受锁保护,只能在保持锁时更改。 + +函数`release`(***kernel/spinlock.c***:47) 与`acquire`相反:它清除`lk->cpu`字段,然后释放锁。从概念上讲,`release`只需要将0分配给`lk->locked`。C标准允许编译器用多个存储指令实现赋值,因此对于并发代码,C赋值可能是非原子的。因此`release`使用执行原子赋值的C库函数`__sync_lock_release`。该函数也可以归结为RISC-V的`amoswap`指令。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s3.md b/tranlate_books/book-riscv-rev1/c6/s3.md new file mode 100644 index 0000000..bade155 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s3.md @@ -0,0 +1,31 @@ +# 6.3 代码:使用锁 + +Xv6在许多地方使用锁来避免竞争条件(race conditions)。如上所述,`kalloc`(***kernel/kalloc.c***:69)和`kfree`(***kernel/kalloc.c***:47)就是一个很好的例子。尝试练习1和练习2,看看如果这些函数省略了锁会发生什么。你可能会发现很难触发不正确的行为,这表明很难可靠地测试代码是否经历了锁错误和竞争后被释放。xv6有一些竞争是有可能发生的。 + +使用锁的一个困难部分是决定要使用多少锁,以及每个锁应该保护哪些数据和不变量。有几个基本原则。首先,任何时候可以被一个CPU写入,同时又可以被另一个CPU读写的变量,都应该使用锁来防止两个操作重叠。其次,请记住锁保护不变量(invariants):如果一个不变量涉及多个内存位置,通常所有这些位置都需要由一个锁来保护,以确保不变量不被改变。 + +上面的规则说什么时候需要锁,但没有说什么时候不需要锁。为了提高效率,不要向太多地方上锁是很重要的,因为锁会降低并行性。如果并行性不重要,那么可以安排只拥有一个线程,而不用担心锁。一个简单的内核可以在多处理器上做到这一点,方法是拥有一个锁,这个锁必须在进入内核时获得,并在退出内核时释放(尽管如管道读取或`wait`的系统调用会带来问题)。许多单处理器操作系统已经被转换为使用这种方法在多处理器上运行,有时被称为“大内核锁(big kernel lock)”,但是这种方法牺牲了并行性:一次只能有一个CPU运行在内核中。如果内核做一些繁重的计算,使用一组更细粒度的锁的集合会更有效率,这样内核就可以同时在多个处理器上执行。 + +作为粗粒度锁的一个例子,xv6的***kalloc.c***分配器有一个由单个锁保护的空闲列表。如果不同CPU上的多个进程试图同时分配页面,每个进程在获得锁之前将必须在`acquire`中自旋等待。自旋会降低性能,因为它只是无用的等待。如果对锁的争夺浪费了很大一部分CPU时间,也许可以通过改变分配器的设计来提高性能,使其拥有多个空闲列表,每个列表都有自己的锁,以允许真正的并行分配。 + +作为细粒度锁定的一个例子,xv6对每个文件都有一个单独的锁,这样操作不同文件的进程通常可以不需等待彼此的锁而继续进行。文件锁的粒度可以进一步细化,以允许进程同时写入同一个文件的不同区域。最终的锁粒度决策需要由性能测试和复杂性考量来驱动。 + +在后面的章节解释xv6的每个部分时,他们将提到xv6使用锁来处理并发的例子。作为预览,表6.3列出了xv6中的所有锁。 + +| **锁** | **描述** | +| --------------------- | ------------------------------------------------------ | +| `bcache.lock` | 保护块缓冲区缓存项(block buffer cache entries)的分配 | +| `cons.lock` | 串行化对控制台硬件的访问,避免混合输出 | +| `ftable.lock` | 串行化文件表中文件结构体的分配 | +| `icache.lock ` | 保护索引结点缓存项(inode cache entries)的分配 | +| `vdisk_lock ` | 串行化对磁盘硬件和DMA描述符队列的访问 | +| `kmem.lock ` | 串行化内存分配 | +| `log.lock` | 串行化事务日志操作 | +| 管道的`pi->lock` | 串行化每个管道的操作 | +| `pid_lock` | 串行化next_pid的增量 | +| 进程的`p->lock` | 串行化进程状态的改变 | +| `tickslock` | 串行化时钟计数操作 | +| 索引结点的 `ip->lock` | 串行化索引结点及其内容的操作 | +| 缓冲区的`b->lock` | 串行化每个块缓冲区的操作 | + +​ Figure 6.3: Locks in xv6 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s4.md b/tranlate_books/book-riscv-rev1/c6/s4.md new file mode 100644 index 0000000..8e30cea --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s4.md @@ -0,0 +1,7 @@ +# 6.4 死锁和锁排序 + +如果在内核中执行的代码路径必须同时持有数个锁,那么所有代码路径以相同的顺序获取这些锁是很重要的。如果它们不这样做,就有死锁的风险。假设xv6中的两个代码路径需要锁A和B,但是代码路径1按照先A后B的顺序获取锁,另一个路径按照先B后A的顺序获取锁。假设线程T1执行代码路径1并获取锁A,线程T2执行代码路径2并获取锁B。接下来T1将尝试获取锁B,T2将尝试获取锁A。两个获取都将无限期阻塞,因为在这两种情况下,另一个线程都持有所需的锁,并且不会释放它,直到它的获取返回。为了避免这种死锁,所有代码路径必须以相同的顺序获取锁。全局锁获取顺序的需求意味着锁实际上是每个函数规范的一部分:调用者必须以一种使锁按照约定顺序被获取的方式调用函数。 + +由于`sleep`的工作方式(见第7章),Xv6有许多包含每个进程的锁(每个`struct proc`中的锁)在内的长度为2的锁顺序链。例如,`consoleintr` (***kernel/console.c***:138)是处理键入字符的中断例程。当换行符到达时,任何等待控制台输入的进程都应该被唤醒。为此,`consoleintr`在调用`wakeup`时持有`cons.lock`,`wakeup`获取等待进程的锁以唤醒它。因此,全局避免死锁的锁顺序包括必须在任何进程锁之前获取`cons.lock`的规则。文件系统代码包含xv6最长的锁链。例如,创建一个文件需要同时持有目录上的锁、新文件inode上的锁、磁盘块缓冲区上的锁、磁盘驱动程序的`vdisk_lock`和调用进程的`p->lock`。为了避免死锁,文件系统代码总是按照前一句中提到的顺序获取锁。 + +遵守全局死锁避免的顺序可能会出人意料地困难。有时锁顺序与逻辑程序结构相冲突,例如,也许代码模块M1调用模块M2,但是锁顺序要求在M1中的锁之前获取M2中的锁。有时锁的身份是事先不知道的,也许是因为必须持有一个锁才能发现下一个要获取的锁的身份。这种情况在文件系统中出现,因为它在路径名称中查找连续的组件,也在`wait`和`exit`代码中出现,因为它们在进程表中寻找子进程。最后,死锁的危险通常是对细粒度锁定方案的限制,因为更多的锁通常意味着更多的死锁可能性。避免死锁的需求通常是内核实现中的一个主要因素。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s5.md b/tranlate_books/book-riscv-rev1/c6/s5.md new file mode 100644 index 0000000..517e2c1 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s5.md @@ -0,0 +1,11 @@ +# 6.5 锁和中断处理函数 + +一些xv6自旋锁保护线程和中断处理程序共用的数据。例如,`clockintr`定时器中断处理程序在增加`ticks`(***kernel/trap.c***:163)的同时内核线程可能在`sys_sleep `(***kernel/sysproc.c***:64)中读取`ticks`。锁`tickslock`串行化这两个访问。 + +自旋锁和中断的交互引发了潜在的危险。假设`sys_sleep`持有`tickslock`,并且它的CPU被计时器中断中断。`clockintr`会尝试获取`tickslock`,意识到它被持有后等待释放。在这种情况下,`tickslock`永远不会被释放:只有`sys_sleep`可以释放它,但是`sys_sleep`直到`clockintr`返回前不能继续运行。所以CPU会死锁,任何需要锁的代码也会冻结。 + +为了避免这种情况,如果一个自旋锁被中断处理程序所使用,那么CPU必须保证在启用中断的情况下永远不能持有该锁。Xv6更保守:当CPU获取任何锁时,xv6总是禁用该CPU上的中断。中断仍然可能发生在其他CPU上,此时中断的`acquire`可以等待线程释放自旋锁;由于不在同一CPU上,不会造成死锁。 + +当CPU未持有自旋锁时,xv6重新启用中断;它必须做一些记录来处理嵌套的临界区域。`acquire`调用`push_off` (***kernel/spinlock.c***:89) 并且`release`调用`pop_off` (***kernel/spinlock.c***:100)来跟踪当前CPU上锁的嵌套级别。当计数达到零时,`pop_off`恢复最外层临界区域开始时存在的中断使能状态。`intr_off`和`intr_on`函数执行RISC-V指令分别用来禁用和启用中断。 + +严格的在设置`lk->locked` (***kernel/spinlock.c***:28)之前让`acquire`调用`push_off`是很重要的。如果两者颠倒,会存在一个既持有锁又启用了中断的短暂窗口期,不幸的话定时器中断会使系统死锁。同样,只有在释放锁之后,`release`才调用`pop_off`也是很重要的(***kernel/spinlock.c***:66)。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s6.md b/tranlate_books/book-riscv-rev1/c6/s6.md new file mode 100644 index 0000000..1b5ad45 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s6.md @@ -0,0 +1,20 @@ +# 6.6 指令和内存访问排序 + +人们很自然地会想到程序是按照源代码语句出现的顺序执行的。然而,许多编译器和中央处理器为了获得更高的性能而不按顺序执行代码。如果一条指令需要许多周期才能完成,中央处理器可能会提前发出指令,这样它就可以与其他指令重叠,避免中央处理器停顿。例如,中央处理器可能会注意到在顺序指令序列A和B中彼此不存在依赖。CPU也许首先启动指令B,或者是因为它的输入先于A的输入准备就绪,或者是为了重叠执行A和B。编译器可以执行类似的重新排序,方法是在源代码中一条语句的指令发出之前,先发出另一条语句的指令。 + +编译器和CPU在重新排序时需要遵循一定规则,以确保它们不会改变正确编写的串行代码的结果。然而,规则确实允许重新排序后改变并发代码的结果,并且很容易导致多处理器上的不正确行为。CPU的排序规则称为内存模型(memory model)。 + +例如,在`push`的代码中,如果编译器或CPU将对应于第4行的存储指令移动到第6行`release`后的某个地方,那将是一场灾难: + +```c +l = malloc(sizeof *l); +l->data = data; +acquire(&listlock); +l->next = list; +list = l; +release(&listlock); +``` + +如果发生这样的重新排序,将会有一个窗口期,另一个CPU可以获取锁并查看更新后的`list`,但却看到一个未初始化的`list->next`。 + +为了告诉硬件和编译器不要执行这样的重新排序,xv6在`acquire`(***kernel/spinlock.c***:22) 和`release`(***kernel/spinlock.c***:47)中都使用了`__sync_synchronize()`。`__sync_synchronize()`是一个内存障碍:它告诉编译器和CPU不要跨障碍重新排序`load`或`store`指令。因为xv6在访问共享数据时使用了锁,xv6的`acquire`和`release`中的障碍在几乎所有重要的情况下都会强制顺序执行。第9章讨论了一些例外。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s7.md b/tranlate_books/book-riscv-rev1/c6/s7.md new file mode 100644 index 0000000..3cea687 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s7.md @@ -0,0 +1,9 @@ +# 6.7 睡眠锁 + +有时xv6需要长时间保持锁。例如,文件系统(第8章)在磁盘上读写文件内容时保持文件锁定,这些磁盘操作可能需要几十毫秒。如果另一个进程想要获取自旋锁,那么长时间保持自旋锁会导致获取进程在自旋时浪费很长时间的CPU。自旋锁的另一个缺点是,一个进程在持有自旋锁的同时不能让出(yield)CPU,然而我们希望持有锁的进程等待磁盘I/O的时候其他进程可以使用CPU。持有自旋锁时让步是非法的,因为如果第二个线程试图获取自旋锁,就可能导致死锁:因为`acquire`不会让出CPU,第二个线程的自旋可能会阻止第一个线程运行并释放锁。在持有锁时让步也违反了在持有自旋锁时中断必须关闭的要求。因此,我们想要一种锁,它在等待获取锁时让出CPU,并允许在持有锁时让步(以及中断)。 + +Xv6以睡眠锁(sleep-locks)的形式提供了这种锁。`acquiresleep` (***kernel/sleeplock.c***:22) 在等待时让步CPU,使用的技术将在第7章中解释。在更高层次上,睡眠锁有一个被自旋锁保护的锁定字段,`acquiresleep`对`sleep`的调用原子地让出CPU并释放自旋锁。结果是其他线程可以在`acquiresleep`等待时执行。 + +因为睡眠锁保持中断使能,所以它们不能用在中断处理程序中。因为`acquiresleep`可能会让出CPU,所以睡眠锁不能在自旋锁临界区域中使用(尽管自旋锁可以在睡眠锁临界区域中使用)。 + +因为等待会浪费CPU时间,所以自旋锁最适合短的临界区域;睡眠锁对于冗长的操作效果很好。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s8.md b/tranlate_books/book-riscv-rev1/c6/s8.md new file mode 100644 index 0000000..5b2349b --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s8.md @@ -0,0 +1,11 @@ +# 6.8 真实世界 + +尽管对并发原语和并行性进行了多年的研究,但使用锁进行编程仍然具有挑战性。通常最好将锁隐藏在更高级别的结构中,如同步队列,尽管xv6没有这样做。如果您使用锁进行编程,明智的做法是使用试图识别竞争条件(race conditions)的工具,因为很容易错过需要锁的不变量。 + +大多数操作系统都支持POSIX线程(Pthread),它允许一个用户进程在不同的CPU上同时运行几个线程。Pthread支持用户级锁(user-level locks)、障碍(barriers)等。支持Pthread需要操作系统的支持。例如,应该是这样的情况,如果一个Pthread在系统调用中阻塞,同一进程的另一个Pthread应当能够在该CPU上运行。另一个例子是,如果一个线程改变了其进程的地址空间(例如,映射或取消映射内存),内核必须安排运行同一进程下的线程的其他CPU更新其硬件页表,以反映地址空间的变化。 + +没有原子指令实现锁是可能的,但是代价昂贵,并且大多数操作系统使用原子指令。 + +如果许多CPU试图同时获取相同的锁,可能会付出昂贵的开销。如果一个CPU在其本地cache中缓存了一个锁,而另一个CPU必须获取该锁,那么更新保存该锁的cache行的原子指令必须将该行从一个CPU的cache移动到另一个CPU的cache中,并且可能会使cache行的任何其他副本无效。从另一个CPU的cache中获取cache行可能比从本地cache中获取一行的代价要高几个数量级。 + +为了避免与锁相关的开销,许多操作系统使用无锁的数据结构和算法。例如,可以实现一个像本章开头那样的链表,在列表搜索期间不需要锁,并且使用一个原子指令在一个列表中插入一个条目。然而,无锁编程比有锁编程更复杂;例如,人们必须担心指令和内存重新排序。有锁编程已经很难了,所以xv6避免了无锁编程的额外复杂性。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c6/s9.md b/tranlate_books/book-riscv-rev1/c6/s9.md new file mode 100644 index 0000000..2ccb819 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c6/s9.md @@ -0,0 +1,8 @@ +# 6.9 练习 + +1. 注释掉在`kalloc`中对`acquire`和`release`的调用。这似乎会给调用`kalloc`的内核代码带来问题;你希望看到什么症状?当你运行xv6时,你看到这些症状了吗?运行`usertests`时呢?如果你没有看到问题是为什么呢?看看你是否可以通过在`kalloc`的临界区域插入虚拟循环来引发问题。 +2. 假设您将`kfree`中的锁注释掉(在`kalloc`中恢复锁之后)。现在可能会出什么问题?`kfree`中缺少锁比`kalloc`中缺少锁的危害小吗? +3. 如果两个CPU同时调用`kalloc`,则其中一个不得不等待另一个,这对性能不利。修改***kalloc.c***以具有更多的并行性,这样不同CPU对`kalloc`的同时调用就可以进行,而不需要相互等待。 +4. 使用POSIX线程编写一个并行程序,大多数操作系统都支持这种程序。例如,实现一个并行哈希表,并测量puts/gets的数量是否随着内核数量的增加而缩放。 +5. 在xv6中实现Pthread的一个子集。也就是说,实现一个用户级线程库,这样一个用户进程可以有1个以上的线程,并安排这些线程可以在不同的CPU上并行运行。想出一个正确处理线程发出阻塞系统调用并改变其共享地址空间的方案。 + diff --git a/tranlate_books/book-riscv-rev1/c7/s0.md b/tranlate_books/book-riscv-rev1/c7/s0.md new file mode 100644 index 0000000..27ebddb --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s0.md @@ -0,0 +1,3 @@ +# 第七章 调度 + +任何操作系统都可能运行比CPU数量更多的进程,所以需要一个进程间分时共享CPU的方案。这种共享最好对用户进程透明。一种常见的方法是,通过将进程多路复用到硬件CPU上,使每个进程产生一种错觉,即它有自己的虚拟CPU。本章解释了XV6如何实现这种多路复用。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s1.md b/tranlate_books/book-riscv-rev1/c7/s1.md new file mode 100644 index 0000000..ee2cc78 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s1.md @@ -0,0 +1,5 @@ +# 7.1 多路复用 + +Xv6通过在两种情况下将每个CPU从一个进程切换到另一个进程来实现多路复用(Multiplexing)。第一:当进程等待设备或管道I/O完成,或等待子进程退出,或在`sleep`系统调用中等待时,xv6使用睡眠(sleep)和唤醒(wakeup)机制切换。第二:xv6周期性地强制切换以处理长时间计算而不睡眠的进程。这种多路复用产生了每个进程都有自己的CPU的错觉,就像xv6使用内存分配器和硬件页表来产生每个进程都有自己内存的错觉一样。 + +实现多路复用带来了一些挑战。首先,如何从一个进程切换到另一个进程?尽管上下文切换的思想很简单,但它的实现是xv6中最不透明的代码之一。第二,如何以对用户进程透明的方式强制切换?Xv6使用标准技术,通过定时器中断驱动上下文切换。第三,许多CPU可能同时在进程之间切换,使用一个用锁方案来避免争用是很有必要的。第四,进程退出时必须释放进程的内存以及其他资源,但它不能自己完成所有这一切,因为(例如)它不能在仍然使用自己内核栈的情况下释放它。第五,多核机器的每个核心必须记住它正在执行哪个进程,以便系统调用正确影响对应进程的内核状态。最后,`sleep`允许一个进程放弃CPU,`wakeup`允许另一个进程唤醒第一个进程。需要小心避免导致唤醒通知丢失的竞争。Xv6试图尽可能简单地解决这些问题,但结果代码很复杂。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s10.md b/tranlate_books/book-riscv-rev1/c7/s10.md new file mode 100644 index 0000000..fefa723 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s10.md @@ -0,0 +1,27 @@ +# 7.10 练习 + +1. `Sleep `必须检查`lk != &p->lock`来避免死锁(***kernel/proc.c***:558-561). 假设通过将 + +```c +if(lk != &p->lock) { + acquire(&p->lock); + release(lk); +} +``` + +替换为 + +```c +release(lk); +acquire(&p->lock); +``` + +来消除特殊情况,这样做将会破坏`sleep`。是如何破坏的呢? + +1. 大多数进程清理可以通过`exit`或`wait`来完成。事实证明,必须是`exit`作为关闭打开的文件的那个。为什么?答案涉及管道。 +2. 在xv6中实现信号量而不使用`sleep`和`wakeup`(但可以使用自旋锁)。用信号量取代xv6中`sleep`和`wakeup`的使用。判断结果。 +3. 修复上面提到的`kill`和`sleep`之间的竞争,这样在受害者的`sleep`循环检查`p->killed`之后但在调用`sleep`之前发生的`kill`会导致受害者放弃当前系统调用。 +4. 设计一个计划,使每个睡眠循环检查`p->killed`,这样,例如,virtio驱动程序中的一个进程可以在被另一个进程终止时从while循环快速返回。 +5. 修改xv6,使其在从一个进程的内核线程切换到另一个线程时仅使用一次上下文切换,而不是通过调度器线程进行切换。屈服(yield)线程需要选择下一个线程本身并调用`swtch`。挑战在于:防止多个内核意外执行同一个线程;获得正确的锁;避免死锁。 +6. 修改xv6的调度程序,以便在没有进程可运行时使用RISC-V的`WFI`(wait for interrupt,等待中断)指令。尽量确保在任何时候有可运行的进程等待运行时,没有核心在`WFI`中暂停。 +7. 锁`p->lock`保护许多不变量,当查看受`p->lock`保护的特定xv6代码段时,可能很难确定保护的是哪个不变量。通过将`p->lock`拆分为多个锁,设计一个更清晰的计划。 diff --git a/tranlate_books/book-riscv-rev1/c7/s2.md b/tranlate_books/book-riscv-rev1/c7/s2.md new file mode 100644 index 0000000..e9b5b77 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s2.md @@ -0,0 +1,42 @@ +# 7.2 代码:上下文切换 + +![img](../images/c7/p1.png) + +图7.1概述了从一个用户进程(旧进程)切换到另一个用户进程(新进程)所涉及的步骤:一个到旧进程内核线程的用户-内核转换(系统调用或中断),一个到当前CPU调度程序线程的上下文切换,一个到新进程内核线程的上下文切换,以及一个返回到用户级进程的陷阱。调度程序在旧进程的内核栈上执行是不安全的:其他一些核心可能会唤醒进程并运行它,而在两个不同的核心上使用同一个栈将是一场灾难,因此xv6调度程序在每个CPU上都有一个专用线程(保存寄存器和栈)。在本节中,我们将研究在内核线程和调度程序线程之间切换的机制。 + +从一个线程切换到另一个线程需要保存旧线程的CPU寄存器,并恢复新线程先前保存的寄存器;栈指针和程序计数器被保存和恢复的事实意味着CPU将切换栈和执行中的代码。 + +函数`swtch`为内核线程切换执行保存和恢复操作。`swtch`对线程没有直接的了解;它只是保存和恢复寄存器集,称为上下文(contexts)。当某个进程要放弃CPU时,该进程的内核线程调用`swtch`来保存自己的上下文并返回到调度程序的上下文。每个上下文都包含在一个`struct context`(***kernel/proc.h***:2)中,这个结构体本身包含在一个进程的`struct proc`或一个CPU的`struct cpu`中。`Swtch`接受两个参数:`struct context *old`和`struct context *new`。它将当前寄存器保存在`old`中,从`new`中加载寄存器,然后返回。 + +让我们跟随一个进程通过`swtch`进入调度程序。我们在第4章中看到,中断结束时的一种可能性是`usertrap`调用了`yield`。依次地:`Yield`调用`sched`,`sched`调用`swtch`将当前上下文保存在`p->context`中,并切换到先前保存在`cpu->scheduler`(***kernel/proc.c***:517)中的调度程序上下文。 + +> 注:当前版本的XV6中调度程序上下文是`cpu->context` + +`Swtch`(***kernel/swtch.S***:3)只保存被调用方保存的寄存器(callee-saved registers);调用方保存的寄存器(caller-saved registers)通过调用C代码保存在栈上(如果需要)。`Swtch`知道`struct context`中每个寄存器字段的偏移量。它不保存程序计数器。但`swtch`保存`ra`寄存器,该寄存器保存调用`swtch`的返回地址。现在,`swtch`从新进程的上下文中恢复寄存器,该上下文保存前一个`swtch`保存的寄存器值。当`swtch`返回时,它返回到由`ra`寄存器指定的指令,即新线程以前调用`swtch`的指令。另外,它在新线程的栈上返回。 + +> 注:关于callee-saved registers和caller-saved registers请回看视频课程LEC5以及文档《Calling Convention》 + +> [!NOTE] +> 这里不太容易理解,这里举个课程视频中的例子: +> +> **以`cc`切换到`ls`为例,且`ls`此前运行过** +> +> 1. XV6将`cc`程序的内核线程的内核寄存器保存在一个`context`对象中 +> +> 2. 因为要切换到`ls`程序的内核线程,那么`ls` 程序现在的状态必然是`RUNABLE` ,表明`ls`程序之前运行了一半。这同时也意味着: +> +> a. `ls`程序的用户空间状态已经保存在了对应的trapframe中 +> +> b. `ls`程序的内核线程对应的内核寄存器已经保存在对应的`context`对象中 +> +> 所以接下来,XV6会恢复`ls`程序的内核线程的`context`对象,也就是恢复内核线程的寄存器。 +> +> 3. 之后`ls`会继续在它的内核线程栈上,完成它的中断处理程序 +> 4. 恢复`ls`程序的trapframe中的用户进程状态,返回到用户空间的`ls`程序中 +> 5. 最后恢复执行`ls` + +在我们的示例中,`sched`调用`swtch`切换到`cpu->scheduler`,即每个CPU的调度程序上下文。调度程序上下文之前通过`scheduler`对`swtch`(***kernel/proc.c***:475)的调用进行了保存。当我们追踪`swtch`到返回时,他返回到`scheduler`而不是`sched`,并且它的栈指针指向当前CPU的调用程序栈(scheduler stack)。 + + + + \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s3.md b/tranlate_books/book-riscv-rev1/c7/s3.md new file mode 100644 index 0000000..14b22d7 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s3.md @@ -0,0 +1,17 @@ +# 7.3 代码:调度 + +上一节介绍了`swtch`的底层细节;现在,让我们以`swtch`为给定对象,检查从一个进程的内核线程通过调度程序切换到另一个进程的情况。调度器(scheduler)以每个CPU上一个特殊线程的形式存在,每个线程都运行`scheduler`函数。此函数负责选择下一个要运行的进程。想要放弃CPU的进程必须先获得自己的进程锁`p->lock`,并释放它持有的任何其他锁,更新自己的状态(`p->state`),然后调用`sched`。`Yield`(***kernel/proc.c***:515)遵循这个约定,`sleep`和`exit`也遵循这个约定,我们将在后面进行研究。`Sched`对这些条件再次进行检查(***kernel/proc.c***:499-504),并检查这些条件的隐含条件:由于锁被持有,中断应该被禁用。最后,`sched`调用`swtch`将当前上下文保存在`p->context`中,并切换到`cpu->scheduler`中的调度程序上下文。`Swtch`在调度程序的栈上返回,就像是`scheduler`的`swtch`返回一样。`scheduler`继续`for`循环,找到要运行的进程,切换到该进程,重复循环。 + +我们刚刚看到,xv6在对`swtch`的调用中持有`p->lock`:`swtch`的调用者必须已经持有了锁,并且锁的控制权传递给切换到的代码。这种约定在锁上是不寻常的;通常,获取锁的线程还负责释放锁,这使得对正确性进行推理更加容易。对于上下文切换,有必要打破这个惯例,因为`p->lock`保护进程`state`和`context`字段上的不变量,而这些不变量在`swtch`中执行时不成立。如果在`swtch`期间没有保持`p->lock`,可能会出现一个问题:在`yield`将其状态设置为`RUNNABLE`之后,但在`swtch`使其停止使用自己的内核栈之前,另一个CPU可能会决定运行该进程。结果将是两个CPU在同一栈上运行,这不可能是正确的。 + +内核线程总是在`sched`中放弃其CPU,并总是切换到调度程序中的同一位置,而调度程序(几乎)总是切换到以前调用`sched`的某个内核线程。因此,如果要打印xv6切换线程处的行号,将观察到以下简单模式:(***kernel/proc.c***:475),(***kernel/proc.c***:509),(***kernel/proc.c***:475),(***kernel/proc.c***:509)等等。在两个线程之间进行这种样式化切换的过程有时被称为协程(coroutines);在本例中,`sched`和`scheduler`是彼此的协同程序。 + +存在一种情况使得调度程序对`swtch`的调用没有以`sched`结束。一个新进程第一次被调度时,它从`forkret`(***kernel/proc.c***:527)开始。`Forkret`存在以释放`p->lock`;否则,新进程可以从`usertrapret`开始。 + +`scheduler`(***kernel/proc.c***:457)运行一个简单的循环:找到要运行的进程,运行它直到它让步,然后重复循环。`scheduler`在进程表上循环查找可运行的进程,该进程具有`p->state == RUNNABLE`。一旦找到一个进程,它将设置CPU当前进程变量`c->proc`,将该进程标记为`RUNINING`,然后调用`swtch`开始运行它(***kernel/proc.c***:470-475)。 + +考虑调度代码结构的一种方法是,它为每个进程强制维持一个不变量的集合,并在这些不变量不成立时持有`p->lock`。其中一个不变量是:如果进程是`RUNNING`状态,计时器中断的`yield`必须能够安全地从进程中切换出去;这意味着CPU寄存器必须保存进程的寄存器值(即`swtch`没有将它们移动到`context`中),并且`c->proc`必须指向进程。另一个不变量是:如果进程是`RUNNABLE`状态,空闲CPU的调度程序必须安全地运行它;这意味着`p->context`必须保存进程的寄存器(即,它们实际上不在实际寄存器中),没有CPU在进程的内核栈上执行,并且没有CPU的`c->proc`引用进程。请注意,在保持`p->lock`时,这些属性通常不成立。 + +维护上述不变量是xv6经常在一个线程中获取`p->lock`并在另一个线程中释放它的原因,例如在`yield`中获取并在`scheduler`中释放。一旦`yield`开始修改一个`RUNNING`进程的状态为`RUNNABLE`,锁必须保持被持有状态,直到不变量恢复:最早的正确释放点是`scheduler`(在其自身栈上运行)清除`c->proc`之后。类似地,一旦`scheduler`开始将`RUNNABLE`进程转换为`RUNNING`,在内核线程完全运行之前(在`swtch`之后,例如在`yield`中)绝不能释放锁。 + +`p->lock`还保护其他东西:`exit`和`wait`之间的相互作用,避免丢失`wakeup`的机制(参见第7.5节),以及避免一个进程退出和其他进程读写其状态之间的争用(例如,`exit`系统调用查看`p->pid`并设置`p->killed`(***kernel/proc.c***:611))。为了清晰起见,也许为了性能起见,有必要考虑一下`p->lock`的不同功能是否可以拆分。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s4.md b/tranlate_books/book-riscv-rev1/c7/s4.md new file mode 100644 index 0000000..0747f1c --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s4.md @@ -0,0 +1,11 @@ +# 7.4 代码:mycpu和myproc + +Xv6通常需要指向当前进程的`proc`结构体的指针。在单处理器系统上,可以有一个指向当前`proc`的全局变量。但这不能用于多核系统,因为每个核执行的进程不同。解决这个问题的方法是基于每个核心都有自己的寄存器集,从而使用其中一个寄存器来帮助查找每个核心的信息。 + +Xv6为每个CPU维护一个`struct cpu`,它记录当前在该CPU上运行的进程(如果有的话),为CPU的调度线程保存寄存器,以及管理中断禁用所需的嵌套自旋锁的计数。函数`mycpu` (***kernel/proc.c***:60)返回一个指向当前CPU的`struct cpu`的指针。RISC-V给它的CPU编号,给每个CPU一个`hartid`。Xv6确保每个CPU的`hartid`在内核中存储在该CPU的`tp`寄存器中。这允许`mycpu`使用`tp`对一个cpu结构体数组(即`cpus`数组,***kernel/proc.c***:9)进行索引,以找到正确的那个。 + +确保CPU的`tp`始终保存CPU的`hartid`有点麻烦。`mstart`在CPU启动次序的早期设置`tp`寄存器,此时仍处于机器模式(***kernel/start.c***:46)。因为用户进程可能会修改`tp`,`usertrapret`在蹦床页面(trampoline page)中保存`tp`。最后,`uservec`在从用户空间(***kernel/trampoline.S***:70)进入内核时恢复保存的`tp`。编译器保证永远不会使用`tp`寄存器。如果RISC-V允许xv6`直接读取当前hartid会更方便,`但这只允许在机器模式下,而不允许在管理模式下。 + +`cpuid`和`mycpu`的返回值很脆弱:如果定时器中断并导致线程让步(yield),然后移动到另一个CPU,以前返回的值将不再正确。为了避免这个问题,xv6要求调用者禁用中断,并且只有在使用完返回的`struct cpu`后才重新启用。 + +函数`myproc` (***kernel/proc.c***:68)返回当前CPU上运行进程`struct proc`的指针。`myproc`禁用中断,调用`mycpu`,从`struct cpu`中取出当前进程指针(`c->proc`),然后启用中断。即使启用中断,`myproc`的返回值也可以安全使用:如果计时器中断将调用进程移动到另一个CPU,其`struct proc`指针不会改变。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s5.md b/tranlate_books/book-riscv-rev1/c7/s5.md new file mode 100644 index 0000000..493f5ed --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s5.md @@ -0,0 +1,92 @@ +# 7.5 sleep与wakeup + +调度和锁有助于隐藏一个进程对另一个进程的存在,但到目前为止,我们还没有帮助进程进行有意交互的抽象。为解决这个问题已经发明了许多机制。Xv6使用了一种称为`sleep`和`wakeup`的方法,它允许一个进程在等待事件时休眠,而另一个进程在事件发生后将其唤醒。睡眠和唤醒通常被称为序列协调(sequence coordination)或条件同步机制(conditional synchronization mechanisms)。 + +为了说明,让我们考虑一个称为信号量(semaphore)的同步机制,它可以协调生产者和消费者。信号量维护一个计数并提供两个操作。“V”操作(对于生产者)增加计数。“P”操作(对于使用者)等待计数为非零,然后递减并返回。如果只有一个生产者线程和一个消费者线程,并且它们在不同的CPU上执行,并且编译器没有进行过积极的优化,那么此实现将是正确的: + +```c +struct semaphore { + struct spinlock lock; + int count; +}; + +void V(struct semaphore* s) { + acquire(&s->lock); + s->count += 1; + release(&s->lock); +} + +void P(struct semaphore* s) { + while (s->count == 0) + ; + acquire(&s->lock); + s->count -= 1; + release(&s->lock); +} +``` + +上面的实现代价昂贵。如果生产者很少采取行动,消费者将把大部分时间花在`while`循环中,希望得到非零计数。消费者的CPU可以找到比通过反复轮询`s->count`繁忙等待更有成效的工作。要避免繁忙等待,消费者需要一种方法来释放CPU,并且只有在`V`增加计数后才能恢复。 + +这是朝着这个方向迈出的一步,尽管我们将看到这是不够的。让我们想象一对调用,`sleep`和`wakeup`,工作流程如下。`Sleep(chan)`在任意值`chan`上睡眠,称为等待通道(wait channel)。`Sleep`将调用进程置于睡眠状态,释放CPU用于其他工作。`Wakeup(chan)`唤醒所有在`chan`上睡眠的进程(如果有),使其`sleep`调用返回。如果没有进程在`chan`上等待,则`wakeup`不执行任何操作。我们可以将信号量实现更改为使用`sleep`和`wakeup`(更改的行添加了注释): + +```c +void V(struct semaphore* s) { + acquire(&s->lock); + s->count += 1; + wakeup(s); // !pay attention + release(&s->lock); +} + +void P(struct semaphore* s) { + while (s->count == 0) + sleep(s); // !pay attention + acquire(&s->lock); + s->count -= 1; + release(&s->lock); +} +``` + +`P`现在放弃CPU而不是自旋,这很好。然而,事实证明,使用此接口设计`sleep`和`wakeup`而不遭受所谓的丢失唤醒(lost wake-up)问题并非易事。假设`P`在第9行发现`s->count==0`。当`P`在第9行和第10行之间时,`V`在另一个CPU上运行:它将`s->count`更改为非零,并调用`wakeup`,这样就不会发现进程处于休眠状态,因此不会执行任何操作。现在P继续在第10行执行:它调用`sleep`并进入睡眠。这会导致一个问题:`P`正在休眠,等待调用`V`,而`V`已经被调用。除非我们运气好,生产者再次呼叫`V`,否则消费者将永远等待,即使`count`为非零。 + +这个问题的根源是`V`在错误的时刻运行,违反了`P`仅在`s->count==0`时才休眠的不变量。保护不变量的一种不正确的方法是将锁的获取(下面以黄色突出显示)移动到`P`中,以便其检查`count`和调用`sleep`是原子的: + +```c +void V(struct semaphore* s) { + acquire(&s->lock); + s->count += 1; + wakeup(s); + release(&s->lock); +} + +void P(struct semaphore* s) { + acquire(&s->lock); // !pay attention + while (s->count == 0) + sleep(s); + s->count -= 1; + release(&s->lock); +} +``` + +人们可能希望这个版本的`P`能够避免丢失唤醒,因为锁阻止`V`在第10行和第11行之间执行。它确实这样做了,但它会导致死锁:`P`在睡眠时持有锁,因此`V`将永远阻塞等待锁。 + +我们将通过更改`sleep`的接口来修复前面的方案:调用方必须将条件锁(condition lock)传递给sleep,以便在调用进程被标记为asleep并在睡眠通道上等待后`sleep`可以释放锁。如果有一个并发的`V`操作,锁将强制它在`P`将自己置于睡眠状态前一直等待,因此`wakeup`将找到睡眠的消费者并将其唤醒。一旦消费者再次醒来,`sleep`会在返回前重新获得锁。我们新的正确的`sleep/wakeup`方案可用如下(更改以黄色突出显示): + +```c +void V(struct semaphore* s) { + acquire(&s->lock); + s->count += 1; + wakeup(s); + release(&s->lock); +} + +void P(struct semaphore* s) { + acquire(&s->lock); + + while (s->count == 0) + sleep(s, &s->lock); // !pay attention + s->count -= 1; + release(&s->lock); +} +``` + +`P`持有`s->lock`的事实阻止`V`在`P`检查`s->count`和调用`sleep`之间试图唤醒它。然而请注意,我们需要`sleep`释放`s->lock`并使消费者进程进入睡眠状态的操作是原子的。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s6.md b/tranlate_books/book-riscv-rev1/c7/s6.md new file mode 100644 index 0000000..0233e9a --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s6.md @@ -0,0 +1,19 @@ +# 7.6 代码:sleep和wakeup + +让我们看看`sleep`(***kernel/proc.c***:548)和`wakeup`(***kernel/proc.c***:582)的实现。其基本思想是让`sleep`将当前进程标记为`SLEEPING`,然后调用`sched`释放CPU;`wakeup`查找在给定等待通道上休眠的进程,并将其标记为`RUNNABLE`。`sleep`和`wakeup`的调用者可以使用任何相互间方便的数字作为通道。Xv6通常使用等待过程中涉及的内核数据结构的地址。 + +`sleep`获得`p->lock`(***kernel/proc.c***:559)。要进入睡眠的进程现在同时持有`p->lock`和`lk`。在调用者(示例中为`P`)中持有`lk`是必要的:它确保没有其他进程(在示例中指一个运行的`V`)可以启动`wakeup(chan)`调用。既然`sleep`持有`p->lock`,那么释放`lk`是安全的:其他进程可能会启动对`wakeup(chan)`的调用,但是`wakeup`将等待获取`p->lock`,因此将等待`sleep`把进程置于睡眠状态的完成,以防止`wakeup`错过`sleep`。 + +还有一个小问题:如果`lk`和`p->lock`是同一个锁,那么如果`sleep`试图获取`p->lock`就会自身死锁。但是,如果调用`sleep`的进程已经持有`p->lock`,那么它不需要做更多的事情来避免错过并发的`wakeup`。当`wait`(***kernel/proc.c***:582)持有`p->lock`调用`sleep`时,就会出现这种情况。 + +由于`sleep`只持有`p->lock`而无其他,它可以通过记录睡眠通道、将进程状态更改为`SLEEPING`并调用`sched`(***kernel/proc.c***:564-567)将进程置于睡眠状态。过一会儿,我们就会明白为什么在进程被标记为`SLEEPING`之前不将`p->lock`释放(由`scheduler`)是至关重要的。 + +在某个时刻,一个进程将获取条件锁,设置睡眠者正在等待的条件,并调用`wakeup(chan)`。在持有状态锁时调用`wakeup`非常重要*[注]*。`wakeup`遍历进程表(***kernel/proc.c***:582)。它获取它所检查的每个进程的`p->lock`,这既是因为它可能会操纵该进程的状态,也是因为`p->lock`确保`sleep`和`wakeup`不会彼此错过。当`wakeup`发现一个`SLEEPING`的进程且`chan`相匹配时,它会将该进程的状态更改为`RUNNABLE`。调度器下次运行时,将看到进程已准备好运行。 + +> 注:严格地说,`wakeup`只需跟在`acquire`之后就足够了(也就是说,可以在`release`之后调用`wakeup`) + +为什么`sleep`和`wakeup`的用锁规则能确保睡眠进程不会错过唤醒?休眠进程从检查条件之前的某处到标记为休眠之后的某处,要么持有条件锁,要么持有其自身的`p->lock`或同时持有两者。调用`wakeup`的进程在`wakeup`的循环中同时持有这两个锁。因此,要么唤醒器(waker)在消费者线程检查条件之前使条件为真;要么唤醒器的`wakeup`在睡眠线程标记为`SLEEPING`后对其进行严格检查。然后`wakeup`将看到睡眠进程并将其唤醒(除非有其他东西首先将其唤醒)。 + +有时,多个进程在同一个通道上睡眠;例如,多个进程读取同一个管道。一个单独的`wakeup`调用就能把他们全部唤醒。其中一个将首先运行并获取与`sleep`一同调用的锁,并且(在管道例子中)读取在管道中等待的任何数据。尽管被唤醒,其他进程将发现没有要读取的数据。从他们的角度来看,醒来是“虚假的”,他们必须再次睡眠。因此,在检查条件的循环中总是调用`sleep`。 + +如果两次使用`sleep/wakeup`时意外选择了相同的通道,则不会造成任何伤害:它们将看到虚假的唤醒,但如上所述的循环将容忍此问题。`sleep/wakeup`的魅力在于它既轻量级(不需要创建特殊的数据结构来充当睡眠通道),又提供了一层抽象(调用者不需要知道他们正在与哪个特定进程进行交互)。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s7.md b/tranlate_books/book-riscv-rev1/c7/s7.md new file mode 100644 index 0000000..06785fa --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s7.md @@ -0,0 +1,15 @@ +# 7.7 代码:Pipes + +使用睡眠和唤醒来同步生产者和消费者的一个更复杂的例子是xv6的管道实现。我们在第1章中看到了管道接口:写入管道一端的字节被复制到内核缓冲区,然后可以从管道的另一端读取。以后的章节将研究围绕管道的文件描述符支持,但现在让我们看看`pipewrite`和`piperead`的实现。 + +每个管道都由一个`struct pipe`表示,其中包含一个锁`lock`和一个数据缓冲区`data`。字段`nread`和`nwrite`统计从缓冲区读取和写入缓冲区的总字节数。缓冲区是环形的:在`buf[PIPESIZE-1]`之后写入的下一个字节是`buf[0]`。而计数不是环形。此约定允许实现区分完整缓冲区(`nwrite==nread+PIPESIZE`)和空缓冲区(`nwrite==nread`),但这意味着对缓冲区的索引必须使用`buf[nread%PIPESIZE]`,而不仅仅是`buf[nread]`(对于`nwrite`也是如此)。 + +让我们假设对`piperead`和`pipewrite`的调用同时发生在两个不同的CPU上。`Pipewrite`(***kernel/pipe.c***:77)从获取管道锁开始,它保护计数、数据及其相关不变量。`Piperead`(***kernel/pipe.c***:103)然后也尝试获取锁,但无法实现。它在`acquire`(***kernel/spinlock.c***:22)中旋转等待锁。当`piperead`等待时,`pipewrite`遍历被写入的字节(`addr[0..n-1]`),依次将每个字节添加到管道中(***kernel/pipe.c***:95)。在这个循环中缓冲区可能会被填满(***kernel/pipe.c***:85)。在这种情况下,`pipewrite`调用`wakeup`来提醒所有处于睡眠状态的读进程缓冲区中有数据等待,然后在`&pi->nwrite`上睡眠,等待读进程从缓冲区中取出一些字节。作为使`pipewrite`进程进入睡眠状态的一部分,`Sleep`释放`pi->lock`。 + +现在`pi->lock`可用,`piperead`设法获取它并进入其临界区域:它发现`pi->nread != pi->nwrite`(***kernel/pipe.c***:110)(`pipewrite`进入睡眠状态是因为`pi->nwrite == pi->nread+PIPESIZE`(***kernel/pipe.c***:85)),因此它进入`for`循环,从管道中复制数据(***kernel/pipe.c***:117),并根据复制的字节数增加`nread`。那些读出的字节就可供写入,因此`piperead`调用`wakeup`(***kernel/pipe.c***:124)返回之前唤醒所有休眠的写进程。`Wakeup`寻找一个在`&pi->nwrite`上休眠的进程,该进程正在运行`pipewrite`,但在缓冲区填满时停止。它将该进程标记为`RUNNABLE`。 + +管道代码为读者和写者使用单独的睡眠通道(`pi->nread`和`pi->nwrite`);这可能会使系统在有许多读者和写者等待同一管道这种不太可能的情况下更加高效。管道代码在检查休眠条件的循环中休眠;如果有多个读者或写者,那么除了第一个醒来的进程之外,所有进程都会看到条件仍然错误,并再次睡眠。 + + + + \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s8.md b/tranlate_books/book-riscv-rev1/c7/s8.md new file mode 100644 index 0000000..fc44f97 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s8.md @@ -0,0 +1,17 @@ +# 7.8 代码:wait, exit和kill + +`Sleep`和`wakeup`可用于多种等待。第一章介绍的一个有趣的例子是子进程`exit`和父进程`wait`之间的交互。在子进程死亡时,父进程可能已经在`wait`中休眠,或者正在做其他事情;在后一种情况下,随后的`wait`调用必须观察到子进程的死亡,可能是在子进程调用`exit`后很久。xv6记录子进程终止直到`wait`观察到它的方式是让`exit`将调用方置于`ZOMBIE`状态,在那里它一直保持到父进程的`wait`注意到它,将子进程的状态更改为`UNUSED`,复制子进程的`exit`状态码,并将子进程ID返回给父进程。如果父进程在子进程之前退出,则父进程将子进程交给`init`进程,`init`进程将永久调用`wait`;因此,每个子进程退出后都有一个父进程进行清理。主要的实现挑战是父级和子级`wait`和`exit`,以及`exit`和`exit`之间可能存在竞争和死锁。 + +`Wait`使用调用进程的`p->lock`作为条件锁,以避免丢失唤醒,并在开始时获取该锁(***kernel/proc.c***:398)。然后它扫描进程表。如果它发现一个子进程处于`ZOMBIE`状态,它将释放该子进程的资源及其`proc`结构体,将该子进程的退出状态码复制到提供给`wait`的地址(如果不是0),并返回该子进程的进程ID。如果`wait`找到子进程但没有子进程退出,它将调用`sleep`以等待其中一个退出(***kernel/proc.c***:445),然后再次扫描。这里,`sleep`中释放的条件锁是等待进程的`p->lock`,这是上面提到的特例。注意,`wait`通常持有两个锁:它在试图获得任何子进程的锁之前先获得自己的锁;因此,整个xv6都必须遵守相同的锁定顺序(父级,然后是子级),以避免死锁。 + +`Wait`查看每个进程的`np->parent`以查找其子进程。它使用`np->parent`而不持有`np->lock`,这违反了通常的规则,即共享变量必须受到锁的保护。`np`可能是当前进程的祖先,在这种情况下,获取`np->lock`可能会导致死锁,因为这将违反上述顺序。这种情况下无锁检查`np->parent`似乎是安全的:进程的`parent`字段仅由其父进程更改,因此如果`np->parent==p`为`true`,除非当前流程更改它,否则该值无法被更改, + +`Exit`(***kernel/proc.c***:333)记录退出状态码,释放一些资源,将所有子进程提供给`init`进程,在父进程处于等待状态时唤醒父进程,将调用方标记为僵尸进程(zombie),并永久地让出CPU。最后的顺序有点棘手。退出进程必须在将其状态设置为`ZOMBIE`并唤醒父进程时持有其父进程的锁,因为父进程的锁是防止在`wait`中丢失唤醒的条件锁。子级还必须持有自己的`p->lock`,否则父级可能会看到它处于`ZOMBIE`状态,并在它仍运行时释放它。锁获取顺序对于避免死锁很重要:因为`wait`先获取父锁再获取子锁,所以`exit`必须使用相同的顺序。 + +`Exit`调用一个专门的唤醒函数`wakeup1`,该函数仅唤醒父进程,且父进程必须正在`wait`中休眠(***kernel/proc.c***:598)。在将自身状态设置为`ZOMBIE`之前,子进程唤醒父进程可能看起来不正确,但这是安全的:虽然`wakeup1`可能会导致父进程运行,但`wait`中的循环在`scheduler`释放子进程的`p->lock`之前无法检查子进程,所以`wait`在`exit`将其状态设置为`ZOMBIE`(kernel/proc.c:386)之前不能查看退出进程。 + +`exit`允许进程自行终止,而`kill`(***kernel/proc.c***:611)允许一个进程请求另一个进程终止。对于`kill`来说,直接销毁受害者进程(即要杀死的进程)太复杂了,因为受害者可能在另一个CPU上执行,也许是在更新内核数据结构的敏感序列中间。因此,`kill`的工作量很小:它只是设置受害者的`p->killed`,如果它正在睡眠,则唤醒它。受害者进程终将进入或离开内核,此时,如果设置了`p->killed`,`usertrap`中的代码将调用`exit`。如果受害者在用户空间中运行,它将很快通过进行系统调用或由于计时器(或其他设备)中断而进入内核。 + +如果受害者进程在`sleep`中,`kill`对`wakeup`的调用将导致受害者从`sleep`中返回。这存在潜在的危险,因为等待的条件可能不为真。但是,xv6对`sleep`的调用总是封装在`while`循环中,该循环在`sleep`返回后重新测试条件。一些对`sleep`的调用还在循环中测试`p->killed`,如果它被设置,则放弃当前活动。只有在这种放弃是正确的情况下才能这样做。例如,如果设置了`killed`标志,则管道读写代码返回;最终代码将返回到陷阱,陷阱将再次检查标志并退出。 + +一些XV6的`sleep`循环不检查`p->killed`,因为代码在应该是原子操作的多步系统调用的中间。virtio驱动程序(***kernel/virtio_disk.c***:242)就是一个例子:它不检查`p->killed`,因为一个磁盘操作可能是文件系统保持正确状态所需的一组写入操作之一。等待磁盘I/O时被杀死的进程将不会退出,直到它完成当前系统调用并且`usertrap`看到`killed`标志 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c7/s9.md b/tranlate_books/book-riscv-rev1/c7/s9.md new file mode 100644 index 0000000..f107219 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c7/s9.md @@ -0,0 +1,21 @@ +# 7.9 真实世界 + +xv6调度器实现了一个简单的调度策略:它依次运行每个进程。这一策略被称为轮询调度(round robin)。真实的操作系统实施更复杂的策略,例如,允许进程具有优先级。其思想是调度器将优先选择可运行的高优先级进程,而不是可运行的低优先级进程。这些策略可能变得很复杂,因为常常存在相互竞争的目标:例如,操作系统可能希望保证公平性和高吞吐量。此外,复杂的策略可能会导致意外的交互,例如优先级反转(priority inversion)和航队(convoys)。当低优先级进程和高优先级进程共享一个锁时,可能会发生优先级反转,当低优先级进程持有该锁时,可能会阻止高优先级进程前进。当许多高优先级进程正在等待一个获得共享锁的低优先级进程时,可能会形成一个长的等待进程航队;一旦航队形成,它可以持续很长时间。为了避免此类问题,在复杂的调度器中需要额外的机制。 + +睡眠和唤醒是一种简单有效的同步方法,但还有很多其他方法。所有这些问题中的第一个挑战是避免我们在本章开头看到的“丢失唤醒”问题。原始Unix内核的`sleep`只是禁用了中断,这就足够了,因为Unix运行在单CPU系统上。因为xv6在多处理器上运行,所以它为`sleep`添加了一个显式锁。FreeBSD的`msleep`采用了同样的方法。Plan 9的`sleep`使用一个回调函数,该函数在马上睡眠时获取调度锁,并在运行中持有;该函数用于在最后时刻检查睡眠条件,以避免丢失唤醒。Linux内核的`sleep`使用一个显式的进程队列,称为等待队列,而不是等待通道;队列有自己内部的锁。 + +在`wakeup`中扫描整个进程列表以查找具有匹配`chan`的进程效率低下。一个更好的解决方案是用一个数据结构替换`sleep`和`wakeup`中的`chan`,该数据结构包含在该结构上休眠的进程列表,例如Linux的等待队列。Plan 9的`sleep`和`wakeup`将该结构称为集结点(rendezvous point)或Rendez。许多线程库引用与条件变量相同的结构;在这种情况下,`sleep`和`wakeup`操作称为`wait`和`signal`。所有这些机制都有一个共同的特点:睡眠条件受到某种在睡眠过程中原子级释放的锁的保护。 + +`wakeup`的实现会唤醒在特定通道上等待的所有进程,可能有许多进程在等待该特定通道。操作系统将安排所有这些进程,它们将竞相检查睡眠条件。进程的这种行为有时被称为惊群效应(thundering herd),最好避免。大多数条件变量都有两个用于唤醒的原语:`signal`用于唤醒一个进程;`broadcast`用于唤醒所有等待进程。 + +信号量(Semaphores)通常用于同步。计数count通常对应于管道缓冲区中可用的字节数或进程具有的僵尸子进程数。使用显式计数作为抽象的一部分可以避免“丢失唤醒”问题:使用显式计数记录已经发生`wakeup`的次数。计数还避免了虚假唤醒和惊群效应问题。 + +终止进程并清理它们在xv6中引入了很多复杂性。在大多数操作系统中甚至更复杂,因为,例如,受害者进程可能在内核深处休眠,而展开其栈空间需要非常仔细的编程。许多操作系统使用显式异常处理机制(如`longjmp`)来展开栈。此外,还有其他事件可能导致睡眠进程被唤醒,即使它等待的事件尚未发生。例如,当一个Unix进程处于休眠状态时,另一个进程可能会向它发送一个`signal`。在这种情况下,进程将从中断的系统调用返回,返回值为-1,错误代码设置为`EINTR`。应用程序可以检查这些值并决定执行什么操作。Xv6不支持信号,因此不会出现这种复杂性。 + +Xv6对`kill`的支持并不完全令人满意:有一些`sleep`循环可能应该检查`p->killed`。一个相关的问题是,即使对于检查`p->killed`的`sleep`循环,`sleep`和`kill`之间也存在竞争;后者可能会设置`p->killed`,并试图在受害者的循环检查`p->killed`之后但在调用`sleep`之前尝试唤醒受害者。如果出现此问题,受害者将不会注意到`p->killed`,直到其等待的条件发生。这可能比正常情况要晚一点(例如,当virtio驱动程序返回受害者正在等待的磁盘块时)或永远不会发生(例如,如果受害者正在等待来自控制台的输入,但用户没有键入任何输入)。 + +> 注:上节中说到kill的工作方式,`kill`设置`p->killed`,如果遇到进程正在休眠,则会唤醒它,此后在`usertrap`中检测`p->killed`,并使进程退出 + +> 而如果像上面说的,在检查`p->killed`之后调用`sleep`之前唤醒受害者进程,那么接下来执行`sleep`就会导致进程无法进入内核,无法在`usertrap`中退出,而必须等待所需事件的发生再次唤醒 + +一个实际的操作系统将在固定时间内使用空闲列表找到自由的`proc`结构体,而不是`allocproc`中的线性时间搜索;xv6使用线性扫描是为了简单起见。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s0.md b/tranlate_books/book-riscv-rev1/c8/s0.md new file mode 100644 index 0000000..57ca0cf --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s0.md @@ -0,0 +1,18 @@ +# 第八章 文件系统 + +文件系统的目的是组织和存储数据。文件系统通常支持用户和应用程序之间的数据共享,以及持久性,以便在重新启动后数据仍然可用。 + +xv6文件系统提供类似于Unix的文件、目录和路径名(参见第1章),并将其数据存储在virtio磁盘上以便持久化(参见第4章)。文件系统解决了几个难题: + +> 注:完整计算机中的CPU被支撑硬件包围,其中大部分是以I/O接口的形式。Xv6是以qemu的“-machine virt”选项模拟的支撑硬件编写的。这包括RAM、包含引导代码的ROM、一个到用户键盘/屏幕的串行连接,以及一个用于存储的磁盘。 + +- 文件系统需要磁盘上的数据结构来表示目录和文件名称树,记录保存每个文件内容的块的标识,以及记录磁盘的哪些区域是空闲的。 +- 文件系统必须支持崩溃恢复(crash recovery)。也就是说,如果发生崩溃(例如,电源故障),文件系统必须在重新启动后仍能正常工作。风险在于崩溃可能会中断一系列更新,并使磁盘上的数据结构不一致(例如,一个块在某个文件中使用但同时仍被标记为空闲)。 +- 不同的进程可能同时在文件系统上运行,因此文件系统代码必须协调以保持不变量。 +- 访问磁盘的速度比访问内存慢几个数量级,因此文件系统必须保持常用块的内存缓存。 + +本章的其余部分将解释xv6如何应对这些挑战。 + + + + \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s1.md b/tranlate_books/book-riscv-rev1/c8/s1.md new file mode 100644 index 0000000..477c347 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s1.md @@ -0,0 +1,20 @@ +# 8.1 概述 + +xv6文件系统实现分为七层,如图8.1所示。磁盘层读取和写入virtio硬盘上的块。缓冲区高速缓存层缓存磁盘块并同步对它们的访问,确保每次只有一个内核进程可以修改存储在任何特定块中的数据。日志记录层允许更高层在一次事务(transaction)中将更新包装到多个块,并确保在遇到崩溃时自动更新这些块(即,所有块都已更新或无更新)。索引结点层提供单独的文件,每个文件表示为一个索引结点,其中包含唯一的索引号(i-number)和一些保存文件数据的块。目录层将每个目录实现为一种特殊的索引结点,其内容是一系列目录项,每个目录项包含一个文件名和索引号。路径名层提供了分层路径名,如***/usr/rtm/xv6/fs.c***,并通过递归查找来解析它们。文件描述符层使用文件系统接口抽象了许多Unix资源(例如,管道、设备、文件等),简化了应用程序员的工作。 + +| 文件描述符(File descriptor) | +| ------------------------------ | +| 路径名(Pathname) | +| 目录(Directory) | +| 索引结点(Inode) | +| 日志(Logging) | +| 缓冲区高速缓存(Buffer cache) | +| 磁盘(Disk) | + +​ 图8.1 XV6文件系统的层级 + +文件系统必须有将索引节点和内容块存储在磁盘上哪些位置的方案。为此,xv6将磁盘划分为几个部分,如图8.2所示。文件系统不使用块0(它保存引导扇区)。块1称为超级块:它包含有关文件系统的元数据(文件系统大小(以块为单位)、数据块数、索引节点数和日志中的块数)。从2开始的块保存日志。日志之后是索引节点,每个块有多个索引节点。然后是位图块,跟踪正在使用的数据块。其余的块是数据块:每个都要么在位图块中标记为空闲,要么保存文件或目录的内容。超级块由一个名为`mkfs`的单独的程序填充,该程序构建初始文件系统。 + +![img](../images/c8/p1.png) + +本章的其余部分将从缓冲区高速缓存层开始讨论每一层。注意那些在较低层次上精心选择的抽象可以简化较高层次的设计的情况。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s10.md b/tranlate_books/book-riscv-rev1/c8/s10.md new file mode 100644 index 0000000..362a0d9 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s10.md @@ -0,0 +1,17 @@ +# 8.10 代码: Inode包含内容 + +磁盘上的inode结构体`struct dinode`包含一个`size`和一个块号数组(见图8.3)。inode数据可以在`dinode`的`addrs`数组列出的块中找到。前面的`NDIRECT`个数据块被列在数组中的前`NDIRECT`个元素中;这些块称为直接块(direct blocks)。接下来的`NINDIRECT`个数据块不在inode中列出,而是在称为间接块(indirect block)的数据块中列出。`addrs`数组中的最后一个元素给出了间接块的地址。因此,可以从inode中列出的块加载文件的前12 kB(`NDIRECT x BSIZE`)字节,而只有在查阅间接块后才能加载下一个256 kB(`NINDIRECT x BSIZE`)字节。这是一个很好的磁盘表示,但对于客户端来说较复杂。函数`bmap`管理这种表示,以便实现我们将很快看到的如`readi`和`writei`这样的更高级例程。`bmap(struct inode *ip, uint bn)`返回索引结点`ip`的第`bn`个数据块的磁盘块号。如果`ip`还没有这样的块,`bmap`会分配一个。 + +![img](../images/c8/p2.png) + +函数`bmap`(***kernel/fs.c***:378)从简单的情况开始:前面的`NDIRECT`个块在inode本身中列出(***kernel/fs.c***:383-387)中。下面`NINDIRECT`个块在`ip->addrs[NDIRECT]`的间接块中列出。`Bmap`读取间接块(***kernel/fs.c***:394),然后从块内的正确位置(***kernel/fs.c***:395)读取块号。如果块号超过`NDIRECT+NINDIRECT`,则`bmap`调用`panic`崩溃;`writei`包含防止这种情况发生的检查(***kernel/fs.c***:490)。 + +`Bmap`根据需要分配块。`ip->addrs[]`或间接块中条目为零表示未分配块。当`bmap`遇到零时,它会用按需分配的新块(***kernel/fs.c***:384-385)(***kernel/fs.c***:392-393)替换它们。 + +`itrunc`释放文件的块,将inode的`size`重置为零。`Itrunc`(***kernel/fs.c***:410)首先释放直接块(***kernel/fs.c***:416-421),然后释放间接块中列出的块(***kernel/fs.c***:426-429),最后释放间接块本身(***kernel/fs.c***:431-432)。 + +`Bmap`使`readi`和`writei`很容易获取inode的数据。`Readi`(***kernel/fs.c***:456)首先确保偏移量和计数不超过文件的末尾。开始于超过文件末尾的地方读取将返回错误(***kernel/fs.c***:461-462),而从文件末尾开始或穿过文件末尾的读取返回的字节数少于请求的字节数(***kernel/fs.c***:463-464)。主循环处理文件的每个块,将数据从缓冲区复制到`dst`(***kernel/fs.c***:466-474)。`writei`(***kernel/fs.c***:483)与`readi`相同,但有三个例外:从文件末尾开始或穿过文件末尾的写操作会使文件增长到最大文件大小(***kernel/fs.c***:490-491);循环将数据复制到缓冲区而不是输出(kernel/fs.c:36);如果写入扩展了文件,`writei`必须更新其大小(***kernel/fs.c***:504-511)。 + +`readi`和`writei`都是从检查`ip->type == T_DEV`开始的。这种情况处理的是数据不在文件系统中的特殊设备;我们将在文件描述符层返回到这种情况。 + +函数`stati`(***kernel/fs.c***:442)将inode元数据复制到`stat`结构体中,该结构通过`stat`系统调用向用户程序公开。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s11.md b/tranlate_books/book-riscv-rev1/c8/s11.md new file mode 100644 index 0000000..992bcf2 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s11.md @@ -0,0 +1,7 @@ +# 8.11 代码:目录层 + +目录的内部实现很像文件。其inode的`type`为`T_DIR`,其数据是一系列目录条目(directory entries)。每个条目(entry)都是一个`struct dirent`(***kernel/fs.h***:56),其中包含一个名称`name`和一个inode编号`inum`。名称最多为`DIRSIZ`(14)个字符;如果较短,则以`NUL`(0)字节终止。inode编号为零的条目是空的。 + +函数`dirlookup`(***kernel/fs.c***:527)在目录中搜索具有给定名称的条目。如果找到一个,它将返回一个指向相应inode的指针,解开锁定,并将`*poff`设置为目录中条目的字节偏移量,以满足调用方希望对其进行编辑的情形。如果`dirlookup`找到具有正确名称的条目,它将更新`*poff`并返回通过`iget`获得的未锁定的inode。`Dirlookup`是`iget`返回未锁定indoe的原因。调用者已锁定`dp`,因此,如果对`.`,当前目录的别名,进行查找,则在返回之前尝试锁定indoe将导致重新锁定`dp`并产生死锁(还有更复杂的死锁场景,涉及多个进程和`..`,父目录的别名。`.`不是唯一的问题。)调用者可以解锁`dp`,然后锁定`ip`,确保它一次只持有一个锁。 + +函数`dirlink`(***kernel/fs.c***:554)将给定名称和inode编号的新目录条目写入目录`dp`。如果名称已经存在,`dirlink`将返回一个错误(***kernel/fs.c***:560-564)。主循环读取目录条目,查找未分配的条目。当找到一个时,它会提前停止循环(***kernel/fs.c***:538-539),并将`off`设置为可用条目的偏移量。否则,循环结束时会将`off`设置为`dp->size`。无论哪种方式,`dirlink`都会通过在偏移`off`处写入(***kernel/fs.c***:574-577)来向目录添加一个新条目。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s12.md b/tranlate_books/book-riscv-rev1/c8/s12.md new file mode 100644 index 0000000..57ac709 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s12.md @@ -0,0 +1,13 @@ +# 8.12 代码:路径名 + +路径名查找涉及一系列对`dirlookup`的调用,每个路径组件调用一个。`Namei`(***kernel/fs.c***:661)计算`path`并返回相应的inode。函数`nameiparent`是一个变体:它在最后一个元素之前停止,返回父目录的inode并将最后一个元素复制到`name`中。两者都调用通用函数`namex`来完成实际工作。 + +`Namex`(***kernel/fs.c***:626)首先决定路径计算的开始位置。如果路径以斜线开始,则计算从根目录开始;否则,从当前目录开始(***kernel/fs.c***:630-633)。然后,它使用`skipelem`依次考察路径的每个元素(***kernel/fs.c***:635)。循环的每次迭代都必须在当前索引结点`ip`中查找`name`。迭代首先给`ip`上锁并检查它是否是一个目录。如果不是,则查找失败(***kernel/fs.c***:636-640)(锁定`ip`是必要的,不是因为`ip->type`可以被更改,而是因为在`ilock`运行之前,`ip->type`不能保证已从磁盘加载。)如果调用是`nameiparent`,并且这是最后一个路径元素,则根据`nameiparent`的定义,循环会提前停止;最后一个路径元素已经复制到`name`中,因此`namex`只需返回解锁的`ip`(***kernel/fs.c***:641-645)。最后,循环将使用`dirlookup`查找路径元素,并通过设置`ip = next`(***kernel/fs.c***:646-651)为下一次迭代做准备。当循环用完路径元素时,它返回`ip`。 + +`namex`过程可能需要很长时间才能完成:它可能涉及多个磁盘操作来读取路径名中所遍历目录的索引节点和目录块(如果它们不在buffer cache中)。Xv6经过精心设计,如果一个内核线程对`namex`的调用在磁盘I/O上阻塞,另一个查找不同路径名的内核线程可以同时进行。`Namex`分别锁定路径中的每个目录,以便在不同目录中进行并行查找。 + +这种并发性带来了一些挑战。例如,当一个内核线程正在查找路径名时,另一个内核线程可能正在通过取消目录链接来更改目录树。一个潜在的风险是,查找可能正在搜索已被另一个内核线程删除且其块已被重新用于另一个目录或文件的目录。 + +Xv6避免了这种竞争。例如,在`namex`中执行`dirlookup`时,lookup线程持有目录上的锁,`dirlookup`返回使用`iget`获得的inode。`Iget`增加索引节点的引用计数。只有在从`dirlookup`接收inode之后,`namex`才会释放目录上的锁。现在,另一个线程可以从目录中取消inode的链接,但是xv6还不会删除inode,因为inode的引用计数仍然大于零。 + +另一个风险是死锁。例如,查找“`.`”时,`next`指向与`ip`相同的inode。在释放`ip`上的锁之前锁定`next`将导致死锁。为了避免这种死锁,`namex`在获得下一个目录的锁之前解锁该目录。这里我们再次看到为什么`iget`和`ilock`之间的分离很重要。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s13.md b/tranlate_books/book-riscv-rev1/c8/s13.md new file mode 100644 index 0000000..57ac709 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s13.md @@ -0,0 +1,13 @@ +# 8.12 代码:路径名 + +路径名查找涉及一系列对`dirlookup`的调用,每个路径组件调用一个。`Namei`(***kernel/fs.c***:661)计算`path`并返回相应的inode。函数`nameiparent`是一个变体:它在最后一个元素之前停止,返回父目录的inode并将最后一个元素复制到`name`中。两者都调用通用函数`namex`来完成实际工作。 + +`Namex`(***kernel/fs.c***:626)首先决定路径计算的开始位置。如果路径以斜线开始,则计算从根目录开始;否则,从当前目录开始(***kernel/fs.c***:630-633)。然后,它使用`skipelem`依次考察路径的每个元素(***kernel/fs.c***:635)。循环的每次迭代都必须在当前索引结点`ip`中查找`name`。迭代首先给`ip`上锁并检查它是否是一个目录。如果不是,则查找失败(***kernel/fs.c***:636-640)(锁定`ip`是必要的,不是因为`ip->type`可以被更改,而是因为在`ilock`运行之前,`ip->type`不能保证已从磁盘加载。)如果调用是`nameiparent`,并且这是最后一个路径元素,则根据`nameiparent`的定义,循环会提前停止;最后一个路径元素已经复制到`name`中,因此`namex`只需返回解锁的`ip`(***kernel/fs.c***:641-645)。最后,循环将使用`dirlookup`查找路径元素,并通过设置`ip = next`(***kernel/fs.c***:646-651)为下一次迭代做准备。当循环用完路径元素时,它返回`ip`。 + +`namex`过程可能需要很长时间才能完成:它可能涉及多个磁盘操作来读取路径名中所遍历目录的索引节点和目录块(如果它们不在buffer cache中)。Xv6经过精心设计,如果一个内核线程对`namex`的调用在磁盘I/O上阻塞,另一个查找不同路径名的内核线程可以同时进行。`Namex`分别锁定路径中的每个目录,以便在不同目录中进行并行查找。 + +这种并发性带来了一些挑战。例如,当一个内核线程正在查找路径名时,另一个内核线程可能正在通过取消目录链接来更改目录树。一个潜在的风险是,查找可能正在搜索已被另一个内核线程删除且其块已被重新用于另一个目录或文件的目录。 + +Xv6避免了这种竞争。例如,在`namex`中执行`dirlookup`时,lookup线程持有目录上的锁,`dirlookup`返回使用`iget`获得的inode。`Iget`增加索引节点的引用计数。只有在从`dirlookup`接收inode之后,`namex`才会释放目录上的锁。现在,另一个线程可以从目录中取消inode的链接,但是xv6还不会删除inode,因为inode的引用计数仍然大于零。 + +另一个风险是死锁。例如,查找“`.`”时,`next`指向与`ip`相同的inode。在释放`ip`上的锁之前锁定`next`将导致死锁。为了避免这种死锁,`namex`在获得下一个目录的锁之前解锁该目录。这里我们再次看到为什么`iget`和`ilock`之间的分离很重要。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s14.md b/tranlate_books/book-riscv-rev1/c8/s14.md new file mode 100644 index 0000000..57ac709 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s14.md @@ -0,0 +1,13 @@ +# 8.12 代码:路径名 + +路径名查找涉及一系列对`dirlookup`的调用,每个路径组件调用一个。`Namei`(***kernel/fs.c***:661)计算`path`并返回相应的inode。函数`nameiparent`是一个变体:它在最后一个元素之前停止,返回父目录的inode并将最后一个元素复制到`name`中。两者都调用通用函数`namex`来完成实际工作。 + +`Namex`(***kernel/fs.c***:626)首先决定路径计算的开始位置。如果路径以斜线开始,则计算从根目录开始;否则,从当前目录开始(***kernel/fs.c***:630-633)。然后,它使用`skipelem`依次考察路径的每个元素(***kernel/fs.c***:635)。循环的每次迭代都必须在当前索引结点`ip`中查找`name`。迭代首先给`ip`上锁并检查它是否是一个目录。如果不是,则查找失败(***kernel/fs.c***:636-640)(锁定`ip`是必要的,不是因为`ip->type`可以被更改,而是因为在`ilock`运行之前,`ip->type`不能保证已从磁盘加载。)如果调用是`nameiparent`,并且这是最后一个路径元素,则根据`nameiparent`的定义,循环会提前停止;最后一个路径元素已经复制到`name`中,因此`namex`只需返回解锁的`ip`(***kernel/fs.c***:641-645)。最后,循环将使用`dirlookup`查找路径元素,并通过设置`ip = next`(***kernel/fs.c***:646-651)为下一次迭代做准备。当循环用完路径元素时,它返回`ip`。 + +`namex`过程可能需要很长时间才能完成:它可能涉及多个磁盘操作来读取路径名中所遍历目录的索引节点和目录块(如果它们不在buffer cache中)。Xv6经过精心设计,如果一个内核线程对`namex`的调用在磁盘I/O上阻塞,另一个查找不同路径名的内核线程可以同时进行。`Namex`分别锁定路径中的每个目录,以便在不同目录中进行并行查找。 + +这种并发性带来了一些挑战。例如,当一个内核线程正在查找路径名时,另一个内核线程可能正在通过取消目录链接来更改目录树。一个潜在的风险是,查找可能正在搜索已被另一个内核线程删除且其块已被重新用于另一个目录或文件的目录。 + +Xv6避免了这种竞争。例如,在`namex`中执行`dirlookup`时,lookup线程持有目录上的锁,`dirlookup`返回使用`iget`获得的inode。`Iget`增加索引节点的引用计数。只有在从`dirlookup`接收inode之后,`namex`才会释放目录上的锁。现在,另一个线程可以从目录中取消inode的链接,但是xv6还不会删除inode,因为inode的引用计数仍然大于零。 + +另一个风险是死锁。例如,查找“`.`”时,`next`指向与`ip`相同的inode。在释放`ip`上的锁之前锁定`next`将导致死锁。为了避免这种死锁,`namex`在获得下一个目录的锁之前解锁该目录。这里我们再次看到为什么`iget`和`ilock`之间的分离很重要。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s15.md b/tranlate_books/book-riscv-rev1/c8/s15.md new file mode 100644 index 0000000..85e2a84 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s15.md @@ -0,0 +1,21 @@ +# 8.15 真实世界 + +实际操作系统中的buffer cache比xv6复杂得多,但它有两个相同的用途:缓存和同步对磁盘的访问。与UNIX V6一样,Xv6的buffer cache使用简单的最近最少使用(LRU)替换策略;有许多更复杂的策略可以实现,每种策略都适用于某些工作场景,而不适用于其他工作场景。更高效的LRU缓存将消除链表,而改为使用哈希表进行查找,并使用堆进行LRU替换。现代buffer cache通常与虚拟内存系统集成,以支持内存映射文件。 + +Xv6的日志系统效率低下。提交不能与文件系统调用同时发生。系统记录整个块,即使一个块中只有几个字节被更改。它执行同步日志写入,每次写入一个块,每个块可能需要整个磁盘旋转时间。真正的日志系统解决了所有这些问题。 + +日志记录不是提供崩溃恢复的唯一方法。早期的文件系统在重新启动期间使用了一个清道夫程序(例如,UNIX的`fsck`程序)来检查每个文件和目录以及块和索引节点空闲列表,查找并解决不一致的问题。清理大型文件系统可能需要数小时的时间,而且在某些情况下,无法以导致原始系统调用原子化的方式解决不一致问题。从日志中恢复要快得多,并且在崩溃时会导致系统调用原子化。 + +Xv6使用的索引节点和目录的基础磁盘布局与早期UNIX相同;这一方案多年来经久不衰。BSD的UFS/FFS和Linux的ext2/ext3使用基本相同的数据结构。文件系统布局中最低效的部分是目录,它要求在每次查找期间对所有磁盘块进行线性扫描。当目录只有几个磁盘块时,这是合理的,但对于包含许多文件的目录来说,开销巨大。Microsoft Windows的NTFS、Mac OS X的HFS和Solaris的ZFS(仅举几例)将目录实现为磁盘上块的平衡树。这很复杂,但可以保证目录查找在对数时间内完成(即时间复杂度为O(logn))。 + +Xv6对于磁盘故障的解决很初级:如果磁盘操作失败,Xv6就会调用`panic`。这是否合理取决于硬件:如果操作系统位于使用冗余屏蔽磁盘故障的特殊硬件之上,那么操作系统可能很少看到故障,因此`panic`是可以的。另一方面,使用普通磁盘的操作系统应该预料到会出现故障,并能更优雅地处理它们,这样一个文件中的块丢失不会影响文件系统其余部分的使用。 + +Xv6要求文件系统安装在单个磁盘设备上,且大小不变。随着大型数据库和多媒体文件对存储的要求越来越高,操作系统正在开发各种方法来消除“每个文件系统一个磁盘”的瓶颈。基本方法是将多个物理磁盘组合成一个逻辑磁盘。RAID等硬件解决方案仍然是最流行的,但当前的趋势是在软件中尽可能多地实现这种逻辑。这些软件实现通常允许通过动态添加或删除磁盘来扩展或缩小逻辑设备等丰富功能。当然,一个能够动态增长或收缩的存储层需要一个能够做到这一点的文件系统:xv6使用的固定大小的inode块阵列在这样的环境中无法正常工作。将磁盘管理与文件系统分离可能是最干净的设计,但两者之间复杂的接口导致了一些系统(如Sun的ZFS)将它们结合起来。 + +Xv6的文件系统缺少现代文件系统的许多其他功能;例如,它缺乏对快照和增量备份的支持。 + +现代Unix系统允许使用与磁盘存储相同的系统调用访问多种资源:命名管道、网络连接、远程访问的网络文件系统以及监视和控制接口,如`/proc`(注:Linux 内核提供了一种通过`/proc`文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。)。不同于xv6中`fileread`和`filewrite`的`if`语句,这些系统通常为每个打开的文件提供一个函数指针表,每个操作一个,并通过函数指针来援引inode的调用实现。网络文件系统和用户级文件系统提供了将这些调用转换为网络RPC并在返回之前等待响应的函数。 + + + + \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s16.md b/tranlate_books/book-riscv-rev1/c8/s16.md new file mode 100644 index 0000000..85e2a84 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s16.md @@ -0,0 +1,21 @@ +# 8.15 真实世界 + +实际操作系统中的buffer cache比xv6复杂得多,但它有两个相同的用途:缓存和同步对磁盘的访问。与UNIX V6一样,Xv6的buffer cache使用简单的最近最少使用(LRU)替换策略;有许多更复杂的策略可以实现,每种策略都适用于某些工作场景,而不适用于其他工作场景。更高效的LRU缓存将消除链表,而改为使用哈希表进行查找,并使用堆进行LRU替换。现代buffer cache通常与虚拟内存系统集成,以支持内存映射文件。 + +Xv6的日志系统效率低下。提交不能与文件系统调用同时发生。系统记录整个块,即使一个块中只有几个字节被更改。它执行同步日志写入,每次写入一个块,每个块可能需要整个磁盘旋转时间。真正的日志系统解决了所有这些问题。 + +日志记录不是提供崩溃恢复的唯一方法。早期的文件系统在重新启动期间使用了一个清道夫程序(例如,UNIX的`fsck`程序)来检查每个文件和目录以及块和索引节点空闲列表,查找并解决不一致的问题。清理大型文件系统可能需要数小时的时间,而且在某些情况下,无法以导致原始系统调用原子化的方式解决不一致问题。从日志中恢复要快得多,并且在崩溃时会导致系统调用原子化。 + +Xv6使用的索引节点和目录的基础磁盘布局与早期UNIX相同;这一方案多年来经久不衰。BSD的UFS/FFS和Linux的ext2/ext3使用基本相同的数据结构。文件系统布局中最低效的部分是目录,它要求在每次查找期间对所有磁盘块进行线性扫描。当目录只有几个磁盘块时,这是合理的,但对于包含许多文件的目录来说,开销巨大。Microsoft Windows的NTFS、Mac OS X的HFS和Solaris的ZFS(仅举几例)将目录实现为磁盘上块的平衡树。这很复杂,但可以保证目录查找在对数时间内完成(即时间复杂度为O(logn))。 + +Xv6对于磁盘故障的解决很初级:如果磁盘操作失败,Xv6就会调用`panic`。这是否合理取决于硬件:如果操作系统位于使用冗余屏蔽磁盘故障的特殊硬件之上,那么操作系统可能很少看到故障,因此`panic`是可以的。另一方面,使用普通磁盘的操作系统应该预料到会出现故障,并能更优雅地处理它们,这样一个文件中的块丢失不会影响文件系统其余部分的使用。 + +Xv6要求文件系统安装在单个磁盘设备上,且大小不变。随着大型数据库和多媒体文件对存储的要求越来越高,操作系统正在开发各种方法来消除“每个文件系统一个磁盘”的瓶颈。基本方法是将多个物理磁盘组合成一个逻辑磁盘。RAID等硬件解决方案仍然是最流行的,但当前的趋势是在软件中尽可能多地实现这种逻辑。这些软件实现通常允许通过动态添加或删除磁盘来扩展或缩小逻辑设备等丰富功能。当然,一个能够动态增长或收缩的存储层需要一个能够做到这一点的文件系统:xv6使用的固定大小的inode块阵列在这样的环境中无法正常工作。将磁盘管理与文件系统分离可能是最干净的设计,但两者之间复杂的接口导致了一些系统(如Sun的ZFS)将它们结合起来。 + +Xv6的文件系统缺少现代文件系统的许多其他功能;例如,它缺乏对快照和增量备份的支持。 + +现代Unix系统允许使用与磁盘存储相同的系统调用访问多种资源:命名管道、网络连接、远程访问的网络文件系统以及监视和控制接口,如`/proc`(注:Linux 内核提供了一种通过`/proc`文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。)。不同于xv6中`fileread`和`filewrite`的`if`语句,这些系统通常为每个打开的文件提供一个函数指针表,每个操作一个,并通过函数指针来援引inode的调用实现。网络文件系统和用户级文件系统提供了将这些调用转换为网络RPC并在返回之前等待响应的函数。 + + + + \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s2.md b/tranlate_books/book-riscv-rev1/c8/s2.md new file mode 100644 index 0000000..e976802 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s2.md @@ -0,0 +1,10 @@ +# 8.2 Buffer cache层 + +Buffer cache有两个任务: + +1. 同步对磁盘块的访问,以确保磁盘块在内存中只有一个副本,并且一次只有一个内核线程使用该副本 +2. 缓存常用块,以便不需要从慢速磁盘重新读取它们。代码在***bio.c***中。 + +Buffer cache层导出的主接口主要是`bread`和`bwrite`;前者获取一个*buf*,其中包含一个可以在内存中读取或修改的块的副本,后者将修改后的缓冲区写入磁盘上的相应块。内核线程必须通过调用`brelse`释放缓冲区。Buffer cache每个缓冲区使用一个睡眠锁,以确保每个缓冲区(因此也是每个磁盘块)每次只被一个线程使用;`bread`返回一个上锁的缓冲区,`brelse`释放该锁。 + +让我们回到Buffer cache。Buffer cache中保存磁盘块的缓冲区数量固定,这意味着如果文件系统请求还未存放在缓存中的块,Buffer cache必须回收当前保存其他块内容的缓冲区。Buffer cache为新块回收最近使用最少的缓冲区。这样做的原因是认为最近使用最少的缓冲区是最不可能近期再次使用的缓冲区。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s3.md b/tranlate_books/book-riscv-rev1/c8/s3.md new file mode 100644 index 0000000..371aa5e --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s3.md @@ -0,0 +1,21 @@ +# 8.3 代码:Buffer cache + +Buffer cache是以双链表表示的缓冲区。`main`(***kernel/main.c***:27)调用的函数`binit`使用静态数组`buf`(***kernel/bio.c***:43-52)中的`NBUF`个缓冲区初始化列表。对Buffer cache的所有其他访问都通过`bcache.head`引用链表,而不是`buf`数组。 + +缓冲区有两个与之关联的状态字段。字段`valid`表示缓冲区是否包含块的副本。字段`disk`表示缓冲区内容是否已交给磁盘,这可能会更改缓冲区(例如,将数据从磁盘写入`data`)。 + +`Bread`(***kernel/bio.c***:93)调用`bget`为给定扇区(***kernel/bio.c***:97)获取缓冲区。如果缓冲区需要从磁盘进行读取,`bread`会在返回缓冲区之前调用`virtio_disk_rw`来执行此操作。 + +`Bget`(***kernel/bio.c***:59)扫描缓冲区列表,查找具有给定设备和扇区号(***kernel/bio.c***:65-73)的缓冲区。如果存在这样的缓冲区,`bget`将获取缓冲区的睡眠锁。然后`Bget`返回锁定的缓冲区。 + +如果对于给定的扇区没有缓冲区,`bget`必须创建一个,这可能会重用包含其他扇区的缓冲区。它再次扫描缓冲区列表,查找未在使用中的缓冲区(`b->refcnt = 0`):任何这样的缓冲区都可以使用。`Bget`编辑缓冲区元数据以记录新设备和扇区号,并获取其睡眠锁。注意,`b->valid = 0`的布置确保了`bread`将从磁盘读取块数据,而不是错误地使用缓冲区以前的内容。 + +每个磁盘扇区最多有一个缓存缓冲区是非常重要的,并且因为文件系统使用缓冲区上的锁进行同步,可以确保读者看到写操作。`Bget`的从第一个检查块是否缓存的循环到第二个声明块现在已缓存(通过设置`dev`、`blockno`和`refcnt`)的循环,一直持有`bcache.lock`来确保此不变量。这会导致检查块是否存在以及(如果不存在)指定一个缓冲区来存储块具有原子性。 + +`bget`在`bcache.lock`临界区域之外获取缓冲区的睡眠锁是安全的,因为非零`b->refcnt`防止缓冲区被重新用于不同的磁盘块。睡眠锁保护块缓冲内容的读写,而`bcache.lock`保护有关缓存哪些块的信息。 + +如果所有缓冲区都处于忙碌,那么太多进程同时执行文件系统调用;`bget`将会`panic`。一个更优雅的响应可能是在缓冲区空闲之前休眠,尽管这样可能会出现死锁。 + +一旦`bread`读取了磁盘(如果需要)并将缓冲区返回给其调用者,调用者就可以独占使用缓冲区,并可以读取或写入数据字节。如果调用者确实修改了缓冲区,则必须在释放缓冲区之前调用`bwrite`将更改的数据写入磁盘。`Bwrite`(***kernel/bio.c***:107)调用`virtio_disk_rw`与磁盘硬件对话。 + +当调用方使用完缓冲区后,它必须调用`brelse`来释放缓冲区(`brelse`是`b-release`的缩写,这个名字很隐晦,但值得学习:它起源于Unix,也用于BSD、Linux和Solaris)。`brelse`(***kernel/bio.c***:117)释放睡眠锁并将缓冲区移动到链表的前面(***kernel/bio.c***:128-133)。移动缓冲区会使列表按缓冲区的使用频率排序(意思是释放):列表中的第一个缓冲区是最近使用的,最后一个是最近使用最少的。`bget`中的两个循环利用了这一点:在最坏的情况下,对现有缓冲区的扫描必须处理整个列表,但首先检查最新使用的缓冲区(从`bcache.head`开始,然后是下一个指针),在引用局部性良好的情况下将减少扫描时间。选择要重用的缓冲区时,通过自后向前扫描(跟随`prev`指针)选择最近使用最少的缓冲区。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s4.md b/tranlate_books/book-riscv-rev1/c8/s4.md new file mode 100644 index 0000000..f376d2f --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s4.md @@ -0,0 +1,11 @@ +# 8.4 日志层 + +文件系统设计中最有趣的问题之一是崩溃恢复。出现此问题的原因是,许多文件系统操作都涉及到对磁盘的多次写入,并且在完成写操作的部分子集后崩溃可能会使磁盘上的文件系统处于不一致的状态。例如,假设在文件截断(将文件长度设置为零并释放其内容块)期间发生崩溃。根据磁盘写入的顺序,崩溃可能会留下对标记为空闲的内容块的引用的inode,也可能留下已分配但未引用的内容块。 + +后者相对来说是良性的,但引用已释放块的inode在重新启动后可能会导致严重问题。重新启动后,内核可能会将该块分配给另一个文件,现在我们有两个不同的文件无意中指向同一块。如果xv6支持多个用户,这种情况可能是一个安全问题,因为旧文件的所有者将能够读取和写入新文件中的块,而新文件的所有者是另一个用户。 + +Xv6通过简单的日志记录形式解决了文件系统操作期间的崩溃问题。xv6系统调用不会直接写入磁盘上的文件系统数据结构。相反,它会在磁盘上的*log*(日志)中放置它希望进行的所有磁盘写入的描述。一旦系统调用记录了它的所有写入操作,它就会向磁盘写入一条特殊的*commit*(提交)记录,表明日志包含一个完整的操作。此时,系统调用将写操作复制到磁盘上的文件系统数据结构。完成这些写入后,系统调用将擦除磁盘上的日志。 + +如果系统崩溃并重新启动,则在运行任何进程之前,文件系统代码将按如下方式从崩溃中恢复。如果日志标记为包含完整操作,则恢复代码会将写操作复制到磁盘文件系统中它们所属的位置。如果日志没有标记为包含完整操作,则恢复代码将忽略该日志。恢复代码通过擦除日志完成。 + +为什么xv6的日志解决了文件系统操作期间的崩溃问题?如果崩溃发生在操作提交之前,那么磁盘上的登录将不会被标记为已完成,恢复代码将忽略它,并且磁盘的状态将如同操作尚未启动一样。如果崩溃发生在操作提交之后,则恢复将重播操作的所有写入操作,如果操作已开始将它们写入磁盘数据结构,则可能会重复这些操作。在任何一种情况下,日志都会使操作在崩溃时成为原子操作:恢复后,要么操作的所有写入都显示在磁盘上,要么都不显示。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s5.md b/tranlate_books/book-riscv-rev1/c8/s5.md new file mode 100644 index 0000000..e8d284b --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s5.md @@ -0,0 +1,11 @@ +# 8.5 日志设计 + +日志驻留在超级块中指定的已知固定位置。它由一个头块(header block)和一系列更新块的副本(logged block)组成。头块包含一个扇区号数组(每个logged block对应一个扇区号)以及日志块的计数。磁盘上的头块中的计数或者为零,表示日志中没有事务;或者为非零,表示日志包含一个完整的已提交事务,并具有指定数量的logged block。在事务提交(commit)时Xv6才向头块写入数据,在此之前不会写入,并在将logged blocks复制到文件系统后将计数设置为零。因此,事务中途崩溃将导致日志头块中的计数为零;提交后的崩溃将导致非零计数。 + +> 注:logged block表示已经记录了操作信息的日志块,而log block仅表示日志块 + +每个系统调用的代码都指示写入序列的起止,考虑到崩溃,写入序列必须具有原子性。为了允许不同进程并发执行文件系统操作,日志系统可以将多个系统调用的写入累积到一个事务中。因此,单个提交可能涉及多个完整系统调用的写入。为了避免在事务之间拆分系统调用,日志系统仅在没有文件系统调用进行时提交。 + +同时提交多个事务的想法称为组提交(group commit)。组提交减少了磁盘操作的数量,因为成本固定的一次提交分摊了多个操作。组提交还同时为磁盘系统提供更多并发写操作,可能允许磁盘在一个磁盘旋转时间内写入所有这些操作。Xv6的virtio驱动程序不支持这种批处理,但是Xv6的文件系统设计允许这样做。 + +Xv6在磁盘上留出固定的空间来保存日志。事务中系统调用写入的块总数必须可容纳于该空间。这导致两个后果:任何单个系统调用都不允许写入超过日志空间的不同块。这对于大多数系统调用来说都不是问题,但其中两个可能会写入许多块:`write`和`unlink`。一个大文件的`write`可以写入多个数据块和多个位图块以及一个inode块;`unlink`大文件可能会写入许多位图块和inode。Xv6的`write`系统调用将大的写入分解为适合日志的多个较小的写入,`unlink`不会导致此问题,因为实际上Xv6文件系统只使用一个位图块。日志空间有限的另一个后果是,除非确定系统调用的写入将可容纳于日志中剩余的空间,否则日志系统无法允许启动系统调用。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s6.md b/tranlate_books/book-riscv-rev1/c8/s6.md new file mode 100644 index 0000000..04663af --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s6.md @@ -0,0 +1,41 @@ +# 8.6 代码:日志 + +在系统调用中一个典型的日志使用就像这样: + +```c + begin_op(); + ... + bp = bread(...); + bp->data[...] = ...; + log_write(bp); + ... + end_op(); +``` + +`begin_op`(***kernel/log.c***:126)等待直到日志系统当前未处于提交中,并且直到有足够的未被占用的日志空间来保存此调用的写入。`log.outstanding`统计预定了日志空间的系统调用数;为此保留的总空间为`log.outstanding`乘以`MAXOPBLOCKS`。递增`log.outstanding`会预定空间并防止在此系统调用期间发生提交。代码保守地假设每个系统调用最多可以写入`MAXOPBLOCKS`个不同的块。 + +`log_write`(***kernel/log.c***:214)充当`bwrite`的代理。它将块的扇区号记录在内存中,在磁盘上的日志中预定一个槽位,并调用`bpin`将缓存固定在block cache中,以防止block cache将其逐出。 + +> 注:固定在block cache是指在缓存不足需要考虑替换时,不会将这个block换出,因为事务具有原子性:假设块45被写入,将其换出的话需要写入磁盘中文件系统对应的位置,而日志系统要求所有内存必须都存入日志,最后才能写入文件系统。 +> +> `bpin`是通过增加引用计数防止块被换出的,之后需要再调用`bunpin` + +在提交之前,块必须留在缓存中:在提交之前,缓存的副本是修改的唯一记录;只有在提交后才能将其写入磁盘上的位置;同一事务中的其他读取必须看到修改。`log_write`会注意到在单个事务中多次写入一个块的情况,并在日志中为该块分配相同的槽位。这种优化通常称为合并(absorption)。例如,包含多个文件inode的磁盘块在一个事务中被多次写入是很常见的。通过将多个磁盘写入合并到一个磁盘中,文件系统可以节省日志空间并实现更好的性能,因为只有一个磁盘块副本必须写入磁盘。 + +> 注:日志需要写入磁盘,以便重启后读取,但日志头块和日志数据块也会在block cache中有一个副本 + +`end_op`(***kernel/log.c***:146)首先减少未完成系统调用的计数。如果计数现在为零,则通过调用`commit()`提交当前事务。这一过程分为四个阶段。`write_log()`(***kernel/log.c***:178)将事务中修改的每个块从缓冲区缓存复制到磁盘上日志槽位中。`write_head()`(***kernel/log.c***:102)将头块写入磁盘:这是提交点,写入后的崩溃将导致从日志恢复重演事务的写入操作。`install_trans`(***kernel/log.c***:69)从日志中读取每个块,并将其写入文件系统中的适当位置。最后,`end_op`写入计数为零的日志头;这必须在下一个事务开始写入日志块之前发生,以便崩溃不会导致使用一个事务的头块和后续事务的日志块进行恢复。 + +`recover_from_log`(***kernel/log.c***:116)是由`initlog`(***kernel/log.c***:55)调用的,而它又是在第一个用户进程运行(***kernel/proc.c***:539)之前的引导期间由`fsinit`(***kernel/fs.c***:42)调用的。它读取日志头,如果头中指示日志包含已提交的事务,则模拟`end_op`的操作。 + +日志的一个示例使用发生在`filewrite`(***kernel/file.c***:135)中。事务如下所示: + +```c + begin_op(); + ilock(f->ip); + r = writei(f->ip, ...); + iunlock(f->ip); + end_op(); +``` + +这段代码被包装在一个循环中,该循环一次将大的写操作分解为几个扇区的单个事务,以避免日志溢出。作为此事务的一部分,对`writei`的调用写入许多块:文件的inode、一个或多个位图块以及一些数据块。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s7.md b/tranlate_books/book-riscv-rev1/c8/s7.md new file mode 100644 index 0000000..3725bd8 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s7.md @@ -0,0 +1,9 @@ +# 8.7 代码:块分配器 + +文件和目录内容存储在磁盘块中,磁盘块必须从空闲池中分配。xv6的块分配器在磁盘上维护一个空闲位图,每一位代表一个块。0表示对应的块是空闲的;1表示它正在使用中。程序`mkfs`设置对应于引导扇区、超级块、日志块、inode块和位图块的比特位。 + +块分配器提供两个功能:`balloc`分配一个新的磁盘块,`bfree`释放一个块。`Balloc`中位于***kernel/fs.c***:71的循环从块0到`sb.size`(文件系统中的块数)遍历每个块。它查找位图中位为零的空闲块。如果`balloc`找到这样一个块,它将更新位图并返回该块。为了提高效率,循环被分成两部分。外部循环读取位图中的每个块。内部循环检查单个位图块中的所有BPB位。由于任何一个位图块在buffer cache中一次只允许一个进程使用,因此,如果两个进程同时尝试分配一个块,可能会发生争用。 + +`Bfree`(***kernel/fs.c***:90)找到正确的位图块并清除正确的位。同样,`bread`和`brelse`隐含的独占使用避免了显式锁定的需要。 + +与本章其余部分描述的大部分代码一样,必须在事务内部调用`balloc`和`bfree`。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s8.md b/tranlate_books/book-riscv-rev1/c8/s8.md new file mode 100644 index 0000000..db833c5 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s8.md @@ -0,0 +1,17 @@ +# 8.8 索引结点层 + +术语inode(即索引结点)可以具有两种相关含义之一。它可能是指包含文件大小和数据块编号列表的磁盘上的数据结构。或者“inode”可能指内存中的inode,它包含磁盘上inode的副本以及内核中所需的额外信息。 + +磁盘上的inode都被打包到一个称为inode块的连续磁盘区域中。每个inode的大小都相同,因此在给定数字n的情况下,很容易在磁盘上找到第n个inode。事实上,这个编号n,称为inode number或i-number,是在具体实现中标识inode的方式。 + +磁盘上的inode由`struct dinode`(***kernel/fs.h***:32)定义。字段`type`区分文件、目录和特殊文件(设备)。`type`为零表示磁盘inode是空闲的。字段`nlink`统计引用此inode的目录条目数,以便识别何时应释放磁盘上的inode及其数据块。字段`size`记录文件中内容的字节数。`addrs`数组记录保存文件内容的磁盘块的块号。 + +内核将活动的inode集合保存在内存中;`struct inode`(***kernel/file.h***:17)是磁盘上`struct dinode`的内存副本。只有当有C指针引用某个inode时,内核才会在内存中存储该inode。`ref`字段统计引用内存中inode的C指针的数量,如果引用计数降至零,内核将从内存中丢弃该inode。`iget`和`iput`函数分别获取和释放指向inode的指针,修改引用计数。指向inode的指针可以来自文件描述符、当前工作目录和如`exec`的瞬态内核代码。 + +xv6的inode代码中有四种锁或类似锁的机制。`icache.lock`保护以下两个不变量:inode最多在缓存中出现一次;缓存inode的`ref`字段记录指向缓存inode的内存指针数量。每个内存中的inode都有一个包含睡眠锁的`lock`字段,它确保以独占方式访问inode的字段(如文件长度)以及inode的文件或目录内容块。如果inode的`ref`大于零,则会导致系统在cache中维护inode,而不会对其他inode重用此缓存项。最后,每个inode都包含一个`nlink`字段(在磁盘上,如果已缓存则复制到内存中),该字段统计引用文件的目录项的数量;如果inode的链接计数大于零,xv6将不会释放inode。 + +`iget()`返回的`struct inode`指针在相应的`iput()`调用之前保证有效:inode不会被删除,指针引用的内存也不会被其他inode重用。`iget()`提供对inode的非独占访问,因此可以有许多指向同一inode的指针。文件系统代码的许多部分都依赖于`iget()`的这种行为,既可以保存对inode的长期引用(如打开的文件和当前目录),也可以防止争用,同时避免操纵多个inode(如路径名查找)的代码产生死锁。 + +`iget`返回的`struct inode`可能没有任何有用的内容。为了确保它保存磁盘inode的副本,代码必须调用`ilock`。这将锁定inode(以便没有其他进程可以对其进行`ilock`),并从磁盘读取尚未读取的inode。`iunlock`释放inode上的锁。将inode指针的获取与锁定分离有助于在某些情况下避免死锁,例如在目录查找期间。多个进程可以持有指向`iget`返回的inode的C指针,但一次只能有一个进程锁定inode。 + +inode缓存只缓存内核代码或数据结构持有C指针的inode。它的主要工作实际上是同步多个进程的访问;缓存是次要的。如果经常使用inode,在inode缓存不保留它的情况下buffer cache可能会将其保留在内存中。inode缓存是直写的,这意味着修改已缓存inode的代码必须立即使用`iupdate`将其写入磁盘。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c8/s9.md b/tranlate_books/book-riscv-rev1/c8/s9.md new file mode 100644 index 0000000..c1f1ecd --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c8/s9.md @@ -0,0 +1,23 @@ +# 8.9 代码:Inodes + +为了分配新的inode(例如,在创建文件时),xv6调用`ialloc`(***kernel/fs.c***:196)。`Ialloc`类似于`balloc`:它一次一个块地遍历磁盘上的索引节点结构体,查找标记为空闲的一个。当它找到一个时,它通过将新`type`写入磁盘来声明它,然后末尾通过调用`iget`(***kernel/fs.c***:210)从inode缓存返回一个条目。`ialloc`的正确操作取决于这样一个事实:一次只有一个进程可以保存对`bp`的引用:`ialloc`可以确保其他进程不会同时看到inode可用并尝试声明它。 + +`Iget`(***kernel/fs.c***:243)在inode缓存中查找具有所需设备和inode编号的活动条目(`ip->ref > 0`)。如果找到一个,它将返回对该incode的新引用(***kernel/fs.c***:252-256)。在`iget`扫描时,它会记录第一个空槽(***kernel/fs.c***:257-258)的位置,如果需要分配缓存项,它会使用这个槽。 + +在读取或写入inode的元数据或内容之前,代码必须使用`ilock`锁定inode。`Ilock`(kernel/fs.c:289)为此使用睡眠锁。一旦`ilock`以独占方式访问inode,它将根据需要从磁盘(更可能是buffer cache)读取inode。函数`iunlock`(***kernel/fs.c***:317)释放睡眠锁,这可能会导致任何睡眠进程被唤醒。 + +`Iput`(***kernel/fs.c***:333)通过减少引用计数(***kernel/fs.c***:356)释放指向inode的C指针。如果这是最后一次引用,inode缓存中该inode的槽现在将是空闲的,可以重用于其他inode。 + +如果`iput`发现没有指向inode的C指针引用,并且inode没有指向它的链接(发生于无目录),则必须释放inode及其数据块。`Iput`调用`itrunc`将文件截断为零字节,释放数据块;将索引节点类型设置为0(未分配);并将inode写入磁盘(***kernel/fs.c***:338)。 + +`iput`中释放inode的锁定协议值得仔细研究。一个危险是并发线程可能正在`ilock`中等待使用该inode(例如,读取文件或列出目录),并且不会做好该inode已不再被分配的准备。这不可能发生,因为如果缓存的inode没有链接,并且`ip->ref`为1,那么系统调用就无法获取指向该inode的指针。那一个引用是调用`iput`的线程所拥有的引用。的确,`iput`在`icache.lock`的临界区域之外检查引用计数是否为1,但此时已知链接计数为零,因此没有线程会尝试获取新引用。另一个主要危险是,对`ialloc`的并发调用可能会选择`iput`正在释放的同一个inode。这只能在`iupdate`写入磁盘以使inode的`type`为零后发生。这个争用是良性的:分配线程将客气地等待获取inode的睡眠锁,然后再读取或写入inode,此时`iput`已完成。 + +`iput()`可以写入磁盘。这意味着任何使用文件系统的系统调用都可能写入磁盘,因为系统调用可能是最后一个引用该文件的系统调用。即使像`read()`这样看起来是只读的调用,也可能最终调用`iput()`。这反过来意味着,即使是只读系统调用,如果它们使用文件系统,也必须在事务中进行包装。 + +`iput()`和崩溃之间存在一种具有挑战性的交互。`iput()`不会在文件的链接计数降至零时立即截断文件,因为某些进程可能仍在内存中保留对inode的引用:进程可能仍在读取和写入该文件,因为它已成功打开该文件。但是,如果在最后一个进程关闭该文件的文件描述符之前发生崩溃,则该文件将被标记为已在磁盘上分配,但没有目录项指向它。 + +文件系统以两种方式之一处理这种情况。简单的解决方案用于恢复时:重新启动后,文件系统会扫描整个文件系统,以查找标记为已分配但没有指向它们的目录项的文件。如果存在任何此类文件,接下来可以将其释放。 + +第二种解决方案不需要扫描文件系统。在此解决方案中,文件系统在磁盘(例如在超级块中)上记录链接计数降至零但引用计数不为零的文件的i-number。如果文件系统在其引用计数达到0时删除该文件,则会通过从列表中删除该inode来更新磁盘列表。恢复时,文件系统将释放列表中的任何文件。 + +Xv6没有实现这两种解决方案,这意味着inode可能被标记为已在磁盘上分配,即使它们不再使用。这意味着随着时间的推移,xv6可能会面临磁盘空间不足的风险。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c9/s0.md b/tranlate_books/book-riscv-rev1/c9/s0.md new file mode 100644 index 0000000..6704e76 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c9/s0.md @@ -0,0 +1,7 @@ +# 第五章 中断和设备驱动 + +驱动程序是操作系统中管理特定设备的代码:它配置硬件设备,告诉设备执行操作,处理由此产生的中断,并与可能正在等待设备输入/输出的进程进行交互。编写驱动可能很棘手,因为驱动程序与它管理的设备同时运行。此外,驱动程序必须理解设备的硬件接口,这可能很复杂,而且缺乏文档。 + +需要操作系统关注的设备通常可以被配置为生成中断,这是陷阱的一种。内核陷阱处理代码识别设备何时引发中断,并调用驱动程序的中断处理程序;在xv6中,这种调度发生在`devintr`中(***kernel/trap.c***:177)。 + +许多设备驱动程序在两种环境中执行代码:上半部分在进程的内核线程中运行,下半部分在中断时执行。上半部分通过**系统调用**进行调用,如希望设备执行I/O操作的`read`和`write`。这段代码可能会要求硬件执行操作(例如,要求磁盘读取块);然后代码等待操作完成。最终设备完成操作并引发中断。驱动程序的**中断处理程序**充当下半部分,计算出已经完成的操作,如果合适的话唤醒等待中的进程,并告诉硬件开始执行下一个正在等待的操作。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c9/s1.md b/tranlate_books/book-riscv-rev1/c9/s1.md new file mode 100644 index 0000000..9c713f3 --- /dev/null +++ b/tranlate_books/book-riscv-rev1/c9/s1.md @@ -0,0 +1,17 @@ +# 5.1 代码:控制台输入 + +控制台驱动程序(***console.c***)是驱动程序结构的简单说明。控制台驱动程序通过连接到RISC-V的UART串口硬件接受人们键入的字符。控制台驱动程序一次累积一行输入,处理如`backspace`和`Ctrl-u`的特殊输入字符。用户进程,如Shell,使用`read`系统调用从控制台获取输入行。当您在QEMU中通过键盘输入到xv6时,您的按键将通过QEMU模拟的UART硬件传递到xv6。 + +驱动程序管理的UART硬件是由QEMU仿真的16550芯片。在真正的计算机上,16550将管理连接到终端或其他计算机的RS232串行链路。运行QEMU时,它连接到键盘和显示器。 + +UART硬件在软件中看起来是一组**内存映射**的控制寄存器。也就是说,存在一些RISC-V硬件连接到UART的物理地址,以便载入(load)和存储(store)操作与设备硬件而不是内存交互。UART的内存映射地址起始于`0x10000000`或`UART0` (***kernel/memlayout.h***:21)。有几个宽度为一字节的UART控制寄存器,它们关于UART0的偏移量在(***kernel/uart.c***:22)中定义。例如,LSR寄存器包含指示输入字符是否正在等待软件读取的位。这些字符(如果有的话)可用于从RHR寄存器读取。每次读取一个字符,UART硬件都会从等待字符的内部FIFO寄存器中删除它,并在FIFO为空时清除LSR中的“就绪”位。UART传输硬件在很大程度上独立于接收硬件;如果软件向THR写入一个字节,则UART传输该字节。 + +Xv6的`main`函数调用`consoleinit`(***kernel/console.c***:184)来初始化UART硬件。该代码配置UART:UART对接收到的每个字节的输入生成一个接收中断,对发送完的每个字节的输出生成一个发送完成中断(***kernel/uart.c***:53)。 + +xv6的shell通过***init.c*** (***user/init.c***:19)中打开的文件描述符从控制台读取输入。对`read`的调用实现了从内核流向`consoleread` (***kernel/console.c***:82)的数据通路。`consoleread`等待输入到达(通过中断)并在`cons.buf`中缓冲,将输入复制到用户空间,然后(在整行到达后)返回给用户进程。如果用户还没有键入整行,任何读取进程都将在`sleep`系统调用中等待(***kernel/console.c***:98)(第7章解释了`sleep`的细节)。 + +当用户输入一个字符时,UART硬件要求RISC-V发出一个中断,从而激活xv6的陷阱处理程序。陷阱处理程序调用`devintr`(***kernel/trap.c***:177),它查看RISC-V的`scause`寄存器,发现中断来自外部设备。然后它要求一个称为PLIC的硬件单元告诉它哪个设备中断了(***kernel/trap.c***:186)。如果是UART,`devintr`调用`uartintr`。 + +`uartintr`(***kernel/uart.c***:180)从UART硬件读取所有等待输入的字符,并将它们交给`consoleintr`(***kernel/console.c***:138);它不会等待字符,因为未来的输入将引发一个新的中断。`consoleintr`的工作是在***cons.buf***中积累输入字符,直到一整行到达。`consoleintr`对`backspace`和其他少量字符进行特殊处理。当换行符到达时,`consoleintr`唤醒一个等待的`consoleread`(如果有的话)。 + +一旦被唤醒,`consoleread`将监视***cons.buf***中的一整行,将其复制到用户空间,并返回(通过系统调用机制)到用户空间。 \ No newline at end of file diff --git a/tranlate_books/book-riscv-rev1/c9/s10.md b/tranlate_books/book-riscv-rev1/c9/s10.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s2.md b/tranlate_books/book-riscv-rev1/c9/s2.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s3.md b/tranlate_books/book-riscv-rev1/c9/s3.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s4.md b/tranlate_books/book-riscv-rev1/c9/s4.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s5.md b/tranlate_books/book-riscv-rev1/c9/s5.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s6.md b/tranlate_books/book-riscv-rev1/c9/s6.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s7.md b/tranlate_books/book-riscv-rev1/c9/s7.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s8.md b/tranlate_books/book-riscv-rev1/c9/s8.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/c9/s9.md b/tranlate_books/book-riscv-rev1/c9/s9.md new file mode 100644 index 0000000..e69de29 diff --git a/tranlate_books/book-riscv-rev1/images/c6/p1.png b/tranlate_books/book-riscv-rev1/images/c6/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..30bcc92752923db9653afdc8ce151ff2fb576e2c GIT binary patch literal 29621 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 KM$rSiu>S+>F6+Yp literal 0 HcmV?d00001 diff --git a/tranlate_books/book-riscv-rev1/images/c7/p1.png b/tranlate_books/book-riscv-rev1/images/c7/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..c4bac8474096676e87f5c5b88a90fe4c4480cbde GIT binary patch literal 118313 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 literal 0 HcmV?d00001 diff --git a/tranlate_books/book-riscv-rev1/images/c8/p1.png b/tranlate_books/book-riscv-rev1/images/c8/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..44e8b54ad467f64b8435dbc63bae0eff8e172398 GIT binary patch literal 21092 zcmeFZ8h zi5GLtA27b)LOh>y?sMOJuf5jV8~x>EUSpsVqaq+6U`V_XRX{*M`~=^RqTGeAw5&0S z2nY&H5~3nXjz2c19JFv(NDy`>wQ;z;>Z39~^J3v)D~W#kQuT9)@0V%b@k*t}>kWDp ztAE-K%34bD@;+@}s<72l(M3cIEFaKNRxh4VX0iF;qkKY2+7T}3SlX@*KS^{sz|4I? zkqnQ6KmAJdV|V`N+cV?`wEuk<_JAhpzi(d9g~{D63jyK#ia^ zy(~3>%grkX_wL^Dd9Q!}FS?@uxzBqP&oHt#E-fnu*p#J+IkE-@8J?am`%4r1DQg+~(QAN=8P;*ZU9Y_`?i8?Jr8Ova$*a z3YH?8SU%ONn%&$qH#L>Cr#O15FiJ2}mFfeei(&ymd0GFK$IPSiiYxcf6KceOj z8&42&b8hj$Kt@J}J^1|h?_WYzovNy;Ffu>a!Qo*{G&J~1$B%_Tymh*_(0FrQt2J3~ zYHFHp#M;krzZ~BelZ?-59%)P-VYh2zq$rj}Q`{c!Xz%dw@^p`SOuihq%&=EdN{X5v z6=9JG0{XLx-TFTUxlKH(3rr+WIdFg4Y4lm5lT{LW5MW+vRkIxX6L z9~l9md3Ua*3lp+~czJD2!X9NG2}iPD#nI7GF6YxLZbTj)o@(PmM16g8bLQ7qvJ<>+ zZf?ZE@OgwzHb?ibm3qHE-_iH&m$}^Qc&zV>pz%sik7|sv{PE4z$>T9f1d5qtjQ{t1 zGge;tlaQC6PXn)jVEnnUQ8>Prjvux94y0hRGK*#Deci2;=eEwf5?onvrDp5D-3F zqWqJ)+ds|w{CUNal~c%LVa!Nb1cdR1wAZ1{?-c%i^}<2u&mAt**3{9Ffkz_re;&$H zRaH@mAoHI5?1fW~pOcfbwzj7K`t}K*#o_vL{4CidA&+YT2q_94QZlmc-@iLUQWJ8W^@#YPEkxu>k>S~q!mWEK$%(=^bgs_eCqYVuW4gJ>xKhl{8PhGFugGtE9 z$XIn7CYdkXuFmah8N?9p-i15zSWZi;AUt~Xh!oQ|zy50_11G1Fwzl@~=)u83K>-1} zw{cOiu_Mh^74kGRQDS0ZY;0_>N%$y81$7(!{r!S2$91k}rO_v7DAm=~xOCFHhlj2g z$1Gzd2!9XP27P6+BFV&TB1)xkQIOyvB_$=^-rlL+U0q!+C)@SzSI)H(81b3O$rN;S zbQ~OIC6AeznE0Lc7a=etB_%cJICryC)YZR-h3)Pyb<@>-FArT@Bq8QT z>Dc2i`h$doL@MN3rTNoB-}iuJ{u8gizdt@ce#LQo{ImCWd#Fd4?;;{z9BmlAd-uYg zVwMTT^KfG%v~NXIUEQAmw%4^S0AEK(CowTGxc_(sdOY+$O1%`q=baLvhvo%&!TMWke0dD z)>hZk-KNgY&ZZ{Fj+A91DJdyf;r{+Uyc(=9I4Ed+CY&=vu2Z-1^IpJYr6T$Lwbolx6XJ}AR)TyI| z#rEadf!GSB2o@sZS2BM4Vm0Qyp(?HI8IPN(k`J%-%NkNs#Nx*?q57$_+zEi5cV)qN=Z3JbS&J+9j3KG9&F4Hsy- zT^!@%JJAR5@$m&DJ$f3;Z!yU$Ce}v%I)quXQX01DWy(7u`}x)f1AKzchkl`l{Zmp>pbCU6%+1X~ z(1{|Tc#cj?1O_m_)Yo71!={dkjusQ6O^`|AwVIFTu{50ukIGOHEH5voLG6NNg^=*b z{NsG9t?dS7m*0N#*R!6Ej@RWHDk{T$!Z+r|#`LK8V)B}r6SK4L2KZ_nb}|Qy{lZp} zh#x(|e$CQLfM9%=Ah5z@kPeFIq=pis-C}3>NRciNCuey{Nmow~jmn3zF(}KW6&3jP zYE&qxX=!B!-2?*%dDn}gaV%KeAIH;kbDaSY+5dDrNgt9Ea@wa65SaY^+jP3l>F$?V zz)j!_fHCMOD64~64@+c3M4Em)w`p!}M#sQ_7&g<>!yzGYIa(j$G8@Lj!!sW*_ctC7 zU8qV*nt>0?CDablibgBj(hW-_s|%bm;lz#Pj*7z zs{u?oI-ZuB4E{+J+*n^{9H$HIn1J+fcfbC|_F;2tOW6IAK5HmafP4p5>2bMtKim_S z6%qG|%;C||)@VuEY224DU-DE6s1jXKJk`|H%*RTXHpj}av9Ysc5{QM}1)T1SU@9vQ zv3+PS9@|{b<-A)OmMKjwi9RpX@vLWfn45`d1H!karUvRL?eH3Gk9I8S z&&|nkJKd$Er(cCi0R@ZjsaF5sU|w|^vQ&Y1S9kZp-d?rKN#XbJV~bspki+DH&gGEr zxVX6fPu~{lHa0*xtEf22S1&_HNB`a3y)#*TFx!M^X}N<&_!OO()9+=9?P`At6hSD3 zu0k__=Eg`+xpOiz>6RcMnMpf-qGBJZ0DMEb-nnxJ&_J3_v5vDaJDb;Gn>4mNf#1Ob z_6G||;>{ZrRMhb*E9%&8?M8P&pZ7;kp8Pfc@-K3)BIb|UMsA8Imj3zS+GAmN8Ulb5 znM8p{VgnM9bpHDm!otGD!G+cN#GG1;%7woRQ zQ$9d7V8c_j4unH;bhNbaG(~zmCZ;?uFC;z6kcImX$(2-8DvOJ;lvx4p)igEp^70_p zU)oY=J$2}gVX@_#8XSz|)rP;pLqw~c&i0oyLdA4U>74`;i;9Y%2u4Kw^?HDNd3mW) zsAXbm8bIL}7#O%pii+e3N&oTVN5<&&?d=A;jp4WP+(&DJuK^84N2|Cty2h0-47A4` zF_xz5UAnuwHR%eM|BVv=M!v-`9+zWt#_02t8IM4rjh!9Yw1M^zvhF2ol1Xg&Zxkr( z#{J14LiFA{Ii0Nzq+uha46X@Z9Y$tfx?Y`E1P2G_=B@{m@Q7-@k&RlW_U9~npkxe8bCeDRD6m(H3 z2c-5D#qblwSjtl^qG=d+*q&tL8dU8Gs+kFe<8XC?=>&o*9{G6PeJUkAw zzrGA+$r9GX>u9p-)Dg85hlPc;W1_a{l>lgPadFw%*|o)*nV3lY`z{eGnE~Rj@pUM9 ztFS!Y)pqU9kA#GoMh}mR_wya{!putx(FE%X-qt#M%Z#d>W4z&37E9pW&QT#(OkmqLC-Q$b;VWd+!B zrSU*2EDWeKB&(2sfa~sT)7aRU{$tUJ=(srNt?>%@*U8Drn&G)myuh9@AdS(`@;oYF ztygdo56K0LKRqplEdfl?ZE&p~j=nivct{udJt@g!W4Pe+=g+WqKxWSC+3_F9-Q~-v z`T5e95mJ|mfMkP%xGm3Ky=oB)B=C>>79Sta&(B{5eSJJa z!k-pXH5pQ|_K=##bLK?oK4oQPr#M_(6>!7XqN1(s?Knr_p^t@^56*xO0kNGoo9F%W z?isKSP=ugI{JntzJ%2tlKCh$Wr-ST+LBj2Jewdz4gC_>u&@cAOJv0I@FE3_|^3MML zXF8odJ)2oc?l@$nK0fUcv{F=5R1IVPDNrQATlg+*sHR4=_tivF@^|t379j69I5^kf ze-sx#dm1ansi;|FyS6@**LGh#yrD$I*m$+npxcj;7DWP(S zNC;-MBo_}4;f~H%3crR1Ax{c8d{-e|CBHe|Yp9JN=$4n300@MVZmzFfzPt!aNa&sW z)LJXRt!Bz~yuzKTG%_%-26Vd>8%|izX+M4W^>l+92{v|kczBaO`Q!1=3OPml zA2-FZ3ua(o0Pg>H#OF3rL^NLJ6cn(8-{b)MFf+5Mo=i=pN_|Wf*ruSU7@186zyid= zmM`I(O;DR2(D;Aj#1T#Jj7?1&pqzqBB3}aHwLq)d8i)wsn1J275-^yAgakO8j-W?r zDJcWx3(6`gF}zsvJ%E4$qF_kdlLYLIOHH7juKr2Ad zO;1m!KI9(V|E6~ECxKr`NC;3F%mI*#j*!h2W+Md5YH|k#bX;6VwL1-g!NFStX#h;I zg@qQ@)<7U)RrA&4H8jpQiW>EZK)$r;v-c$mnps%rs3ICXAA0wFSZnoVD{s`v&WzDB zBGEwid-v}7i+p24r?z-75HUJB3PADS8S<{1bH_VgVVM;FGc|uH5w#9#4F^#?m0t2P zinXD*s>%_N3s^z!bMu12!l&`Q7M~n~$8Y@}5Kk=OIfxWr-aPkvj6`#t4kZ>+qyed8 zPccj8<7n|0<7BGqCwO9Fmj8~z+|UXno_3_<+wr0LH@^{&qr?w88S%GLt~(4#Ra zK@)ipKHF2ZP?};o8~ww}!8&l=n{R`Hh`ZCD+K$Zcu>FI_l3doGgBHO;fGnsZN#jPN{tYO&n&9l{eoLuC-^ zhLGDisI@JKsoB}E=;(~RyzZ3)kjiaLTd=kXjk(cd|J<02sL05Jg-~Ho@pVw{U_)p% z%+u(BG!5#ypJmWef8soRmjDhl8(g2qc3)jz?0~+T28Ikdol16g>vEp$ zL-q}eYP?ieQfk#_Z)3%e>|$nQOdT*5^%X__nv$K}sn3pvib`|Ny0Wwc>4u%8te~Lx zjL22!rp5OmPAxqX6EF;UIXPpEw>lswc+jF_W5JYl87b5T4K`W){?)s86!Nq$1afH$ z=>yy5_Z+!?s=$%R$x$RS?4MnNx0$N7DASX^4;0cJ45MmiX10BT2oyF z5p{JZ&;_aET6kiwgNf~+et;JWh5#(bza1HeCA5u%gocJj^z~~J5)!EWYKI@PD=Uv7 z{vQju((80Y0=*$8w=gxWF&$#u3#hq+h%Ei>*&HZ9pd?nGKD{eZ;|&1`Gh&|1yu-DP z5o3}b7!crmwx99!YYSv$tFODXl$4o9&d?}=pF(|IU0r!OxCKgjW%C9mAW+rRzClUa zTj&7F%BYbT9!|ML8eM962SFZD51VS~msOo%-~sTey_!!#NssaHlyr0&fF=lEpT1H` z0Id}jysAI*l8Krn6Yg4G&bdchhJ2yl5yx1iHb!hBMVRzI`jW9C-3M z{}KgVaHa~sOJ|8-NUJ^qcdG$ zrt1G?5K1A9&H+?2R8&+TGw?Oh@7ACkK=WEv5a*PW0iz5`F=Y4nU|M|>dx44)BdBKb z&=D_H>b*N=8S+|MJ#(LWdV4|ch@x4MHUix$$k6)=9u49!q#g$c6EkxV6ii(m1qE;v zaQD1QAv1vXC@PjgO3jm&azIpASs#kY`!gum*x2~r(QoC^G_(Gj%~F0Zoi+-p8o2)030Ghlfqe*? z85~pW`WsFzE(lJs6gkkqQDI>e=d-}^K%eBKq==v=d`(>iI{|bjJgYB(|B15@94hd{ z(2fNsXJ?$9`PSV=(Ccl1gcS`Tfr~3EjbJ^^%Y!}hrd;ib`!dI~XV2K#BUZP*MMPKw z)z#qnv#^H=9!K1HLf?umsAB*LGCtc+&=(*GdBoA))5FZpZVf#MoU(2k-XFk+OyV%Q zZYvXDVBlX0_y(lo>e?DDs=wtN#4ad8T87I?DUmm>57_oOtQI5&M?bgBVFhFC9~_*y zHo%`&WdGqW^HQZ{WmcpfhpXX$gDFXaEVw7gPPJptDWAPJWxG$4S_?Y!J^{Bvq{Vj_7`pU35C3B96z z*;uXp7AT77Q|=8(ne>^LBqBgQp#}rW1Ja%B?^7Y)2?+>*c7R5Sp7$!3)o{K##4YN> zhmYCxT7mI`0rUpl{EuN-EVKIj{QS%OVQ_qa0-A#tv-URwuBECW1Xq=fgJW=P%n5jg z=+d)*Q~(fwWg+{`(R!B?h!A!M$Mc5JD+4=#Bx+@xH}pZGD{pAHN>VJ&>f%5S9hQi)4H3pB6i@ z=MCO%Pgb`^=bo{@`|yDSECdi+Me1eCfH18K&lwrlL8}&JXB*3|q(^go;Ls9E3Z-}h zuY9Z2Y|2nP{oDmiuaJKiyozHl$b=Bo1pcr^464KHy;_oxTjj@zVI1sZ5dUT)h2Ts; zCX(}5{D_Owu(h@Q^r^U^!M)%W?Hff?u3=!IEzQl_GmXOLqt6C@ErWGOKtKRwFm(vv z#RrqD1|ZMrV0o(ACd+2!53pi1baXi0`Jp^faiLGMzd*+I#c`QIQ5T&^0a<6i{!ijJ z3qn6Vn9)G7!0LjIA{qw9)>zpSw&H4_;-?RVL^aa@p&(@rAsC)MeacL*0qkIJZx5LB ze1ZIigiQM6OU;45h}y#(NAo}`pkj-bc^$0|EC6%EdED341s7xEcc6Ge(p{acB;hEs zTJ!z@r!(*bS4mFp8=sx2xVX=$sn*kzR)1Vr3y}3z&esrCSXauN#ZIoSuJA5xnkbYg zsRaeM&4;}^-@&~mWLBg2ZD`Cn4xjq^^{W}#=wx&AJb1fs>nGN9NFtC+U{9E076J*M z14=!8;U$@IygpA;XLp)fyRz~pZ_@Y3u3ZdOA> z!~c2?vYbHzY?3d*RmVaCQ{4{ErK}7J3Vhud%8QMNP|!xK_?9JwikKz^)q_8k(A%1U3bp zh(V5WXq+NzW=4jSlaoKH8a{qBeD31xOhUT;8+hn8%hChJimf!|poLfAb-@x}=m>2a z(E<_f?R{^rHU;z&+fnMFCPK12Bq*GKSmVQYMBI=p5Y%v&&V{|>otdJvG-^g%uwOyS zpMpcLn4_ett2==FKd7TgH2TBKOF>IQ;?|_Dwpk$;a#icQEQaPn5bB+Y_!l= zn1n*u?2QJkhxy3-HxjN-E%mZs3k9FpLY&l)M?&$bW~PZd74baf_}slDE+z)&`IMJe zEj27UEIb?=56>1zEOdGsoesng1;QfgXrlf$qN5;r_Vo04qY(lkg^QCm}WW{Dkm!)r$P|pna zBTBo~nyN)Q_#Q^MBjpNtDqOgd^O!V@Sw&ja3aaQ{(1ih`0~}2d>7e%8x9im_5ndEn zTU!@`6?=Vo27=Dn0{BQOm~ar=xBlzLh-W612oDS0|*1W{1{0ddqTO z66?8oa(1@gw+&f=l>F>$3PVR?K3n5nCNM64#K$vXp#V{cVbP?^eL(Hy?af9M^i;dX zZ+dgWGm|!I>lH_gMg?6I%p*Vy_&+up&#w%V`@O^)m3$?yqEgs+Me5t~zC>-ltR2X1 z0IJPX(lKr_%1MtXWMf@|C^DoacE!KS0{9xa=p zLvK+j&=9lLt+HMFd+SMXa(`nt_?_f&%^-9%55f?Urs`=wfB}%ZNqr|LCy>nOC0?CMw=)(N zlU2jP#B)75S~n5=Ja+mV2N8cm4jYprW!3xKLo{ zbz7s@^*f=iLcxX71MO%yBoM(GHg7+CSO8gidUggK%*Ewp(D#pIpGP7&b`%{@u@Y(4lQJ zF*5^w^KFxUF%dcdHYw17{rgt|L_4S#LPA1+t7?%CT%)5e%Hx2WMNRzc@Bd_DlebX> zd(FuPz!XExj z?>@Bu>HJM%UR?b*?En@2;oH@?Hb_k~nJ<*5_xBr^S>Ag!B|IH$d-~V5;2yplRe#HLezZnB=i%IC$ zye>_HF#=@s(c+Z<#z_{D|7YX`nis!+Oa9M4lJb7~+-n&5e+(eNegbuXsR8mj_bcM* zTo^gD30);1gP;}a|rK*-Lw6D2cbN7aZ#U0gcza!I3p|T)q7gO z{~n0C+SsSaXVPq)AR^W*P^)T<|Ne3fXQZfL>3&y_u^X*uu2Ufc!{0(v;Au{qS1qw`q z_2U7d()WEKqEYi`|8~5}a(Xhg*7&Iaxhw@%d1$rOm^pWXjBid!JXv5{>fjoYPx$R4 zctb!AaVHj5xItS>Oza*G7lK9;SRt=NNF|1+HS2szVGsix9J950K$8Q&Hb*cVs;m|| zF-05d9rv2s+kGUxmz5F9t3c_6RhV+bfQ^tK7`@WRNH7GV4W zW*-uPIPmjp{!2p>lXr2s0O1PVq)0M~+a+tn*HxwnfRh4-G|(O>89;b{LR0(W$1R|s zmf-NU%!QF@Cp<$3BMLIZ8LR=1o2wBhIPhBKFsBAl3>3bmwiejdJtU;fsoIgICQ5E@ zdoaS_#+3XoZXZ<6U7ere3bu0y8ULvHG0<<-LM@4&`yB6neFldj5vJe%Wy{03ASHi0 z-`MDA7@4Q^GjynK&<*wh*WY*!Y&EDv7clq(8V7`Y(;^kz_ZN@YQ!{!H=86gm`2_`y z7u);;o1U$)9RprKObqD1G5{7p@93l?SsmNkHBx-J zq>Tb^3<`+W(-E+5J3HT$|B%V5t*Ox?I)q& z(WVE<1pP_Ca(|09*boo^ut+%4#e1j0&_4%#^$g~lR8^nw6Wl(mobgPG9$aQfQEVi( zXV1b;BcX>1zIR|7BLf2^Lye^pbQ54}u#g_Xv;_2;$L4N7m#o~S`?70ckCzlPAoaG> z;GrNV_v=}Z+L!dz1~D)uAgtcLeG7KW4}OQjY-Og~4>e$0Uv3g&c+!_3iC{%gofDLd zZ9>BX>E1nP0c}C+p}#+D)9?1m{_#cD6qtE}JHxzOuc6eX|0?#&3HFDO_K6;#sp3aU1o!OLqLNdPr?E;JP)BdPbYz~SSLFUZf&&&Uu{u${qz(TkmXSfik%^VAqWUG zuS}1lW6)qs0m?-|b~dbieWYjxI($#T<^&tjdg(VbdKGd$I)v;4Rr(Xhl{fq)*xcM4 zCOo92r91tkG(d43!VKr`+}FfJ9oPukYnU-u+t>h(^;Y43586692wLH1&vr+2J>J4V z6bcfG=QE-p@IIgFHr!6GZLW@&0iXkMj}uHqfgHXSLBQ4WI$(4V0pV|_*-MGpPrOim zcV-$#fOgp0dSyo5{u4rhYy+<3f8V{Rshn{7?|P^b{|g@fZ`J?yx=xr1{qOq!%ednI zf06Y6r!C0VzmG63B*4T-!$(5+<|lXV`>l1;v@Z&$_vRYi8aEZxcknwxPHoeE+D5U2 zL>{f~dvBa93?6*Di|^Jw{ff?wr(LIrZ6>)iil6c)xmX9CA$v5xt-~XJx8D>tONRcz zy2p&16sy+a8@<=cTVs5rG#+do<95o$~UzM$VdZ+JdYM)X1 zUNx3M%3Yhc6UD5RfVX<@r=?asG2X|j`M>R7P+5q~@|ps5r%-FGR^|@=Q7Lun@5)Xr z^SyD>`r&|`6?*2|W=Pm5>(s6EudMj7z?KJ-;d9f#kuSU7cTz2Vk!DbwI#2g}W>DH< z_|OqPD4P3LBrA-C6T^ZrS&e73lMfV#3c{a~Q)kMBu32WHuQj zob*dJOTK!rDj_t$O8sj$ruK%R=&NTw(GxT~XF`!ahulW}t9&XUm%m@s`jP_C ze*ViqWmSkp~h9^*uiK|l{*U?*ng;ld9- zMl{(+&EJUS1{7Z3MF_*8iF%>&7}01IE$@CY=0UTm)4Ubh!k?a>iW%xG9`vrxyAcmV z*)l&6*Q@x%hGAJ8%+c+TYLa1;e@dK_8s03pVa-_U<4ud*W9G#Qe>8ZuqG z;$tLbZ1&jHKeO>#EfP@i{-G*^iq!M&@dtEyVypbsjiox8nFdbOq0&E*d+KfVw8QAW z_;b&7abD|ePt8o(`X5e?UN}2Nex)vT6>U3sQ`q{IgtewVH5N6Mb6r2D)oAzO&9+bi zl@!5*z_=u7soso^v5&m*ACCYsw2Orf=g8*qkOVh}@aJ?V4-C3mSS*~CkmNV&FB|LH zM;Z>MH|chCVbHz?Hi3J-Pd`#v7DteWpQ=!?M-EbC>wh8iOq0G1L~~i?HIiZ zqmGN^IcC%e%{~*6j{^PO;l7=?^vpFOa+2xuso}ym|ON>GiXQb zKrhAGc@wO$YT(>wm_k`C+L|Z z_v1c+3gZT;(VXupxkgcDzc4RgXQe$>@7YkGUHCKQ@?6ctLp^Pn_fSdgEO?B*EVHb#qIH5!kdn{ALC7^RP|>@L*(Eub+ zYd+33Mn>*Bktw6xZh1@IO+XGFMR}o(`}gsZ5<7fe4&k3(iV>HURpvuhm|+sETWl!jv7Gj8&qAC1>yl-yX4 z6we6PUYr^bC}te|dXLC2b)9(UMH$5fj{^mdV^@RQhRG{+D}$J!pzb7+=X;V7EukNG z$xYM5(&AX^SjOmrzB`^jFHI5d)~#Qk-bQ)8L&ojX=bA(cJ~6#Oz@L9D>}9xG zxvb%=-Mi!1^}2CmDuX)hypAHEhM@WSOfWOa(Rak*`0fW1t4BgjQi)`mvxWxKHl0!T z@`jm-r^GN6*LjV*&h%B>tkUaDdlJ*D=ifHWHa{!d+5R!sQI&Sp`Mi6WIi9O7>kCz; z-tzT<|7xFL&#u7D^Gf(7h7xWS!f8^;^8}$_=YE?x<*s&j4DGM$jn-7|m8buF_7~!r zn6!fNghF#an~t)exIVGs;auBwe1!d^vS+P8Y!R0}EwnGhjFqX%gp%LQIWG-GdBpwl zrqZ_#zjB$$|Mk&56OO7KoyIq;(6`5ggS(z)oc1dgzr5c$jr=REI2Eu9~ z_n&A>6Jh4AJu_RlP8MCxdKlAKRpSyK_%wjt?tAIVb=Gm(kwwAuM9SQU+2uwQ!M%>u zy+4MgLOOgmFLyo zav08-bZUdLJ*(7cZ0e0L}- z9I~44C5JU6{{%HpSdqNKF05hb@E235cxvr($%`Egk;kgpZEI|(Lrq6xmkPN$ z_;zHq^eLRA^~N=Bq4I%06VOo~UK{m3`w&;W^V1~<#%pqC+C3o!@{)A4x4bBS9X?o(P7S#7gc;4Ops99BJj6|6i| zZucmlxd$!9bgb{3Up!9qTJh0W`e1(QL<;NaO)`b6qZVm*^c%)sH8{UBlgM?(8&c3U zekzBG>87NT2&>UQ|M-?*>cR7@jt!+5r}AkM-8VtIzk;wA<_vnsn*#NrngC%Tum^FoAEsJ~Hs+7|kJ(mPVjq zoj;cvKP7p5K}O1c9`S`e{D!NEKaQkmTX|@Ft=~lQb$x*?J{D^3*_6Sa^zuTrfAf1e z8l2zzv(;p5s7D8@FYmrL=*zJh%3w4+A7t56R#!DrA)Jb!R#!oi9(X~+{^-wDhRVP7 zAjv8Fxr+5>9M*sbyq{Kmig^qDw1&k*EcdI6*nhf6dC9)$S@e}NYlklu)=)4(}EA&5`{mtE}V6jv@c4#~sV`%_IL@%y`Hk?sys1C#&#*R7${LpkPd)T!4C&|~bA&66mU%$4nnH=KV75?xGx5J;vZ`%I^fKOfs! z+4nP;T1B}hzgZy^K>JHr>xYE}`_iOuoCI>Bot~{-RrYoinr;H-G?VU=0?LaS_gp`z z>2*;&Oxpvt1|A*!2M>df=9(yX64$eLlk2YCr)JM`s8jHYTRb>({#5i5OvX^9M9m%U z{=Gu(r}Yv4#c|?Nb(y%kq*t=dT9&EONHtb)bB<&EfoC+2*8+R${$KNgkO`6X5ASBw zjaA%6`puVTI}B0$hl3+_lkJ5EBPhN3Mb?h)wVl&oRN29luPtS+~p)rHJ)s# zo*|TxkqNQST<6-Rg)x4~UXq{#=0z258IgaF(B)rID)pI_2co`gD#O*I<>UP~?OSH( zpe8M)`Rdfn#BxVhd|g%ePQ~UEmeYZ5jqlBU)w2#%(aWoBqN>cK-qTM*fCe^|S=@;Rv1N8M}2IQ^I4epND@3Z^5rHg&g`=QRD8-ZkJ=)%s zbFH-HzexrqCb#RVZ0LcZCV#JV0B2Z*k@)0h&$xe@?K~Ty@8MMOwSs)4EUNhC>wu?I>4r2K+%I#8eVNnk0O3?Cp2tz0h{$LR;TgzLQ_lZvM9Y!waQ~L{Ut}`~HkPlnNq@{ILJ^bu9&=gQw*79m7itD4aqg7EAIo^L zO7p3b8|l$B4jWU>nAc_`$YOE|3Ut}mvLav9*0W(OwfHAmZE30h6q#^v^-F_QW2woZ z$2&fgthmL^gqrNFk6dPEb4{QF$v%@2!x=>sBQ(Kb^=p#1sQW>9?Gw!$3cNc!8;y3< zf*$qS{ZT(kFB^8wr8>XW8>vk2^toEmw^%H1Pp~H4&p%qH`5`F!Iac82!sW#OeuKd8 zb;Xl0Go|3Xe|3@Bz`_aN!>+`n&eDY{k+xlYMvrJ{Rrv2h1jT%L~B^1Wz0< zD?ZeTY^mxv&0eb8+ltD$pB#>jBsG@)czt~*gL)-s`1;VYF2B5vkGJP{L+rTf50YNO%P8>&LvPGi*s50k{flZDt%|% zYP+KDuf~#YylO|;VdQ>?rnpPKAV&FQqA{3&epiq`zOYW>25yHxMQN%=_M zUe>Rh{HjQ88te!RHKJS^jyogrS||Eb$ah4!n%PIVMA(e)o9lqBa_W4n^=|S+-7bGC@t5%xDJIk<2#BK z!-0(sT2GC`$t33S7YXO^?i6Y9a??58?&3as<_lhOc`FuW-t5Z6%Hj!**j~zwFU%WP z%;Mcntq5*WRPThwjt?4Q?F>7!yP_V8uch7H&O3OrquiJf<#js4d1_&w#5!Xyt+`^u zW!jrWWULa?Y>C;JpI+6rgRU<7(2#FyaqIIEB8IWwXH`5K=QAwLmFg!rziCy{?2~Q| zP~Iy2dV6l9E63*j^1X1CV|}yDIsI0qdBOM4I|$bBpI*cTmWt_KXo$z>e;K#yIzt0f zjXuXWGg#MdSx3**bvML`BuVX*w6@f(Sfi}NyWd2~i)uE#UeZJ|1Lva9;{`F{fVFiA zVRwvteTv8V&33Mj-0qLs_iTTMYiD;@S-)BR)pMAoQ)T(y=yK^9DBQ;%tuCeab-l(y zpm9oZ)Yng!{D?w)SX<&=%Ahfdx95|Nw#akRs5Q^DanWvRclYxRjnckS{xX7U?RzU zRsNm7jx0$#@AnhpbKDS!&R!-UWApMf^3|$S*2G8WXWKlU81{P=gBG%WxNRVwA%`>x zJu|aP{A_xL_Ydg(On2PtiMMtCvFq0*2`{YZ>Q?ZkXYH&7zV_HE3fYy~`KWQ}V5&V- z7;v@xXFcQd?t$gyfu-%Q>QVQy#&riV5j*%@PjNB&Q{Qyej0gwz#)w{QIeL_#=JAN( zs;?gf#$+A}-*jDx+8_PY>@&HZInfn*ejS;{E!l*&Z9YZLy!Xn>`sUujk7#U>wwA_+ zlc;DY%H%g!FP7*m3(i9BAe2Hxrnj%~4DKi^TR!bM!6dufY5DcxwQNG;Zr^opch>VE zjfGdX+jyVgx1?qUMjs1H4h?#Jwj-W3e+jig!dGRdXuv0r>bfWiGs-THjU&}BA~6wJ za*oi@NQz)9yQU$L@ui3zMuu@|JFEYt+xq#u7~#Vpju>-Zf1`6&9h(Z#^H=9y!(Gj* zTRAfi>4wM6q9yS|4uks(Y8~)dMCIll6wH4jwqePrMgO*j@ zt{^?t#Tot(Iip1FO&)jxOgUgz%HpQ-^o=ta1MQGuWoRuQ)hSU!%f+ww_hq#1;~8=v zGvC^%h$3xf&2jx9-r1UX=!*LC=VQL~8280q>B_;DKGZ3v&4HC2+*}jkm3O0KP6^p~ z?(*wQU5~ign0D|L`QPE`j0+1teK?%J+Y&zQRWM}D&)H3joIE4~yYC$vi(4;!4}VG8 zBr)+Wca|h?F!4$rRSA{#l-f==UTuRo26t6D@uRg5LreQpVMa+CbB<#U*L)IZ+a&zbtiW42i4Ra6iuabZSs^*Mp4f+-qz-TE$h$h1wPp;P|^m6}$<4_)M85zIk@x`2Zoa4Q_2V)@;Wv^;j5Ke5o+jpu4ton_k}#Epw|JaqAuQ9*PU&>bn$M&j5q&sB2wX!*B9dB$bxz29;j zScoGhH-$YN`Bs=!%+9u44%Is;_InrAJj+wYg%OuyVyj2lmD6axCaHLL_~(lJ69Z+$ zm)zD1!>(4t`ig1K231|2t^22i6V`2iGpL=l?Pw#Rb4aFgl$pKeuxuE&J)1&n+CduM zHX9B(i;yi<6D`$jdoK~KIBd6xcPF+RH|?d1Y|q`mn~CDn)A(^q{(p}9lLN@vpCjWuWp>FG(ymwy*<6Ou(c+S6 z4tKkXnE3X}HL*>24SC&j9Ac6AQr!6N;oW(7!xtdiU9GHZr0Pokkg(DbKVDj)eXzxY z(0Z-GF{3dv@3rt-JmoFpOkHZ{w?$mt_j4&P|MvWliEP}^;b=2+G^?1#R9XxD!s@;` z?{aO6T%EL?D2v3qSAdPu8Z#_!dZ%Aa|Do4|#e1x7q5K1PQB(LY$yGQ-U2?-RHg~gKN)|p0h?AuQ_&DyfgK)G4G;yKyjtu{GexnbZ^e>`2dMC1L{iu zfYs@CY;a@2?%w+Qx&4i6vF5kQ=(Szll{ylI*P>?_NtoY?*+y7pP1{wjS9!8zh1IFE zBNCNaSKKkR`HlOH$vVj1ni_uw_gWa2?=Mzd+hLiB?r?#lo$U{{%y&z;^xU0X7sGe; z`msz`Xv3363~0$oKS~#5?GX(b4lVRCmA&!^bI&CG6RFItG)F`^mG!alNT!^Rb*G72 z_5-6Qy;?73=l|Bqz5g?z@NocN&r^;3vDgPo7i{yMF8 zUc+r+_4AuAdC#|Yty*rW3h;F++)pN8qrA7|?WO74N4j6XKb2;DyDVvz`2Yg!)Y>LI z4f8?#dQSHQ#4eets_#FKnQXAom0HZwsCpu*Zpg|8g6`#hqfQgwEYs|+f5?==+IX%` zgK<5#_t_}RNQ$5N8%4j10$~3@E*|t7QcLc6gb931$ePXVtd<#WYxHhXePJlbC|fqS z#NqQ*RNSH_v%EKD**G^zN&r`;Zgaspx>X?`#((x*)x#nn!qL3}Au3uE(jBV@ zp?@pneABZTR zF`wP^;C6AA42qz!b$ytw5kt{O*SeaJWzq{3cw3O zN2qoEVBc8yip0X}^xMEi3(OGHM%-4Q=@O@E$uzCZkaB)zo|L^jgBl$4%?F<79`z21 z4}*J`GY+4%xpm5?@n@rorG`J{UbD-%a>4qj2dJgd4$du-O#nHWUDh7LNj){?d>;BM zD(vHst1ogg^P=fCa>YkINSCBQ8rvV&>COmUtgClK?yof&9^nOXzOzh5J{H#MCec^b zk&93N$!W3f@4@dM(L#2T!18{el|TIpKAh+ZmOwFf%+dPeWMj)zIpA1a?|I%m}{s9BgCKu_d1DGfP0Xb`>IaoyJL zT`t#MF^k=UzO^j+R1&nbphqg~&FspKSy1Hc-!13tc7A|Yl6um`2w2a+7Q@=&>D%6p zYxuqGvnJaD!TX&C8Ys}oMxkrx19r#IZ49N>bHFevSsNbz>UZ6C4+Xxl?PJN%E3<)k zcKDEX^SSU-sD>_uAd*^5N;*B9H0;C}@bk_7SYVZ0Vy%9x{i40KysI_4VKcFHBr3{yg%Gp?87)IT^K?B=xGXo8d<^IY=( z*}!r%0&~+|6)p5hJ5?g(okgUB?pA$Mh0U1y(&Uu^7qVq`4;OJ@X+mT6_*ov4x7coZ za@M;TKI5?>tdh9)5+6p~TGD+0gX~Pwzc3o_WVHq!K{Al~=?}2t_)JDxqZl&=wQ0@W zyKzP~C9`x+IhK$oT;o1z3&X0`&!18s_B?F#8L|dO`+}ZVnK<6r7bY(9BAm3(wi`qn zw0g}wZdrZA&sdG|9~Jih7>{EabLT-2mv7js- z%zQI{0K9=EvRT*T`E&RQhGm(TPJuE1yw>nXWMs#3Z}%{8o1DY0=P@Uy&wpx*H0pOI z*T$;5zx$kARm+O;yvd16T-b^W-h-Cb+uoezC7zINZLNh?gz8cs22Wo-q#a^jc?MB& zyTx=~(&80`d*K9COy$9^t7X_#@<;!oDWy^>=9t`#wfKBd;=5F0^le0DtXtOH2XN2X z!U-voLWTvKjhCc8!H4cSrWmhuHrPYuR%ulBh!uv`+pt|b^Ju6ROv+uSp;cTM ztCi-FWB$~;Z({V zPZ1a2`a#qQ0UO94fKh)AigK${XL9R~YfZ+W8~`uXn9HxqO!A9i-96FI<-S{$3DK}+kfo-iO2IiYpr`-_jR4;d7am~r>=IIVmrfj5{X2iq$sCJ zB5h(Lkv3M6Z^SG8pH-_!Bp;HJoUFEM?DtP@hT0Zu(yIlHTXyc`6JQAp@FllNN(>K3 z9CaDFlVWlCuTgSpU3*go>JMP8QL#4-%TF!Rq|zg&tC1rb&E@|n(I|v z^Xx*CqzG%WfD@go?Y2akF~#GGycCQM{Yp8tZ-YH7619{HnG@&|6kwD z%kB)a5@IOQzbu-plXaYdV$yWX;XZcQOh$ z*4K~!of&!X;DKHE2E3hjlSx)-%bLQ&;7;+XGxT`nr+}y(E$M7$u2Gq!$M2sDp5o%- z#kP2_5AE%|PS0(ARU(6)VN*x()}d4uyZlort+5hrzh2+m;Gp;WM@J5b zIa^IoZXuBpYg%vCAE6GgXo#3u@C-=)J~egu^5s&)AGq8bH*Unm#kIG$M_Y?r>36t# zb!K+<7#Ekhg3dGJ55o>=D$#8Pm(KD;PJa1fe)+O$=##Lp_DrqxoxCAYQQwA#Wka9% z`T2!~?Tu_Wtn}P|u=4tkezySuXR%Ko9*b<+xREo!l*h)*>{RHJz(8d?yX;IUL9C9G zUk|? zFOCaN;ket&Gj+`APoAhGNJ$<$rhGK~z4>$1$HM1yb(OLkqk}RncC;howKm8*zT9ybmI?JI?+GR!ltOG zNIxf{;cJ`FWznX7uYo8*q5jJqRzgR^1ClwJf_29Z-;|M|x~-XM=Sgofe^{0q2u<+gTZxK85!!F)T|+j(z)uKM~@ygUR~aJQ-+iJ zsrJ)fzkZ4F?%TI-H<`($OQ%E44>e%TySlnOrMx?zp2O0*F8m@QfU&>8!iI;3M@>zw zw6yfkk57X8U%Abusjz!2%o^zHySuw1cse??b9AzppXKJNsj4F6Z9nEx%O8Kf^VqRt z%*+WfF)>bKP4w{;_&$bhIJf-=4&3tfJ)^8#a^;i$xpOr;BO)X1d!DB%=@eVV?Ao=f zxUf*d_2*D$mhSw>tF=`RPtS5}6m@m=k%mN0oBkJ9U0hst@7~REHa^>lyVS6$Kb#U@ zefE}ca%QWLq|<0)7{}QkgRd?e4Szr{sF2dS{JYN{F=(3qLWzgpswHvTUiRDm{=tkQ zSAKn||MBC8?la?0CH4s?lcJ8>>U_*KO2`WGT3P&n0RQ?vJSizDMdAKLUkPty12-q9 z;@Pvo!NC{GT&BL%hdq8`hdf8K%_MO1z`(%p@Gz2;6poKvpcwkSBeQ*Rei8{JWANCd zg`U2Cu0e?!7ma;i@#UI;ePVGB*px0^8ryeF$8)arG_|~>F1?T{qO<$cryDr#(x2(U zvg^D~VU>z(3`knd@sbxRFA|3f>KJ#n``B_OvvcB@Ztj=S(KBp&yuH1vjk06ToIl?a zeoXg$L&Jds2UeDszzJ{ZiTXjMEw#yQ^qq8gAVv#=%HI5I+C^ z)2}E*KlfKIPGqH=4t{R5Ig0<-v8+drsEf0(YF#z4RXR#aN@{AmRNHfNbL~EE9OdBP zIL%3ocOt!rjZzoWtu4<|R?(FE;9qt&*ZSvlw*Ijr3LhP=1^@Z%##R1*`8EGkrnc97 zr>gXI?gc%q9FmPw6S?|X&ckEr(W6JV zZ{J1)qfT6@dvE}$zh&Hcb#;~b#+(LzpES&U`En82_UhHEn>TN!p`pRww9?h4T9R&A z4+;Tg9P`Vo@kJuW4y2`}-Ak5#xlh=#rKTqJY=RU{_;fH+(evjq0u}+o2RYPYqeScn zkXzZ$#;Z`tnVNoXOI60JuJaR};@5w4_w`8wSv-5SD&{aGD9j@SgrB)^h*{NN~xOBD#h0AX#fsxv!kCXZ#+&V z@=D@9*>2OD;o;%Wo;|yNpF&ij9kZJGUluny%zAZLI`T6-Z zH8sf7Kqsxuz=znMDs85B<&s-dPER_&M8@4smZXz)Hcm`_y$X6s2C=?o0wc3 zZ#xVi_^X7RL~41-Vs~6zC1Y{6S$g)@FLK|9_2zZK%=YbRAENlpI454cy1=G{JnvX) zSZ(&{(D=n7A1=B`}gmuw{K>&-~DglY+S^y z|5zSH+^qm%^y%fbEI}<6st)?$8CPm~{>gLycSSqA)_`)>+}zyW z9>%7$w-V^cr;B`0!Olf=e-rNdE=gg>FYiwI?+Rf%VNyk=tgKvZjdZ#om2$AuFjq4( zDlJKdC9k-6banxtgMr`lw)G$Zs+XCw?ecFmkBN(lc64;0JWDK0486Ifo1=eiq9gOl zr4bHZtE}sYOm6 zp4_Hk$I|k`!VXdUT|+0RX=z`rE>5Ce5~-xG2zg_36^%Hm+V<_N3}r*^j^sN3tMxSV)Ih~jpZ%)?;x2Yq zt`Nv{X@0Vna)C5la?NA zYx|W`GVpnJVZLd2cA+7H`|)wxE+n37VsX!&O@~nqCs{AXT_1=Ry=rP{Ir^#W`jG%f zCnqoh>g|3Cu4i#u)oH7A1cCM*MMYunT)%Plr*%J*tt;~UCnnoAh7IwL6;e*P{ra-H zvV{1KqEOvgg2emuDH4DDo8F$9mX>Q= z5yL_rkbGw+eH$vvC8k}Zi>7~5(%p`rZa#R>)ZDx_|M7yYjZK{*dm zg-~-4fs~Y#hK2_04&^gvK97t5vb?<19RKZ`l`qTflf$DQ9*;FAG=t5kK8}cu^+epy zjx_@mlbr&xOi6R}%61Clpx+T;zMac?h2?c291QG7S+M%+9+%3i+QLpJ>F z+uvT>XY>OsgHhG0^JyDMppy#`gpm{i>cVKA<6 zUszfKfxA;Z3{Gu@f~%j?#V64@xqc>&VCOk%&dzh+dkPYYy&s2=`<(=|*U(5(=agd& z@iI(O$9aA8?yxCBP{_;62hwmaE>1q1e|)_E<+Z?`@DdYVH&K!g|IhpvC@kG_%$slx>o{N*S`^8nWYuAc~ zx7C>PtF{BtKFi7Jyi`}qj4dQ!NmI-ju$`Pd!|4{cjF};7C`y-|?wgq9<>kag7Iuek zT6d4E19}z9CD%-CG0R4}`wFwjhZdHW0X3#8Lc9D0J^%g$E`=p7nF;kzP&-sau&n^I+ z_vHE>h~&NC;_Pg`8p)ybYoNlz?wsSyXL)I9Y0G;dY)X`r!6?$de|+le={X@O85gak zrB&cOuDLQIek8zsW&Wd?si}m71bDHNqvPDArIBE19AA!gx4edsDwxjK(p~m<%mt#= zIb+4H9qscY$!M{D_*Qm8@KRHMiTwpjOZI~3gRh;ok(0l}ZR6y;SVpB4_~3!p(p1U5 z?VD#0B{VlTHkx0Zq$<)Us6v0gA-L)E^jcxrMkWbYhp+GVA+L{*_uxj3-N+tRW@?H+ zWU9r9-Dj5e0*52urfRLkDrut+ZDRX)7qlCP;gi*G#Kd`{nEb2VrtB4E6>fq}SfS2n;8!!Cfd;^Tuawvb*2=&XFrj*v}h1*a~~@)=Fd&bI5$Gr1N@ zBTE%0cFi=C6{UNJNkjRO@b`c)`Fi_lY3p3LTMYZLfXFRtlh0noduHC;dSxTYCxitI zf)gP9S;g;Ou#W`K`sQZJK4uarim58XZN#w@pRO5#fG+H8vOIghoKKZxZ7VGcI7w}tY6mpAPXG3c6@m}qN1 z(&J(}Zli5y_Z<;vArSreabKZzJ8l`ducESYUy-e@g2Ej?zZ#Uybd~7j!FwS+556rg z%mP4z!eXD;0xSX8va80JU%Hf@kkV?EoRZ??2}SsmKQ4 zLP0@sT%xqHcxY${(F<;{kD3~4n_YeA;hg1Y;n9q=G)q8|kdP3H#__h)z><=ZZGl*! zwOe@>a^T_MeRd$KsO~sndDam995odc39se9T{#BZeE)t4J8NTOlbw@;%&!Io4C|5L zwOHTQ7J5EIuh6O$v=mAMDpP8zg_2S|>IXKu_sYC3FE8)t9-AUDR#sMi{?@v>)6B(9 z@sdk#wlbSrSZpKP7^3(HrQ%b zt}%+Ame<(MmBIZkiDdVN;ZAF6YU-yKR}Vo?U=LGDZNt9p?C9WvfH(8G2GlV^%4M`M z8u}CS3CAzUkc*r8O6*?&nZ?HLFE!)|KLd0!JK!;Ggkt8;?4^D*{A^i23b^#jTzhP6 zELbVlUpcjHZf@@2sXO@E;XvNXhYervggrAVi-?c+!l{4$Y?`UfKtofz_#pD9;p)Oz z0`|AGAd%TgdE_Py-+)g536F!W1SFGfe1i-DT@-rB#*G_ka5WJ8sN@DKZ*Zu_K*hO+ zw2-6I&>u8Eo}SPYEr=R+|HRp)-%}s6&yP$_J_dD(i(4sdsCoO=+|m*WG)KSa3~LA# z+3?q|MJCl-&Yo=sStIljHOOiWk-W^3?n0{V)bjV_SVz2>TFi0(W@;JjLGz`Y(jGrH zfDWLlNlhYk_~ltRL%gVPpKn{U0x$ghx$3JU0bs^vqfs4k&WfR)zv{shg+)X}pb{NE z{1sRF`}gm!U%#GRS~{1i3FgUPaEh10-}uA5GWM?@f@&39yKVG*GH zfzw0VN^d`K!jbLJp=yU~?;k3pXk=JZM%$F`*O4H?}-cB*{;?}KGAlTi<=t+r1r@C#@ume1P^p}EAqa2?Q6BD>) zQ?&T&YXdz!{aNudEL5oA;b+bn8ykvUX@84d3K3#_v zBX(`V{BKz)=qHfcjhPx+Z)7BBOmicEg?|Si?+4~RZB_X?I*O8xDn<80M_*mtVXP@` z%Y)~Ig$QZwqv4sEnRl`-fF0onHYJy--hImFN0r(3Ak$v~*o0UGxO7KpvdV7gnGLr@IL|jku@mx%eOl_IOL_KetmOm>oenu zr_4CL!I6;>)X%67+DU#U!p9Gjng~L3zft82%7P`sUA%6=B%0%G-I1YjcHlMma2k3FDnOC`etyvBIK;#V9fM6t z?8J#2;|eh>q?p*to0|~qA9D;iXaY-6s7!0N$ElqTeNs>`3;r#&`0dafl>t-r7FNN} zKYm=XwQcAx@n=Hmn4~HW$^eTNh|X?e39bvgchAky@tfJ5L+B#x7j+nda*L8J$2#-p zPf2m{>d$IQim`9bV)qqJX;4QtbW#S$B_rN>^$Wkf4?l)2hMtL+msg{f4?`|RBXrRZ zkB(@~QOH?7WUGf{ASj+oaX{?R6vGCRzBsV&hxhNF4wq#EN`aPa-gvX3;znE~B5A;L zR`n1qIoA>}AUX*-_AC?pZvq>>c5Ul{Qsi!RG&-xTtqlax^LNiBz?VP2fB$Gn+SIr2 zW+p$yTkwcydilvs%FLcWHx%^OXj-FTb3w01Ko`Ofl1=29RK)F|*HTVg+yQ(>X`Jyc zWcT8{yo}kWsIvam+ji};%oHP${_@`DcIr$z<&SLJ*WLa1@853;`Q$lu?F@H!f&~Jr ze{^F*TFTpK(qM?D&+FGR(9c|iT4c;0vXy!+IEH2#C=kn5I?xdt?^NFG zPCv^`^qYKY(FfzBv|`yviaH|LwU?*y^-F{Up%v0@96impN7D1}!>Oaj zWDF=~mK2Z$g>2W4hTAu){9g!&6p=(686;Zp71$ptW?Ba`fm26)juXc!q(cJK z*3+Zgw-3ty>H7@(7#TgF!$hl~3JZg#12_A!ARv$#!b3s;ZukL^k7%VKM~&*;SJ->t zK-}ZUjC=MV^wp?tpGg&ie5Rq%3U10Q<@o~iFeqpzQ}D-E-fNUne_y|OlhoA7YxJ_v zduF9OVH)&%Ty1<3^d+P!<7aH=7SPjs^O?%f;AEM0kRQpcA?YT-**Obi1mSZHV{sEi>hT6%()smlr7 ztWI#Cd-v|4oubmM36kzIg|0zEQ`3XHch?&m8EAd+@ce)j4_)iJqoZkVmQEI$NR?}= zOHZF34N;V9cRqQN$Tt8Jy4iYfViQjEVVACQFu!i%?!uZtQ8{T)*#pxbK&&txIh>pWfWG6@4Ena?8djV2JR@NLnhYJZLch zx4tZkzo*2l+nzv(3#8?>DeB$Ql-52z;5HTq9?8FT@$X+x03IP#j>CsDwU7F;0JNv~G@bGON+P0uA)?~$-@k7X zGwdJ=L9TgBFi^=IKO}R8pGj>WXAosfXa-n*CU~;l`SRr)g_MKj$r%|L&!4x|*Jn0y zqZ=tzgP!Zb%6ia_{=kA>#YpW7Lwr&v>+6i`H3namckScOsAG4I zw+LMh5*TtL_IHcsLAxTMlSx39@4q^xWo77|J9jv;0SMKpfL2IEIg&@72qO8aPc7W{ z3knKSQp~)(R>5dK_4m(>0Ka3=iwX+NghPES51%-(AicH_92psD&2SgeW1aVw4`C|o zW@Tg~D|d1O;tOWMErg{<$HwaV>C@CXi_tbySLd_o;H0FaEVjM9W`gXJQ>WqpiBG26 z<|bIKq=(DNlT~0v3ilc2yA14sfl!vw7ZVc~=he%5{r){%1jF8Z6mKDQR{&tvR(3&? z@5(-J_C4#ha#h?T68Fw3ogH7ke!cc{=ndW!cfyJN$dP*s1!ah6U<<)F7sh@Xs`Sfz znQ>)*0S^ToE8~Dw;`!(kPNM(;XgC=e8TI7WNc5wiAf{WbguorK{=)q(S^GfyL2cbf z)hyGrwX^_~J+MijKONe-iBzbq*JD#JCROXQ@27T}9nv1jK!09yD=831gN|DanwUp2 zh(bDKf||nBVs8?#g%#ci|Gdo?Z6Io$CKi8Q2Ib&L+D*k!HX>o?kfER`aT~py!)9FH zQp9J|QtVj>c(&euVfV%7S%IzA|9ldEW`AziBd{Ln2jR8QTF=X!M41s=e^C%GrmUxn z7qtx!J)dJ_=p?)wTUI$0Nnw0S*Q%K3;BmZ3DsitdHV2`cNm zc}Em;_!$fI$Mv`#1O|HK&Jt=B_z_Y#D0poq^+cNp6?kDQaS(J0+0*PlW=o{B#JKf zJX3~F)*)8bJ$v`UNfMPeUzOfwC4>xo;kmgIIEc%S{(Db4wTbKSaUYK7rh$?OahqTO z$Qgi5_#?Wa=w-!5c1T81}X>G?+PbhEF%Rf)a$h-y@Cwvc2?6c09{dYMcO~^2Y zZ2p%qK)5z@k^Jd<0%kL?vnU220eME85W z?HF_5HaE@Bg=Mkx{>@|ULPiD#S*=z$NvD zX=o4e74A0J9FY9ivr;DuN%l-?=#-=WBcNd{3M~P}Tp4cX=)9?_GDS}Z4JowYTIR;v z0|NrOb2I#iJwuA$W|CDz6<9+kgWI;9fKCBM|7Koiz}=e9fa|K@ zyKnF9oqo0EMW}N7qD6?%P2{I4)~6L0FN2O@4SEP)5b+Kd7h$~PSlZ3*RApK_6J#L@ zFt%%Qtc1jY-h{p%qcI25DnqjW4xz4`Iu#~XvG<(1g> z0HUy;I6?BUzG$&yXdzbo`W1A2tXL}ZVE=(+;=Je`!F9gv^_PHvfRaHk1L>Z+Iu3M_ zGS#4pG9c|VZ&+VeW8%l*tY?)~B3OZ;Qlvd08Y0$zZUlg2*u4HGe!S_vFOfsa>FicW zIW-M-D-Y51MhgevAR^+91rVnzk6zD4*E`T=q2jMEIPVsd9Ygf%K^}QCZ*$8-04Y!6 zRvB;cpV}B7td_1NQA^~pLj9@Pfuy_Z2apilVF1Sp+#Q4;jhx6IheH(OC#lkIzPR{i zBXOUG{E+FM=jFXF**#pthnC&4=lbna8j9!kasS467bc1IozZ~woUyfCCRW;e6}+*Q z0LB*wsEQkX;Hk;#gb!xwr2dW@n`Q{Pw+yX!J`ZvO%ZpIc(XYnMxLEd3XMLHh^sxeK zW>C(E@0HmrK)_}-Bo(w~est#_>hmk~L_Pz2l_RbXVrB%r)gQXPbA_Jk`G_Cg&mC|v z0PLJNQTpVG94B?x+Xgy!omE;QTy*p#;WRpG$=dr{%v4?9%;{k&te4%_;kT(Y~j2oh~$V`g?X z0*WW0Ii2$i7Y#a@EkYm0X3;JrFs#QjyZ@4~6Mj$h6kJjY{f=h5s_K2~Nn~D{U4i?# z+O34p7eImjoqfIla20wnOJswffWT-|oUNIe*7QLlx!qWt+q{Vo1l854A{*wB-n$B+ z5-+u%m0nm}WM^lG;`h_kX*b#`8Z_Cxd+1am-m ziN)tLsY0%SRBwh}Oz59WOzTBvc>0CY3<+=2ZuOa z5HlMSlaSERUq6RWg;8IL_?KxfW};k3w@F(9ACqASq~jb=!&yDydG^~FoDnq*MaR2b{0^`=-r`g z_!fK@EVHxj(=RkRsnO-dH{jc@8Mk?V;N#=_iIzRs03x6R+c8>}C$cX~_ZeV$D4X?{ zlFn?L>Uuh6KP7PBSOFip(S+n>Y5DTy%jZVQd&3&O!dvsG-W+)WckAOvD3rqW(L1(p z&%N-<_}sa#-@d_a+WPLmVf`oTo~3N`EMTPZ#PuWTfJqVmFX3i_?1PP!`({fQo;=?*O>G=?qYyAatl})<`2^30W zlE7`14-w6CQ%Ju1`~)%?+*=aW85$|zs6d*em_7IcJ-pu_YT_``)8WJUc*8A!e;5yB zc9>b3C}(vJRNg2{PWGKTnOIupx$vv@KI6Yc9upEGOC^VPCB3A}Cs%}5H_wKN$k^Cr zG#v0PBq2%EKeS2VtTp6`#K+IK+Z3UjX67~1BtFe|3wH?H)Go4C>YiMc%QkiC)2B}t zE0ahmduA9fjEILUrU(?tuK&eM1Me%shdY03!-frd9q354SC{NgN_|6=`^59I z-M%!NiOcpGMX}bWUZF|*OWZY~y;xI6Y*zSE*K6y74Bnai^r;OxM%40CJq23{WMCyl zRh;OjhYmeDZR>@8{cF~%bYjoRZW|u7m=#joMupaSf~san&pK9%5riZ)+!!s0qz$)& z4ktB*$}wmxK*-3;5Kfr)>iqGA!w?DxBNJ04?j6Kr`stGp92C|oEVp2vEK}o2h#epq z@M<9EZ1YXDc1LFwVq@(K9eBiGI#@p^%N-^=Vi3vUa;(73M72WqTVFqBhUcx_I;$fI z8Q^l~25!K;1cTP2N9N^uH9}Oh-1@iI7XyD)9Y>+TrbCK@XNZ=Ztg^Clx^gKOW{5az z$5ILCQxJ$?-~y717rv}taS25b=F$FF-rhJNV1C?DL5HE&Vot!MDapxiO|K%Wp&N*e z3ab+wJH_VpdjgW-9uD4rVh=4X%Hl;6li}%UX>4rd9=dp0_Aq%lIW`WC$VZRJ{i<}0 z-7LO$=R+ok57u#`0n(v;<-(m$XJA)hNET!kv}{DuhXLM>R`V6|M|)RS1e=mn!eH@b z1DIylGYje$MLN0xyY`DdOy>M&Hiw{RYrBM)LCnSC#0d|dC z2U-Su2o|BKsR>=+#zMeB^oPgBM4%Y#@;AG5i6cZ2Hy}+X%YLAoo{B2*)kE+GrBK+G zU@KcRMRFNH&oj*uO_3yZ#n30}oDwKohd6{(lGKCtp9oDG$5IM^;#gVB%Ff1h9+KC9 zSO31mlMAoBPnxWX!L}5`h34zI4vS zHbY^6%e^~KHmef`l4ab?#{J=EicojnzJ2@p^=m)?^pc3KN=pkGf9JHd>Efr5SSLR| zgGo&lg9;iNAu8;BFR$4m3%I*4hDBDoOzGnX$kkBOQ#Gyi^z^K)$I+sU4Gk3lxPiM9 z`d3&zBvZ7!B(V$#Z^2`i{&&!*J!%`*{{(a5#q9%5R-?xZ&T3|L0+9~QxT0#ADnNaO z(*UyI8U)|TbYSpZbbLN+N-OVmU`udt;7e#GJaAqy3MuFFO*f<6?r70aRrNXYf){`J z9Ik%Ba~0hYNOKgE=gVFBBO6x!yjsg?A4hLs3k3sgYmXu#bnI7}V}GhB==b2@1Xi7y zY2_so-l9{S_q?+aBOi&WRqu7$k8yLW!V#pZTH!nn^L^X6GwO-C@k=ZZR9{B>@>cMs z6;JRgH0NW|<_}RaN#NLb0s|W!9y~R7i(39Z9sfzz5D7Q=e?7rTZ|$tkbhS8Ea#pm_ z-@iX2t=8@gVhvLukI_pgyKesp$imWZjFJ_%2;G3N@V_WVjC4QCp!uUS7IJcL5rzT+ z0z3csawuu?MD8U^>a>An!dc7+$mm4u+QJtY4k?^Y0ba_>`@wi!QBg50^uLVwhGT7z zyz`5TyVm~x^VnM&T}He7j^MeYs4eHtpN~G7gnfoq-|q_m7AR_01}h~wIXPKaE<)9U z8qjEtP4|>FtH@sNt(4#n$K=Zl1`cFP+vg!V*b%@n|^uxHYEWgJNOG{phhO zg|d;GV#i>cqTMg*@%uaK=k@R12dTFYq96FRArg>Y$P$tlNoc1@mbGGP8yYTwa><|` zFx4nZS9<*U@$Q}C=tpY#p5ER)WExPfJ8dXNG~C=uH8VTb(86?+Fveox%J0c7UiCYv zF($R>j@~`euvEe;2*|q+DG2d}C1;2*XXWNrI*+&2hjE~cmBHl86IpiUlNfvTaf#st zX^ianbZ!1)cl|Jjll3ZBbrbRe9OI-+v4Cd-dTHblol(MC?6c*38i&lFrY>=1uq*i8z; zsgKTf?+e2B(KwkOZ|4A)tEj_B5X{4S;3D304`xeP4C3OXm%bN3CHVpg=M_YEa0$d~ zlo8`j`-kb)?l3Pj{+`jybOz0XzZ+blp|O!Vu;zYdI#MIx-T6{S3oEN{04z}I5i@{t zZSC#ovO>2Khez@GbAi!D49j3lDK9@CdRh~x8Uz~DAoe}?kjxn4e->uJZ@C8h11B%< z$8l%y(oUNq?MCIUt6|7Hp~K$`{B9J-ocLa_xkWSNj%u#u6)Yl<1{Tiw+BJ)^h(&9m7_fK3{nk9Tw76Jo z`|*dhV8i?Onp#>gOF*ISgl{}u@{)Rv&V^FP!y+QOtRa7wmKd+Zbp8$f&%uXubxxsJ z@ZD&GHvp+n=3z0NRpX-t00ZuaxMxRO72~}!c>#(+Fq5Qd8CAxh-ws+hKc8E*CWAW! z0Q@E%NqXG=$STI`YyPFC!h!-uG3RfB>1Zl`Wb%j(eJT07a2sn##_+7P)A}|hiM%65 z_x=wD2%>wsC=odj(2&|p%Bc9H8!MmL>0)2xJc#z=F4A8?Yg}JX54ALkIaB-n$P58{ zVU-6q^^{se5wR{7e|O5M_B%_n%Rco;{Ty~B&9&HLB%g@&Nd{X;jUz)te9(IRPQD>j zms-f)q)`rbc1u{MkdSatlFy}67%H5FJKYKN9kQKOkv`F6b=~q`Glv2Nj9)gq_N@Q< z>+apVXe)pOLpXJV$UCoA=JDqWoJnAnv$L~kWn+zDgqR!|sV;x2eUy?}D)!++xXy6< z5V|XCYgr-xVXZ~agLH8_un}g=loS;ct@XKRFsddeFAx7|W>evd7cZ2;*z3PKG6i3< zx4(cX6I$95&?W>Kf7rft?=1FH^wMN=?1@uUWUB1|<(M&a9UX>!z+ae^L>C9=D)u2< zffp|hA$FcUfo*e%d^U>3PzXtrxB ziBB>cF40yCbMv>gwV-mqQ}N^9l-NSgW$9q7K>XmrHx8Ds>gJ^N&!2~B;}|cmJqR0` zuk$~DCR+FQ^*!#fYX%!F`e+PtG~@qx;=m@-GA#yB=sw|eAsd3Td?YG&VqBb&qN1Xv zre=jdP=OS@acOA^S)BoLtZ{1B(OIm$@Xr8CbTcj*B1vQ9CB6OHkN)WDg#>A*{!gE9 zgNE;FX2PJ>U1+TZpBo0Ig2UL3L^dS2`BExo&X{8S1-By66muzVRkHsULop`L9=* z@bhz~5}tqa&wBRSyHnC*1hm z!;#?m3*SZvF%Wnl!@OGl6{wajST0)$U<_P)FDS@!njbSjFbK*iD8Q0}f>OPgn27?o z2S-9_!4E>Jn81)^VMz=jtlpr^GJ@xD%^DhSzC3}~9F{!3SGjPaFJ3tNfX|JdMd1N!VN`90YG zdu&3!SPZ$8l>EVrY9Ur0Y7&4%C>y2$x4_-~j#$KdLMff|SY;4SUO~aIo@T0{QZh0! z_z&Tc%rjCn`#Ls8C|Nimt6rD9goFzi4=gIWwl}_D221xJMM3O>nmGib|5-gIBJCK* z4^v)h{eMa81Z<9WymoB`0YSs9KZgk=V&I6^8}f&8`y9a8MQG){ z8L!K|bz^w_@D?{8%MVa5;Wb6_f*)Yiv6R;{9(IY}(}S;?;*+6fY{WLS^f~{PFqZ6) z;{on|_wF5_-B8~i5-FSLSTgcbm9EY|^M*^(tm^i*+Go1}h=|6f+80MRT-G ziy}lm6fYQYW1e7QD}(vU5Q%RSEN5_X02G1Unpehl!xe_yO(!*3s}78gULMf2s__xR zJQ&XHGpfuJxdvMi{7sJ(*@$)uW|1*hg{yWz0VXUxj|&09K%P83B|>RPGJ-epG0U;~ zYh0MV#uQ}`v-Ci9^({9qCq2FHu&s+rOQ+@JTs=GrG>-o>_9T|NTGqDpy||iU$Rn~p z$=V(LLSl?KdJ2eZJ+bI@{SB&dbv)nD*S7@kKcr?slTKh4J*?Ds*MXo^-Am_f;W~>y&(LfbbZh{f3KM8idaC}x`9ITn~6~K?{RlF_jr+Mu}Yf9bU zI)$EV9fd)+aAzR6NGB*5sbFS&|zb= z+x7;fmOxH6slEg6d(Xf?rP3svOos#t@=|rO2%QxcGNMxgROu`hr@?FTB&epvO31!^ zrWP0UNv;Nh=H@V0%(RriKE<;vQO3GyT?$!TR7k8p)X`g^o4wbaC*Gx zBquVd)SAYp-dg{ClS!azZ(T+mLwu%AmQv^w>t5~DB2D5`EnldL^)OaO%vvBbUcm|= zPf;{V0Ip)VqZ9j^aBs|xQP>vs!kSMsvEk^fs$vxt)nnV!8J(h;$zxnj$IR@FsDYE` zo?IL7sYZ%I{)?2;74)_UWBZDE8sfam*=}=NG1wHjW7-7#fcwaiR+}O+S(J2Q9zw1A zrT5w@A{g!+dwBNRh5W1G;6#S;hL8WhbZf1yAmW19eeyP|p33S3@K{`21ZwXb81OTOM(gwjpzGmV#C0oBE zd#bt`z{LRrfWyn+YyzN!v;>DFpLH7>cDk6L{im12zAY@o;6gi=6+MfO9w#x@w|n!c+Ap{`=7flPyWrs1Q7cFVwZPW z8yd{Y9~OGio<~OM?e&5_3aX5gY;0e_^Apf2II+L!iBi~0=kcmW zWG&=6u{anBo!H(1-nZ(1EQ( z(NKi`w@&uPSnyOR!o)ZiRW{pXxn_g&2D&76Lc$JB;uR!?cctQXDdvkLnBdR4QUa|xzGdN>2&p~ zHFTU=3rPj2dbrbyq1go2*T#*Y_}C16;N+=On>W6}XwuHfka}~p^InF9Y1!C3RZB-V zG<(bw0nn680l%yJjQ0~qazT)nt%vVr&oagHc?x)*NDmzUi= zp7-Dy?DKH{L8-2{DgqM~+J5Ds_j%kq7_V_WuA@fM%$P(=Ue>xl-trD_0h)qt9SdL#9BsQ@^C_jw#$$D}dZ>zWDga z-Q94%%c=7@`&8=IvAh&_p zsHKZLeo<6V*iujelLmYR|E2-_KiwjJ*z9z-spSbK?ooi@h~euM8@dNCrIw_uQv`m;BcU{`@s;_{jIH-uf&w~ z{N$f$?=`|Ir#h3ryRk%+pt=cb%iiBVT{qOaz9jN9mhJYwhX+jpSsExd>T?HlcWF?c zmhZp($zb>8oSZ77$wbXJew+5m%aCd8&&kr)px#WzaZ0|&gUp;wMlJqhvy*gb`&}P$ zw%21Tk+FtjUs#L(4#!S<1_$4~`3A@h79J^^KR^s!h9 zckU>hJ`F4J9H_FpyF2${#;QCE)ptzI!_u*T*BGik!EoxBOz@B%^f3rz!m`9yFt3C} z3`IQ8q&g!^;SuT{>RUi1vI1dJ#{)+c6{!YG;9Ww0^|Jv~Lp1DR?W&oUWK$9l7LE`b z?-WIfl$5N%00oM(NP#!RCtBLbfAS-O9_JPK>P&k3(%g7~X-xotdv8w<#K_bqPlRUQ z-N$25fCQFcRyZys1bTR2|9*W3Dy#z=w3BaCRK-&F;53${!azpH)9oFpuaPAYDgid% zoEM=zQt#V$HeN#MeumcWqik$nQ1U;YE+{HGE+`lXvsO?L_2r=8U`n)|autQupr7^h zlsO)!y7G|M2FW99|Vc7Ue-p;Q$nAzp)GE@9!{ zxQj4;MTuQ|ih(j!RaG6GE>L-7M#!h8Ha6}kH*k{75JvKl+s@Znuul!NmZntpGbfh(UEE4upIe)V;&F<7*Wv93`W0 z5L-Q-Aps%)c6)cU9y%tTIfeelp!b%L7YK4Z*a}Xy)(Ch}0u@sD>2|gjVNw|8LBEqG z@5Mit?Ik-H+7fyLD zEj3lr?bq!$7rT3Ujtf*9t2XA$!F78tl+c@pVWKdwCe(#?ji66Oh2*KN$$^abTAHq9Bh0!GUwe%d+wqmDpEk-|qJn2?h9vZGH^$3h<*RdEUX8f`+z>3bl*xB?9fV5_ExleN5=kcV zRw_0-Rs!R>_>Wi#8;gxM6VdqHN2zz=0&ivZ4yDlf`FSJH7I4bMO|soKs(8E;m_|%Y zjBc)>b@--%7gtXyE8Bj4dk-G^UW^bw%gA^Eu%mNA3SU`x9Bi!$+zA+@5_SvdcGiDD znObI?^U8Kx#Ky+<6AusIF~Y;l+7;~iuk^n_!vYag*g7)^guQ#;zD^>Y_V&7Xz+mE| zhKI);Zyk3A84|t`$TVFzPTVt@V>ofujW>sYM)8y;h{+Ia(;~`)@80F);))fpID;`; z85tQ(%{_rNc$mjq4Bi$M7QVfXK~u_|JIm3_w6FlyT_|^(9qeq~hQ-U<5@hQ>M~ zfN;<`XaH>o4#wZ^-@AuQJp-Xtr}aZ)~AmCnoR|1I)a_2ZIM9O!t+Xm6g5e9{UbClzyjzfmZ}BCC)EzL=P?7#~+&B zzYlde#Qb(-hFv8p@##}{U}GC)dHEXJ3!dOS`Ia9TVAKWb!2xLk<*9CCL;%RqYOt}f z5zHBjg#3?#W8(1m@gkVIo@Qp^6)1D+gy9;4Xy}UXn}Wv^;c=-k%Ea1QX{uq^0nfR^ zI6JC)ZZ3~3m7TBw9#>Ukimy9;x^8aHx%CIu86%V0^no>Pt*sjB>MZ1@fSM8gdvfWB_5A9(D z|AVyy5?okV0O`QQ4)pZa)>dHA7b45s2tbag)x?h|~(^=Q+hlwpdd5OD0($uwA!| zL2$l?wdFBs6bfD45}b#lqvM$~XMjx-D$GnwW>&{}aK=_ttMzu2c-^cvXt(zn zPY`S5HE66^Sy`D%*|_ttJ7`+pOU}(5Xl&)2c$$Dfw^Bxv8?qr#A-MY6V*u1r7|_QF zfTA+ok3h+Zipt2znVOggpa-e;DsIlq zeWVW`h(OUYMk-Hu*6!J-3!Ha)z!K61|B6y5B((jzPJfQ-pqU6TxqO*hDb#Vgu&o52 zAt6m4z5!nV%&ZD2@btrb9e@9YA&jv0Z}?#e(c{8+_W(p)=oix3X*d%+R?6@SoJFAU z%C9z!56vzBJ0Yf{_3Ec+7j^iO#KmTD0Wus?g?0bH#51Vp+ZVoNk1ZnR9*XYVh zuPax0j`I$(Y`G;%MWz(`fxgq8nN0~I*&C!33nffECQ2T(t0zN+6%;H$NTB`ET8r^W z(3DU%0|yycR`HZK&?6`mcrJ-zc}!&FY3`NR!w$%wa1>RPmqS!|Ynze8gAnsd$Fvf( zKKVhz$&~hS6mV1uR~8Wx>7A6J!lP}78Bl2beA60mS9DK^i81tCFg6EE&FIc|ul|og z*_rT905?#2E_lw=pxp>Gx?{(V=}%?4hK8Phei+%z`{UUPcmxs*x=D!Hom;AFYb{~% z-=k$ZWe4*YtRmfI*Pq?GRgDLH9;#8pO=9rRJABNtIo=2(J($}@KM~3yKV1;y)6y3& zvW+WVT5QF$Q$VbK`GEQz}b}isD4<7$zkOP44FZaVx*%}EQ>4#xcE=t^S(C;%oo9c42Ek&v0qcO&#w)>%)tXamvC2zG6w7m6#3*6 zS^zSe_*f_p^x;>)uo4{j?p^YKwHTv0-?}q~xh*Wd0%KQrt?2ho;Z`U@*4)*Mhbv*M z6#EZ8sp|Krwk)=A1qw!C3IbIWBcFG}OYr4gEOxRSH-|xJ9;(7^r*zSkV2pdKXq=ho z2C!l1@nE{R?RWmyTQA*Of9nyvwddbk&(wJsQbsmd6!c(&naALvNYE@XGbjP&2ZmS8 zVAU^$hDWeJV-= zky43NWJnSj$}A~l$e0Kz37Im_L=!?0LS`8fB10Kdq|CDrGG$6K&+PNl_juQO_iwMY zetYjffA8@g$Get1p69tg_kG>hb)M&SUQl_})YJ^sM6_LN$3hX3V-d%|$jG#qm}@t0 z@&o076Tqd6sl^rW?9f@Fv-;aNO=Ldwe&>^#ut^YJx(0sN?>g&|ewdy8(fN2(S&u6E zWefI_hM&BMjBGcx)6t1k>lQtA${Gm~A}B5d2vdOb(761ek4*bWCRhE|a!e#;A6dFVT<@l^=$;s3i25;M;6h+4wq=VHpHL%qDR^%)w z8;I%(H(J~_f-EC6NI}GPkLn4=83fb~sK~hXcm2k9k12G%;1~eKd}Glg24_4#K5_+& zP|4zI1g;i%_bwC%+_usIpL$Kw)=&dmswd;2q}oSb`#x@448rR-0anW zY6gfZymwG?%8N9G1<(6FM7v^61f*ixUgp1zx9dHnoz2^AHk6A?Lui@s1kUL^||VCb0U; z7gW(Gc;$bVto0(8glJYhs~g&~c{5-WL9~V)qJET1OQx)=+dbgy+V{Ku5dM}GI8zAv z)4)W$##=#r)M&m1rc~%pMecxlb|sK0M|wpP*a!UJs+yWqWo3;)zaV}=*FYwTqY(+~ zND&eKVOsl#JE1U6ry!o%-TDz5>;U8^Dk^6K6CAqxtlswpRD7wb0zf&^n%0RmCYn(i z<^a{9#9H5~0pSnOEIYzA#%BCi3dKksFA>JrEm>wb790KNVXlMvADjaa){BQ+A_}X_@7CO)J>w_iC z9S)F_qtw`X|Lo)@Y+&AfkD+Tss*-cfeu16XB6|_6V#<+v$_75$r)VMkKi!*WCl7+( z;6Yjhu(i(df|OK0QNhBw4sjS^d||^DDu(2Y45t12;YuTePrlhJ6E+_BB|&TZh0~3? z>U$)@ag_tyRElr-`03NjuI;2R$!NF2wI+T3Jdm)6LyrIs07tM!uZxRViD+kXYAWP0 z{g$WE8FRZB-SBH*r*?6ELC|-CdMqx*k(~TKHZKfRE`jWXrmJtu3ba4x{TYCn3WD{} zk}O^BP7h%hBS}Ky39f!2Id7q?>m|FGST|C6Fvr+V9YrhK zQEhUaKJ9?-0ymG3xKwm-$QPI2gD1-P%1BW2U=edK2K>2WAYiI*xZOhlX*HVdVNr`q z5T{NSr`6~tP#(M+&N$8eS3o-uPTYUp0a|9v*YQd{wIfksI2&x{S{;r9A_53Sw=G+? zKwM~?w~3S%^X{Dka6|m}c5v@+JP3e6NN4i+wY<{FFN%}ull3$~cc%pB{V{O%sEx(R z>+bFb_S^#;k?r6poD#9lLZ5fU+$7$Fkl%thLAz0;fEj&2MUb5^sa^=t2_zj#AbXe- zL2~3R{yi~_P&vWHfQ8G52R*UtVSvVfXo8a=3`fRwNiqC9VbuU&p>#aK##YhUNpy48 zv|qe(g%Anh>;_f(J*+oIFW*WPz8ba+zS`QKKbFL8o~8r@u&YZH#@JwC8tUtf5*q94 z{{X(CWtBIo_#I;nv}0lK4vP&o=12`8YmLavoCGuXdC*E+4Ry?$g$0Mn3uGI!L0x;W z5Wgn}P#26l4dwH%Sq5$0F&_J{e$TZ?E{_NLgIpf|{&hnSA3Pv@C~@`j z(bs^F9q-72a;2Hl8>f>9co|6Dc2H48i8yA>Xg#PUIBI=_4?n+}e=bKrhcCNmNPL&? z+?j+64W3tYbadUdlZ4g5&!3Q^v*}v@`o=TK4O9b8$ws*Qe%G8GdRX;{#B{Hh%Y$lY zwe&UK3n-op3#7Q5Zj^Um76|-6MyvijL5?GH@u2FJ^14z27CSb!cX<{yD$FOFqftap zf*>0n9nE!at5+wQEjMslZ1}<}7VX|wwiVWP1UCmNi5`}-0GkOBj@6(X0jrJYpiO*q zr*^I>+)@&wPEyvNKM6S_nTbPHYbzZBEbq%RURNmNehwP*X~ByE1$bw%>hP$g;r19~ zlp#PBKmVcgcnpUyUHny}lVcEf8d;tklY$RyVp0-z{lf(E@l9B+D_Dw5qlP1Rv@%bP zPNt$*#H$lGzXjQeN`juD+Jri~PDxhQ+s_ZTf?2=YhPCaXG#kRJ+S>Nw>&TEt*P&_Q z88ByCa!X{cDB9!pycLrJG=VRLbhjf>)nha9?L+@&F8dHjJ81cz=iqRlxhR0XdWjn8 zxP}>Zj4=Z39~xrQn3rvN>mbryL1nn%3l)w<0I|#hM|qyV%*g2REIm#N^CTV-C6>ah z7mo-5LJ?I3xz`mEFTk}Q@%j$iV{B!27}mTv(^OMKX}|q!(p|iQtD)gx-sspE`9{gx zjD9R%mzJCYS){eeHcBE0-)1anDeC!?^ejhyY;BLtRZ1#D@-17KjU{gph~C+_UM_ok zd*k`3J7_Zlk9Wr4%M*M7C2@M$K)?lWCYoa4;&T)l32cj3Bdc2 zJcCW`8Ks1l4<7}spCQ4)IZLI&WU-ePpzyzOa(g~(@;ySPXJ;94wLy@Cd@tL1WE9C< zh2H_Va~uM!w-w?{Kr3LlSAZLy3*ePkP|$%|HKHcO&Yonp@su`+i;ccp>&>-Ncqt22 z{?S0n;m;%v%Q)Dochgmb1_cpxAdqkb`HsE?%E~Wa77)jfQ$o(sG=1EO29Z zIp8`)EBYt+lvuu}&L^Ix50-pQH>0*gP1pfec zS72!`r*fVV(e8Wb9O3(At= z;cr`O>y$YS7Z(;*KoarM6OJ#q@fOirNUR{kVUkN0Qh^PdHrE?vBg42@5Sj>0+*L@Z zK7VEv7mw~hjkXDWIk#`4c#sFqMM>$0s{y_vqn_80yc_kvscCF%4BZjHSklsJ40w@{ zAW*^G6CqNm<&Q%l#8}C%Ug-jj?@)oX0Wc%-3mAP!psIzISxG4aw+s?-fSWk+xZ_a> zAo;y`(YN#((madr@19oldw0)+nm`!>KYlifvv?`~{i^}8D_j(y1yMG5N1Fl&sH>Zh ziuS-N27P^j-ad5JqALXt2H}Ik6A)ho^s&5tbTV9x#i{t4%gx!vcHj;SgznR(C1R>M}RH(FeF@*PE08UXo7^u;V8<1ll?M}_e z2({CTu551)t1rf;T zijmP#Cue5>!FBNHgl(5o50V_fae8`s4Q5+5-u(dc-MTs@Jw2QXIx4GrzcBd~}OO=eyX0c=BtX$VC#0u&P(yyD}V1|D*}1xt}@ z+J4=@Um4-N_ftxl116Wagglu&d5DPOU%fmjRRsX|mcjC>Gq`j`~q`vyb>846r& z%7qKvRsnk~VS7LX0pt}&0sJQ)A0Ld8r(!KC+uB0E8mvL70uJM=5>^k&R_ywU@^Wth zP@qs!ywQ9OJV{xbrPj0vOg1=80HqKHP`iW8l|Vqkc?3ahXvgVhI0nofRRq2<*yoVR zbt`&w=E3^%$f!_Ccz8#E_!>B^qvMHM`)f_Vo_^83ad<`Occu1jpwMuRd{hjC9m*+K zhyd4V{;rO%CrOPc7ROq|jwaTc!q~^<*JXEb!P9(bU;y%~*LY}s!RXZy?6A`DNi#@|#Dtk)zC z#_&V21}*ppv_qDb>O+*@Xg<^rt&Re!ewXdD7VdwsRh)02UEm1%w4UQ;^!DB=Nv&{@ zXng>fIdfDt5U3VG8m}!TftPW3c?opPaX`*o+}v!kyrQC!EV9_{-g9E)lGLcy@GSZc zAmZY}OtD-n1|E%#apT4fnDI@H)6>)A10om2J2JJ5gJs4c23|h#PY-45LT<;N=(?R- zx1!c_T$ipuum>3~q1JPh7U-(Cc^#a`UM9@s6zpV2$-nc&q{^wf3Tm>$ zlXWL&6PWRhs2(yaBSu1+r^pyqH>4UpUg09B;9Oz`mL;i4d?p57G(v$aSB{62jlW7z}P z1VAu4XbIpxgdHCm@D^4NL8MtUxaL>u_wOrEnOw~=X+hi1f(rqF9licyN1!Ip81Zv7 z4W8J$k&g-~Lz)FzR{^K|e)mb6l3+~#QxlIqWh!8jSVJ zN!GN^-?Lx9R1>^65IV4cgeox1)hVy+S_rrXR0t=Zlh@0Glr@9l%`I>^kt3PjHbSnj z@WzJ$cp|T;m?!|;eb=tDe!sFm+=_M;z-SiYy6(&i$X{Yr0fVXKSqdHxFUDtvpdiEH zimPi8d%e-WD*j7tQ{l`oeH0P7Ix~nM1EB|~fY1Jno!5$RfWWCClS8nT=J2cNXB2Tb zDJWzi51)gR3E0 zih=dxeuU~21^F6;hsXwAh`ENBUNbT_c64y4MohR*mHz*>(5W$fgrvOYA zrbhf100iM>AZ4LIeJ?k64jmzYa~I&`4^1MYxEs8<3E4DLzVDOLYsb-6i;x3H082YN zv?m<%EeBH8h%_7;kJb!5B^`HD#k^fOH(0@;>ae$fd9csnE_UVJ(s3S)#c4f`{?9p= z?xPY(gk6k=P|qKzK?C#h1ieZrwr*|DHl_tKtE_ybz|IV7j*3;=P9ESK_U0N|29QCQ zxGoFiC@U)BVl{`vC+_YlQBOezfL2t<5>00l6G}BzNO7)#x%696fM68QGrypq2dW!95w(pFM-tB452zTA z9lM>?IX{bXvQis{q+0?i&@7x97^vba)}R5moB{ZcO%0&_*pR&~ZqF9Q4L@8_GoOLV zA84Ua*$vtVfPCX9Yt?EoXvr-225>tu$0^wC$)R9xZq6=MZ7M4t)D+)OPEd?3=#NR`fU&57drrLZh1o#XtdNjMGq>O;v zDPEn^zItMJ*y%fc$fnTlX0VcxRps-)vI%$?xk%aZC6`cM;7+xF7n~R4`$Utc3ZWkb zIKW*-BYvN`yKj#61CZ$z-|Lav!tpRKrs=~qItk$qU5`j+{`B2Wz^+kVB;OR-kl^q1 zOdr(;W?obeO=Ggxlc*^8pxjF!uOCGX-Qi_4n1-z*SFm@uF?q;^7#V;^g6M#O4V!?$1=##!PskIfd?i4?+adwnSZcFeJAIdbyxWk){DgU$>bZ|5{) zEcp(Y7ySCAm22VUbp?UQ!m?d`K@)F?q=e9tT!UAxzW(8Vv?LPSQ0432xFJPd2CZ19 zwZm=j+{DC{ygaWEyygrtn~LA4p7~MYU{8Lbz)C*Z2%gK`eI0#iGB^Le0+j0bqJO&ve=EXyM9Km87gTskYORjTYyJ29!=f1WAr6KA-c*H@gFAl&=qH*K!BVa5Ntd~A%H)=Ug<~G78Z{4?zhK-J9!k@?g(TodRA( z2&z#~qWTIDB~;z;RKV_ruaPyBX~3SYN=g#yM@aU{I}%8dn@=!r{6hV@utmAKt!*96 z3~1iMerkR%tT*R+E3$sv)-$uS&a~Cuw|}{&tDn zM-TE~N&vz*pqH!tTp+rsUIquN1IdG^5nM>uiYo~3-~IixyLX=xt+WKZj@{GN)D*u< zQ`?S`)QF&e$ogD>f{nE`VP%TrvKiSpwy&zYqMRHWU@rv~TtYeu^bgsJ+ABM2>j)sA z$Wv^He$K2%T8?8V%(0RPQK5Fi>#BNs?ug=$#U&&r0#UKWhiGWHgL8>mc^BbxjevqA zMV@sUPgC#BHA$~6$Nvk#Plh8dbY#=Wu>n&8nr%Qag(ei-T_{(fa0mJP+#N8k4oXboSK~_3RTQRL!?I`2IT;n6a>t_pB^n!2_olW-MtNq zg!RIoLH2~z!az0sn>S}UD#$#jWIK#^lIY*U_l4ds*WhcQ#+eSbsCJV}n0N)v3}~t0 zfmVPtNaP^{zk1~g$1z`j|DTqpcWjojG34aoQ3ky8<;yTCn7Ayccd-{e520>_5({yB za{3nNHavNJcHj_ws}L;{{@swsfb#-_h=k`;FHC997w*5KK*yKz^prL_Iq<7B;=Hw{ zK=n_*B|p>zW|8Wk2rTH1jq9#G)Y5~G6#<(g*J`b=2V;w>t$Fd)-+@1vOu-^{8qF%` zR^xPgf;1cUZRqE0#%Ie`*3of=Di9yNk8!K#J|P=mH2*v0&}S4egM)yOKz$ro(G5So zup8@N=5vMQvB8lP##%fDSl_StayRN6KtJ0kDPa+^yMz^v&1zS!pge-k6!SqrPa_>F zw^xIoEe{V(+97GeWdl7$e1d|v2*mKqw{Hup)n2_9e?dQXsn{zDEamn%Rd>2d_^>sQ!>IW6GILi86PFBKFJu(Pt_J$VxICBeu7 zOi_@Ni))=ri25p()I`*YzjsBVazl3$xNPra7H;nKwXn4HW#ici`OibsvVr*QKP*r0 zx)76l>Bb0lFyNVAT?K?CI;vlwI|az5q4b5Wc!V%BsglB?t=8-N<75 zmQnGFJI~3x_#)@<^gMh0dfYJOVJJsPXgV?rl4E$jitW z{duXRcZ(Pmfd|;EbC*mKm@<5eA;t_tjgDwa6O1T9oRhdyQa~qQMu-d?95vJ-z;Un| zqaHgp-+FL}EGT)-%^El|=m`1zn`udHl_cj^KDmv#PcI#A1M-3Qzahep?X5{1&9_+l`S2nc975LNlFSw&YTc` z;msR2-U6#-W@er&LZCnqhk1R+I$-6#4_v5it^sXMZAf+jOncxtSkLpO{TE?7)}A$p zByEq5F{%WV*NISm8X6J}zYs|RaV($jn{+_*fLCkmvwV0P0#@|*D!qo}2d?$R$dSZc z^cArdHhs|rph`HPJUQ~+kD|Wx@c}{f>UTn_7dA^UE{clg{jf&<;e~Qo=peFj6o|w? zkeb&!DJYEk{r~k(EI<`;VWDEdjmm$;1qdO6h203$bu6fbY_6e7k&%~2BjD}A*Kghs zjz;4xkd*%23Kgx`@J&t4h8*mm!3{;hz2YX!`G4p}C65Qs=^ks8kHiK5zs9Z^EVUXshP zKo%GhB@flWAWtZ=w%3y0@e7PVxHviE=_FVwJZlVZ8yn}emiFH0twvFX$1yxHL9pYH zse6Y81_j~O3C;LJfruYrr*6$HtwZ;0jq>*VDAvuw#N^m3z%w^E4>E|Me?x+e4_a%C zS0G^Iam}vXq?lD=Srn1p`T6={5M;>0X99YRN`*n|U;euZj~3ve2%2zw%j0q(`Dtlu z%hTS3H~|2IumeCIE`0!IOGR*j1%!qj;3J@mBZaGX7UutHX{+C`Oa=^i`&;L!%i^Sc zQ59L3n#!AD{N(uDZy?^t3U*Ra(UrJdQB$))FnsjE^z#adbh=6QoTS>LN3hgr_>4RO zk*2HAQS}*lLaT5bc2a^-BGc#r7<R}fYby2we{yw!ilDQ6S@`v1*m&xZQ^pW-~2m*i1PX3xCwL(&o1DJVJ7CkUi* z9w41qraT=ANnNOV5YeD5LgE6h9pm*(i2U+4*~U_AjJH`?EOSRGK7vYtGIsS7E8KAY zx;Abn+bAXV38`WLJ-<(lVcw+uCXxz53+azIGBLz9GT`L7{eoNmR`2*GxT=wFK-`6rD?S%Y zH##_gnZPOww5HrWE=VpBC<%8st7_1ZON)yT#ltt}6)4K)&p@nEGG`A$ji0pqEP&BsfrlV5~<2?!|ZS(?Tu=S^2 zP!$)nwK1s`-5;2e1}lu1xVW?EO~N&cLJ5yEjv0-*gsUwYY&bc64^e=m2Pp`p5@;p< zw-Ot@N-ZrdpM3jrJ@dg%Cc+&ApnJfo8pI>`ISPe>f&zBq4HBV*-_<%BM$ck+qnKEf zV$y9RBaCv!^^X>07%lt(X}Y&g5GmLdzz*i->9}JfYKoCdK_Sxgt|=zr0Igg2W+=NINX6f&~KWScu^t)CUgW zMifG^gTGs{z9uX#uBW7AfryS%SYtsV37tUa8)^L^I-rGwqJ-^<930UG5gT_o;wvQu z1wcITIRv3s)Q(GIL z{Qt51KITWD2B6K6o}-FEu>evX#SdxM|>yjld$&y0^GvB#ce){1Trtr9>mlI+l?ef8q~ud)-etShb@kK z#3mm|0wJ4HiarRvCNQ1R7d2=L!R3UUsszIPQJYZkgFxG%Ex{u@S0MQIF-SVxDl0%M zm52PknF`=I|83{#0nQC;!W6Kb=*wIe<>v=dM~JR4y#;BYIz9xdbS!N$Ju-5e*#z|O-17jCr<9SK@&Ca8#Bc9oYPpZZV&83=v?m@AOQ zQ6vgo#OQkuts1mEjl+pkN+v0fVa_WbB>Edo8=yQScl2LuP})W5@y5hQ!xt*0*AhF#wEM zqXeFZ(+1Sn3Op794!Xagi%C!SCp>P6mKC^-jyCop5&|Lv|KtuK8U&UjV`F)*1&wZj zx?X1BMV3=%F_t{B@-63Oo$J?uX)H)GImed?bqcS zff5c=crImy-8_OP+NyG=Xf^dEG_+xAON6Q8dWK?iPzy3QRyadHCrm#rbAB5bT(lXllwp zLz9UV99;}ZcA-D@N1JbFCq8;pZEgA)a=!vZFl=V1FNi_1*sKC5%*&s}YMvK6G3+1#veuH3DX{@M0OzmrQ)EQ!uxxZ6isC?dI|8h%7)8gcM7-?jZlA zTa^k#RkM3H%ds1onpk#hGnfXr*vDQ1{&!qxe`|Htc{Dd+$Kfy`j`O)yML`>a3mo@L zBvul81@4jP#6`O!a&$?Emd=nf?E*#za39114E|8^sT`pa@Dv)76x|qDc^@t0c#l5s zCm-#@9py>G^-!df>fu>sXqbrL3(9FB;}@Lz_A+h3HvBhsyyzdt04D8L3RGeL=?;*D z>tKGQ=@x2t+@Uz-NKFC1EGBQ<3SPQO3VXO!CRf2v;L;yTV=(#3WePf?t z)lfH0av@Cs*Ci(}kK2ZU*MK4iI(k>gjgY3JAfnUJ-c3OU9vwRtmlfe2V=YEY8h!^3 zhGYc18Kgbn5a>u$vEVo?kgO<03ZX#+eRjum&-`xyk=1WmJAvd7*^-|h(VYoq9i!5T zjw)5vAVB{()nF}v6QO!UgC@Lo{0@qCV5;$j3rQG!2~r)QDgL}4W?L}H2Kw#gTWCe? zPB{C6oyRwV@cn43({TG+Q0T%b;yA--#hF0G^fGE3;E@en>LASmv<)8n5qA$UM;h&? zSTNP-2Z@P45!N6qB%G`<6t5D>ZDLoxpYxvU0cB(hnPo|}8}aP&Yfv+suOE+(Yt_O$@$_E~$Klmz$2O&d3! z`=p62gA9;p9fciIS<(o!chII2tpQ*OF(pTqefKUhv;`BMAKq+S8zqv?T{}w~Gp708 zY7o#QA@{g*>jfmowP0};U5dlPuHebihpEG02W0qGuTsz!w+$W?h28Xnv=Doz8nVCE zvx<9wqDs=Bro5>+&NgAa=-qfiSXkM?BwiXD^$C@?q}f>T&pcb1hUJdL0O z@kYCA7qVDvQrwx{>kjzIf1)X^CcCs6K$&6Dui(x=hq)>`SL5TEQMQu864w>2k2x1L zY2Ea@^w%0-y*~9gUFw7|*NKJQfSG0@4O^{GzW~3JE6qkaRE6#?R22WWDo8^6y~AW5 zusiSwFS{s6GElvfB(&R6jUm3DVerRnE|t9!q4)9l>oow^WrAWu{}nP$nw0G^RfN@m z5hp522;}AEf-;zkw2GfgXO57>9yz{n9?U86Z{PuV1eTTY=3Re#8@% z^HY(@BipOWc$@0djeV>K*A8xqWf+E{aSco?0FRkw`o;E zkNZA;%m9B_2?>wv10%cszD~6$Iv>a~cfyG)Ay1!9qU^xM5Xd5HJm0uTte`|Hjgk&n zVr;6I1|xZ6bODnhFX3alxv)Wxf?$G5+Pw&3+4+{sdbl3V05Cxe(rEtHi^$sl7jp#q z<3!48U@(B5ctmi}emI0^P3uB;`>48DG!ty-##*^zFTo~tY;X{=BWw`JHIXbvd}q`; z3k;@yF4aP|T(6H=a7x-=rCxze+{1}>FA>}}Q z1fz&o2)6?RnD{3Z3>&d4Xy!gdfx-ZUA5=@8hxqvUF)=-PBZeIe53|#3{##1xS=)u) z1h8u=(D~_;REM9;$D71>i=EBy(|79VC#ZyGJ3rGwFhc$2=i_5#X$hJgZF9O#PWh>+ zV?YCt@RV^vb&K4mzmI5&0s{x23beOEAVj}I5IiS)Lb*vy3;JqM8zG2N+8K~A(vnp) z{Dr?2&c2u3bPzC%GG){lCKs}EaRuAmrVQ!}ODiiohgJmm?4Y>t6#yv<+G7{lVdzg? zu}L5#zLlv-kZoq*Q9}prOSAaul`oUqkJE`}UpO0cb1U$*<)&)!%a! z?Azl97JwlNAWU=4M@7KjWoHM!S18{hsZ>6?S^Kt$ ziPh;BaZE>deFbL=7KP~9giZ@J((uR#)c;7CaPg}zsYRR6J;b!sDyUFZ*mdYmv-<=p1w9Q3VSOsIdm8)~Mr$5l;z2G9>#7^f6_D@bHG|-*#ipi2gi?5f~--X$b zoYI^FulYrHjn|sk&jHwLZ@>Qu@9pcG`pOo4@9$K?Jw^Kt9&}q-xKsY2IYE{dwX{92 zG&h3SEW*T&PwXe^zkPcS&qXNVS$3(%o=!&J4I1_Xx2ariIG(a+H)P9;NT>$aLFZ!( zOBLG0#@25hfG-e04_Y!F0JV@FkpUpl$!~^LlK#H(4O1ZDfKs_2aYy|Qq1YQ78MI8J zTR;)Xd-IniOlZHNr3E|(*O(u}87tgt5D91$olZ_lABsXaOQv%iwX(AdiEcyx5E@^O zJv1Uj_<+e(}>l4;-HH=)^Q99 zO@O4m{rnK*piV&hx<;yx30;O1)KY}~rnvhWAj;8vuA_hV;|*2g(WO7VUbv|t&P(wG zPKgfZJe-oo@>W>=?n%zm-+qHQ5}6#r>4etI=xQ565)u>_3N;QOU`7~468Qo>=9Hkp(@$K{TBRK#Dy%=3Rtr#z&IuS6mpClUpiJ<|{?N+S6ZPl!a) z{0El*Ku8eqpZ`-{+Sh6e4>A({E=;337;w2QjdT=zie8(-B_xxumY@U_kuk<9u}O+| zhiaP{e$|MChopHteN02*Xtu#<{+_?5f>^~(f1SPl4_&DLFPq|#b{pk_1-1Bgs(1U? zG)9UTwzsW27Es?iIXbV*?DoFL=KK16Q+mTz3Dr!N>5=!V%UBon8b)WT2;NUg1^bia6uvq$WRJ;-r1cfZ>WaX^X25-*0v9-YqOR7S{q#FEW9C@#;(UAlnLZ#=M_z|~Z~q-TrBAg+yDypC=5v*E zC{_AC{S4Vkr$}Cm+4!FNeCW+#J(u6#D`mV`D0Ju58;|teO3j~6urM377RpQS)H`ak zG~Tl5HRX7b#*4!BV_efZ)p{2~c4Rm5*@Qce=4jsUGq!hIZj=m&k|C(`6tnbA&=qm z3I^i0sXBsngH2+Kjjsu7=+6A)uGUr%n)Wv&>n(9Jl%XL@DxbONXxe=A@m7Xu@4+Fr z%RN2`&hn#!6Ops*o&z1V`5Kp)R)3Fvws75S&pRk*zs*mqgsst(FCnDfSWr-j@u%rw z;bYVJX---;nkw$hv8w52;b#&vith3~S7z<6WQyFh`_;af+@xE$Zl-jw!s^RX=hu%P z+pN4;pUVaKF+^CT?~W|G_cgDLD(i>Q%(Oe3*$uf5q>;>h`l% zac+XUi-X?jTVR#g$c?kX+qBiYWX{oC6q=;Yl?dDHO8&02!Pqd7yCCr6pq1>+5{sb% z2P@&TYqrcuEtfY4#(%6kKH5cHQW&SlFtgL`LVLl^?8_^!wDJntJVMl#f>rl69XlT7 zI+7>#d5k*}ech2Xp@-PbZs)Zx2XNUmur-jq-5>-Bp@AhRnsK zPr{uSv|1MKY6m)5xqe{osGU7k(3dg7QAM*Mpz+kl(0TUEx=RlX6FVxYu2JsFNO`Io zwo|p-@1BXdVWW}IW)nI*=Ogc5$Zh_5N7yg?RPIHyoQKkJLv?!I`(+Kav{IB+L?};` zKFSiG;-nW1rk%{_>Z6Q*eerQ^pAeO$Ma^M~z}J-;oL_603wF-FQG0p(CclB@Empz2 z9~T%z$1dp(EN!)}D^|CCt>YJ*wwDZA9okc5vRNfte|8r;jK$wOX=HLW|Af!6g1RSa z%pDviQ}N9o!#y`|(@%}+wR>^0CpGDOaBuS}(gu#gN@4$7S89pGsK27CNJ? z##gPgJbk98;6Sija4pRMZ-Qc5omh){iRAZ??y<`ODt9z_k_Io|zPv-Q;_h32Srw_F zfaO8Okc5z`R@#|m`-$nWj+A4Ee>#TTI|R{kX3M5GBzxx81A+H+R0RZfeiO+aK1io; z6>ri_W`_kIzOzAer@60PbyFP*1V=#<@Bw62}GW?-Y6 znwe@3G-{z}0qIqNQjg=p!cBVPzIy9-6Y|l&YmOCiT>A9&hR68Cx|qB3^;{*k&L&@{ zeU)|Ysct14*)v)~C3#CdHG|)Uop~A(dOB))vQJ#G?e2FKUx<`36SN)A>J=Ew@iA#_ zPYbKGRsN~dRb5qhOg2EISoB9(4oxy7^kTjw>Mm}Cvs(#w<^eQNN%JEzyB@btKO z;k`r8=k4uIT-kjtxXYsI)tk%D1P8lX#yitlSi2o$Y0365<=fq{YUtdbdGg`Ou}AS7+xXNQ2HSIo zR^8|NX{%hfWS?p{wAGXEj~FZaq@sQ`lV1Cn7G;;^s=C~DgL=80oCi6&{3y9hLF|l| zEJ-b~uAN$stuc5w^z;HmoQvLhZj0YNj!;yZPDN*Jc(I>mi(6E4T_#5WuC;)c`4h)2 zTa&(cO0G<)v_CCyaXzzC=gs(+=-ATbP}h+dsX!6m4JG$)US823nMv)jZw=u~m_&&X#UMLD!yy+HPT&F7V)APm|ezl^A>}OO@xTP(t zJ0%1py4Rz-ZiqEBSu~Wszp-7EiepvNe2j^MiXr{1l6t}V+mCiNbED=jrDXU1$e*e+ z)9c{x6=-PrN!ML$%>P|He@dP4_4Q@zPi?b2w|Q(XItbOA>}wV-q0AgGqU@=-{C;oQ zozg0{e67lf_0c~2>7~(9F3K84q0@YAi87u8eDgb8jxr@4_b;J;XI69B%(2n$-ST4v zz&Tx`?xXr4Gxjr`PbRKD<{M{Ya0rw>B|jG={<-50hg6&TJo%oGG|P%zY*EXT*4FWJ z{Q{dG7RfofuK${AH~)E6rPF+2sibkB|AV@PE4f>LfgYZueiGHYchr*M0T-g2X z46|uh?vNaLRmSVfl^nrKb+KF#Zp(?Ghoz~%Yv{Ti5QK4pF$MyRU0$xCZ`QhKr&^gD zf0XX2v(t;2jK__e22!1plZ%R>Rn`?xc=>eoi+aU`h?1;#QKq#axATFEj3|@$n6d<$ zuh~r5+54$%8W>3!UyZQb5y@&=NF8zbRrdXQ&BLZGi67rchf(!d4xWEHcKNKodE{8@ z3+;W6?-^SJ1x7O+yj8>DtVk`L_A6G(WJYT}>(7@!JCnkfGfzx^zMq`(JCGNLNehh@ zd9wD-DlHB6YbvxBR^|0>N4i&XW%%X3>Y7>+CSlBJAi@m1aMQjVr^D0L=eCc~-8N_`T`lP6$+8YUw3Jue*d&^< z8uupdm*$l`cdOQ3K1PNZ zht$+Vzd{c>u}JQp?_7CjwCB}#rLl?i-3{NcUm3p1N%wQ_qZ^Yd<)tW&kJ-lsK_ z6@SvS!uirrpSr|%2W2r$#LLf~H}L>PhF&Ufv*?XJ*dy=cVt-}woSR#+A`u9z>lB~m zJ{WuV!=gOksjaKxfvDr`iaRP_C15IYWxb z#zM>1`}|?H^%nzJWNOydq`>n+y8Kx+rJ!A4S>Tr0Y&W|Aq<@-0Q+B45J za26OpWw_Y$MCG#LVw+*kPdV#fPa-pn`L#3d3C$+&&s7@>o?_prP2PT&kHIBTF?X zs9c@?K}EmZ_B&#W%{c?6^=I04Mmfn^&ni_%TBW?>n2E6QVWAKjEbVeH-z2P|7R@rA z(RHA9s_WKLB4dyJd=dL(U*KW$jE!~V4tZ*6VNP9!zY6)h4h=sZZi;Z%UFnRjvtCdx zsp~xXb4@O^@6Jw!Q%QHFTGqdf#)Rj*QPI>3*U&IzI1;?bUeFn+S`+okZr%EHV@Zu{ zKZK69!?RJMvrX&EYZ|(hX`Hs zYIIW)Urms5TIOe_S2qkb?JH9LoqqJ;-KRnd*_8}N!Hlk)ohuhBUGwM1CWUSGMv93w z(j{H_Kw4Zn+nL|fcQjsUBJG#!Gyl6$n`H;4*Inr^1Q=;s%Cw$5bt;bHuD)u&Ntce+ z5|#C2P|1Yr6Uz>vo%^gyimihQ0<}O+ZU>ta&4w& z{PMcDMr~H4PrPk&EF1;AOVtHwXckfXCcL#pQM)CIj z;UQhWG-{%bUHY`DM9nZ(cU8Q%+lP(~n!a844BxA#XwtUb`M55!;_B7ibyYZSdL*_d zO((CuO0uG(JJ+zIs`m?k@!)Qcq|WZ;in*!vss8kX-L3;2B}&ncUMj?-^458=EShV+ z(414xGasQdu^H`styG>cB))C?-d!&r+)iy@qEAV3;s4G#n!NNXBd6HieO2q;liuv? z%#_jL894!W^2dLSJ(8ANPWs+&+j7MCE`z{5C#iyp=U2Rig43wS#iY9YJZlX_gj|0$ z>@2YfVG^|3)sraeVCVI~Hoc+XYS~wdo+dI$0sA?IcG)g2>3#1Fs|R#4{i_0M&Dlh& zI;pg+Q(QyCKCx~Q`|9{h{Py6ZWWVT?#a}1=Ym#R#`rliKT7CZK$cgCWrZ?&;IZi(1 zFRjc>kFy^M*Ds6Prj+-pwJbAi-@a$(0~SZ>9M-0P?9tOb!)Mf;m?pmSZPV+pxmR9_ zl)`WH&8|HUS*~VkWi)YYJv9(5_)63@dxz}kGT(XnNOG6E_v$$uYun!BW)4t~#1&TW z*dVEPl&r;2l>gg5>ylQyx1z}5=yi&~s(y_{?nWO$cXE~s7a}fRoI28`@Vs-jwYIm0 zr+gP6P^Yptb$NRBsmHmLfA$M5Dw!v7y1jGzUd^28vQ@IAAj_(Xzo^*FIb4F&7l!X^@eXx}fU);Z5JiCK%!M_ddzvHDBPkgnb&4(KlX*+4hZ0jJzR zJ>UMbUQExNbxG{zO;9V^_eu*)w-$|QuQeoyR1?hSzJYRdBGSXf96KDV`BMR^G`3j3P!!`GtS*<6+3@Jb=o%gq-nWr$&OQ4EA^VDe?pm{jJ%@%=+3Yvqn;Ys zfFr|s6&j{amzKC&Uwol_J6~w5Rm<~)ufFZ2%-Ja(3>oQnGBwk_ME26mNHe&~vhP;r zo$Qdep-HZOD=oUGzr^R?en~G{KC1He6Z3T=m5FKPPsiNkpZf57A2io?8}?gyEVKWN zU#I2B&$(E`-9faDf@i;iIjhh$l$_cFVK3-Z~s!-~h-6~nOwDqlGvDt?JUXO5(H|h~A8;gJSeuh9|p&p0sUm0@}7`)wo@84 zCP@xO@_#IcvP)MB>0UfmowgF?`cc)oDJV2T_4m?~d2wdCK~6X7SWP=&c7>{>2kA~q zH2mMz<5pbCnT}d0GUh+~dRurl=}xO!xq6D0s+;DY_O^2A_h~Ml=UNY^B-Y5E8O^?Y zmQ#58(YYgzw7$BrHhzz@Wjw#iIxb6UoDJlz4oygqQL5~_x25+!+ez6D@%iYc#++x| z2FH$FeD?OnerK-dE$X2LStrJKxFo*YBdc=O(|r58Xn9@Un#?yD>Sjf|Oj@LVg%&od+J`xEt+-yq|%O|E&F- z*c7#Ag574S$-Rk%tkl4@`uN(f%7EfM7Hc;nV!CFN#9Mdp9hJ_Ys(t<@r7X{{lFF(6 zUCZou+V!K3`r@|F+?UJ83R&W^_DkM(=YAp@>eY6`R(^7Y`~6|na8)wNsU6zi>}`H` zSJk+Fc+$&!K43bsKX2qukE~DAWJ2T&&yY-yNo$jRc}Ptv-NMXheUF8A=*)z0<%h2o z78f6__%Y2nR{k94i?$SsS7RP7V-^#bI+HGwuAlmQRpbHHa94MscgX5Me+Fk%#+m8Q zA8YejDjKba-u4BAGiK%n&{Vvc&* zloYJIQcK~OSURp9HT(S2WI6vuLE}~3lJi?zOeS8Av}Uyze~w}|KM2He80AF*u0*-QtVE3iz1a{ZJ$mW zKfJKNDrzH-fxX<#w@u#a!@(t$TncOx3vu4ri(I#Km7mjG+?|^oX)`u7dv*Eho%E)U zk#XZ6oy%!mG+ehNzbsA?f3e)Eyu=|Jz*u56=42Vu^XTBXDW!p`!U5Yq&reST zT*%`1`pk@|V;&DT@ZLHo`9$c`nhdu|*Bz$YCpbEV^DfZUzEhuz+2Y6eQ6r7Idp4Tq zr|%qVxvKS)e1|)aVMoWsN~*ZNdz_si)iXx%+yxAhR*wrD>U7-rLunB{RZpN3Be$>=c$oy_BXmT*=QA{DmKs# zozN+|-rKh6mmin&f_X`3qUK%p>I`ezz(ckL8IO-^n#}o0*FJb=8h6>>t;&3pi0GD? zJM%B{N2}jvDUIp>U;C7&pRw9gXiDSlHub6Y>z%J1G;|m9{kO?qT6x{0UoYOj{e3y` z=;i!pdu_ShtY@FFw_N((;!XW)r$8dtvQ@+$rlom)Dy=HFm$` zxqM$9u+<<`vFvX8+zL(GwVX=Z`*mVkmi=5F|NH-BEkDb5$(p+UuPlDB*riUHb~bQd zvZ!h7l#0~5Kk~$GMXB}G9y>R~G<8My;?E~i)8j?#D_zfCo4)u{)us3EqV4iy{7)bH zko3wX>)ZML@Al7*JD8;XUUaE&x7X_^v&H?Pj-giHn$z^GKf0*&@&5X{J8{&`pxy~>f^FblVbo2D6+i!OZ27NdWuz9F z0z7#r_VqKXS3C<&c=rAJy?(`yEjE2|pRdiee;f8^&zna}m)q~Ie7|?<>-4o>yX@0% zZMNR79KZCF$U9GQV=YIUq#g&V<&ii$kMQe@cjJduqUS?kUv)%BbVg8R z$Mhz*kYmu7=5$G`Z+hph9er)C|25L3WYUt#_H}R1JdqChx7)qm_D{l)RYu;viMPd1lHRZo83Y>(gi=IhSZPhZu%YP`3WZ(R4a4LFGqUbBsm`2{bR-n^_#N$Zf?r{eV|J{ zq{+==(#$DSjtaD>s2Y0uTsgy&!oUzvY>>9PQE=bBP04qsIg7vl|NB|(wvGo`vu~8W zxc9qTU%lRT*Yr?c`?c(^Y=50?^?m(K##T(^W84{ml*!ZP_se`+dAT98m~FeuGbV-= z`anPEbOucDHoJK7z|=MWjXEP{%#SZxt3^oh^0Du?&A}kL8yqf?3z`~&3fxe;Dj57lO zoUg=%KP$SXAFsM;qPVUsEP#CZK-uxT^DXaC`6A zeB|t5TCwVUX1%&Jj9+e5yK0UsCugqo^?jn`r)b+O=sV=D1VBp4dVp=vv@o;pqx)-a ziqx7)aLW7>n^-cc2odP+008&q)#@J~R-Onq{`he6zu~&^N<5!>rVId_@*vp)Y<bj@b412KtplD&1qmi^}2+q)fc1ocyfFIecd3*2y6y(!KkXH zygd&w8B#)J&N!b zos%fYSv{<@T2;^L%&E89L+KP#9;|)Hr@FswCt7Q{BgDxaPIWi9|4JR!5m`UXsX5a% zZd>+7qiO<1kKbvA?B|*>M856qAB^<9K3GEo0Q)(LHzHh%_Vhk1VH59QIKMR&u~IY} za$=3_-yF<~iiKr)Bbhul2pfFT7>r(OIXcTK?s&_E6yV#%Vn>?LribGk?f&QEP(2^e{%q{UzGe z&d~vx6AW9x_D&230WTLlu7m!q68E2*XbLFw+Av;wH$XuvvF@JJGsL}v= zlWk>rMELaDk7N5Y7tr-%uYsxo zqM%-JYS2KnKDd~|cP*G}sNn-8gtB+7da=VQ4N+zu(k1Z!qNI zxJUBcsF(T2R5RQO7^K|YRsS2W(nP>j3x~~mm4yEAVd-F-=boT)Z@%nn=Py^2iZj($ ze@Y&Ynu(qpKQ9esk42^>Nt>Qm*ZfkZn{l8sj4%)gn7Qsn<4sc+s@nPAMCI46>l1W&J$vE6Ap2mKu5LxcLdS7eN{u;) z0RUZq{4C|@zyM7g8;ufnq}iB*qt3^V*sM;FkdJ*AUxH1kuFsk&?j)c7ueGu zz{;gM60FA|&z)oI)?HWQb75%$k3JnqUg*L%Jgq*eRjGpsCf4+ua0wd*o_RV7c|XkT zp4ZoN#aPP6n|J5|J5_Q6ml%eX2pvsoUQdT{jpV#*$vYy#z716~x#dw4~um%V| z_R334*1!Z$veT9CS`}?Avr&B3R>drL3(L^+M~}feg_>azuxrh457PdV;JP+$&#^JG z#%wWK;fblX7y270Pdcs>R);j3CMo!t?>VaN(A;cQ5fU4~yz<;pM>=#`YgR{p7+mEw z)mU>#iIyC(2Y8v>tc;o>aL#;4annLIMrksL`vhbF2ST1je#^_CEFKvt^;vLZ-O_a} z)dsSoV{a*E;v+<+AJXT`d%Q#z5Yturb==e7FYTA6IWgZX)X3Op7yqC?F-;L)Ba3n%}8m^m7!1?n15{Z(ZVv zS@;J>$Sm)2agvsD3tDIj4HS%0`USY??z>SwDp<`4-0WwgsKFTSR_ZNx>+w6gdYBC@ zPOA)Ad*9jB9C>)O7Q%2DgMNM>k*Db!0X}n0j8tb|>*G9=mX>-w9{Ki+(^F?#wfm{@ zH3Y73ZmEnk5lePb|NST2O?K^%kfO1r*~;v`qUDvHw8yx8L9oe1i@KO!KE7wWe{q_f zsrd$FW?t@nBYxSiMQKD6Jn<=@)K6Fe0v7IQVoTGch}>U>UN;n@%jtnN`=zk{*JhB#<@w^{eIGNjuMd zgDQ?@Lt|KPU24D?1-oW@dUdx)Lhlay2s582&uZ}PB$P2e=$F`;1bD^da%>PbH+zT& zs@XQi$%|qp83Z9=f4#XTV*Ng&TeY}d0n<0JakM!sR5UhbeIk&cMwOtT6jG$fH@zY; zlkq(1cNSp`HPu*>^){@n1O5mB0I z`YT41@rn@(xWn~lnIGa|qT!<{KT9FwS+Fhz!6m*X?H~jZ(4L9;yd|G0!uKb)^iDg5 zD&9FdI*uUO{?K-9fdJ_G>8UNkmLU;8B}82|HTCuNxw~08iHO_L`5}qOaH6vu_kKLG zgJcTM9moh!qB%0(fohx`N`(q!Ko9GaEyMCZ=X=`A<4|Dv2`bGtquI9@x#(~&SjS&L zj8-tnfN|i)&&HDcMwhK3gq+5r1YyjW{^@3DxKmxT(BphszE-%Fk-illpk(_hXLp>U zYMo#J%zFUfvB;3hL?%OaD9#BX65pMP+~TmY5-o&fa}c=!t^b`EUMnA8=<&hn93iNM z;5yF9!=k~z{kbn*E<#d*@PWde0-%Bmx-6hmb;HPO?Rv%lGT@JsQS(Bm`Gfz z;leVJE!b|#qNC0n*)r4OyJfH@5nmui3-GP2y zto|v%gWtrwMt2Y(pYX-5sL%>rrIUwelT%mr4Z<=REOFbo;}v(Ffy)-7q;n>S z_c5Cvo0RP@8ftC}a|=DS7i$eUO$1pBGdP{8^HXXT_v_df66(f4V_Z5nhQ@?QN`uYn z+a;8(ALVRfsQqDx+G<>{#HeqbWDZSH=+QtB3&h;gT%|u=V9MCv_%l=O7K<0WN z@zOJ>=+j0IM~1$Ol#RP;hLtKoly09MvpoNn%-z#o3N3iB^+Xm3?+;9VFG5^|o|GufMQM21V7 zSmk-%pqK>!?qCGxq=|w}SJ8Fa#+V{3Y3Z%V3X^}v(e+M=%5U-3DV&TA(<>8=sFT`# z3MINmVw{#dguP6|cXGhi2>aRe*!u)L9O?FUxPRCfjFHJ>;_0ZBXmeTmYvz!GQ#I%QAh3PxH~R9fV5Um!~en$*!MB}U3& zeE~-)coSB7uD_T)j8!Q+SkI6;%fqDCvuIU?+N>kW=HE*$;C*eTxty#f1iuM0DW6Bi zbW!^?zCr+Cf~5g};%t()k+d>0GIA0EUb`I280_gW%V@#c{Q|CQKD**rQ!PCodmOn8 z4-FYwnXl-_#x;NGAaH?26+*fJZp+09nBhJ2T?|0ON^5n!uBVj{SWq*RS)U#Xk!y-& zFRad4j_Jdv6I}FNgfn=Kq!m;P zah=Wp`ZlY>+kNhIKY#hbQ`pWgaAK@PVMe}Ecb1(^pw@5IeaD+B=afSTOsm%!*G49+ zF?Lh}7VHkWGipz4^MC_48<98#2z!8H;E$XVBvG%^**IDa<89rL#Bh(3am(;=c8BV| z0eo+Jr@#X>O^hr;41B;CJW;AKX+Vv?X#ze)I1z|?tb zzv#%wZ62qFj2J?t#%_MvV{UO=(jT*)r8K7R=Ve{DAug=VFCd<%TwgmmB;c2>h?p2j zU``IX32J9oo^=H+Rf)>&=HA>`rassmdkj5s^RCF$p>tG9*@WaV<4sJJS$x%Zd9}1~ zR<#{s^ybS&R<;bwaF4s)Gs)2|@2iWeP8KD7U4jtPp|`8YEW=oW)~e1+gw%q5Myx{m z0Eje8?zjG=HwELiy?O#Z4B`2CW}7|wZZOaTZCel#_)7G+4&|@G{Zww7>4rx>-^;OJ z3T;Bd_$x-;&_dj-q^!qjs$%m{BV?{^S#uRt z@7yps(Y4I#zjp!ln9a9A$P+PDjWe@H+(h#Z;QNG{U(7HxnCS43CLU0a;Qpzf05v`d9Jo5Z1I4=R-Cfadj~U%DI!C(Gv}wcq(_>+Q|m zAGVNm+5}TQ`C9X2vW;!id6PoQ)lMz>D}VXbZPo0Ih+pOL6FdcJpyTyeojjPs^#D-OZdW?1Nn>Z>`)jp|a?`CO+N6SwsZE#jzoM#R5R~UQU@H@R_ST%=C zI-syjJUcS7**0`JA%v}2V%Hkd*ZZ8c(2#YA+UEr$nWX8pwVl9?$?8n-RnmBEUs+g2`ba(e}~BdaztYXYG*vbzj

                                                                                  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 literal 0 HcmV?d00001 diff --git a/tranlate_books/images/p2.png b/tranlate_books/images/p2.png new file mode 100644 index 0000000000000000000000000000000000000000..005124d8fd5cedab6d7f22ba1231612e5d56de2f GIT binary patch literal 142727 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
                                                                                  ^k48z7`4cck9jcS!4>iUY^rEd%np-=+f8;^{czd$NP zw7U)E3fdX4ZHyxD+>uo0QWjtkOufK#+C*H)zFc0Myir7+ivvAJMD;x^S0R%H&V|mC zxiC*gw@|Brng*5yRt5p+U~k?gQeg}D zb&GiZj_;E{oJ^@iefzE4H}&A^)s?r+<_qXitQP%Dp5@KpJBKqKqKw;$Xled;C*=B$ z(KL4F`SaV`JI=H?>zfypfzMRmn-*1*T0n6Nk;`Lsjq1Cwx^IfmyQPYFlDYAX0t$uV zmBkFYum7R9#6O?hV{&7CJ^taVU;7#WoX>)Ue*bG1%k!_eIf&{GGRDgGv;xf1Sl*0g?(Cn-a5wSeN5feaIQG%IgI8faOtwgGOB zf&erPvpG@i;j*sJ3WY*3!UFfJfMVljLO@*mcxt6nZ$)Nr@z0$AoT&kTwq>0;v(;!c zlX<%o3dKawFqX?^HG~L!4=fv{Z>SKg&Bij@Vkr~~#pyW~rZl#7{xw7CRK;R=o_Fc; z<+1&`6bi*eP9LjIo(FroE9#Cyp-`L-p-btcT)lQE|5U|dkj#hmO7}vcP$(1%#m$e> zsS1Tcp-?Ckw

                                                                                  ?7wVH8s3IL8d7nbu}wtHX^h_~LhM$5~X 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�qoyKBf<#U@y_ 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