使用Rust在树莓派上编写操作系统 - 03 - 奇巧hello world

概述

  • 引入全局print!() 宏以尽早实现“printf调试”。
  • 为了保证本章不至于过长,打印功能目前“滥用”了一个QEMU属性,以允许我们在未正确设置下使用树莓派的UART
  • 对如UART等真实硬件的使用,将在后续章节中逐步展开。
阅读更多

使用Rust在树莓派上编写操作系统 - 02 - 运行时初始化

概述

  • 本章扩展了boot.s,以首次调用Rust代码。在跳转到Rust之前,一些运行时的初始化工作已经完成。
  • 本章中被调用的Rust代码只能够通过调用panic!()宏来停止执行。
  • 仍旧是查看make qemu的输出,以观察新增代码的运行情况。
阅读更多

使用Rust在树莓派上编写操作系统 - 00 - 前言

在我们开始之前

以下文本是文档的1:1副本,会出现在每章教程所对应的内核主要源文件的顶部。文档描述了相应源文件的结构,并尝试解释该实现背后的原理。请阅读该文档,以熟悉将会在教程中遇到的内容,文档将帮助你更好地浏览代码,并理解每一章教程之间的递进关系。

另请注意,以下文本将引用第一批教程中尚不存在的源文件(如**/memory.rs)或函数。随着教程的推进,它们将逐渐被添加。

玩得开心!

阅读更多

使用树莓派为音响添加AirPlay功能

今年618大出血买了音响功放,接口很多,但是就是没用接入WiFi当网络音响的功能,也就是苹果的AirPlay或安卓的DLNA/UPnP。虽然天逸已经提供了安卓APP,但是目前并没有苹果的APP,不过好在我有空闲的树莓派,可以将功放升级成AirPlay设备。

阅读更多

使用Rust编写操作系统 - 4.1 - Async/Await

本文将探讨协作式多任务处理以及Rust的async/await特性。我们将详细研究async/await在Rust中的工作方式,包括Futuretrait的设计,状态机转换和pinning(译注:内存固定)。然后,我们通过创建异步键盘任务和基本执行器,使得内核具备对async/await的基本支持。

阅读更多

使用Rust编写操作系统 - 3.3 - 内存堆分配

本文将为内核添加对堆分配的支持。首先将介绍动态内存机制,并展示Rust借用检查器如何防止常见的分配错误。然后将实现Rust的基础分配器接口,创建一个堆内存区域,并编写一个分配器crate。在本文结束时,内核将能够支持Rust内置alloccrate中的所有分配和收集类型。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×