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
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 *