Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-osdev
List of resources and projects for operating system development.
https://github.com/leap0x7b/awesome-osdev
Last synced: 5 days ago
JSON representation
-
Resources
-
Manuals and Specifications
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- AMD MMX Technology Manual
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- Intel 8088 Datasheet
- Intel 80286 Datasheet
- Introduction to the 80386
- 80386 Hardware Reference Manual
- AMD x86-64/AMD64 Reference Manual
- ARM Architecture Reference Manual
- Aarch64 Instruction Set Reference Manual
- RISC-V Manuals and Specifications
- RISC-V Instruction Set Manual (Volume 1: Unprivileged ISA)
- RISC-V Instruction Set Manual (Volume 2: Privileged Architecture)
- Intel MMX Technology Overview - compiler-developer-guide-and-reference/top/compiler-reference/intrinsics/intrinsics-for-mmx-technology.html?wapkw=mmx))
- AMD MMX Technology Manual
- AMD 3DNow! Technology Manual
- Intel AVX Extensions Programming Reference
- Intel AVX-512 - Instruction Set for Packet Processing
- ARM NEON Programmer’s Guide - sets/simd-isas/neon/intrinsics))
- BIOS Boot Specification
- "El Torito" Bootable CD-ROM Format
- Plug and Play BIOS Specification
- Advanced Power Management BIOS Interface Specification Revision 1.2
- Unified Extensible Firmware Interface Specifications
- UEFI Specification Version 2.0
- ACPI Specification Version 6.5
- PS/2 Mouse/Keyboard Protocol Specification
- PS/2 Keyboard Interface
- PS/2 Mouse Interface
- NFS Version 2 Protocol Specification (RFC 1094)
- NFS Version 3 Protocol Specification (RFC 1813)
- WebNFS Specification (RFC 2054)
- USB Interface Documentations
- USB EHCI Specification
- USB xHCI Specification
- USB OHCI Specification
- USB HID Specification
- NVM Express Specifications
- NVM Express Base Specification 2.0c
- NVMe Command Set Specification 1.0c
- T13 - The working group of the ATA/ATAPI standard
- PCI IDE Controller Specification
- Programming Interface for Bus Master IDE Controller
- ATA/ATAPI-8 Command Set
- ATA/ATAPI-8 Architecture Model
- Serial ATA Revision 3.2 Specification
- Serial ATA AHCI Specification Revision 1.3
- SCSI-1 Specification
- SCSI-2 Specification
- SCSI-3 Parallel Interface Specification
- CD-ROM Technical Summary
- Floppy Drive Controller Data Sheet
- The 8272A Floppy Disk Controller
- Floppy Media Type ID’s
- Second Extended File System (Ext2)
- Fourth Extended File System (Ext4)
- Btrfs Documentation
- FAT: General Overview of On-Disk Structure
- Long File Name Specification
- Notes on the structure of the VFAT Filesystem
- Inside the High Performance File System (HPFS)
- NFS Version 4 Protocol Specification (RFC 3530)
- NFS Version 4.1 Protocol Specification (RFC 5661)
- ISO 9660 File System Specification (ECMA-119)
- ISO 13346 Universal Disk Format Specification (ECMA-167)
- Joliet Specification
- Sound Blaster Series Hardware Programming Guide
- Standard MIDI-File Format Spec v1.1
- MIDI 1.0 Detailed Specification
- Audio Codec '97 Component Specifications Revision 2.3
- Intel High Definition Audio Specification Revision 1.0a
- Realtek RTL8139C Datasheet
- Realtek RTL8139D Datasheet
- Realtek RTL8139 Programmers Guide
- Realtek RTL8169S Datasheet
- Intel 8254x Family of GbE Controllers Reference Manual
- Intel i217 Ethernet Controller Datasheet
- National Semiconductor DP8390D/NS32490D Datasheet - The original reference design of the NE2000 standard.
- VESA BIOS Extensions 2.0 Specification
- VESA BIOS Extensions 3.0 Specification
- Executable and Linking Format Specification
- System V Application Binary Interface Edition 4.1
- System V ABI, Intel386 Architecture Processor Supplement
- System V ABI, AMD64 Supplement
- ELF for the ARM Architecture
- RISC-V ELF psABI Document
- System V ABI, MIPS RISC Processor Supplement
- Portable Executable Specification
- OS X ABI Mach-O File Format Reference
- DJGPP COFF File Format Specification
- DOS .com Specification
- Realtek RTL8019AS Datasheet
- WinSystems PCM-NE2000 Datasheet
- WinSystems LPM-NE2000 Datasheet
- WinSystems MCM-NE2000 Datasheet
- IBM MDA Reference Manual
- IBM CGA Reference Manual
- IBM EGA Reference Manual
- IBM VGA/XGA Technical Reference Manual
- FreeVGA Project
- Super VGA BIOS Extensions 1.0 Specification
- VESA BIOS Extensions 1.2 Specification
- DOS .sys Specification
- MZ File Format Specification
- a.out Specification
- Linear Executable Specification
- Ralf Brown’s Interrupt List
- Boot Sector Overview
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
- RISC-V ELF psABI Document
-
Miscellaneous Books, Papers, and Articles
- CPU cores or what SMP is and what it is eaten with
- Communication in Microkernel-Based Operating Systems
- FreeBSD/Linux Kernel Cross Reference
- The Evolution of the Unix Time-sharing System
- The Design and Implementation of the 4.4BSD Operating System
- Practical File System Design
- Computer Science from the Bottom Up
- A Heavily Commented Linux Kernel Source Code
-
Tutorials
- cfenollosa/os-tutorial - A tutorial to make a complete operating system from a bootloader to a basic shell.
- Building an OS - A YouTube series by Nanobyte on how to make your own operating system and bootloader from scratch.
- Limine Bare Bones - Bare bones tutorial to make a 64-bit higher half kernel using the Limine boot protocol.
- Stivale Bare Bones - Bare bones tutorial to make a 64-bit higher half kernel using the Stivale boot protocol.
- Building an OS - A YouTube series by Nanobyte on how to make your own operating system and bootloader from scratch.
- Higher Half Multiboot Bare Bones - A tutorial that shows how to write a higher half kernel.
- Multiboot Bare Bones - Write a basic 32-bit kernel in C for x86.
- Meaty Skeleton - A template operating system with a basic kernel-side libc.
- Writing an OS in Rust - A blog series to write a small operating system in Rust.
- Bran’s Kernel Tutorial - A very dated, but still often referenced, tutorial from the now-moribund "Bona Fide OS Development" site.
- The Little OS Book - A third-party OS demonstrator hosted on GitHub. Goes through periods of updating, and known bugs which haven’t yet been fixed are listed in the repo.
- Writing a Simple Operating System — From Scratch - A 2010 tutorial based on course material from a class on operating systems at the University of Birmingham, UK, written by Dr. Nicholas Blundell, the original course instructor.
- Poncho OSDev tutorial (Season 1) - A YouTube series by Poncho on how to make your own 64-bit operating system from scratch.
- Poncho OSDev tutorial (Season 2) - A YouTube series by Poncho on how to make your own operating system and UEFI bootloader from scratch.
- James A. Molloy’s Kernel Tutorials - One of the popular OS development tutorials in the past. It is not recommended to follow this tutorial because it has so many [issues and known flaws](https://wiki.osdev.org/James_Molloy%27s_Tutorial_Known_Bugs) that have not been corrected.
-
Reference Projects
- Xv6 - rev11.pdf)] - A modernized version of the classic Dennis Richie’s and Ken Thompson’s UNIX V6, written in ANSI C for x86 and [RISC-V](https://github.com/mit-pdos/xv6-riscv).
- MINIX 1.0 - The first version of MINIX for Intel 8088 real mode. First appeared in a book released in 1986 called "Operating Systems: Design and Implementation" written by Andrew S. Tanenbaum.
- MINIX 2.0.0 - The second version of MINIX for Intel 8088 real mode, the 16-bit 286 protected mode, and the 32-bit 386 protected mode. Appeared in the second edition of "Operating Systems: Design and Implementation" released in 1997, written by Andrew S. Tanebaum and Albert S. Woodhull.
- MINIX From Scratch - A quick development environment for building the book versions of MINIX 2 and 3.
- Linux 0.0.1 - The first version of Linux. This version is very simple compared to subsequent versions after it.
- MINIX 1.5.0 - A revision of the first version of MINIX that adds support for the 16-bit 286 protected mode and some bug fixes.
- MINIX 1.7.0 - A revision of the first version of MINIX that adds support for the 32-bit 386 protected mode and some bug fixes.
- MINIX 3.1.0 - The third version of MINIX for the 32-bit 386 protected mode. Appeared in the third edition of "Operating Systems: Design and Implementation" released in 2006, written by Andrew S. Tanebaum and Albert S. Woodhull.
-
Books
- Operating Systems: Three Easy Pieces
- Modern Operating Systems
- Operating System Concepts
- The Design of the UNIX Operating System
- Operating Systems: Principles and Practice
- Operating Systems: Design and Implementation
- Operating Systems: Design and Implementation
- Operating Systems: Design and Implementation
-
Websites
- OSDev Wiki - The OS development wiki and also the most commonly used resources for OS developers.
- OSDev Forum - The OS development forum and also the most commonly used forum for talking about and helping with OS development, also part of the OSDev Wiki.
- New OSDev Wiki - An attempt to modernize the original OSDev Wiki. Unlike the original OSDev Wiki, it uses it’s own wiki engine which uses GitHub instead of MediaWiki. It is currently WIP and not ready for use.
- Lowlevel.eu - The German OS development wiki. Also contains most of the resources from the OSDev wiki, but in German instead of English.
- Wiki DEVSE - The French OS development wiki. Not as complete as Lowlevel.eu or the OSDev Wiki, but still a good resource for French OS developers.
- Bona Fide OS Development - Tutorials and papers for OS developments. This is also where Bran’s Kernel Tutorial lives.
- The Unix Tree - Browse manuals and source codes of various versions of Unix.
-
-
Projects
-
Bootloaders
-
Operating Systems
- SerenityOS - Graphical Unix-like operating system for x86 computers.
- BRUTAL - An operating system inspired by brutalist design that combines the ideals of UNIX from the 1970s with modern technology and engineering
- ToaruOS - A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
- Managarm - Pragmatic microkernel-based OS with fully asynchronous I/O
- Lyre - Lyre is an effort to write a modern, fast, and useful operating system.
- μ - µ is a minimalist microkernel
- opuntiaOS - An operating system targeting x86, ARMv7, and Aarch64
- Aero - Aero is a new modern, experimental, unix-like operating system following the monolithic kernel design.
- FlorenceOS - The Renaissance of Operating Systems
- duckOS - A hobby UNIX-like OS with a graphical window manager for x86 computers.
- nyx - A simple operating system with a capability-based microkernel.
- Lemon OS - Lemon OS is a UNIX-like 64-bit operating system written in C++.
- Skylight - A clean, well-written minimalist operating system designed to be used as an educational material for operating system development.
- SnowflakeOS - "It is very special"
-
Libraries
- LAI - LAI is an interpreter for AML, the ACPI Machine Language.
- libheap - A simple heap allocation library for hobby operating systems.
- frigg - Lightweight C++ utilities and algorithms for system programming
- lil - A lightweight Intel GPU library
- mlibc - Portable C standard library
- ACPICA - A reference ACPI library for operating systems.
- Sortix libc - The C standard library provided by Sortix. Even though it's designed for Sortix, it's easy to port and [supports over 70+ third-party software](https://gitlab.com/sortix/sortix/wikis/Ports).
- chadlibc - A simple C standard library. Very incomplete and currently isn’t recommended for use in your operating system.
-
Categories
Sub Categories
Keywords
operating-system
9
kernel
9
osdev
9
os
7
x86-64
5
bootloader
4
uefi
4
hobby-os
4
c
3
unix
3
x86
3
cpp
2
microkernel
2
baremetal
2
c-library
2
posix-compatible
2
operating-systems
2
aarch64
2
armv8
1
modern-c
1
cdrom
1
compositor
1
smp
1
text-editor
1
desktop-environment
1
c-plus-plus
1
browser
1
uefi-boot
1
tomatboot-uefi
1
64bit
1
x64
1
mbr
1
gpt
1
efi
1
bios
1
arm64
1
arm
1
systems
1
acpi
1
aml
1
aml-interpreter
1
portable
1
bash
1
compilers
1
computer-architecture
1
data-structures-and-algorithms
1
filesystem
1
networking
1
programming
1
system-administration
1