Movatterモバイル変換


[0]ホーム

URL:


CN120255959A - Dynamic library mapping execution method, device, equipment and medium in binary translation - Google Patents

Dynamic library mapping execution method, device, equipment and medium in binary translation
Download PDF

Info

Publication number
CN120255959A
CN120255959ACN202510740154.2ACN202510740154ACN120255959ACN 120255959 ACN120255959 ACN 120255959ACN 202510740154 ACN202510740154 ACN 202510740154ACN 120255959 ACN120255959 ACN 120255959A
Authority
CN
China
Prior art keywords
function
value
dynamic link
link library
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202510740154.2A
Other languages
Chinese (zh)
Inventor
王文竹
全龙
田舒洋
李可
郑琳琳
张瑞安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haihe Laboratory Of Advanced Computing And Key Software Xinchuang
Original Assignee
Haihe Laboratory Of Advanced Computing And Key Software Xinchuang
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haihe Laboratory Of Advanced Computing And Key Software XinchuangfiledCriticalHaihe Laboratory Of Advanced Computing And Key Software Xinchuang
Priority to CN202510740154.2ApriorityCriticalpatent/CN120255959A/en
Publication of CN120255959ApublicationCriticalpatent/CN120255959A/en
Pendinglegal-statusCriticalCurrent

Links

Landscapes

Abstract

Translated fromChinese

本发明公开了一种二进制翻译中动态库映射执行方法、装置、设备及介质,包括:对X86可执行程序的指令进行翻译执行,判断是否为动态库函数调用指令,在为动态库函数调用指令时,解析调用指令,获取调用的函数;将调用的函数作为查询索引键在预先建立的动态库映射分配器进行查询,得到函数在RISC‑V动态库对应的第一值和第二值;确定RISC‑V动态库在内存中的首地址,并将第一值作为偏移值,计算得到函数在内存中的绝对地址;根据第二值确定所述函数的参数地址;利用参数地址和绝对地址对所述函数进行计算,并返回计算结果。降低了翻译过程中的系统开销。

The present invention discloses a method, device, equipment and medium for executing dynamic library mapping in binary translation, including: translating and executing instructions of an X86 executable program, determining whether it is a dynamic library function call instruction, parsing the call instruction when it is a dynamic library function call instruction, and obtaining the called function; using the called function as a query index key to query a pre-established dynamic library mapping distributor, and obtaining a first value and a second value corresponding to the function in a RISC‑V dynamic library; determining the first address of the RISC‑V dynamic library in the memory, and using the first value as an offset value to calculate the absolute address of the function in the memory; determining the parameter address of the function according to the second value; calculating the function using the parameter address and the absolute address, and returning the calculation result. The system overhead in the translation process is reduced.

Description

