rCore-Tutorial-v3/ch6/os/index.html
2022-12-13 15:11:53 +00:00

33 lines
9.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The main module and entrypoint"><meta name="keywords" content="rust, rustlang, rust-lang, os"><title>os - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../dark.css" disabled><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="../crates.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../os/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../os/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate os</a></h2><div class="sidebar-elems"><div class="block"><ul><li class="version">Version 0.1.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul></div><section><div class="block"><ul><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#functions">Functions</a></li></ul></div></section></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../os/index.html"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Crate <a class="mod" href="#">os</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/os/main.rs.html#1-80">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The main module and entrypoint</p>
<p>Various facilities of the kernels are implemented as submodules. The most
important ones are:</p>
<ul>
<li><a href="trap/index.html" title="trap"><code>trap</code></a>: Handles all cases of switching from userspace to the kernel</li>
<li><a href="task/index.html" title="task"><code>task</code></a>: Task management</li>
<li><a href="syscall/index.html" title="syscall"><code>syscall</code></a>: System call handling and implementation</li>
<li><a href="mm/index.html" title="mm"><code>mm</code></a>: Address map using SV39</li>
<li><a href="sync/index.html" title="sync"><code>sync</code></a>: Wrap a static data structure inside it so that we are able to access it without any <code>unsafe</code>.</li>
<li><a href="fs/index.html" title="fs"><code>fs</code></a>: Separate user from file system with some structures</li>
</ul>
<p>The operating system also starts in this module. Kernel code starts
executing from <code>entry.asm</code>, after which <a href="fn.rust_main.html" title="rust_main()"><code>rust_main()</code></a> is called to
initialize various pieces of functionality. (See its source code for
details.)</p>
<p>We then call <a href="task/processor/fn.run_tasks.html" title="task::run_tasks()"><code>task::run_tasks()</code></a> and for the first time go to
userspace.</p>
</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="board/index.html" title="os::board mod">board</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="config/index.html" title="os::config mod">config</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>Constants used in rCore</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="console/index.html" title="os::console mod">console</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>SBI console driver, for text output</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="drivers/index.html" title="os::drivers mod">drivers</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="fs/index.html" title="os::fs mod">fs</a></div><div class="item-right docblock-short"><p>File system in os</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="lang_items/index.html" title="os::lang_items mod">lang_items</a></div><div class="item-right docblock-short"><p>The panic handler</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="mm/index.html" title="os::mm mod">mm</a></div><div class="item-right docblock-short"><p>Memory management implementation</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="sbi/index.html" title="os::sbi mod">sbi</a></div><div class="item-right docblock-short"><p>SBI call wrappers</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="sync/index.html" title="os::sync mod">sync</a></div><div class="item-right docblock-short"><p>Synchronization and interior mutability primitives</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="syscall/index.html" title="os::syscall mod">syscall</a></div><div class="item-right docblock-short"><p>Implementation of syscalls</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="task/index.html" title="os::task mod">task</a></div><div class="item-right docblock-short"><p>Task management implementation</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="timer/index.html" title="os::timer mod">timer</a></div><div class="item-right docblock-short"><p>RISC-V timer-related functionality</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="trap/index.html" title="os::trap mod">trap</a></div><div class="item-right docblock-short"><p>Trap handling functionality</p>
</div></div></div><h2 id="macros" class="small-section-header"><a href="#macros">Macros</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.print.html" title="os::print macro">print</a></div><div class="item-right docblock-short"><p>print string macro</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.println.html" title="os::println macro">println</a></div><div class="item-right docblock-short"><p>println string macro</p>
</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.clear_bss.html" title="os::clear_bss fn">clear_bss</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>clear BSS segment</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.rust_main.html" title="os::rust_main fn">rust_main</a></div><div class="item-right docblock-short"><p>the rust entry-point of os</p>
</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>