System Calls are used to call a kernel service from user land. The goal is to be able to switch from user mode to kernel mode, with the associated privileges. Provided system calls depend on the nature of your kernel.| wiki.osdev.org
When a task (process, thread, application, program, ...) is using the CPU, some of the task's state is stored in the CPU - things like the contents of registers, the address of the task's current stack, the current instruction pointer, which virtual address space the task is using, etc.| wiki.osdev.org
The following tables and notes constitute an overview of the x86-based processors produced (most of which are still available in some form today). These tables are intended as a guide only, the most reliable way to determine CPU features (amongst newer CPUs at least) is by using CPUID.| 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
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
Contents| 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
Contents| 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