Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Pyolar/KamaOS

Repository files navigation

OS-Kernel

⭐️ 本项目为【代码随想录知识星球】 教学项目
⭐️ 在 手写操作系统项目文档 里详细讲解:项目前置知识 + 项目细节 + 代码解读 + 项目难点 + 面试题与回答 + 简历写法 + 项目拓展。 全面帮助你用这个项目求职面试!

本项目基于麻省理工学院的 MIT 6.S081 Operating System Engineering 课程实验,通过对 xv6 操作系统的优化和扩展,完成操作系统中的常见功能模块设计与实现,以加深对操作系统核心概念和机制的理解。

运行环境

Ubuntu 20.04.6 LTS

主要实验介绍

  • System Calls:学习如何在 xv6 中实现新的系统调用
  • Page Tables:深入理解 RISC-V 的页表机制和 xv6 的地址空间管理
  • Traps:理解中断、异常和陷阱的处理机制
  • Lazy Allocation:实现惰性分配机制
  • Multithreading:实现用户级线程,学习并发编程
  • Locks:优化操作系统锁定策略以减少争用,提高并行性,提高性能
  • File System:优化和扩展 xv6 文件系统功能

关键技术点

  • 系统调用
  • 页表
  • 中断
  • 内存管理
  • 线程
  • 文件系统

待扩展功能

  • 优化或增强虚拟内存管理功能:如通过支持超级页减少页表中 PTE 的数量,从而减少页表占用的内存和 TLB 查找的开销;消除PLIC限制,让用户程序能够使用更大的地址空间。
  • 优化 xv6 的用户级线程机制:解决xv6用户级线程中线程阻塞和线程并行的问题。
  • 改进缓冲区缓存的查找:将缓冲区缓存的查找操作从锁的实现改为无锁的形式,提高高并发环境的性能。
  • 优化文件映射功能:实现多进程映射同一文件时共享物理页,避免内存浪费;优化惰性分配和文件映射的重复代码逻辑;实现页出与页入。

About

【代码随想录知识星球】项目分享-手写操作系统内核🔥

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Assembly 55.6%
  • C 39.2%
  • Python 3.5%
  • Makefile 1.6%
  • Perl 0.1%
  • Emacs Lisp 0.0%

AltStyle によって変換されたページ (->オリジナル) /