HOME

TheInfoList



OR:

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