Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Executable

From Wikipedia, the free encyclopedia
(Redirected fromExecutable file)
Data that causes a computer to follow indicated instructions
This article is about a general type of data. For the specific file type used in some operating systems, see.exe.

Program execution
General concepts
Types of code
Compilation strategies
Notable runtimes
Notable compilers & toolchains
Ahex dump of an executablereal mode loader. The first column consists ofaddresses of the first byte in the second column, which comprises bytes of data inhexadecimal notation (least significant byte first), and the last column consists of the correspondingASCII form.[1]

Incomputing, anexecutable is aresource that acomputer can use to control its behavior. As with all information in computing, it isdata, but distinct from data that does not imply aflow of control.[2] Terms such asexecutable code,executable file,executable program, andexecutable image describe forms in which the information is represented and stored. Anative executable ismachine code and is directly executable at theinstruction level of aCPU.[3][4] Ascript is also executable although indirectly via aninterpreter. Intermediate executable code (such asbytecode) may be interpreted or converted to native code at runtime viajust-in-time compilation.

Native executable

[edit]

Even though it is technically possible to write a native executable directly in machine language, it is generally not done. It is far more convenient to develop software ashuman readablesource code and to automate the generation of machine code via abuildtoolchain. Today, most source code is ahigh-level language although it is still possible to useassembly language which is closely associated with machine code instructions. Many toolchains consist of acompiler that generates native code as a set ofobject files and alinker that generates a native executable from the object and other files. For assembly language, typically the translation tool is called anassembler instead of a compiler.

Object files are typically stored in adigital container format that supports structure in the machine code – such asExecutable and Linkable Format (ELF) orPortable Executable (PE), depending on the computing context.[5] The format may support segregating code into sections such as.text (executable code),.data (initialized global and static variables), and.rodata (read-only data, such as constants and strings).

Executable files typically include aruntime system, which implements runtime language features (such astask scheduling,exception handling, calling static constructors and destructors, etc.) and interactions with the operating system, notably passing arguments, environment, and returning anexit status, together with other startup and shutdown features such as releasing resources likefile handles. For C, this is done by linking in thecrt0 object, which contains the actual entry point and does setup and shutdown by calling theruntime library.[6] Executable files thus may contain significant code beyond that directly generated from the source code. In some cases, it is desirable to omit this, for example for embedded systems. In C, this can be done by omitting the usual runtime, and instead explicitly specifying a linker script, which generates the entry point and handles startup and shutdown, such as callingmain to start and returning exit status to the kernel at the end.[7]

To be executable, a file must conform to the system'sapplication binary interface (ABI). In simple interfaces, a file is executed by loading it into memory and jumping to the start of the address space and executing from there.[8] In more complicated interfaces, executable files have additionalmetadata, which may specifyrelocations to be performed when the program is loaded, or theentry point address at which to start execution.[9]

See also

[edit]

References

[edit]
  1. ^Celovi, Paul (2002).Embedded FreeBSD Cookbook.Elsevier. pp. 108,187–188.ISBN 1-5899-5004-6. Retrieved2022-03-06.
  2. ^Mueller, John Paul (2007).Windows Administration at the Command Line for Windows Vista, Windows 2003, Windows XP, and Windows 2000.John Wiley & Sons. p. 24.ISBN 978-0-470-04616-6. Retrieved2023-03-06.
  3. ^"executable".Merriam-Webster's Online Dictionary.Merriam-Webster. Retrieved2008-07-19.
  4. ^"Machine Instructions".GeeksforGeeks. 2015-11-03. Retrieved2019-09-18.
  5. ^"Chapter 4: Object Files".refspecs.linuxbase.org. Retrieved2019-09-18.
  6. ^Fisher, Tim."List of Executable File Extensions".lifewire.com. Retrieved2019-09-18.
  7. ^McKellar, Jessica (2010-03-16)."Hello from a libc-free world! (Part 1)".
  8. ^Smith, James E.; Nair, Ravi (2005-05-16)."The Architecture of Virtual Machines".Computer.38 (5):33–34.doi:10.1109/MC.2005.173.
  9. ^Rusling, David A. (1999)."Chapter 4 – Processes".The Linux Kernel. sec. 4.8.1 – ELF. Retrieved2023-03-06.

External links

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Executable&oldid=1309207432"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp