3 个仓库
Assignments that modify an operating system kernel to add threading, scheduling, and memory protection features.
Distinct from Kernel Development: Distinct from Kernel Development: focuses on educational assignments, not production kernel building.
Explore 3 awesome GitHub repositories matching operating systems & systems programming · Educational Kernel Projects. Refine with filters or upvote what's useful.
This is a collection of academic programming projects that accompany an operating systems textbook, designed to teach core OS concepts through hands-on implementation. The projects span the major subsystems of an operating system, including process scheduling, memory management, file systems, and concurrency, with students building components from scratch in a simulated environment. The projects are structured to cover the full range of OS internals, from low-level kernel development to user-space system programming. Students implement lottery-based CPU schedulers, dynamic heap memory allocat
Contains kernel development projects that add threading, scheduling, and memory protection to a simulated OS.
这是一个教育框架和工具包,专为开发和测试操作系统内核而设计。它提供了一个结构化的环境,用于使用 Rust 和 C 实现基础系统原语,包括虚拟内存管理、抢占式进程调度和文件系统组织。该框架专门面向 RISC-V 和 x86 架构,作为学习如何从零开始构建核心系统软件的实验室。 该项目的独特之处在于同时支持裸机部署和硬件仿真,允许开发者在物理硬件或模拟环境中验证内核逻辑。它包含一个全面的构建工具链,可处理跨架构编译和固件初始化,确保内核能够跨不同目标平台正确引导和执行。 该系统涵盖了广泛的底层功能,包括将系统逻辑与特定处理器设计解耦的硬件抽象层,以及管理用户空间应用与内核服务之间边界的系统调用接口。它还结合了运行时日志记录和执行监控等可观测性功能,以协助在开发过程中分析系统行为。
Offers a collection of laboratory exercises for implementing core operating system primitives like process scheduling and memory management.
This project is an educational operating system kernel designed to demonstrate the fundamental architectural principles of memory paging and process management. It is implemented as a minimal kernel that serves as a practical reference for building a functioning system from the ground up. The implementation features a preemptive multitasking kernel that switches execution contexts between threads to share a single CPU. It includes an x86 virtual memory manager that uses paging to map virtual addresses to physical memory and isolate processes. The system covers low-level hardware interfacing
Serves as an educational project demonstrating the implementation of threading, scheduling, and memory protection.