使用Rust编写操作系统 - 3.1 - 内存分页简介

在这篇文章中,我们将介绍分页机制,这是一种非常常见的内存管理方案,我们还将会在操作系统中实现它。本文还将解释为什么需要内存隔离、分段如何工作、什么是虚拟内存以及分页如何解决内存分段问题。此外,还探讨了x86_64架构上的多级页表的布局。

阅读更多

使用Rust编写操作系统 - 2.3 - 硬件中断

在这篇文章中,我们将设置可编程中断控制器,以便将硬件中断正确的转发到CPU。为了处理这些中断,我们将新条目添加到中断描述符表中,就像我们对异常处理程序所做的一样。我们将学习如何获取定期的定时器中断以及如何从键盘获取输入。

阅读更多

使用Rust编写操作系统 - 2.2 - 双重故障

本文将详细探讨双重故障异常,这种异常是在CPU无法调用异常处理程序时发生的。通过处理此异常,我们能够避免导致系统重置的致命三重故障。为了能够在任何情况下防止三重故障,我们还将建立一个中断栈表,以便在单独的内核栈上捕获双重故障。

阅读更多

使用Rust编写操作系统 - 2.1 - CPU异常

CPU异常发生在多种错误场景中,如在访问无效的内存地址时或是在除零运算时。为了对错误作出反应,我们需要建立一个提供处理函数的中断描述符表。在本文的结尾,我们的内核将能够捕获断点异常并在处理后恢复正常运行。

阅读更多

使用Rust编写操作系统 - 1.4 - 测试

本篇文章将探讨在no_std环境中,可执行文件的单元和集成测试。我们将利用Rust对自定义测试框架的支持来在内核中执行测试函数。为了输出QEMU的结果,我们将使用QEMU和bootimage工具的其他功能。

阅读更多

使用Rust编写操作系统 - 1.3 - VGA文本模式

VGA文本模式是一种简单的将文本打印到屏幕上的方法。在这篇文章中,我们将创建一个接口,通过将所有的非安全代码封装在一个单独的模块中,使其使用变得安全和简单。我们还将实现对Rust中格式化宏的支持。

阅读更多

Rust尝鲜

最近有一些水文章的需求,而且意外的在github上看到一些巨有趣的项目,结合了树莓派Rust操作系统等诸多元素,多厨狂喜,就准备搞一把Rust尝个鲜。

阅读更多

更换VPS科学球

影子VPS科学球中的飞机在一个月内多次被击落后(估计主要因为反复使用9000、9001、8000、8001端口,流量也不小),VPS科学球也被炸了……这是我第一次体验炸机+炸VPS科学球事故……

仅限技术交流!
阅读更多
Your browser is out-of-date!

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

×