Skip to content

⭐ Canicula OS - 天狼星 OS 一个以好玩为主的(x86-64 / AArch64 / RISC-V64GC)操作系统 A fun-focused (x86-64 / AArch64 / RISC-V64GC) operating system.

Notifications You must be signed in to change notification settings

hanbings/canicula

Repository files navigation

Canicula OS

⭐ Canicula OS

⭐ Canicula OS

感谢 xv6-rev7xv6(中文文档)rCore 这样优秀的教材!

那么旅途从这里开始!

🔨 快速构建

# 构建 x86 架构内核
$ cargo build --bin canicula-kernel --target x86_64-unknown-none
# 构建 AArch 64 架构内核
$ cargo build --bin canicula-kernel --target aarch64-unknown-none
# 构建 RISC-V 架构内核
$ cargo build --bin canicula-kernel --target riscv64gc-unknown-none-elf
# 构建 x86 EFI 文件
$ cargo build --bin canicula-efi --target x86_64-unknown-uefi
# 构建 AArch 64 EFI 文件
$ cargo build --bin canicula-efi --target aarch-unknown-uefi

📦 博客 / 文档

Warning

本人还并不是很熟悉 Rust 语言并且这份文档只是作为学习操作系统的知识的记录,还会存在很多错误的地方,仅供参考。 还请多多指教!

Note

Blog 主要为补充性内容,用于补充文档中的前置知识。 数字序号部分是主要的文档,用于描述一个内核中应该有的功能。 Ext 部分补充 “教学” 内核之外的扩展性内容。

Blog - Rust:使用 uefi-rs 编写一个 UEFI 应用并加载内核

0 - 基本开发环境

1 - 引导

2 - 内存管理(WIP)

3 - 进程调度(WIP)

4 - 文件系统(WIP)

5 - 线程、线程通信(WIP)

6 - 多核(WIP)

7 - 外部接口:USB、网卡与显卡(WIP)

8 - 显存映射与图形化(WIP)

Ext - 处理器架构

Ext - 模块化设计(WIP)

Ext - Ext4 文件系统(WIP)

引用名称说明

手册 原始链接 文中引用名称
Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4 (Order Number: 253665-086US December 2024) https://cdrdv2-public.intel.com/843820/325462-sdm-vol-1-2abcd-3abcd-4-1.pdf Intel 手册
AMD64 Architecture Programmer’s Manual Volumes 1–5 (Publication No. 40332 Revision 4.08 Date April 2024) https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/40332.pdf AMD 手册
Unified Extensible Firmware Interface (UEFI) Specification Release 2.11 (Nov 21, 2024) https://uefi.org/sites/default/files/resources/UEFI_Spec_Final_2.11.pdf UEFI Spec

About

⭐ Canicula OS - 天狼星 OS 一个以好玩为主的(x86-64 / AArch64 / RISC-V64GC)操作系统 A fun-focused (x86-64 / AArch64 / RISC-V64GC) operating system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages