wiki.osdev.org Open in urlscan Pro
172.67.209.29  Public Scan

Submitted URL: http://wiki.osdev.org/
Effective URL: https://wiki.osdev.org/Main_Page
Submission: On February 08 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

/index.php

<form action="/index.php" id="searchform">
  <input type="hidden" name="title" value="Special:Search">
  <input type="search" name="search" title="Search OSDev Wiki [alt-f]" accesskey="f" id="searchInput"> <input type="submit" name="go" value="Go" title="Go to a page with this exact name if exists" id="searchGoButton" class="searchButton"> <input
    type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton">
</form>

Text Content

EXPANDED MAIN PAGE

From OSDev Wiki
(Redirected from Main Page)
Jump to: navigation, search
Welcome to OSDev.org
This website provides information about the creation of
operating systems and serves as a community for those
people interested in OS development with 717 wiki articles.

The OSDev Wiki always needs your help! See the Wish List for more information.

Display: Short view - Expanded view


INTRODUCTION

Basic Information

 * Introduction
 * Required Knowledge
 * Beginner Mistakes
 * Getting Started
 * How To Ask Questions
 * GCC Cross-Compiler
 * What Order Should I Make Things In?
 * Licensing
 * Tutorials
 * Frequently Asked Questions

more...

Environment

 * How kernel, compiler, and C library work together
 * Using other Languages than C
 * UEFI and legacy BIOS (PC)
 * Inline Assembly (including examples)
 * Object Files and relocation


Bare Bones / Baby Steps

 * Bare Bones (C and C++)
 * Ada Bare Bones
 * C Sharp Bare Bones
 * D Bare Bones
 * FreeBasic Bare Bones
 * Go Bare Bones
 * Pascal Bare Bones
 * Limine Bare Bones
 * The BabyStep Tutorial

more...

Example OS Organization

 * Meaty Skeleton


Booting and Setup

 * Boot Sequence
 * Diskless Booting
 * The Global Descriptor Table and a GDT Tutorial
 * Interrupts
 * Getting Keyboard Input


Testing and Debugging

 * Troubleshooting
 * Testing
 * Unit Testing
 * How Do I Use A Debugger With My OS
 * Kernel Debugging

more...

Development

 * Going Further on x86
 * Creating an Operating System
 * Code Management


Compiler Development

 * What's a compiler?
 * Making a Compiler (Theory)
 * Code Generation and Optimization Techniques
   * Implementing Conditional Statements And Loops
   * Tail Recursion and Tail Call Optimization


DESIGN CONSIDERATIONS

Kernel Models

 * Monolithic Kernel
 * Microkernel
 * Exokernel and related models
 * Modular Kernel

more...

Task Models

 * Monotasking Systems
 * Multitasking Systems
 * Real-Time Systems

more...

Memory and Resource Management

 * Memory management - Overview and Introduction
 * Segmentation
 * Paging
 * Memory Allocation
 * Page Frame Allocation
 * Memory Management Unit, or in-depth description of recursive mappings
 * File Management
 * File Systems

more...

System Calls

 * ARM System Calls


Scheduling

 * Processes and Threads
 * Context Switching
 * Scheduling Algorithms
 * Multiprocessor Scheduling
 * Blocking Process - processes sleeping and waiting

more...

Process Sychronization

 * Synchronization Primitives - Semaphores, mutexes, spinlocks et al.
 * Signals

more...

Inter-Process Communication

 * Message Passing
 * Shared Memory
 * Remote Procedure Call

more...


RESOURCES

 * Books on OS Development
 * Academic Papers on theory and design
 * Assembly
 * Disk Images with preinstalled GRUB
 * Deprecated, yet relevant, bits of specifications
 * Chip Numbers, Acronyms and Things
 * Resources

more...


TOOLS

Bootloaders

 * Bootloader theory
 * GRUB
 * Limine
 * LILO
 * XOSL
 * System Commander
 * Boot Magic
 * Rolling Your Own Bootloader

more...

Compilers

 * GCC
   * Cygwin
   * MinGW
   * Dev-C++
   * DJGPP
   * Building a GCC Cross-Compiler
   * Cross-Compiler Successful Builds
   * Porting GCC to your OS
 * Calling Conventions
   * System V ABI
 * Watcom C/C++
 * Visual Studio
   * Visual C++ Runtime
 * TCC
 * Smaller C
 * Other Compilers

more...

Assemblers

 * GAS (GNU as, part of binutils)
 * FASM
 * NASM
 * YASM
 * On the difference between AT&T and Intel Opcode syntax

more...

Linkers

 * LD (GNU ld, part of binutils)
 * Link Archiver (GNU ar, part of binutils)
 * Mold (Modern Linker)

more...

