A trap, also known as an exception or a fault, is typically a type of synchronous interrupt typically caused by an exceptional condition (e.g., breakpoint, division by zero, invalid memory access). A trap usually results in a switch to kernel mode.
A page fault (sometimes #pf or pf) is a trap to the software raised by the hardware when a program accesses a page that is mapped in the virtual address space, but not loaded in physical memory.
Supervisor mode is a hardware-mediated flag which can be changed by code running in system-level software. System-level tasks or threads will have this flag set while they are running, whereas user-space applications will not. This flag determines whether it would be possible to execute machine code operations such as modifying registers for various descriptor tables, or performing operations such as disabling interrupts. Supervisor mode is trusted never to fail, since a failure may cause the whole computer system to crash. Switching from “user mode” to “kernel mode” is, in most existing systems, very expensive.
An interrupt is a signal to the processor or an instruction in software usually indicating an event that needs immediate attention. The processor responds by suspending its current activities, saving its state, and executing a small program called an interrupt handler.
Executable and Linkable Format (ELF) is a common standard file format for executable, object code, shared libraries, and core dumps.
Abstraction is the process by which data and programs are defined with a representation similar in form to its meaning (semantics), while hiding away the implementation details. For example, low-level abstraction layers expose details of the computer hardware where the program is run, while high-level layers deal with the business logic of the program.
Dataspaces are an abstraction in data management that aim to overcome some of the problems encountered in data integration system. Dataspaces can be viewed as a next step in the evolution of data integration architectures, but are distinct from current data integration systems in the following way. Data integration systems require semantic integration before any services can be provided. Semantic integration is the process of interrelating information from diverse sources. As a result, significant up-front effort is required in order to set up a data integration system. Dataspaces shift the emphasis to a data co-existence approach providing base functionality over all data sources, regardless of how integrated they are.
The virtual address space for a process is the set of virtual memory addresses that it can use. The address space for each process is private and cannot be accessed by other processes unless it is shared. A virtual address does not represent the actual physical location of an object in memory; instead, the system maintains a page table for each process, which is an internal data structure used to translate virtual addresses into their corresponding physical addresses. Each time a thread references an address, the system translates the virtual address to a physical address.
more to come