xous-rs-2024/index.html

181 lines
4.5 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>reveal.js</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/sky.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/zenburn.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h1>Xous</h1>
<h2>Embedded Multiprocess Microkernel</h2>
<h3>17 April 2024, Sean Cross</h3>
</section>
<section>
<h2>Outline</h2>
<ol>
<li>About Me</li>
<li>Project history</li>
<li>Why a new OS?</li>
<li>What can it do?</li>
<li>How do I use it?</li>
</ol>
</section>
<section>
<section>
<h2>About Me</h2>
<ul>
<li>Live in Singapore</li>
<li>Enjoy understanding systems</li>
<li>Low-level is best</li>
</ul>
</section>
<section>
<h2>Novena: Open laptop</h2>
<div class="r-hstack">
<div>
<img data-src="img/novena-1068_jpg_md-xl.jpg" height="500">
</div>
<div>
<ul>
<li>Always wanted to build a laptop</li>
<li>"Relatively Large" ARM Cortex A9</li>
<li>32 GB disk, 4 GB RAM</li>
<li>Linux</li>
</ul>
</div>
</div>
</section>
<section>
<img data-src="img/novena-1089_jpg_project-body.jpg">
</section>
<section>
<h2>Chibitronics: Programming for 8-year-olds</h2>
<div class="r-hstack">
<div>
<img data-src="img/ltc.jpg" height="500">
</div>
<div>
<ul>
<li>Always wanted to build a laptop</li>
<li>"Relatively Small" ARM Cortex M0+</li>
<li>32 kB flash, 4 kB RAM</li>
<li>ChibiOS</li>
</ul>
</div>
</div>
</section>
<section>
<h2>Precursor Design</h2>
<div class="r-hstack">
<div>
<img data-src="img/betrusted_pvt_blockdiag.png" height="500">
</div>
<div>
<ul>
<li>Two FPGA-based CPUs</li>
<li>RV32IMAC based on VexRiscv</li>
<li>128 MB flash, 16 MB RAM</li>
<li class="fragment">Operating System?</li>
</ul>
</div>
</div>
</section>
<section>
<img data-src="img/betrusted_pvt_blockdiag.png">
</section>
<section>
<h2>Operating System Selection</h2>
<ul>
<li>Memory Protection</li>
<li>Not Linux</li>
<li>Rust is a new thing</li>
</ul>
</section>
</section>
<section>
<section>
<h2>Xous Design</h2>
</section>
<section>
<h2>Brief Specs</h2>
<ul>
<li>Kernel is 17 ksloc</li>
<!-- * 6k of that is a RISC-V disassembler for optional GDB support -->
<li>Threads</li>
<li>Processes</li>
<li>Tier 2 Rust support</li>
<!-- * libstd -->
<li>Entire project built on <i>stable</i> Rust</li>
</ul>
</section>
<section>
<h2>Other Features</h2>
<ul>
<li>Fully Rust</li>
<li>Microkernel</li>
<li>Stable channel</li>
<li>Requires an MMU</li>
<li>Interrupts in userspace</li>
<li>Each page of memory is mapped once</li>
</ul>
</section>
<section>
<h2>More Specs</h2>
<ul>
<li>Kernel is single-threaded</li>
<li>Services use well-defined API calls</li>
<li>All drivers provided in user space</li>
<li>Each page of memory can only be lent once</li>
</ul>
</ul>
</section>
<section>
<h2>How can I use it?</h2>
<ul>
<li>Talk to system vendors -- get them to include MMUs!</li>
<li>Emulation is easiest -- Renode support</li>
</ul>
</section>
</section>
<section>
<h2>Thank you!</h2>
<h2>github.com/betrusted-io/xous-core</h2>
<!-- <h3 class="fragment">Questions?</h3> -->
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
controls: false,
width: 1200,
height: 700,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [RevealMarkdown, RevealHighlight, RevealNotes]
});
</script>
</body>
</html>