Method, device, equipment and medium for executing dynamic library mapping in binary translation
Technical Field
The present invention relates to the field of dynamic link library translation technologies, and in particular, to a method, an apparatus, a device, and a medium for performing dynamic library mapping in binary translation.
Background
RISC-V is used as a novel instruction set architecture, and is developed rapidly in the past ten years due to the characteristics of open source, modularization, high expandability and the like, and becomes a third largest instruction set following X86 and ARM.
However, RISC-V software ecology is still in the early stages of development, facing many challenges in migrating mature ecology software such as X86 to RISC-V architecture. The binary translation technology realizes instruction set translation at a software level, can enable executable programs to run across platforms, and greatly simplifies software migration work. Typically, the X86 executable program runs on a dynamic link library that is required to link to complete the invocation and execution of a particular function. When binary translation is performed, the binary translation system loads an X86 dynamic link library and uses the X86 dynamic link library as an executable program of X86 for translation execution, but the method has better universality, and because the dynamic link library file generally comprises a large number of function entries and execution logics, the time expenditure brought by a translation stage is larger, the running efficiency of the program is seriously influenced, and the requirement of a high-performance application scene is difficult to be effectively met.
Disclosure of Invention
The embodiment of the invention provides a method, a device, equipment and a medium for executing dynamic library mapping in binary translation, which are used for solving the technical problem that the translation from X86 to RISC-V platform dynamic link library files in the prior art cannot meet the requirements of high-performance application scenes.
In a first aspect, an embodiment of the present invention provides a method for executing dynamic library mapping in binary translation, including:
Performing translation execution on an instruction of the X86 executable program, judging whether the instruction is a dynamic link library function call instruction, and analyzing the call instruction to acquire a called function when the instruction is the dynamic link library function call instruction;
Inquiring the called function as an inquiry index key in a pre-established dynamic link library mapping distributor to obtain a first value and a second value corresponding to the function in a RISC-V dynamic link library;
Determining a first address of a RISC-V dynamic link library in a memory, and calculating to obtain an absolute address of the function in the memory by taking the first value as an offset value;
Determining a parameter address of the function according to the second value;
and calculating the function by using the parameter address and the absolute address, and returning a calculation result.
In a second aspect, an embodiment of the present invention further provides a binary translation dynamic library map executing apparatus, including:
the judging module is used for carrying out translation execution on the instruction of the X86 executable program, judging whether the instruction is a dynamic link library function call instruction, and analyzing the call instruction when the instruction is the dynamic link library function call instruction to acquire a called function;
The query module is used for querying the invoked function as a query index key in a pre-established dynamic link library mapping distributor to obtain a first value and a second value corresponding to the function in a RISC-V dynamic link library;
the address determining module is used for determining the first address of the RISC-V dynamic link library in the memory, taking the first value as an offset value and calculating to obtain the absolute address of the function in the memory;
A parameter address determining module, configured to determine a parameter address of the function according to the second value;
And the calculation module is used for calculating the function by using the parameter address and the absolute address and returning a calculation result.
In a third aspect, an embodiment of the present invention further provides an apparatus, including:
An apparatus, the apparatus comprising:
one or more processors;
storage means for storing one or more programs,
The one or more programs, when executed by the one or more processors, cause the one or more processors to implement the binary in-translation dynamic library map execution method as provided in any of the above embodiments.
In a fourth aspect, embodiments of the present invention also provide a storage medium containing computer-executable instructions, which when executed by a computer processor, are for performing a binary in-translation dynamic library map execution method as provided by the above embodiments.
The method, the device, the equipment and the medium for executing the dynamic library mapping in the binary translation are provided by the embodiment of the invention, through translating and executing the instructions of the X86 executable program, judging whether the instructions are dynamic link library function calling instructions, analyzing the calling instructions to acquire the called functions when the instructions are dynamic link library function calling instructions, inquiring the called functions in a pre-established dynamic link library mapping distributor by taking the called functions as inquiry index keys to obtain a first value and a second value corresponding to the functions in a RISC-V dynamic link library, determining the first address of the RISC-V dynamic link library in a memory, taking the first value as an offset value, calculating to obtain the absolute address of the functions in the memory, determining the parameter address of the functions according to the second value, calculating the functions by utilizing the parameter address and the absolute address, and returning a calculation result. In the translation process, whether the function is a dynamic link library function or not is judged, when the function is the dynamic link library function, an offset address and a parameter address of the function are obtained by searching a dynamic link library mapping distributor, a head address is determined by utilizing a currently loaded RISC-V dynamic link library, further a specific address and a parameter address of the function in a memory are determined, the dynamic link library function is directly calculated by utilizing the specific address and the parameter address, complex translation and calculation are avoided, the system overhead in the translation process is reduced, the running efficiency of a transplanted program is improved, and the requirements of high-performance application scenes are effectively met.
Drawings
Other features, objects and advantages of the present invention will become more apparent upon reading of the detailed description of non-limiting embodiments, made with reference to the accompanying drawings in which:
FIG. 1 is a flowchart of a method for performing dynamic library mapping in binary translation according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a dynamic link library map allocator map execution in a binary translation method according to an embodiment of the present invention;
FIG. 3 is a flowchart of a method for performing dynamic library mapping in binary translation according to a second embodiment of the present invention;
FIG. 4 is a schematic diagram of a dynamic link library map allocator in a binary translation in accordance with a second embodiment of the present invention;
FIG. 5 is a schematic structural diagram of a binary in-translation dynamic library map execution apparatus according to a third embodiment of the present invention;
Fig. 6 is a schematic structural diagram of an apparatus according to a fourth embodiment of the present invention.
Detailed Description
The invention is described in further detail below with reference to the drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the invention and are not limiting thereof. It should be further noted that, for convenience of description, only some, but not all of the structures related to the present invention are shown in the drawings.
Example 1
FIG. 1 is a flowchart of a method for executing dynamic library mapping in binary translation according to an embodiment of the present invention, where the method is applicable to a case of translating a dynamic link library function when an X86 program is migrated to a RISC-V platform, and the method may be executed by a dynamic library mapping executing device in binary translation, and specifically includes the following steps:
Step 110, performing translation execution on the instruction of the X86 executable program, judging whether the instruction is a dynamic link library function call instruction, and analyzing the call instruction to obtain a called function when the instruction is the dynamic link library function call instruction.
The method for executing dynamic library mapping in binary translation provided by the embodiment can translate programs of other architectures. In particular, the translation may be performed with respect to the X86 architecture program so that it may run in the RISC-V architecture.
In translation, the program can be translated strip by strip, but functions in the dynamic link library of X86 are inevitably called in the process of program translation. Thus, at translation time, functions in the dynamically linked library of the post-translation-adapted RISC-V architecture are also required to be invoked.
The determining whether the CALL instruction is a dynamic link library function CALL instruction or not, and when the CALL instruction is a dynamic link library function CALL instruction, analyzing the CALL instruction to obtain a called function may include determining whether the CALL instruction is a CALL instruction, determining whether the CALL instruction is a dynamic link library function CALL instruction, and analyzing the CALL instruction to obtain a corresponding CALL function name. The CALL instruction may CALL other functions. The CALL instruction may be used to invoke a dynamically linked library function while the program is running.
Thus, a CALL instruction may be utilized to determine whether it is a dynamically linked library function CALL instruction. When the function call instruction of the dynamic link library is determined, the call instruction can be analyzed, the function of the dynamic link library pointed by the call instruction is determined,
And 120, inquiring the called function as an inquiry index key in a pre-established dynamic link library mapping distributor to obtain a first value and a second value corresponding to the function in a RISC-V dynamic link library.
In order to reduce the system overhead of additionally translating the X86 dynamic link library in the program translation process, the related information of the functions in the dynamic link library can be recorded by using a pre-established dynamic link library mapping distributor, and the functions of the dynamic link library of the RISC-V architecture can be directly operated. Fig. 2 is a schematic diagram of mapping execution of a dynamic link library map allocator in a binary translation method according to an embodiment of the present invention, and referring to fig. 2, the dynamic link library map allocator may obtain a first value according to a function name by using the dynamic link library map allocator when translating an executable program of an X86 system.
Alternatively, the dynamic link library mapping allocator may record related information of the functions in the dynamic link library based on the database. The called function, in particular the function name, is used as a query index key to query in a pre-established dynamic link library mapping distributor, related items of the function are obtained by query, and corresponding first values and second values are obtained from the items.
Step 130, determining the first address of the RISC-V dynamic link library in the memory, and calculating to obtain the absolute address of the function in the memory by taking the first value as an offset value.
In this embodiment, before the program is translated, the RISC-V dynamic link library may be loaded into the memory, and the first address of the RISC-V dynamic link library loaded into the memory may be determined by the system instruction.
Optionally, the translation system may obtain the first value by using the step, use the first value as the offset, and use the first address and the first value to obtain an absolute address of the function in the RISC-V dynamic link library in the memory, and use the absolute address to directly access the function.
And 140, determining the parameter address of the function according to the second value.
By way of example, it may include determining whether the second value exceeds a register number threshold, determining the address of each parameter in register order if the register number threshold is not exceeded, and determining the addresses of some of the parameters in register order if the register number threshold is exceeded, and determining the addresses of the remaining parameters from the stack of translation processes. Unlike the first value, the second value is not an address reference, but a number value.
When a part of the program calls a function in the dynamic link library, corresponding parameters need to be transferred to the function so that the function uses the transferred parameters to calculate. In executing a program using dynamic library mapping in binary translation, registers may be used to pass parameters to the function. However, the number of registers is limited, and therefore the number of parameters, and thus the number of registers required, needs to be determined from the second value. For example, if the number of registers is greater than the number of second values, each register may correspond to a parameter. Thus, the address of the register may be used as the address of the parameter, and further, the address of the parameter may be determined according to the general order of the registers.
If the second value exceeds the register number threshold, all registers have been used. The data can be transferred by using the stack corresponding to the translation process, so that parameters except the data stored in the register can be written into the stack in a stack pressing mode, and the addresses of other parameters can be determined based on the stack pressing sequence and the addresses of the stack.
And step 150, calculating the function by using the parameter address and the absolute address, and returning a calculation result.
And jumping to the address of the function, directly executing the function in the RISC-V dynamic link library called in the program translation, reading the parameter from the parameter address, and transmitting the parameter to the function. So that the function performs the calculation to obtain a calculation result, and may return the calculation result of the function call in the program translation through a register or other means.
The method comprises the steps of performing translation execution on an instruction of an X86 executable program, judging whether the instruction is a dynamic link library function call instruction, analyzing the call instruction when the instruction is the dynamic link library function call instruction, obtaining a called function, inquiring a preset dynamic link library mapping distributor by taking the called function as an inquiry index key to obtain a first value and a second value corresponding to the RISC-V dynamic link library, determining the first address of the RISC-V dynamic link library in a memory, taking the first value as an offset value, calculating to obtain an absolute address of the function in the memory, determining a parameter address of the function according to the second value, calculating the function by utilizing the parameter address and the absolute address, and returning a calculation result. In the translation process, whether the function is a dynamic link library function or not is judged, when the function is the dynamic link library function, an offset address and a parameter address of the function are obtained by searching a dynamic link library mapping distributor, a head address is determined by utilizing a currently loaded RISC-V dynamic link library, further a specific address and a parameter address of the function in a memory are determined, the dynamic link library function is directly calculated by utilizing the specific address and the parameter address, complex translation and calculation are avoided, the system overhead in the translation process is reduced, the running efficiency of a transplanted program is improved, and the requirements of high-performance application scenes are effectively met.
In a preferred implementation of this embodiment, the method may further include the step of executing translation execution on functions that are not available in the X86 dynamic link library when the first value and the second value are not available using the dynamic link library map allocator. Because the dynamic link library file may have conditions such as updating, the dynamic link library mapping distributor has no corresponding function information, in this case, function translation is directly performed, so that the translation can normally run, and the dynamic link library mapping distributor can be updated in a later period.
Example two
FIG. 3 is a flow chart of a method for executing dynamic library mapping in binary translation according to a second embodiment of the present invention, wherein the method is optimized based on the above embodiment, and the steps of traversing an X86 architecture dynamic link library file, searching functions therein, calculating index values of the functions, writing the index values into a dynamic link library mapping distributor, traversing a RISC-V dynamic link library file, searching corresponding functions of the functions, calculating relative address values of the corresponding functions with respect to a RISC-V dynamic link library starting address, storing the relative address values as first values in the dynamic link library mapping distributor, establishing key value pair structures of the index values and the relative address values in the mapping distributor, and returning to the step of searching functions therein until the traversing of the X86 architecture dynamic link library file is completed.
Referring to fig. 3, the method for performing dynamic library mapping in binary translation includes:
step 210, traversing the X86 architecture dynamic link library file, searching the function therein, calculating the index value of the function, and writing the index value into the dynamic link library mapping distributor.
In this embodiment, the dynamic link library map allocator may be pre-established prior to program translation. Alternatively, the dynamic link library map allocator may be initialized to form a database-like structure and facilitate migration and replication.
Fig. 4 is a schematic diagram of a dynamic link library map dispatcher in a binary translation execution method according to a second embodiment of the present invention, referring to fig. 4, a transpose may be generated by using the dynamic link library map dispatcher, and after the dynamic link library map dispatcher is initialized, an X86 architecture dynamic link library file is traversed to find a function therein. Illustratively, a function may be determined according to a defined format of the function, and an index value of the function may be calculated, and illustratively, a name of the function may be collected, and attribute information such as the number and type of parameters may be combined, and the name of the function may be used as the index value through hash transformation, or directly used as the index value, and the index value may be written into the dynamic link library mapping allocator.
Step 220, traversing RISC-V dynamic link library file, searching the corresponding function of the function, and calculating the relative address value of the corresponding function relative to RISC-V dynamic link library initial address.
And searching a corresponding function of the X86 dynamic link library file function by traversing the RISC-V dynamic link library file translated by the X86 dynamic link library file, and determining a relative address value according to the size of the RISC-V dynamic link library file and the position of the corresponding function in the size of the RISC-V dynamic link library file.
And 230, storing the relative address value as a first value into a mapping distributor of the dynamic link library, establishing a key value pair structure of the index value and the relative address value in the mapping distributor, and returning to the function searching step until the X86 architecture dynamic link library file is traversed.
The function index value and the relative address value can be bound and stored as a key value structure into the dynamic link library mapping allocator, so that the relative address value, i.e. the first value, can be found by using the index value in the later stage.
And 240, translating and executing the instruction of the X86 executable program, judging whether the instruction is a dynamic link library function call instruction, and analyzing the call instruction to acquire a called function when the instruction is the dynamic link library function call instruction.
And 250, inquiring the called function as an inquiry index key in a pre-established dynamic link library mapping distributor to obtain a first value and a second value corresponding to the function in a RISC-V dynamic link library.
Step 260, determining the first address of the RISC-V dynamic link library in the memory, and calculating to obtain the absolute address of the function in the memory by using the first value as the offset value.
And 270, determining the parameter address of the function according to the second value, calculating the function by using the parameter address and the absolute address, and returning a calculation result.
The method comprises the steps of traversing an X86 architecture dynamic link library file to find functions in the X86 architecture dynamic link library file, calculating index values of the functions, writing the index values into a dynamic link library mapping distributor, traversing a RISC-V dynamic link library file to find corresponding functions of the functions, calculating relative address values of the corresponding functions relative to starting addresses of the RISC-V dynamic link library, storing the relative address values as first values into the dynamic link library mapping distributor, establishing key value pair structures of the index values and the relative address values in the mapping distributor, and returning to the function step of searching the index values until the X86 architecture dynamic link library file is traversed. By using the mode, the dynamic link library mapping distributor can be pre-established, so that information in the dynamic link library mapping distributor can be directly utilized in the process of program translation in the later period, and the calling of the dynamic link library file can be rapidly completed. Furthermore, the dynamic link library mapping distributor can be stored in a persistent mode, and can be directly used when program translation is needed each time. In addition, the persistent dynamic link library mapping distributor can be migrated, so that other devices for translating the program do not need to translate the dynamic link library, further, the system overhead in the translation process is reduced, and the running efficiency of the transplanted program is improved.
In a preferred implementation of this embodiment, the method may further comprise the steps of determining a type of the function, determining a number of parameters of the function based on the type, and adding the number of parameters as a second value to the key-value pair structure. In general, functions in a dynamic link library can be categorized into several types, which can be determined by the name of the function, or some other definition. The number of parameters of each type is fixed, so that the number of parameters of the function can be determined in the manner described above, which is added as a second value to the key-value pair structure. And when program translation is carried out in the later period, the parameter address can be quickly determined, and the running efficiency of the transplanted program is improved.
Example III
Fig. 5 is a schematic structural diagram of a binary in-translation dynamic library map executing apparatus according to a third embodiment of the present invention, referring to fig. 5, where the binary in-translation dynamic library map executing apparatus includes:
The judging module 310 is configured to perform translation execution on an instruction of the X86 executable program, judge whether the instruction is a dynamic link library function call instruction, and parse the call instruction when the instruction is the dynamic link library function call instruction, so as to obtain a called function;
The query module 320 is configured to query the invoked function as a query index key in a pre-established dynamic link library mapping allocator to obtain a first value and a second value corresponding to the function in a RISC-V dynamic link library;
An address determining module 330, configured to determine a first address of the RISC-V dynamic link library in the memory, and calculate an absolute address of the function in the memory by using the first value as an offset value;
a parameter address determining module 340, configured to determine a parameter address of the function according to the second value;
The calculating module 350 is configured to calculate the function using the parameter address and the absolute address, and return a calculation result.
The device for executing the dynamic library mapping in the binary translation provided by the embodiment carries out translation execution on the instruction of the X86 executable program, judges whether the instruction is a dynamic link library function call instruction, analyzes the call instruction to acquire a called function when the instruction is the dynamic link library function call instruction, inquires a preset dynamic link library mapping distributor by taking the called function as an inquiry index key to acquire a first value and a second value corresponding to the function in a RISC-V dynamic link library, determines the first address of the RISC-V dynamic link library in a memory, takes the first value as an offset value, calculates to acquire the absolute address of the function in the memory, determines the parameter address of the function according to the second value, calculates the function by utilizing the parameter address and the absolute address, and returns a calculation result. In the translation process, whether the function is a dynamic link library function or not is judged, when the function is the dynamic link library function, an offset address and a parameter address of the function are obtained by searching a dynamic link library mapping distributor, a head address is determined by utilizing a currently loaded RISC-V dynamic link library, further a specific address and a parameter address of the function in a memory are determined, the dynamic link library function is directly calculated by utilizing the specific address and the parameter address, complex translation and calculation are avoided, the system overhead in the translation process is reduced, the running efficiency of a transplanted program is improved, and the requirements of high-performance application scenes are effectively met.
On the basis of the above embodiments, the parameter address determining module includes:
the judging unit is used for judging whether the second value exceeds the register quantity threshold value, and determining the address of each parameter according to the sequence of the registers when the second value does not exceed the register quantity threshold value;
and the parameter address determining unit is used for determining the addresses of partial parameters according to the sequence of the registers when the number threshold of the registers is exceeded, and determining the addresses of the rest parameters according to the stack of the translation process.
On the basis of the above embodiments, the judging module includes:
The CALL instruction judging unit is used for judging whether the CALL instruction is a CALL instruction or not and determining whether the CALL instruction is a dynamic link library function CALL instruction or not;
and the analyzing unit is used for analyzing the CALL calling instruction to obtain the corresponding calling function name.
On the basis of the above embodiments, the device further includes:
Traversing an X86 architecture dynamic link library file, and searching functions in the X86 architecture dynamic link library file;
Calculating an index value of the function, and writing the index value into a dynamic link library mapping distributor;
Traversing RISC-V dynamic link library file, searching the corresponding function of the function, and calculating the relative address value of the corresponding function relative to the RISC-V dynamic link library initial address;
Storing the relative address value as a first value into a mapping distributor of a dynamic link library, and establishing a key value pair structure of an index value and the relative address value in the mapping distributor;
and returning to the function searching step until the X86 architecture dynamic link library file traversal is completed.
On the basis of the above embodiments, the device further includes:
and the storage module is used for carrying out persistent storage on the dynamic link library mapping distributor.
On the basis of the above embodiments, the device further includes:
A type determining module for determining the type of the function;
a parameter number determining module for determining the parameter number of the function according to the type;
and the adding module is used for adding the parameter quantity as a second value into the key value pair structure.
On the basis of the above embodiments, the device further includes:
And the translation execution module is used for executing translation execution on the function which cannot be acquired in the X86 dynamic link library when the first value and the second value cannot be acquired by the dynamic link library mapping distributor.
The device for executing the binary in-translation dynamic library mapping provided by the embodiment of the invention can execute the method for executing the binary in-translation dynamic library mapping provided by any embodiment of the invention, and has the corresponding functional modules and beneficial effects of the executing method.
Example IV
Fig. 6 is a schematic structural diagram of an apparatus according to a fourth embodiment of the present invention. Fig. 6 shows a block diagram of an exemplary device 12 suitable for use in implementing embodiments of the present invention. The device 12 shown in fig. 6 is merely an example and should not be construed as limiting the functionality and scope of use of embodiments of the present invention.
As shown in fig. 6, device 12 is in the form of a general purpose computing device. The components of device 12 may include, but are not limited to, one or more processors or processing units 16, a system memory 28, and a bus 18 that connects the various system components, including system memory 28 and processing units 16.
Bus 18 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, micro channel architecture (MAC) bus, enhanced ISA bus, video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Device 12 typically includes a variety of computer system readable media. Such media can be any available media that is accessible by device 12 and includes both volatile and nonvolatile media, removable and non-removable media.
The system memory 28 may include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM) 30 and/or cache memory 32. Device 12 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 34 may be used to read from or write to non-removable, nonvolatile magnetic media (not shown in FIG. 6, commonly referred to as a "hard disk drive"). Although not shown in fig. 6, a magnetic disk drive for reading from and writing to a removable non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In such cases, each drive may be coupled to bus 18 through one or more data medium interfaces. Memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to carry out the functions of embodiments of the invention.
A program/utility 40 having a set (at least one) of program modules 42 may be stored in, for example, memory 28, such program modules 42 including, but not limited to, an operating system, one or more application programs, other program modules, and program data, each or some combination of which may include an implementation of a network environment. Program modules 42 generally perform the functions and/or methods of the embodiments described herein.
Device 12 may also communicate with one or more external devices 14 (e.g., keyboard, pointing device, display 24, etc.), one or more devices that enable a user to interact with device 12, and/or any devices (e.g., network card, modem, etc.) that enable device 12 to communicate with one or more other computing devices. Such communication may occur through an input/output (I/O) interface 22. Also, device 12 may communicate with one or more networks such as a Local Area Network (LAN), a Wide Area Network (WAN) and/or a public network, such as the Internet, via network adapter 20. As shown, network adapter 20 communicates with other modules of device 12 over bus 18. It should be appreciated that although not shown, other hardware and/or software modules may be used in connection with device 12, including, but not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data backup storage systems, and the like.
The processing unit 16 executes various functional applications and data processing by running programs stored in the system memory 28, for example, implementing the binary in-translation dynamic library map execution method provided by the embodiment of the present invention.
Example five
A fifth embodiment of the present invention also provides a storage medium containing computer-executable instructions, which when executed by a computer processor, are configured to perform the binary in-translation dynamic library mapping execution method according to any one of the above embodiments.
The computer storage media of embodiments of the invention may take the form of any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or a combination of any suitable device for the above. In this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, smalltalk, C ++ and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or device. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider).
Note that the above is only a preferred embodiment of the present invention and the technical principle applied. It will be understood by those skilled in the art that the present invention is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the invention. Therefore, while the invention has been described in connection with the above embodiments, the invention is not limited to the embodiments, but may be embodied in many other equivalent forms without departing from the spirit or scope of the invention, which is set forth in the following claims.

