https://wiki.osdev.org/Expanded_Main_Page Expanded Main Page From OSDev Wiki 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 716 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 Hardware * Getting Started * How To Ask Questions * The Hardware Category and * GCC Cross-Compiler linked resources * What Order Should I Make Things In? CPU * Licensing * Tutorials General * Frequently Asked Questions * Register Machine Model of more... Computation * Memory Architecture Environment * Instruction Set Architecture * How kernel, compiler, and C + Historical Notes on library work together CISC and RISC * Using other Languages than C * Execution Architecture * UEFI and legacy BIOS (PC) + Multiprocessing * Inline Assembly (including Architecture examples) * Object Files and relocation X86 Modes Bare Bones / Baby Steps * Real Mode * Protected Mode * Bare Bones (C and C++) * Virtual 8086 Mode * Ada Bare Bones * x86-64 * C Sharp Bare Bones * D Bare Bones Other * FreeBasic Bare Bones * Go Bare Bones * IA32 Architecture Family * Pascal Bare Bones * Model Specific Registers * Limine Bare Bones (MSRs) * The BabyStep Tutorial * Detecting CPU Speed * Inline Assembly/Examples more... * CPU Bugs * SSE Example OS Organization * Where Can I Find Information About Ports * Meaty Skeleton * CPU Registers (x86, x86-64 ) Booting and Setup more... * Boot Sequence ESA/390 * Diskless Booting * The Global Descriptor Table and a * Kernel Barebones GDT Tutorial * Program Status Word * Interrupts * Processing Storage Area * Getting Keyboard Input Memory Mapping * z/OS DataSet FileSystem * Batch I/O Channel Testing and Debugging SubSystem * Troubleshooting more... * Testing * Unit Testing ARM * How Do I Use A Debugger With My OS * Kernel Debugging * ARM Overview * Raspberry Pi Bare Bones more... Memory Development * Detecting Memory (x86) * Going Further on x86 * A20 Line or "Why can't I * Creating an Operating System access all my memory?" * Code Management IRQs and Exceptions, PIC, NMI, Compiler Development APIC, OPIC * What's a compiler? * I Can't Get Interrupts * Making a Compiler (Theory) Working * Code Generation and Optimization * The Interrupt Descriptor Techniques Table and IDT problems + Implementing Conditional * Interrupt Service Routines Statements And Loops (ISRs) + Tail Recursion and Tail Call * Interrupts Optimization * Non Maskable Interrupt (NMI) Design Considerations * APIC * PIC Kernel Models * OPIC * Monolithic Kernel more... * Microkernel * Exokernel and related models Clocks, Timers and Counters * Modular Kernel * HPET more... * APIC timer (per-processor timer) Task Models * Programmable Interval Timer (PIT) * Monotasking Systems * The CMOS clock, and its * Multitasking Systems RTC chip * Real-Time Systems * Detecting CPU Speed more... Video Memory and Resource Management * Accelerated Graphic Cards * Memory management - Overview and + Native Intel graphics Introduction * Detecting Colour and * Segmentation Monochrome Monitors? * Paging * Printing To Screen in * Memory Allocation Protected Mode * Page Frame Allocation * Text Mode Cursor * Memory Management Unit, or * Drawing In a Linear in-depth description of recursive Framebuffer mappings * Kernel Stdio Theory * File Management * VGA Resources and VGA * File Systems Hardware documentation * Drawing characters in more... graphics mode using VGA Fonts System Calls * Video Signals And Timing * How to program Bochs' and * ARM System Calls QEMU's BGA graphics device more... Scheduling Audio * Processes and Threads * Context Switching * Sound * Scheduling Algorithms * PC Speaker * Multiprocessor Scheduling * Sound Blaster 16 * Blocking Process - processes sleeping and waiting more... more... Storage devices Process Sychronization * ATA (harddisks) * ATAPI (CD-ROM) * Synchronization Primitives - * AHCI (SATA native) Semaphores, mutexes, spinlocks et * DMA al. * NVMe * Signals * Floppy Disk Controller (FDC) more... more... Inter-Process Communication Input/Output * Message Passing * Shared Memory * PS/2 Keyboard * Remote Procedure Call * Mouse * Serial Ports (primarily more... RS-232) Resources Plug and Play * Books on OS Development * Academic Papers on theory and * Plug-and-Play (PNP) design * PNP Calls In Protected * Assembly Mode * Disk Images with preinstalled GRUB * Deprecated, yet relevant, bits of specifications PCI, USB and things like this * Chip Numbers, Acronyms and Things ... * Resources * PCI more... * PCI Express * USB Tools more... Bootloaders UEFI * Bootloader theory * GRUB * UEFI * Limine * Systems with broken UEFI * LILO implementations * XOSL * System Commander * Boot Magic ACPI * Rolling Your Own Bootloader * ACPI more... * RSDP * AML Compilers more... * GCC + Cygwin Network cards and + MinGW communicating devices + Dev-C++ + DJGPP * Ethernet and other wired + Building a GCC Cross-Compiler networking: + Cross-Compiler Successful + 3c90x Builds + Intel 8254x + Porting GCC to your OS + Ne2000 * Calling Conventions + RTL8139 + System V ABI + RTL8169 * Watcom C/C++ + Intel Ethernet i217 * Visual Studio + AMD PCnet + Visual C++ Runtime * Wireless Networking: * TCC + 802.11 (WiFi standard) * Smaller C * Other Compilers more... more... Non-x86 Development Assemblers * PowerPC * MIPS * GAS (GNU as, part of binutils) * Sparc * FASM * ARM * NASM * RISC-V * YASM * On the difference between AT&T and more... Intel Opcode syntax Reference Information more... Executable File Types Linkers * 64 bit * LD (GNU ld, part of binutils) + ELF * Link Archiver (GNU ar, part of + PE binutils) + COFF * Mold (Modern Linker) * 32 bit + ELF more... + PE + COFF Emulators * 16 bit + COM * Bochs + MZ * QEMU + NE * Virtual PC * VMware more... * VirtualBox * SimICS Filesystems * Lingemu * FAT Details more... * Ext2 Details * SFS Details Working with Disk Images * NTFS Details * Disk Images in general, and ... more... + Loopback Device for Linux, *BSD et al. + hdiutil for MacOS X + Windows Tools 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 [ ] [Go] [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,702,738 times. * Privacy policy * About OSDev Wiki * Disclaimers * Powered by MediaWiki