In computing, rebasing is the process of modifying data based on one reference to another. It can be one of the following:
Shared libraries
Rebasing is the process of creating a
shared library
In computing, a library is a collection of System resource, resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled function (computer scienc ...
image in such a way that it is guaranteed to use
virtual memory
In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
without conflicting with any other
shared libraries loadable in the system.
IBM
VM/370 ''discontinuous saved segments'' (DCSS) were an early example of this technique, though not called ''rebasing''. The technique is used extensively on
Win32
The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
platforms to avoid the overhead of address relocation of system
DLLs by the loader.
Some security extensions to
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
/
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
use rebasing to force the use of code addresses below
0x00ffffff
in order to introduce a
0x00
byte into all code pointers; This eliminates a certain class of
buffer overflow security problems related to improper checking of
null-terminated strings, common in the
C programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
.
Other uses
* Rebasing is the act of moving
changeset
In version control software, a changeset (also known as commit and revision) is a set of alterations packaged together, along with meta-information about the alterations. A changeset describes the exact differences between two successive versio ...
s to a different
branch
A branch, also called a ramus in botany, is a stem that grows off from another stem, or when structures like veins in leaves are divided into smaller veins.
History and etymology
In Old English, there are numerous words for branch, includ ...
when using a
revision control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
system or in some systems, by synchronizing a branch with the originating branch by merging all new changes in the latter to the former. For example,
Git
Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Design goals of Git include speed, data integrity, and suppor ...
and
Darcs do this (but Darcs extends the concept and calls it "patch commutation").
* The mechanism that the
Microsoft Exchange or
Outlook daylight saving time
Daylight saving time (DST), also referred to as daylight savings time, daylight time (Daylight saving time in the United States, United States and Daylight saving time in Canada, Canada), or summer time (British Summer Time, United Kingdom, ...
(DST) rebasing tool TZMOVE.EXE uses to recalculate and reschedule appointment dates that are affected by DST.
See also
*
Relocation (computing)
In software development, relocation is the process of assigning load addresses for position-dependent code and data of a program and adjusting the code and data to reflect the assigned addresses.
A linker usually performs relocation in conj ...
*
Position-independent code
*
Portable Executable
The Portable Executable (PE) format is a file format for executables, object file, object code, Dynamic-link library, dynamic-link-libraries (DLLs), and binary files used on 32-bit and 64-bit Microsoft Windows, Windows operating systems, as well ...
(PE)
*
High memory area
In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer.
In real mode, the segmentation architecture of the Intel 8086 and subseque ...
(HMA)
*
Dynamic dead code elimination
Further reading
* Code
ftp://ftp.iecc.com/pub/linker/] Errata
https://archive.today/20200114224817/https://linker.iecc.com/ 2020-01-14 -->*
*
*
*
*
*
*
*
* {{Cite web , url=https://community.broadcom.com/symantecenterprise/communities/community-home/librarydocuments/viewdocument?DocumentKey=3d2a3ec7-0747-4add-a56d-809c3e54ff97&CommunityKey=1ecf5f55-9545-44d6-b0f4-4e4a7f5f5e68&tab=librarydocuments , date=2006-08-14 , title=Dynamic Linking in Linux and Windows, part two , author-first1=Reji , author-last1=Thomas , author-first2=Bhasker , author-last2=Reddy , publisher=
Symantec Corp
Computer libraries