181 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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> |