Dynamic linkerIn computing, a dynamic linker is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed (at "run time"), by copying the content of libraries from persistent storage to RAM, filling jump tables and relocating pointers. The specific operating system and executable format determine how the dynamic linker functions and how it is implemented.
Fichier exécutableEn informatique et en technologies de l'information, un fichier exécutable, parfois (par métonymie) un programme, ou simplement un exécutable est un fichier contenant un programme et identifié par le système d'exploitation en tant que tel. Le chargement d'un tel fichier entraîne la création d'un processus dans le système, et l'exécution du programme, par opposition au fichier de données qui doit d'abord être interprété par un programme pour prendre sens.
Position-independent codeIn computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used for shared libraries, so that the same library code can be loaded at a location in each program's address space where it does not overlap with other memory in use by, for example, other shared libraries.
Chargeur (informatique)En informatique, le chargeur est un composant du système d'exploitation dont le rôle est de charger des programmes en mémoire, afin de créer un processus. Ses principales responsabilités sont la lecture et l'analyse du fichier exécutable, la création des ressources nécessaires à l'exécution de celui-ci, puis enfin le lancement effectif de son exécution. Le chargeur est généralement invoqué à l'aide d'un appel système ; cependant, dans des systèmes comme Linux, des fonctionnalités comme les bibliothèques dynamiques sont gérées elles-mêmes par un programme auquel le chargeur délègue une partie de son travail.
Relocation (computing)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. Prior to the advent of multiprocess systems, and still in many embedded systems, the addresses for objects were absolute starting at a known location, often zero. Since multiprocessing systems dynamically link and switch between programs it became necessary to be able to relocate objects using position-independent code.
Noyau Linuxvignette|upright=2|Couches de fonctions du Noyau Linux Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé dans plusieurs systèmes d'exploitation dont notamment GNU/Linux (couramment appelé « Linux ») et Android. Le noyau Linux est un logiciel partiellement libre (contenant des BLOB et des modules non-libre - consultez Linux-libre) développé essentiellement en langage C par des milliers de bénévoles et salariés collaborant sur Internet.
Dynamic Link LibraryUne Dynamic Link Library (en français, bibliothèque de liens dynamiques) est une bibliothèque logicielle dont les fonctions sont chargées en mémoire par un programme, au besoin, lors de son exécution, par opposition aux bibliothèques logicielles statiques ou partagées dont les fonctions sont chargées en mémoire avant le début de l'exécution du programme. dll est une extension de nom de fichier utilisée par des fichiers contenant une Dynamic Link Library. Ces bibliothèques logicielles ont été inventées dans Multics en 1964 et existent dans Windows depuis 1985.
Code objetEn informatique, le code objet est le produit d'un compilateur. Plus généralement, le code de l'objet est une suite d'instructions dans un langage informatique, généralement en langage machine (c'est-à-dire en binaire) ou d'un langage intermédiaire tels que le Register Transfer Language (RTL). Le terme indique que le code est le but de la compilation, avec l'apparition des premières sources se référant au code source comme un "programme sujet". Les fichiers objets peuvent être liés pour former un fichier exécutable ou un fichier de bibliothèque.
Segment de codeIn computing, a code segment, also known as a text segment or simply as text, is a portion of an or the corresponding section of the program's virtual address space that contains executable instructions. The term "segment" comes from the memory segment, which is a historical approach to memory management that has been succeeded by paging. When a program is stored in an object file, the code segment is a part of this file; when the loader places a program into memory so that it may be executed, various memory regions are allocated (in particular, as pages), corresponding to both the segments in the object files and to segments only needed at run time.
Static libraryIn computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, producing an and a stand-alone executable. This executable and the process of compiling it are both known as a static build of the program. Historically, libraries could only be static.
Application binary interfacevignette|300px|Exemples pour une interface binaire-programme stable et instable une interface de programmation stable et instable. En informatique, une Application Binary Interface (ABI, interface binaire-programme), décrit une interface de bas niveau entre les applications et le système d'exploitation, entre une application et une bibliothèque ou bien entre différentes parties d’une application. Une ABI diffère d’une API, puisqu'une API définit une interface entre du code source et une bibliothèque, de façon à assurer que le code source fonctionnera (compilera, si applicable) sur tout système supportant cette API.
Table des symbolesUne table de symboles est une centralisation des informations rattachées aux identificateurs d'un programme informatique. C'est une fonction accélératrice de compilation, dont l'efficacité dépend de la conception. Dans une table des symboles, on retrouve des informations comme : le type, l'emplacement mémoire, la portée, la visibilité, etc. Généralement, la table est créée dynamiquement. Une première portion est créée au début de la compilation. Puis, de façon opportuniste, en fonction des besoins, elle est complétée.
Linker (computing)In computing, a linker or link editor is a computer system program that takes one or more s (generated by a compiler or an assembler) and combines them into a single executable file, library file, or another "object" file. A simpler version that writes its output directly to memory is called the loader, though loading is typically considered a separate process. Computer programs typically are composed of several parts or modules; these parts/modules do not need to be contained within a single , and in such cases refer to each other by means of symbols as addresses into other modules, which are mapped into memory addresses when linked for execution.
Portable ExecutableLe format PE (Portable Executable, exécutable portable) est un format de fichiers dérivé du regroupant les exécutables et les bibliothèques sur les systèmes d'exploitation Windows 32 bits et 64 bits. Les extensions couvertes par ce format sont, l'extension .ocx (OLE et ActiveX), l'extension .dll et l'extension .cpl. C'est également le format utilisé pour les exécutables de l'UEFI (.efi). Microsoft a adopté le format PE avec l'introduction de Windows NT 3.1. Toutes les versions suivantes de Windows, incluant Windows 10/11, supportent ce format.
Segmentation (informatique)En informatique, la segmentation est une technique de découpage de la mémoire. Elle est gérée par l'unité de segmentation de l'unité de gestion mémoire (dite MMU, Memory Management Unit), utilisée sur les systèmes d'exploitation modernes, qui divise la mémoire physique (dans le cas de la segmentation pure) ou la mémoire virtuelle (dans le cas de la segmentation avec pagination) en segments caractérisés par leur adresse de début et leur taille (décalage).
File formatA file format is a standard way that information is encoded for storage in a . It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file formats are designed for very particular types of data: PNG files, for example, store bitmapped using lossless data compression. Other file formats, however, are designed for storage of several different types of data: the Ogg format can act as a container for different types of multimedia including any combination of audio and video, with or without text (such as subtitles), and metadata.
Executable and Linkable FormatELF (Executable and Linkable Format, format exécutable et liable ; anciennement Executable and Linking Format) est un format de fichier binaire utilisé pour l'enregistrement de code compilé (objets, exécutables, bibliothèques de fonctions). Il a été développé par l’USL (Unix System Laboratories) pour remplacer les anciens formats a.out et qui avaient atteint leurs limites. Aujourd'hui, ce format est utilisé dans la plupart des systèmes d'exploitation de type Unix (GNU/Linux, Solaris, IRIX, System V, BSD), à l'exception de Mac OS X.
Bibliothèque logicielleEn informatique, une bibliothèque logicielle est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes. Les bibliothèques sont enregistrées dans des fichiers semblables, voire identiques aux fichiers de programmes, sous la forme d'une collection de fichiers de code objet rassemblés accompagnée d'un index permettant de retrouver facilement chaque routine. Le mot « librairie » est souvent utilisé à tort pour désigner une bibliothèque logicielle.
LinuxLinux ou GNU/Linux est une famille de systèmes d'exploitation open source de type Unix fondés sur le noyau Linux créé en 1991 par Linus Torvalds. De nombreuses distributions Linux ont depuis vu le jour et constituent un important vecteur de popularisation du mouvement du logiciel libre. Si, à l'origine, Linux a été développé pour les ordinateurs compatibles PC, il n'a jamais équipé qu'une très faible part des ordinateurs personnels.