The Translation Lookaside Buffer (TLB) is a cache of memory page translations employed in many systems with memory paging capability. When the processor needs to translate a given virtual address into a physical address, the TLB is consulted first. On x86 systems, TLB misses are handled transparently by hardware. Only if the page directory/table entry is not present in-core will the operating system be notified (by the means of a page fault exception.)| wiki.osdev.org
A stack trace is debugging output, normally sent to a log file or a debug window that shows the hierarchy of callers that called the current function. A stack trace is generated by analysing the stack to find each stack frame. The addresses of the functions called can be retrieved from each stack frame and the names of the functions displayed.| wiki.osdev.org
The Multiboot specification is an open standard that provides kernels with a uniform way to be booted by Multiboot-compliant bootloaders. The reference implementation of the Multiboot specification is provided by GRUB.| wiki.osdev.org
This article is written like a tutorial. Please edit it to have more information and documentation instead of example code and step by step instructions.| wiki.osdev.org
File| wiki.osdev.org
The x86 category includes information covering Intels 8086,186,286,386,486,Pentium, and newer cpus that initialize in an 8086 compatibility mode. The term x86 is typically limited to 16 and 32-bit cpus. Cpus that have 64-bit extensions to x86 compatible cpus are commonly known as x86-64. Computer systems are considered to be x86 architecture systems if they are opcode compatible with Intel x86 cpus even when employing cpus by manufacturers such as Cyrix and AMD. X86 now has the X87 coprocesso...| wiki.osdev.org
The following 4 pages are in this category, out of 4 total.| wiki.osdev.org
For a quick tutorial on getting a bare bones C++ kernel running see Bare BonesA kernel can be programmed in C++, it is very similar to making a kernel in C, except that there are a few pitfalls you must take into account (runtime support, constructors, ...). This page will not list any (dis)advantages of this approach, but rather what you need to do to get things fired up.| wiki.osdev.org
A bootloader is a program written to load a more complex kernel. Implementation details are gathered in Rolling Your Own Bootloader| wiki.osdev.org
In your average, memory-protected environment, a "context" is a virtual address space, the executable contained in it, its data etc.| wiki.osdev.org
Stack can also refer to the TCP/IP stack in Networking. This article discuss the datastructure and stacks used in architectures. | wiki.osdev.org
Protected mode is the main operating mode of modern Intel processors (and clones) since the 80286 (16 bit). On 80386s and later, the 32 bit Protected Mode allows working with several virtual address spaces, each of which has a maximum of 4GB of addressable memory; and enables the system to enforce strict memory and hardware I/O protection as well as restricting the available instruction set via Rings.| wiki.osdev.org
A Task State Segment (TSS) is a binary data structure specific to the IA-32 and x86-64 architectures. It holds information about a task. In Protected Mode the TSS is primarily suited for Hardware Task Switching, where each individual Task has its own TSS. For use in software multitasking, one or two are also generally used, as they allow for entering Ring 0 code after an interrupt. In Long Mode, the TSS has a separate structure and is used to change the Stack Pointer after an interrupt or per...| wiki.osdev.org
Contents| wiki.osdev.org
This article discusses x86-64 CPUs (AMD64 and Intel's equivalent EM64T implementation). IA-64 (Itanium) is really a different beast and not addressed here.| wiki.osdev.org
Interrupts are signals from a device, such as a keyboard or a hard drive, to the CPU, telling it to immediately stop whatever it is currently doing and do something else. For example, a keyboard controller can send an interrupt when a character key was pressed. Then the OS can display the character on screen immediately, even if the CPU was doing something completely unrelated before, and return to what it was doing afterwards. When a specific interrupt arises, the CPU looks up an entry for t...| wiki.osdev.org
Contents| wiki.osdev.org
The factual accuracy of this article or section is disputed.| wiki.osdev.org
Difficulty level| wiki.osdev.org
This page or section refers to its readers or editors using I, my, we or us. It should be edited to be in an encyclopedic tone.| wiki.osdev.org
The Global Descriptor Table (GDT) is a binary data structure specific to the IA-32 and x86-64 architectures. It contains entries telling the CPU about memory segments. A similar Interrupt Descriptor Table exists containing task and interrupt descriptors.| wiki.osdev.org
Contents| wiki.osdev.org
Real Mode is a simplistic 16-bit mode that is present on all x86 processors. Real Mode was the first x86 mode design and was used by many early operating systems before the birth of Protected Mode. For compatibility purposes, all x86 processors begin execution in Real Mode.| wiki.osdev.org
This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.| wiki.osdev.org
Target Triplets describe a platform on which code runs and are a core concept in the GNU build system. They contain three fields: the name of the CPU family/model, the vendor, and the operating system name. You can view the unambiguous target triplet for your current system by running:| wiki.osdev.org
Contents| wiki.osdev.org
The System V Application Binary Interface is a set of specifications that detail calling conventions, object file formats, executable file formats, dynamic linking semantics, and much more for systems that complies with the X/Open Common Application Environment Specification and the System V Interface Definition. It is today the standard ABI used by the major Unix operating systems such as Linux, the BSD systems, and many others. The Executable and Linkable Format (ELF) is part of the System ...| wiki.osdev.org