超棒的操作系统相关内容
此列表包含了令人惊叹的操作系统相关内容。 其目标是收集各种不同的开源操作系统,以便人们可以研究它们的代码并从中学习。同时也收集有用的资源,帮助人们开始在流行的操作系统中进行开发。
开源操作系统
- 9front - Plan 9的一个分支,专为分布式网络计算设计。
- AROS - 研究操作系统是一个轻量级、高效且灵活的桌面操作系统,旨在帮助您充分利用计算机。它是一个独立、可移植和免费的项目,目标是在API级别与AmigaOS兼容。
- AlmeidaOS - x86-64操作系统,拥有自己的引导加载程序、调度器和有限的libc,全部从头开始编写。
- Animal - 32位多线程操作系统(前身为Gramado)。
- AurixOS - 为开发者和创作者设计的小型多平台操作系统。
- AquilaOS - 旨在符合POSIX标准并且大部分指令集架构透明的操作系统。
- BareMetal,GitHub - 用汇编语言为x86-64编写的64位操作系统。
- Basekernel - 一个简单的操作系统内核,用于研究、教学和娱乐。
- BoneOS - 由每个人为每个人构建的操作系统。
- Bottlerocket OS - 专为托管容器而设计的基于Linux的操作系统。
- Brutal - 一个受野兽派设计启发的操作系统,结合了20世纪70年代UNIX的理想与现代技术和工程。
- Charlotte - 用Rust编写的CharlotteOS内核。
- ChibiOS - 一个完整的嵌入式应用开发环境,包括RTOS、HAL、外设驱动程序、支持文件和工具。
- Clive - 受Plan9和Nix启发的单内核操作系统,由马德里胡安卡洛斯国王大学开发。
- Cyjon - 纯x64汇编语言操作系统(与Fern-Night项目相关)。
- DragonOS - 从头开始构建的x86-64操作系统。
- Dreamos64 - 从头开始构建的x86-64业余操作系统。
- Embox - 为资源受限和嵌入式系统设计的可配置操作系统内核。
- ExectOS,GitHub - ExectOS是一个现代的、支持EFI的通用操作系统,从头开始编写并实现XT架构。它运行在x86和x86_64架构上,并提供NT驱动程序兼容层。
- Fern-Night - C语言操作系统(与Cyjon项目相关)。
- Fiwix,GitHub - 适用于i386架构的类UNIX内核。
- Fomos - 用Rust构建的实验性操作系统。
- FreeRTOS,GitHub - 亚马逊开发的用于微控制器的物联网操作系统。
- GarnOS - 由模块化内核驱动的业余操作系统。
- Genode - 一个开源操作系统框架,由微内核抽象层和用户空间组件集合组成。
- Gloire - 使用Ironclad内核(一个部分正式验证的内核,具有小型通用和嵌入式操作系统的小占用空间,用SPARK和Ada编写)和GNU工具构建的操作系统。
- GreenteaOS,Github - 一个旨在与Windows可执行文件兼容的免费操作系统。
- HalideOS - 完全从头开始编写的实验性操作系统。
- HarveyOS - 一个分布式操作系统。
- HelenOS - 多内核多服务器操作系统。
- House - Haskell用户操作系统和环境。
- Hubris - Hubris是Oxide Computer Company用Rust开发的微控制器操作系统。
- Illumos - illumos是一个Unix操作系统,为下游发行版(如OmniOS、OpenIndiana和Tribblix)提供下一代功能。
- Interim - 具有Lisp机器和Plan9概念的极简操作系统。
- JSD-OS - 一个适用于32位x86的小型操作系统。
- Jehanne,GitHub - 受Plan9、9front和Harvey OS启发的操作系统。
- KiddieOS - 用汇编语言和C++编写的类UNIX 64位操作系统。
- KnightOS - 适用于z80计算器。
- KolibriOS - MenuetOS的分支。
- L4re - 用于安全/安全关键和支持虚拟化的应用程序的操作系统和虚拟机监控程序。
- LemonOS,GitHub - 用C++编写的类UNIX 64位操作系统。
- Mako - 从头开始用C语言编写的x86业余操作系统。
- MaslOS - 一个64位图形用户界面多任务业余操作系统,主要用C++和少量C/ASM从头开始编写。
- MeetixOS - 用现代C++20编写的业余操作系统,旨在类似Unix。
- MentOS - 一个教育性的32位类Linux操作系统。
- MenuetOS - 支持32位和64位的业余操作系统,用汇编语言编写。
- Mimiker,GitHub - 用于教育和研究目的的简单类Unix操作系统。MIPS微内核。
- Mimosa,GitHub - 在裸机上运行Scheme的研究操作系统。
- Minoca OS - 用C语言编写的通用操作系统。
- MollenOS - MollenOS/Vali是一个现代操作系统,专注于抽象和模块化设计,允许任何人将其移植到任何架构。它目前针对x86-32和x86-64平台。
- MyXomycota - 用C语言编写的宏内核。
- NESOS - 为任天堂娱乐系统设计的操作系统!
- Nanos - 与Linux兼容的单内核,用C语言编写。
- NodeOS - 使用NodeJS和Linux的操作系统。
- Northport - 适用于riscv64和x86_64的宏内核和支持库。
- PathOS - 基于MikeOS的业余操作系统,用汇编语言编写。
- Pidi OS - 独立且极简的操作系统。
- PonyOS,GitHub - 基于ToaruOS的小马主题操作系统。
- PouplyOS - 以ESISAR吉祥物Poulpy命名的简单操作系统,用于娱乐和学习。
- PureDarwin - PureDarwin是一个社区项目,旨在将Darwin扩展成一个完整、可用的操作系统。
- Qubes OS - 基于Xen虚拟机监控程序构建的注重安全的操作系统,旨在根据信任级别隔离不同的区域。
- RavynOS - 一个基于BSD的操作系统项目,旨在提供类似于macOS的体验和部分兼容性(前身为airyxOS)
- Redox - 用Rust编写
- RustyHermit - 一个基于Rust的轻量级单核操作系统
- Sanos,GitHub - Sanos是一个针对在标准PC硬件上运行的网络服务器设备的极简32位x86操作系统内核。
- SayoriOS - 针对x86计算机的业余操作系统,目前正在积极开发中,用C语言编写
- Sculpt OS - 基于Genode的操作系统
- Serenity - 针对x86计算机的图形化类Unix操作系统
- SimpleOS - 用C语言和汇编语言编写的简单操作系统
- Snowdrop OS - 用汇编语言从头开始编写的自制操作系统
- Sortix - Jonas 'Sortie' Termansen用C和C++编写的业余操作系统
- Syllable - AtheOS的继任者,Syllable的设计传承了Amiga和BeOS的传统,但使用了许多来自GNU项目和Linux的部件。
- SynestiaOS - 为ARM平台编写的32/64位操作系统,使用C语言
- TempleOS - 宗教操作系统 :-)
- Theseus - 一个用Rust从头开始编写的现代实验性操作系统,旨在探索新颖的操作系统结构和状态管理技术。
- Thor - 主要用C++编写的64位操作系统
- ToaruOS - 从头开始编写的业余操作系统
- Týndur - 由Lowlevel社区构建的业余操作系统。用C语言和Pascal编写
- Ultron OS - 用C++编写的x86操作系统,高中项目
- Unikraft - 一个模块化的单核操作系统,专注于高效、性能和安全性;兼容Linux/POSIX;主要用C语言编写
- Vinix - Vinix是一个使用V编程语言编写现代、快速且实用的操作系统的尝试
- Visopsys - 自1997年以来开发的开源业余操作系统
- Windows 95 in Electron - 在Electron中实现的业余Windows 95
- Xv6 - 2006年夏天为MIT操作系统课程开发的教学操作系统
- ZealOS - Zeal操作系统是64位Temple操作系统(TempleOS)的现代化、专业分支。
- ackOS - 一个简单的64位操作系统。
- aurora_os - 用Rust编写。
- dahliaOS - dahliaOS是一个现代、安全、轻量级且响应迅速的操作系统,结合了GNU/Linux和Fuchsia OS的优点。
- duckOS - 一个针对x86计算机的业余类UNIX操作系统,带有图形窗口管理器。
- eggos - 在x86裸机上运行的Go单核操作系统
- emerald - 用C语言编写的操作系统内核,纯粹是为了乐趣
- gopher-os - 用Go语言编写的概念验证操作系统内核
- hhuOS - hhuOS是一个用C++和汇编语言为x86架构编写的小型操作系统。该项目的主要目的是展示如何实现和连接操作系统理论的不同方面。该系统并不旨在成为一个功能齐全的日常使用操作系统。
- hydrogen - 玩具操作系统。64位,支持抢占式多任务的内核,支持EFI、PCIe、SATA、帧缓冲图形模式、HFS+。
- lyre - 由mlibc、GNU用户空间工具和其他常见*nix软件驱动的x86内核和发行版。
- managarm - 实用的微内核操作系统,具有完全异步I/O
- menix - 一个最小化且可扩展的类Unix操作系统。
- moros - MOROS是用Rust为x86架构编写的业余操作系统。
- mOS - 从头开发的业余操作系统
- nopeos - 带有BASIC解释器的简单x86操作系统内核
- octox - 受xv6-riscv启发的用Rust编写的类Unix操作系统
- oneOS - 支持x86-32和ARMv7的内核,具有抢占式多线程、窗口管理器和编辑器
- opuntiaOS - 针对x86、ARMv7、Aarch64的操作系统。
- orange_slice - 一个研究内核和虚拟机监控器,试图以最小的性能成本实现完全确定性的仿真。用Rust编写
- pranaOS - 用C/C++从头编写的Unix操作系统
- quickOS - 一个由独立开发者制作的操作系统,仍在开发中,类似于MS-DOS,但使用qbasic。它是用qb64制作的。
- r3 - 用Rust编写的业余x86_64操作系统内核 -- 具有最小功能
- ravynOS - 基于BSD的操作系统项目,旨在提供类似于macOS的体验和部分兼容性(前身为airyxOS)
- skiftOS,GitHub - 一个简单的、手工制作的操作系统,带有图形用户界面。
- soso - 主要用C语言和Nasm汇编编写的简单类Unix操作系统
- tilck - 一个小型Linux兼容内核。
- tock,GitHub - 为微控制器设计的安全嵌入式操作系统
- unox-os - Unox是一个教育用的类Unix操作系统
- willOS - 一个最小化的64位内核(不能"操作"很多东西的操作系统)
主流操作系统
- Darwin XNU - 用于MacOS和iOS的XNU内核源代码
- FreeBSD, Github - 基于BSD的类Unix操作系统
- FreeDOS - 兼容DOS的操作系统
- Haiku - 受BeOS启发的操作系统
- Linux - Linux内核
- Minix, Github - 基于微内核架构的类Unix操作系统
- MS-DOS - MS-DOS 1.25和2.0的原始源代码
- NetBSD, Github - 基于BSD的类Unix操作系统
- OpenBSD, Github - 基于BSD的类Unix操作系统
- Plan 9 from Bell Labs - 由Unix创造者开发的操作系统,扩展了Unix"一切皆文件"的理念,包括网络中心的文件系统、命名空间和分布式计算。
- ReactOS, Github - 一个免费的Windows兼容操作系统
- SystemV - AT&T UNIX System V源代码
书籍和指南
在线书籍
- 如何制作计算机操作系统 - 使用C++
- Intermezzos - 一本用Rust构建IntermezzosOS的跟随教程
- Linux内核简明教程 - 涵盖了整个内核任务范围,可以按章节或整本PDF获取
- 操作系统开发小书 作者:Erik Helin 和 Adam Renberg
- Think OS - 操作系统简介 作者:Allen B. Downey
- 操作系统开发系列 - 用C语言从头开始构建操作系统
- 操作系统:三个简单的部分 - 易读的书籍,涵盖虚拟化、并发和持久性
- xv6:一个简单的类Unix教学操作系统 - Xv6的教材
- 操作系统:从0到1 - 从头开始编写操作系统的自学指南 作者:Do Hoang Tu
- Osdev笔记 - 如何从头开始编写操作系统 作者:Ivan G. 和 Dean T.
教程
- 烘焙派 – 操作系统开发 剑桥大学
- 从头开始为ARM构建最小的多任务操作系统内核 作者:Jim Huang
- Bran的内核开发 作者:Brandon Friesen
- 如何编写Linux内核补丁并提交 作者:Greg Kroah-Hartman
- Linux内核开发过程介绍 作者:Greg Kroah-Hartman
- os-tutorial - 如何从头开始创建操作系统 作者:Carlos Fenollosa
- 构建你自己的玩具UNIX克隆操作系统 作者:James Molloy
- 用Rust编写操作系统 作者:Philipp Oppermann
- 使用Rust开发RISC-V操作系统 作者:Stephen Marz
- 傻瓜式操作系统开发 作者:Leo Whitehead
- 内核101 – 让我们编写一个内核 作者:Arjun Sreedharan
- 内核201 - 让我们编写一个带键盘和屏幕支持的内核 作者:Arjun Sreedharan
- 编写一个微型x86引导加载程序 作者:Joe Bergeron
- 编写引导加载程序 作者:Alex Parker
- 使用Linux内核和树莓派学习操作系统开发
- mya 一个从头开始创建操作系统的有趣项目 作者:Erfan
网站
- Genodians - 关于Genode操作系统的故事
- os-dev - 包含你需要知道的一切的维基
- Lowlevel - 关于从头创建操作系统的维基。德语
- POSIX - 维护操作系统兼容性的标准
- Rust OSDev - 关于Rust操作系统开发的新闻通讯
- OSRTOS - 开源实时操作系统列表
- Multicians - Multicians网站介绍了Multics操作系统的历史,适合对系统历史感兴趣的人
论文
- 用高级语言编写POSIX内核的优势和成本 作者:Cody Cutler, M. Frans Kaashoek, 和 Robert T. Morris, MIT CSAIL
- 在裸机上运行Scheme 作者:Samuel Yvon, Marc Feeley, Scheme 2020
- Unikraft:快速、专用的Unikernel简易方法 作者:Kuenzer等人,EuroSys 2021
视频教程
Linux特定
-
所有架构的Linux内核系统调用表 作者:Marcin Juszkiewicz
-
OldLinux - 带有大量注释的Linux内核源代码等
-
syzbot 漏洞
-
Linux内核开发工作流程(2023年,德语)作者:Rouven Czerwinski
工具
- b4,文档,一个帮助基于电子邮件的补丁工作流的工具
- clang-extract 一个使用clang和LLVM基础设施从源文件中提取代码内容的工具
- hackermail 一个为使用邮件列表协作的黑客设计的邮件管理工具
- kworkflow - 减少Linux开发基础设施设置的开销
- virtme-ng - 快速构建并在虚拟化的实时系统快照中运行内核
博客文章
-
成为Linux内核贡献者 - 第1部分 作者:Javier Carrasco
-
成为Linux内核贡献者 - 第2部分 作者:Javier Carrasco
-
成为Linux内核贡献者 - 第3部分 作者:Javier Carrasco
-
使用Syzbot、Qemu和GDB修复Linux内核中的错误 作者:Javier Carrasco
-
Linux内核贡献者的b4工具 作者:Javier Carrasco
-
使用b4进行内核贡献 作者:Marcus Folkesson
-
使用lei、b4和mutt进行内核开发 作者:Josef Bacik
-
2023年的netdev 作者:Jakub Kicinski
-
五个崩溃内核的命令 作者:Marcos Paulo de Souza
-
你可以成为内核黑客! 作者:Julia Evans
-
成为内核黑客的4条路径 作者:Julia Evans
-
猜测Linux内核寄存器 作者:Julia Evans
-
我是如何被抢走第一次内核贡献的 作者:Ariel Miculas
-
应用LKML的Linux内核补丁 作者:Adam Young(在他了解b4之前)
-
我的补丁审查工作流程 作者:Josef Bacik
-
Linux内核开发工作流程 作者:Tommaso Merciai
-
将Linux内核补丁应用到稳定版树(2009年)作者:Greg Kroah-Hartman
-
2019年使用Mutt的补丁工作流程 作者:Greg Kroah-Hartman
-
使用KGDB调试内核 作者:Marcus Folkesson
-
我如何学会喜欢基于电子邮件的补丁开发工作流程 作者:Emily Shaffer
电子邮件
-
学习如何使用git+email:git-send-email
-
学习如何通过电子邮件审查补丁:git-am
-
使用纯文本电子邮件
-
基于电子邮件的git工作流程的优势 作者:Drew DeVault
-
以电子邮件的速度进行代码审查 作者:Drew DeVault