| ||||||
Wie padding verhindern? http://openbook.galileocomputing.de/c_von_a_bis_z/015_c_strukturen_012.htm Common Intermediate LanguageCommon Intermediate Language (CIL,pronounced either “sil”or “kil”) (formerly called Microsoft Intermediate Language or MSIL) is the lowest-level human-readable programming language defined by the Common Language Infrastructure specification and used by the .NET Framework andMono. Languages which target a CLR-compatible runtime environment compile to CIL,which is assembled into an object code that has a bytecode-style format. CIL is an object-oriented assembly language,and is entirely stack-based. Its bytecode is translated into native code or executed by avirtual machine. CIL was originally known as Microsoft Intermediate Language (MSIL) during the beta releases of the .NET languages. Due to standardization of C# and the Common Language Infrastructure,the bytecode is now officially known as CIL.[1] During compilation of .NET programming languages,the source code is translated into CIL code rather than platform or processor-specific object code. CIL is a CPU- and platform-independent instruction set that can be executed in any environment supporting the Common Language Infrastructure,[2] such as the .NET runtime on Windows,or the cross-platform Mono runtime. In theory,this eliminates the need to distribute different executable files for different platforms and CPU types. CIL code is verified for safety during runtime,providing better security and reliability than natively compiled executable files.The execution process looks like this:
(From Wikipedia,the free encyclopedia) Marshalling in the context of computer programming is the transformation of components stored in the memory of the device into usable data that may be utilized by one or more of the programs residing on the hard drive. The action of gathering data into storage areas for easy retrieval is greatly enhanced by the process of marshalling,as it allows programs to recover the data for use without the need to translate the components each time the action is called for. From this perspective,marshalling aids in the speedy function of many of the software programs used in homes and businesses every day. Along with converting objects into data and preparing the data for storage or transmissionwhen needed,marshalling also acts as a buffer between the stored data and the various files or programs that make use of the data. This buffer helps to maintain the integrity of the stored data and allow it to be used for simultaneous actions involving more than one file or one program. The overall effect is to keep the system functioning at optimal levels without delays. For example,marshalling helps to make it possible to work with a spreadsheet,a word processing document,and an open Internet connection all at the same time,without delays. Marshalled data may be in use by all of these applications simultaneously without creating a drain on the resources of the hard drive. Many persons who are knowledgeable about computer science in general consider marshallingto be somewhat similar to a process that is known as serialization. Serializing an object involves converting the object from the original state into a byte stream,but in a manner where the byte stream can be converted back into the original state if necessary. Marshallingdiffers from serialization in that serialization does not record codebases. Marshalling handles both the functions of conversion and the recording of codebases. In addition,marshalling can be utilized with remote objects,whereas serialization cannot. This means that for some configurations,the marshall approach to object conversion,storage,and transmission may be preferable.
Stubs (and harnesses) facilitate testing of applications/systems. The Application Binary Interface (ABI) for the ARM Architecture (Base Standard) (BSABI) is a collection of standards. Some of these standards are open. Some are specific to the ARM architecture. They regulate the inter-operation of binary code and development tools in ARM architecture-based execution environments,ranging from bare metal to major operating systems such as ARM Linux. By conforming to this standard,objects produced by the toolchain can work together with object libraries from different producers. The ABI for the ARM Architecture is a family of specifications that describe the processor-specific aspects of the translation of a source program into object files. Object files produced by any toolchain that conforms to the relevant aspects of the ABI can be linked together to produce a final executable image or library. Each document in the specification covers a specific area of compatibility. For example,the C Library ABI for the ARM Architecture (CLIBABI) describes the parts of the C library that are expected to be common to all conforming implementations. The ABI documents contain several areas that are marked as platform specific. To define a complete execution environment these platform-specific details have to be provided. This gives rise to a number of supplemental specifications,for example theARM GNU/Linux ABI supplement. The Base Standard ABI for the ARM Architecture (BSABI) enables you to use ARM,Thumb,and Thumb-2 objects and libraries from different producers that support the ABI for the ARM Architecture. The ARM compilation tools fully support the BSABI,including support for Debug With Arbitrary Record Format (DWARF) 3 debug tables (DWARF Debugging Standard Version 3). The ARM C and C++ libraries conform to the standards described in the BSABI,the CLIBABI,and the C++ ABI (CPPABI) for the ARM Architecture. About the Base Platform Application Binary Interface (BPABI)Many embedded systems use an operating system to manage the resources on a device. In many cases this is a large,single executable with a Real-Time Operating System (RTOS) that tightly integrates with the applications. Other more complexOperating Systems (OS) are referred to as a platform OS,for example,ARM Linux. These have the ability to load applications and shared libraries on demand. To run an application or use a shared library on a platform OS,you must conform to the Application Binary Interface (ABI) for the platform and also the ABI for the ARM architecture. This can involve substantial changes to the linker output,for example,a custom file format. To support such a wide variety of platforms,the ABI for the ARM architecture provides the Base Platform Application Binary Interface (BPABI). The BPABI provides a base standard from which a platform ABI can be derived. The linker produces a BPABI conforming ELF image or shared library. A platform specific tool called a post-linker translates this ELF output file into a platform-specific file format. Post linker tools are provided by the platform OS vendor. The following figure shows the BPABI tool flow.
An embedded-application binary interface (EABI) specifies standard conventions for file formats,data types,register usage,stack frame organization,and function parameter passing of an embedded software program.Compilers that support the EABI create object code that is compatible with code generated by other such compilers,thus allowing developers to link libraries generated with one compiler with object code generated with a different compiler. Developers writing their own assembly language code may also use the EABI to interface with assembly generated by a compliant compiler.The main differences of an EABI with respect to an ABI for general purpose operating systems are that privileged instructions are allowed in application code,dynamic linking is not required (sometimes it is completely disallowed),and a more compact stack frame organization is used to save memory.[4]ARM EABI EABI ist die neue “Embedded”ABI definiert von ARM ltd. http://infocenter.arm.com/help/topic/com.arm.doc.ihi0036b/IHI0036B_bsabi.pdf C Library ABI for the ARM®Architecture http://infocenter.arm.com/help/topic/com.arm.doc.ihi0039b/IHI0039B_clibabi.pdf C++ ABI for the ARM®Architecture http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0529c/Babibbbe.html
| ||||||
| Copyright ©2012 Technic Stuff - All Rights Reserved | ||||||