Claims (10)

CN202510740154.2A2025-06-052025-06-05 Dynamic library mapping execution method, device, equipment and medium in binary translationPendingCN120255959A (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN202510740154.2ACN120255959A (en)2025-06-052025-06-05 Dynamic library mapping execution method, device, equipment and medium in binary translation

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN202510740154.2ACN120255959A (en)2025-06-052025-06-05 Dynamic library mapping execution method, device, equipment and medium in binary translation

Publications (1)

Publication NumberPublication Date
CN120255959Atrue CN120255959A (en)2025-07-04

Family

ID=96187609

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN202510740154.2APendingCN120255959A (en)2025-06-052025-06-05 Dynamic library mapping execution method, device, equipment and medium in binary translation

Country Status (1)

CountryLink
CN (1)CN120255959A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN1892602A (en)*2005-07-012007-01-10中国科学院计算技术研究所Method for processing library function call in binary translation
US9477453B1 (en)*2015-06-242016-10-25Intel CorporationTechnologies for shadow stack manipulation for binary translation systems
CN117093229A (en)*2023-07-182023-11-21龙芯中科技术股份有限公司Binary translation method, binary translation device, electronic equipment and storage medium
CN117827286A (en)*2024-03-052024-04-05先进计算与关键软件(信创)海河实验室RISC-V architecture binary translation file multiplexing method, device and storage medium
CN118276931A (en)*2024-04-172024-07-02国网智能电网研究院有限公司Program cross-architecture migration method and device, computer equipment and storage medium
CN118689489A (en)*2024-06-262024-09-24南开大学 An automatic parallel low-coupling dynamic binary translation tool and method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN1892602A (en)*2005-07-012007-01-10中国科学院计算技术研究所Method for processing library function call in binary translation
US9477453B1 (en)*2015-06-242016-10-25Intel CorporationTechnologies for shadow stack manipulation for binary translation systems
CN117093229A (en)*2023-07-182023-11-21龙芯中科技术股份有限公司Binary translation method, binary translation device, electronic equipment and storage medium
CN117827286A (en)*2024-03-052024-04-05先进计算与关键软件(信创)海河实验室RISC-V architecture binary translation file multiplexing method, device and storage medium
CN118276931A (en)*2024-04-172024-07-02国网智能电网研究院有限公司Program cross-architecture migration method and device, computer equipment and storage medium
CN118689489A (en)*2024-06-262024-09-24南开大学 An automatic parallel low-coupling dynamic binary translation tool and method

Similar Documents

PublicationPublication DateTitle
CN110865888B (en)Resource loading method and device, server and storage medium
US20100161875A1 (en)Simulator and simulating method for running guest program in host
US9304742B2 (en)Modifying a middleware
CN113050987B (en)Method and device for generating interface document, storage medium and electronic equipment
CN111475150B (en)Cross-language binding method, device, equipment and storage medium
CN117827286B (en)RISC-V architecture binary translation file multiplexing method, device and storage medium
CN112559095A (en)Target service execution method, system, server and storage medium
CN114064007A (en) Program statement processing method, apparatus, device and storage medium
JP2016066367A (en) Flexible metadata composition
WO2024124833A1 (en)Calculation function construction method, calculation engine, electronic device and readable storage medium
CN110727476B (en)Method, device, equipment and storage medium for generating authorization configuration file
US8250544B2 (en)Annotating exception information in a computer program
CN113448995B (en) Database operation method and device, system, electronic device and storage medium
US9201937B2 (en)Rapid provisioning of information for business analytics
CN110633162B (en)Remote call implementation method and device, computer equipment and storage medium
CN120255959A (en) Dynamic library mapping execution method, device, equipment and medium in binary translation
CN113687880B (en)Method, device, equipment and medium for calling component
CN113282293B (en)Code identification method, device, equipment and storage medium
CN112528273B (en)Medical data detection method, device, medium and electronic equipment
CN114219643A (en)Transaction calling method, device, equipment and storage medium
US20180285361A1 (en)Ranking service implementations for a service interface
CN114296705A (en) Application package generation method, apparatus, electronic device, and storage medium
CN114428603A (en)Method and system for generating short and int type instructions based on compiler
CN118519859B (en)Driver information acquisition method, device and storage medium
CN112114811A (en) A compiling method, apparatus and device

Legal Events

DateCodeTitleDescription
PB01Publication
PB01Publication
SE01Entry into force of request for substantive examination
SE01Entry into force of request for substantive examination

[8]ページ先頭

©2009-2025 Movatter.jp