Emulators

 * Bochs
 * QEMU
 * Virtual PC
 * VMware
 * VirtualBox
 * SimICS
 * Lingemu

more...

Working with Disk Images

 * Disk Images in general, and ...
   * Loopback Device for Linux, *BSD et al.
   * hdiutil for MacOS X
   * Windows Tools

more...


HARDWARE

 * The Hardware Category and linked resources

CPU


General


 * Register Machine Model of Computation
 * Memory Architecture
 * Instruction Set Architecture
   * Historical Notes on CISC and RISC
 * Execution Architecture
   * Multiprocessing Architecture

X86
Modes

 * Real Mode
 * Protected Mode
 * Virtual 8086 Mode
 * x86-64

Other

 * IA32 Architecture Family
 * Model Specific Registers (MSRs)
 * Detecting CPU Speed
 * Inline Assembly/Examples
 * CPU Bugs
 * SSE
 * Where Can I Find Information About Ports
 * CPU Registers (x86, x86-64)

more...

ESA/390

 * Kernel Barebones
 * Program Status Word
 * Processing Storage Area Memory Mapping
 * z/OS DataSet FileSystem
 * Batch I/O Channel SubSystem

more...

ARM

 * ARM Overview
 * Raspberry Pi Bare Bones

Memory

 * Detecting Memory (x86)
 * A20 Line or "Why can't I access all my memory?"


IRQs and Exceptions, PIC, NMI, APIC, OPIC

 * I Can't Get Interrupts Working
 * The Interrupt Descriptor Table and IDT problems
 * Interrupt Service Routines (ISRs)
 * Interrupts
 * Non Maskable Interrupt (NMI)
 * APIC
 * PIC
 * OPIC

more...

Clocks, Timers and Counters

 * HPET
 * APIC timer (per-processor timer)
 * Programmable Interval Timer (PIT)
 * The CMOS clock, and its RTC chip
 * Detecting CPU Speed


Video

 * Accelerated Graphic Cards
   * Native Intel graphics
 * Detecting Colour and Monochrome Monitors?
 * Printing To Screen in Protected Mode
 * Text Mode Cursor
 * Drawing In a Linear Framebuffer
 * Kernel Stdio Theory
 * VGA Resources and VGA Hardware documentation
 * Drawing characters in graphics mode using VGA Fonts
 * Video Signals And Timing
 * How to program Bochs' and QEMU's BGA graphics device

more...

Audio

 * Sound
 * PC Speaker
 * Sound Blaster 16

more...

Storage devices

 * ATA (harddisks)
 * ATAPI (CD-ROM)
 * AHCI (SATA native)
 * DMA
 * NVMe
 * Floppy Disk Controller (FDC)

more...

Input/Output

 * PS/2 Keyboard
 * Mouse
 * Serial Ports (primarily RS-232)


Plug and Play

 * Plug-and-Play (PNP)
 * PNP Calls In Protected Mode


PCI, USB and things like this ...

 * PCI
 * PCI Express
 * USB

more...

UEFI

 * UEFI
 * Systems with broken UEFI implementations


ACPI

 * ACPI
 * RSDP
 * AML

more...

Network cards and communicating devices

 * Ethernet and other wired networking:
   * 3c90x
   * Intel 8254x
   * Ne2000
   * RTL8139
   * RTL8169
   * Intel Ethernet i217
   * AMD PCnet
 * Wireless Networking:
   * 802.11 (WiFi standard)

more...

Non-x86 Development

 * PowerPC
 * MIPS
 * Sparc
 * ARM
 * RISC-V

more...


REFERENCE INFORMATION

Executable File Types

 * 64 bit
   * ELF
   * PE
   * COFF
 * 32 bit
   * ELF
   * PE
   * COFF
 * 16 bit
   * COM
   * MZ
   * NE

more...

Filesystems

 * FAT Details
 * Ext2 Details
 * SFS Details
 * NTFS Details

more...

Retrieved from
"https://wiki.osdev.org/index.php?title=Expanded_Main_Page&oldid=26841"



PERSONAL TOOLS

 * Log in

NAMESPACES

 * Page
 * Discussion

VARIANTS



VIEWS

 * Read
 * View source
 * View history

ACTIONS



SEARCH



NAVIGATION

 * Main Page
 * Forums
 * FAQ
 * OS Projects
 * Random page

ABOUT

 * This site
 * Joining
 * Editing help
 * Recent changes

TOOLBOX

 * What links here
 * Related changes
 * Special pages
 * Printable version
 * Permanent link

IN OTHER LANGUAGES

 * Deutsch

 * This page was last modified on 5 January 2022, at 11:16.
 * This page has been accessed 8,875,056 times.

 * Privacy policy
 * About OSDev Wiki
 * Disclaimers

 *