Operating system definition method and device

By obtaining the application's call information and device operation log, automatically identifying dependencies and performing binary re-arrangement, and adjusting the operating system configuration, the problem of poor operating system adaptation capabilities in the existing technology is solved, and the application is accurate and fast Adaptation and performance improvement.

CN119105819APending Publication Date: 2024-12-10HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311159737.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-08
Filing Date
2023-09-08
Publication Date
2024-12-10

AI Technical Summary

Technical Problem

In the adaptive configuration adjustment of existing operating systems, the configuration interface cannot be set for applications, resulting in poor adaptability, unable to meet the differences in the access path of the operating system software stack of different applications, and unable to achieve optimal performance.

Method used

By obtaining the application's call information and device operation log, the application's dependency relationship on the basic library and kernel is automatically identified, and binary re-arrangement is performed, the operating system's basic library, kernel and CPU interface configuration is adjusted to form a target operating system configuration combination , realize accurate and fast adaptation to the application.

Benefits of technology

It realizes efficient adaptation to a single application, improves hardware utilization and performance indicators, solves the problem of customization of kernel and CPU configurations, and is suitable for simultaneous adaptability of operating system definitions for multiple applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119105819A_ABST
    Figure CN119105819A_ABST
Patent Text Reader

Abstract

The invention provides an operating system definition method, and relates to the field of operating systems. The method and the device are used for more accurately and quickly realizing the adaptation of the application program. The method comprises the steps of obtaining application program calling information, wherein the application program calling information comprises basic library file information, basic library process information, kernel program interface API calling information and / or CPU calling information; acquiring equipment running logs, wherein the equipment running logs comprise an application program running log, a basic library access log, a kernel API access log and / or a central processing unit CPU running log; a target operating system configuration combination is determined according to the application calling information and the equipment running log, the target operating system configuration combination comprises target basic library file information, target kernel file information and / or target CPU interface information, and the target basic library file information comprises basic library files subjected to binary rearrangement; the target kernel file information comprises kernel files subjected to binary rearrangement; and applying the target operating system configuration combination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the priority of the Chinese patent application filed with the State Intellectual Property Office on June 8, 2023, with application number 202310674800.0 and invention name “A method and device for defining an operating system”, the entire contents of which are incorporated by reference in this application. Technical Field

[0002] The embodiments of the present application relate to the field of operating systems, and in particular, to an operating system definition method and device. Background Art

[0003] The ideal state when an application is running on an operating system is to maximize the performance indicators of the application. However, different applications have different access paths to the operating system's software stack, so the same operating system configuration cannot meet the needs of all applications. The basic library files and kernel files on the operating system software stack are the executable files of the application, which include instructions that are ultimately run on the central processing unit (CPU).

[0004] In the prior art, the adaptability configuration adjustment of the operating system for a single application can be combined and configured through the configuration interface provided by the basic library and kernel of the operating system, so as to determine the best configuration combination.

[0005] In the existing operating system adaptive configuration adjustment scheme for application programs, only a combination configuration can be performed according to the existing configuration interface, and the configuration interface cannot be set for the application program, and the adaptability is poor. Summary of the invention

[0006] The embodiment of the present application provides an operating system definition method and device, which can determine the target operating system configuration combination according to the call information of the application and the device operation log, and the target operating system configuration combination includes the target basic library file configuration information, the target kernel file configuration information and the target CPU interface configuration information, and the target basic library file configuration information includes the basic library file after binary rearrangement, and the target kernel file configuration information includes the kernel file after binary rearrangement. The method can adjust the operating system basic library file, kernel file and CPU interface called by a single application when running, and is not limited to the existing configuration interface, and can achieve more accurate and rapid adaptation to the application.

[0007] In a first aspect, an embodiment of the present application provides an operating system definition method, the method comprising: obtaining application call information, the application call information including basic library file information, basic library process information, kernel program interface API call information and / or CPU call information called when the application is running; obtaining a device operation log, the device operation log including an application operation log, a basic library access log, a kernel API access log and / or a central processing unit CPU operation log; determining a target operating system configuration combination based on the application call information and the device operation log, the target operating system configuration combination including target basic library file information, target kernel file information and / or target CPU interface information, the target basic library file information including a binary rearranged basic library file, and the target kernel file information including a binary rearranged kernel file; applying the target operating system configuration combination.

[0008] In this possible implementation, by obtaining application call information, the dependency list of the application on the basic library can be automatically identified. The binary of the dependent basic library is automatically rearranged, and the operating system definition of adaptability for multiple applications is realized at the same time. At the same time, the kernel can also be optimized by binary rearrangement, which solves the problem that the kernel only has the parameter configuration that has been provided and lacks the ability to customize and rewrite applications. The private features of the CPU can also be customized, thereby solving the problem that the CPU chip cannot be customized for the application.

[0009] In a possible implementation, before obtaining the device operation log according to the application call information and after determining the target operating system configuration combination according to the device operation log, the method further includes: the operating system redefinition device inserts a redirection plug-in into the application, and the redirection plug-in is used for the application to perform binary reordering; the operating system redefinition device inserts a redirection field into the basic library, and the redirection field is used for the basic library to perform binary reordering; the operating system redefinition device inserts a redirection callback function into the kernel, and the redirection callback function is used for the kernel to perform binary reordering.

[0010] In this possible implementation, the operating system redefinition device can insert redirection information into the operating system, which solves the problem of the operating system lacking binary redirection capability, and is suitable for scenarios where binary redirection capability is lacking.

[0011] In a possible implementation, the operating system redefinition device obtains application call information including: the operating system redefinition device obtains dynamic call information, the dynamic call information includes user state call stack information, kernel state call stack information, function usage interface and / or CPU instruction feature information; the operating system redefinition device obtains static call information, the static call information includes basic library component information that the application depends on; the operating system redefinition device determines the basic library file information based on the dynamic call information and the static call information.

[0012] In this possible implementation, the operating system redefinition device automatically identifies the dependency file information of the application program on the basic library by obtaining the application program call information.

[0013] In a possible implementation, the operating system redefinition device determines the target operating system configuration combination according to the device operation log, including: the operating system redefinition device determines the target CPU configuration information according to the CPU operation log.

[0014] In one possible implementation, the CPU operation log includes performance monitoring unit information, and the above-mentioned operating system redefinition device determines the target CPU configuration information based on the CPU operation log, including: the operating system redefinition device determines the hot functions and hot variables of the CPU based on the performance monitoring unit information; the operating system redefinition device determines the mapping relationship table between the hot functions and hot variables of the CPU and the configurable characteristics of the CPU; the operating system redefinition device determines the target CPU configuration information based on the mapping relationship table.

[0015] In this possible implementation, the operating system redefinition device can also customize the private characteristics of the CPU, thereby solving the problem that the CPU chip cannot be customized and configured for the application program.

[0016] In a second aspect, an embodiment of the present application provides an operating system redefinition device, which includes a full-stack dependency generation module, an operation trajectory collection module and a software definition module, wherein: the full-stack dependency generation module is used to obtain application call information, the application call information includes the basic library file information, basic library process information, kernel program interface API call information and / or CPU call information called by the application when it is running; the operation trajectory collection module is used to obtain the device operation log, the device operation log includes the application operation log, the basic library access log, the kernel API access log and / or the central processing unit CPU operation log; the software definition module is used to determine the target operating system configuration combination according to the application call information and the device operation log, the target operating system configuration combination includes the target basic library file information, the target kernel file information and / or the target CPU interface information, the target basic library file information includes the binary rearranged basic library file, and the target kernel file information includes the binary rearranged kernel file.

[0017] In a possible implementation, the operating system redefinition device further includes: a software binary generation module, which is used to insert a redirection plug-in into an application, and the redirection plug-in is used for the application to perform binary reordering; it is also used to insert a redirection field into a basic library, and the redirection field is used for the basic library to perform binary reordering; it is also used to insert a redirection callback function into the kernel, and the redirection callback function is used for the kernel to perform binary reordering.

[0018] In one possible implementation, the full-stack dependency generation module is specifically used to: obtain dynamic call information, which includes user-mode call stack information, kernel-mode call stack information, function usage interface and / or CPU instruction feature information; obtain static call information, which includes basic library component information that the application depends on; and determine basic library file information based on dynamic call information and static call information.

[0019] In a possible implementation, the software definition module is specifically used to determine target CPU configuration information according to a CPU operation log.

[0020] In one possible implementation, the software definition module is specifically used to: determine the hot functions and hot variables of the CPU based on the performance monitoring unit information; determine the mapping relationship table between the hot functions and hot variables of the CPU and the configurable characteristics of the CPU; and determine the target CPU configuration information based on the mapping relationship table.

[0021] In a third aspect, an embodiment of the present application provides an operating system redefinition device, comprising: a processor and a memory. The processor is coupled to the memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the operating system redefinition device to implement any one of the methods provided in the first aspect.

[0022] In a fourth aspect, an embodiment of the present application provides a chip, comprising: a processor and an interface circuit; the interface circuit is used to receive code instructions and transmit them to the processor; the processor is used to run the code instructions to execute any one of the methods provided in the first aspect.

[0023] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, in which at least one computer program instruction is stored, and the computer program instruction is loaded and executed by a processor to implement any one of the methods provided in the first aspect above.

[0024] In a sixth aspect, an embodiment of the present application provides a computer program product, comprising computer execution instructions, which, when executed on a computer, enable the computer to execute any one of the methods provided in the first aspect.

[0025] The technical effects brought about by any implementation method in the second to sixth aspects can refer to the technical effects brought about by the corresponding implementation methods in the first and second aspects, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Figure 1 A schematic diagram of a scenario for adaptive configuration adjustment of an operating system;

[0027] Figure 2 A schematic diagram of a physical machine deployment architecture;

[0028] Figure 3 A schematic diagram of a virtual machine deployment architecture;

[0029] Figure 4 A schematic diagram of the architecture of containerized deployment of physical machines

[0030] Figure 5 A schematic diagram of the architecture of a virtual machine container deployment;

[0031] Figure 6 A schematic diagram of the software architecture of the operating system redefinition device provided in an embodiment of the present application;

[0032] Figure 7 A flowchart of an operating system definition method provided in an embodiment of the present application;

[0033] Figure 8A schematic diagram of a scenario for obtaining application call information provided in an embodiment of the present application;

[0034] Fig. 9 A schematic diagram of a scenario for inserting redirection information provided in an embodiment of the present application;

[0035] Fig.10 A schematic diagram of a scenario for obtaining a device operation log provided in an embodiment of the present application;

[0036] Fig.11 A schematic diagram of a scenario of target CPU interface information provided in an embodiment of the present application;

[0037] Fig.12 A flowchart of another operating system definition method provided in an embodiment of the present application;

[0038] Fig.13 A schematic diagram of the architecture of the operating system definition method provided in the embodiment of the present application applied to a physical machine;

[0039] Fig.14 A schematic diagram of the architecture of an operating system definition method provided in an embodiment of the present application applied to a virtual machine;

[0040] Fig.15 A schematic diagram of the structure of an operating system redefinition device provided in an embodiment of the present application;

[0041] Fig.16 A schematic diagram of the structure of another operating system redefinition device provided in an embodiment of the present application; Fig.17 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application; Fig.18 A schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0042] In the description of this application, unless otherwise specified, " / " indicates that the objects associated with each other are in an "or" relationship, for example, A / B can represent A or B; "and / or" in this application is merely a description of the association relationship between associated objects, indicating that three relationships may exist, for example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.

[0043] In the description of this application, unless otherwise specified, "plurality" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0044] In addition, in order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit the difference.

[0045] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.

[0046] It is understood that the "embodiment" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the various embodiments in the entire specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It is understood that in various embodiments of the present application, the size of the sequence number of each process does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.

[0047] It can be understood that some optional features in the embodiments of the present application may be implemented independently in certain scenarios without relying on other features, such as the solution on which they are currently based, to solve corresponding technical problems and achieve corresponding effects, or may be combined with other features according to needs in certain scenarios. Accordingly, the devices provided in the embodiments of the present application may also realize these features or functions accordingly, which will not be elaborated here.

[0048] In this application, unless otherwise specified, the same or similar parts between the various embodiments can refer to each other. In this application, if there is no special description or logical conflict between the various embodiments, the terms and / or descriptions between different embodiments are consistent and can be referenced to each other, and different embodiments can be combined to form new embodiments according to their inherent logical relationships. The following implementation methods of this application do not constitute a limitation on the scope of protection of this application.

[0049] The ideal state when an application runs on an operating system is to maximize hardware utilization and maximize the performance indicators of the application. However, different applications have different access paths to the software stack of the operating system, so the same operating system configuration cannot meet the needs of all applications.

[0050] The basic library executable and linkable format (ELF) files and kernel ELF files on the entire stack of operating system software are the execution files of the application, which include instructions that are ultimately run on the central processing unit (CPU).

[0051] In the prior art, the adaptability configuration adjustment of the operating system for a single application can be combined and configured through the configuration interface provided by the basic library and kernel of the operating system, so as to determine the best configuration combination.

[0052] like Figure 1 As shown, the electronic device can adjust the preset basic library configuration file of the basic library to adapt the application. The kernel of the electronic device is preset with kernel structure interface, proc structure interface and kernel data structure interface; there are also kernel device interface, sys device interface, system device interface and other kernel interfaces. The electronic device can adjust the kernel configuration through these kernel interfaces to adapt the application.

[0053] In the existing operating system's adaptive configuration adjustment scheme for application programs, electronic devices can only be configured in combination according to existing configuration interfaces, and cannot set configuration interfaces for application programs, resulting in poor adaptability.

[0054] The embodiment of the present application provides an operating system definition method and device, which can adjust the operating system basic library files, kernel files and CPU interfaces called by a single application program when running, and is not limited to the existing configuration interface, and can more accurately and quickly realize the adaptation of the application program. The method includes: obtaining application call information, the application call information includes basic library file information, basic library process information, kernel program interface API call information and / or CPU call information; obtaining device operation log, the device operation log includes application operation log, basic library access log, kernel API access log and / or central processing unit CPU operation log; determining the target operating system configuration combination according to the application call information and the device operation log, the target operating system configuration combination includes target basic library file information, target kernel file information and / or target CPU interface information, the target basic library file information includes binary rearranged basic library files, and the target kernel file information includes binary rearranged kernel files; applying the target operating system configuration combination. In the embodiment of the present application, the operating system redefinition device can adjust the operating system basic library files, kernel files and / or CPU interfaces called by a single application program when running, and is not limited to the existing configuration interface, and can more accurately and quickly realize the adaptation of the application program.

[0055] like Figure 2 As shown, the operating system definition method provided in the embodiment of the present application can be applied to Figure 2 The physical machine shown has an operating system deployed on it, and the application runs on the operating system. The physical machine includes an application, a basic library, a kernel and a kernel built-in driver, as well as modules such as a CPU, a memory, and peripherals, and may also include other modules, which are not specifically limited here.

[0056] like Figure 3 As shown, the operating system definition method provided in the embodiment of the present application can also be applied to Figure 3 The containerized physical machine shown has an operating system deployed on it, and the application runs on the operating system. The containerized physical machine may include multiple applications and corresponding multiple basic libraries, and the multiple applications correspond to the multiple basic libraries one by one. Each application is packaged with the corresponding basic library, for example, application 1 is packaged with basic library 1, and application 2 is packaged with basic library 2, and they are "containerized" and isolated in the operating system. The containerized physical machine also includes a kernel and kernel built-in drivers, as well as modules such as CPU, memory, and peripherals, and may also include other modules, which are not specifically limited here.

[0057] like Figure 4 As shown, the operating system definition method provided in the embodiment of the present application can also be applied to Figure 4In the virtual machine shown, a virtual machine monitor (VMM) is also deployed on the virtual machine relative to the physical machine. The operating system redefinition device can start the virtual machine on the VMM. The virtual machine has an operating system deployed on it, and the application runs on the operating system. The virtual machine includes an application, a basic library, a kernel and a kernel built-in driver, a VMM, and modules such as a CPU, a memory, and peripherals. It may also include other modules, which are not specifically limited here.

[0058] like Figure 5 As shown, the operating system definition method provided in the embodiment of the present application can also be applied to Figure 5 The containerized virtual machine shown has an operating system deployed on it, and the application runs on the operating system. The containerized virtual machine may include multiple applications and corresponding multiple basic libraries, and the multiple applications correspond to the multiple basic libraries one by one. Each application is packaged with the corresponding basic library, for example, application 1 is packaged with basic library 1, and application 2 is packaged with basic library 2, and is "containerized" and isolated in the operating system of the virtual machine. The containerized virtual machine also includes a kernel and kernel built-in drivers, as well as modules such as CPU, memory, and peripherals, and may also include other modules, which are not specifically limited here.

[0059] In the embodiment of the present application, the CPU module may also be other modules with the same function, such as a memory module, an input / output IO module, and an easy-to-buy chip module, which are not specifically limited here. In the subsequent embodiments, the CPU is used as an example for explanation, and similar operations may also be performed on other modules, which are not specifically limited here.

[0060] like Figure 6 As shown, the operating system definition method provided in the embodiment of the present application can be applied to Figure 6 The operating system redefinition device shown includes a full-stack dependency generation module, a software binary generation module, an operation track collection module, and a software definition module. Among them:

[0061] The full-stack dependency generation module is used to determine the application call information when the application is running, that is, the relevant files and relevant interfaces of the operating system that the application depends on when running. The application call information may include the basic library file information of the basic library called by the application, such as the basic library dynamic binary file and the basic library static binary file; it also includes the basic library process information of the basic library called by the application; it also includes the program interface (application programming interface, API) call information of the kernel called by the application at runtime, for example, kernel API call information. In addition, other information may also be included, such as CPU interface call information, which is not limited here.

[0062] The software binary generation module is used to determine the call information that needs to be binary regenerated, and to perform binary generation (adaptive adjustment) on the call information. For example, binary rearrangement of the basic library files can also be performed on the kernel files. When the application is rerun, it can call the binary reorganized basic library files and the binary reorganized kernel files.

[0063] In the embodiment of the present application, when the software binary generation module performs binary regeneration, redirection information can also be inserted into the module, and the redirection information is used for binary reordering of the application, the basic library and the kernel. For example, it is used to insert a redirection plug-in in the application, and the redirection plug-in is used for the application to perform binary reordering; it is also used to insert a redirection field in the basic library, and the redirection field is used for the basic library to perform binary reordering; it is also used to insert a redirection callback function in the kernel, and the redirection callback function is used for the kernel to perform binary reordering. .

[0064] In one possible implementation, when the operating system redefinition device performs adaptive adjustment on multiple applications at the same time, the software binary generation module of the operating system redefinition device can simultaneously determine the application that needs to be adaptively adjusted among the multiple applications, and then perform adaptive adjustment on the calling information of the single application.

[0065] The operation track collection module is used to collect the device operation log when the application is running. The device operation log may include application operation log, basic library access log, kernel API access log and / or CPU operation log and other device logs, which are not limited here.

[0066] The software definition module is used to determine the target operating system configuration combination according to the device operation log and the application call information, and the target operating system configuration combination includes the target basic library file information, the target kernel file information and / or the target CPU interface information. The target basic library file configuration information includes the basic library file after binary rearrangement, and the target kernel file configuration information includes the kernel file after binary rearrangement. It can be understood that the software definition module can adjust the configuration of the operating system according to the device operation log and the application call information. The specific adjustment method can be to binary regenerate the files, interfaces and other information that the application depends on when running, so as to achieve the adaptive adjustment of the operating system to the application, which can be understood as customizing the operating system for a single application.

[0067] like Figure 7 As shown, an operating system definition method provided in an embodiment of the present application includes the following steps:

[0068] 701. The operating system redefines the device to obtain application program call information.

[0069] The operating system redefinition device obtains application call information, which includes basic library file information, basic library process information, kernel API call information and / or CPU call information called by the application running on the operating system redefinition device.

[0070] Specifically, Figure 6 As shown, the operating system redefinition device can obtain application program call information through a full-stack dependency generation module.

[0071] In one possible implementation, Figure 8 As shown, the operating system redefines the basic library file information of the application call information determined by the device through the full stack dependency generation module, and the full stack dependency generation module includes a runtime dependency parsing unit and a static dependency parsing acceleration unit. In the embodiment of the present application, the full stack software involved in the runtime of the application includes modules such as the application, the basic library, the kernel and the CPU. Among them, the basic library includes a basic library configuration file and a basic library ELF file; the kernel module includes a system call interface (system call interface); a kernel structure interface, a proc structure interface and a kernel data structure interface; there are also kernel device interfaces, sys device interfaces, system device interfaces and other interfaces of the kernel.

[0072] The operating system redefinition device can obtain dynamic call information of the application runtime call through the runtime dependency parsing unit. The dynamic call information may include user state call stack information, kernel state call stack information, and the function usage interface and CPU instruction characteristics called by the application.

[0073] In the embodiment of the present application, the operating system redefinition device obtains the above dynamic call information through the runtime dependency parsing unit by using the Linux perf technology or other technologies, which are not limited here.

[0074] The operating system redefinition device can also obtain static call information through the static dependency resolution acceleration unit, and the static call information can include a static binary directory-level dependency directory and various indirect dependency directories. The dependency directory is a dependency directory between the application and the basic components of the basic library, which can also be understood as the basic component directory of the basic library that the operating system redefinition device determines to be specifically called by the application through the static dependency resolution acceleration unit, as well as other basic component directories called.

[0075] In one possible implementation, since the static call information obtained by the operating system redefinition device involves many components, it may reduce the efficiency of subsequent steps. Therefore, the operating system redefinition device can use dynamic call information to remove useless dependencies in the static call information. For example, the operating system redefinition device can use function access interface information and CPU instruction characteristics to remove useless files in the dependency directory, thereby generating a minimum set of dependency lists, that is, a dependency whitelist file list.

[0076] Then the operating system redefinition device determines the basic library file information through the dynamic call information and the static call information, and the basic library file information includes the above dynamic call information and the static call information.

[0077] The above is a specific implementation method for the operating system redefinition device to obtain basic library file information. It can be understood that, in addition to this, the operating system redefinition device can also obtain basic library process information, kernel API call information and CPU call information in the same or similar manner, which will not be repeated here.

[0078] In the embodiment of the present application, the operating system redefinition device automatically identifies the dependency list of the application on the basic library by obtaining the application calling information.

[0079] 702. The operating system redefines the device and inserts redirection information.

[0080] In the case that the operating system of the operating system redefining device lacks binary redirection capability, the operating system redefining device may insert redirection information into the operating system, thereby enabling the operating system of the operating system redefining device to perform binary rearrangement.

[0081] Specifically, Fig. 9As shown, when the application does not support binary reordering, the operating system redefinition device can insert a redirection plug-in into the application through a software binary generation module, and the redirection plug-in can be used by the application to perform binary reordering on the called functions and global variables.

[0082] In one possible implementation, Fig. 9 As shown, in the case where the application does not have a redirection field, the operating system redefinition device may consider that the application does not support binary reordering, and the operating system redefinition device may insert a redirection field secondary generation unit in the application, and the redirection field secondary generation unit may determine the key functions and global variables in the application based on the function interface of the ELF file in the basic library and the function call stack information when the application is dynamically running. The operating system redefinition device may adjust the key functions and global variables through the application hot patch technology, so that the application supports binary reordering.

[0083] In the case that the basic library does not support binary reordering, the operating system redefinition device may insert a redirection field into the basic library through the software binary generation module, and the redirection field is used for the basic library to perform binary reordering.

[0084] In one possible implementation, Fig. 9 As shown, in the case where the basic library does not support binary reordering, the operating system redefinition device can insert a relocation field enable unit in the basic library, and the relocation field enable unit can configure the basic library binary support relocation field, so that the basic library can support the binary optimization and layout tool (BOLT) binary reordering capability.

[0085] In the case that the kernel does not support binary reordering, the operating system redefinition device may insert a redirection callback function into the kernel through a software binary generation module, and the redirection callback function is used for the kernel to perform binary reordering.

[0086] In one possible implementation, Fig. 9As shown, in the case where the kernel does not support binary reordering, the operating system redefinition device can add a callback function in the kernel's API call process according to the kernel API call information. On the one hand, the callback function can realize equivalent variable replacement based on the ELF protocol, that is, the ELF variable can be replaced by the callback function without affecting the meaning of the ELF variable, thereby realizing the API implementation logic of the control kernel. On the other hand, the callback function can add a new function based on the kernel programmable framework, for example, the callback function can develop a new function in ELF through the extended Berkeley Packet Filter (EBPF) technology, thereby realizing the API implementation logic of the control kernel.

[0087] In the embodiment of the present application, if the application, basic library and kernel in the operating system do not support binary reordering, the operating system redefinition device can insert redirection information therein to enable the application, basic library and kernel to achieve binary reordering.

[0088] In the embodiment of the present application, the operating system redefinition device inserts the redirection information when the operating system of the operating system redefinition device lacks binary redirection capability. If the operating system of the operating system redefinition device has binary redirection capability, the operating system redefinition device may not insert the redirection information, that is, the operating system redefinition device may not execute step 702. The specific details are not limited here.

[0089] In the embodiment of the present application, the operating system redefinition device can insert redirection information into the operating system, which solves the problem of the operating system lacking binary redirection capability and is suitable for scenarios where binary redirection capability is lacking.

[0090] 703. The operating system redefines the device to obtain the device operation log.

[0091] The operating system redefinition device obtains the device operation log, and the device operation log includes the application operation log, the basic library access log, the kernel API access log and / or the central processing unit CPU operation log.

[0092] like Fig.10 As shown, the operating system redefinition device can obtain application running logs, basic library access logs, kernel API access logs and central processing unit CPU running logs according to application call information through the running track collection module. Specifically:

[0093] For applications, the operating system redefinition device can collect application running logs through the binary optimization and layout tool BOLT technology or the linux perf tool. The operating system redefinition device can also process the application running logs through the bolt tool perf2bolt.

[0094] For the basic library, the operating system redefinition device can parse the corresponding dynamic process information through the static file list, and collect logs of the dynamic process information at the same time through the bolt instrument command or the perf command. For example, the operating system redefinition device can determine the binary file list associated with the application in the basic library, and establish a mapping relationship table between the binary file and the dynamic process. As shown in Table 1, file 1 corresponds to process 1, file 2 corresponds to process 2, ..., file n corresponds to process n.

[0095] Table 1

[0096] File 1 Process 1 File 2 Process 2 …… …… File Process n

[0097] For the kernel, the operating system redefines the device to obtain the kernel's running log, and then collects the running track information of the kernel-specific API through log filtering, thereby obtaining the kernel API access log. The kernel API access log may include information such as memory access hotspots and sub-function call hotspots. In addition, it may also include other information, which is not limited here.

[0098] For the CPU, the operating system redefinition device may collect the CPU's performance monitor unit (PMU) information through the perf command, and record the CPU trace information when the application is running through the instruction register and / or the program counter.

[0099] In an embodiment of the present application, the operating system redefinition device can obtain application running logs, basic library access logs, kernel API access logs and / or central processing unit CPU running logs in the above-mentioned manner. In addition, it can also obtain other device running logs, such as kernel running logs, etc., which are not limited here.

[0100] 704. The operating system redefining device determines a target operating system configuration combination according to the application program calling information and the device operation log.

[0101] After obtaining the application call information and the device operation log, the operating system redefinition device can determine the target operating system configuration combination according to the application call information and the device operation log, and the target operating system configuration combination is the operating system configuration combination with the best efficiency when the application runs on the operating system redefinition device, and the target operating system configuration combination includes the target basic library file information, the target kernel file information and the target CPU interface information, that is, the target basic library file information is the basic library file information with the best efficiency when the application runs on the operating system of the operating system redefinition device, the target kernel file information is the kernel file information with the best efficiency when the application runs on the operating system of the operating system redefinition device, and the target CPU interface information is the CPU interface information with the best efficiency when the application runs on the operating system of the operating system redefinition device. The target basic library file configuration information includes the basic library file after binary rearrangement, and the target kernel file configuration information includes the kernel file after binary rearrangement.

[0102] Specifically, Fig.11 As shown, after obtaining the device operation log and the application call information, the operating system redefinition device will determine the correlation between the efficiency parameter and the application call information based on the device operation log. The efficiency parameter is a related parameter that can reflect the efficiency of the application running on the operating system redefinition device, that is, when the application runs on the operating system, the mapping relationship between the specific configuration of the application call information and the efficiency of the application can be determined, so that which configurations of the operating system are the most efficient configurations of the corresponding application, and then determine the specific configuration of the operating system with the highest efficiency of the application (that is, the specific configuration of the application call information) as the target operating system configuration combination.

[0103] For example Fig.11 As shown, for the interface-related configuration of the CPU, the operating system redefinition device can determine the front-end hotspot function information and hotspot variable information according to the acquired PMU operation information through the kernel front-end hotspot analysis unit, and then establish a mapping relationship table reflecting the hotspot function and hotspot variable information and the CPU private characteristics (i.e., configurable characteristics) through the kernel static symbol table, as shown in Table 2, kernel symbol table function 1 is associated with CPU characteristic 1, kernel symbol table function 2 is associated with CPU characteristic 2, and kernel symbol table function 3 is associated with CPU characteristic 3.

[0104] In the embodiment of the present application, the CPU characteristic refers to the private characteristic that the CPU allows to be customized, and the operating system redefinition device can implement the definition of the CPU through the corresponding CPU private characteristic configuration interface. The operating system redefinition device can adjust the relevant configuration through the configuration register provided by the private characteristic of the CPU or the micro-architecture characteristic, and provide a configuration interface through software.

[0105] Table 2

[0106] Kernel symbol table function 1 CPU Features 1 Kernel symbol table function 2 CPU Features 2 Kernel symbol table function 3 CPU Features 3

[0107] After determining the mapping relationship table between hot spot functions and CPU private characteristics, the operating system redefinition device can determine the target CPU configuration information, which includes the CPU private characteristic configuration interface, thereby realizing software-defined CPU.

[0108] In the embodiment of the present application, the operating system redefinition device can also customize the private characteristics of the CPU, thereby solving the problem that the CPU chip cannot be customized and configured for the application program.

[0109] In the embodiment of the present application, the operating system redefinition device can also perform binary rearrangement optimization on the kernel, solving the problem that the kernel only has the provided parameter configuration and lacks the ability to apply extension customization and rewrite.

[0110] 705. The operating system redefines the device to apply the target operating system configuration combination.

[0111] After determining the target operating system configuration combination, the operating system redefining device applies the target operating system configuration combination and re-runs the application program so that the configuration of the call information when the application program is running is the target operating system configuration combination.

[0112] In one possible implementation, Fig.12 As shown, the operating system redefinition device will repeatedly execute steps 701 to 705 until a preset condition is met. For example, there is a preset threshold for a certain aspect of the performance of the operating system redefinition device running an application. Only when a certain aspect of the performance of the application meets the threshold, the operating system redefinition device stops executing steps 701 to 705 and completes the redefinition of the operating system adapted to the application.

[0113] In the embodiment of the present application, the operating system redefinition device may be as follows: Figure 2 The physical machine shown can also be Figure 3 The physical machine of the containerized deployment shown in Fig.13 As shown, when the operating system definition method provided in the embodiment of the present application is applied to a physical machine, it can be as follows Fig.13 As shown, the adaptive adjustment of the operating system to the application program is implemented on the physical machine through the full-stack dependency generation module, the software binary generation module, the operation track collection module and the software definition module.

[0114] In the embodiment of the present application, the operating system redefinition device may be as follows: Figure 4 The virtual machine shown can also be Figure 5The containerized deployment virtual machine shown in Fig.14 As shown, when the operating system definition method provided in the embodiment of the present application is applied to a virtual machine, it can be as follows Fig.14 As shown, the adaptive adjustment of the operating system to the application program is implemented on the physical machine through the full-stack dependency generation module, the software binary generation module, the operation track collection module and the software definition module.

[0115] In the embodiment of the present application, relative to the physical machine, the full stack software diagram of the virtual machine also includes a VMM module, such as Fig. 9 As shown, the VMM module includes a VMM user state unit and a VMM kernel state unit. When the operating system definition method provided in the embodiment of the present application is applied to a virtual machine, the VMM user state unit is processed as a basic library component, and the VMM kernel state unit is processed as other kernel interfaces, thereby realizing that the operating system definition method provided in the embodiment of the present application is also applicable to the virtual machine.

[0116] In the embodiment of the present application, for both the containerized virtual machine and the containerized physical machine, the application and the basic library are containerized, and the application and the basic library in different containers may be different. Since the modules of the application and the basic library in the embodiment of the present application are decoupled and implemented independently, they can be deployed in containers to process the application and the basic library, and can also be deployed in physical machines and virtual machines to process the application and the basic library. Therefore, the containerized deployment does not affect the operating system definition provided in the embodiment of the present application to be implemented on the operating system redefinition device.

[0117] In an embodiment of the present application, the operating system redefinition device automatically identifies the dependency file information of the application on the basic library by obtaining the application call information. And the dependent basic library binary is automatically rearranged to achieve adaptive operating system definition for multiple applications at the same time. At the same time, redirection information can be inserted into the operating system, which solves the problem of the lack of binary redirection capability of the operating system, and is suitable for scenarios where binary redirection capability is lacking. At the same time, the kernel can also be binary reordered and optimized, which solves the problem that the kernel only has the parameter configuration that has been provided and lacks the ability to customize and rewrite applications. The operating system redefinition device can also customize the private characteristics of the CPU, thereby solving the problem that the CPU chip cannot be customized and configured for applications.

[0118] The present application also provides an operating system redefinition device 1500, such as Fig.15 As shown, it includes a full-stack dependency generation module 1501, a software binary generation module 1502, an operation track collection module 1503 and a software definition module 1504, wherein:

[0119] The full stack dependency generation module 1501 is used to obtain application call information, which includes basic library file information, basic library process information, kernel program interface API call information and / or CPU call information called by the application when running on the system. For example, step 701 in the above method embodiment is performed: the operating system redefines the device to obtain the application call information.

[0120] The software binary generation module 1502 is used to insert a redirection plug-in into the application, and the redirection plug-in is used for the application to perform binary rearrangement; it is also used to insert a redirection field into the basic library, and the redirection field is used for the basic library to perform binary rearrangement; it is also used to insert a redirection callback function into the kernel, and the redirection callback function is used for the kernel to perform binary rearrangement. For example, step 702 in the above method embodiment is executed: the operating system redefines the device to insert the redirection information.

[0121] The operation track collection module 1503 is used to obtain the device operation log, which includes the application operation log, the basic library access log, the kernel API access log and / or the central processing unit CPU operation log. For example, step 703 in the above method embodiment is executed: the operating system redefines the device to obtain the device operation log according to the application call information.

[0122] The software definition module 1504 is used to determine the target operating system configuration combination according to the application call information and the device operation log, the target operating system configuration combination includes the target basic library file information, the target kernel file information and / or the target CPU interface information, the target basic library file information includes the basic library file after binary rearrangement, and the target kernel file information includes the kernel file after binary rearrangement. For example, step 704 in the above method embodiment is executed: the operating system redefinition device determines the target operating system configuration combination according to the application call information and the device operation log.

[0123] Among them, the full-stack dependency generation module 1501, the software binary generation module 1502, the operation track collection module 1503 and the software definition module 1504 can all be implemented by software, or can be implemented by hardware. Exemplarily, the implementation method of the full-stack dependency generation module 1501 is introduced below, taking the full-stack dependency generation module 1501 as an example. Similarly, the implementation methods of the software binary generation module 1502, the operation track collection module 1503 and the software definition module 1504 can refer to the implementation method of the full-stack dependency generation module 1501.

[0124] As an example of a software functional unit, the full-stack dependency generation module 1501 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (operating system redefinition device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the full-stack dependency generation module 1501 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Among them, usually a region can include multiple AZs.

[0125] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0126] As an example of a hardware functional unit, the full-stack dependency generation module 1501 may include at least one operating system redefinition device, such as a server, etc. Alternatively, the full-stack dependency generation module 1501 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0127] The multiple operating system redefinition devices included in the full-stack dependency generation module 1501 can be distributed in the same region or in different regions. The multiple operating system redefinition devices included in the full-stack dependency generation module 1501 can be distributed in the same AZ or in different AZs. Similarly, the multiple operating system redefinition devices included in the full-stack dependency generation module 1501 can be distributed in the same VPC or in multiple VPCs. Among them, the multiple operating system redefinition devices can be any combination of operating system redefinition devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0128] It should be noted that, in other embodiments, the full-stack dependency generation module 1501 can be used to execute any step in the operating system definition method, the software binary generation module 1502 can be used to execute any step in the operating system definition method, the operation trajectory collection module 1503 can be used to execute any step in the operating system definition method, and the software definition module 1504 can be used to execute any step in the operating system definition method. The steps that the full-stack dependency generation module 1501, the software binary generation module 1502, the operation trajectory collection module 1503 and the software definition module 1504 are responsible for implementing can be specified as needed. The full-stack dependency generation module 1501, the software binary generation module 1502, the operation trajectory collection module 1503 and the software definition module 1504 respectively implement different steps in the operating system definition method to realize all the functions of the operating system redefinition device.

[0129] The present application also provides a computing device 1600. Fig.16 As shown, computing device 1600 includes: bus 1602, processor 1604, memory 1606 and communication interface 1608. Processor 1604, memory 1606 and communication interface 1608 communicate through bus 1602. Computing device 1600 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in computing device 1600.

[0130] The bus 1602 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.16The bus 1604 may include a path for transmitting information between various components of the computing device 1600 (eg, the memory 1606, the processor 1604, and the communication interface 1608).

[0131] The processor 1604 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0132] The memory 1606 may include a volatile memory, such as a random access memory (RAM). The processor 1604 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).

[0133] The memory 1606 stores executable program codes, and the processor 1604 executes the executable program codes to respectively implement the functions of the aforementioned full-stack dependency generation module, software binary generation module, operation trace collection module, and / or software definition module, thereby implementing the operating system definition method. That is, the memory 1606 stores instructions for executing the operating system definition method.

[0134] Alternatively, the memory 1606 stores executable codes, and the processor 1604 executes the executable codes to respectively implement the functions of the aforementioned computing devices, thereby implementing the operating system definition method. That is, the memory 1606 stores instructions for the operating system definition method.

[0135] The communication interface 1603 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1600 and other devices or a communication network.

[0136] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0137] like Fig.17 As shown, the computing device cluster includes at least one computing device 1700. The memory 1706 in one or more computing devices 1700 in the computing device cluster may store the same instructions for executing the operating system definition method.

[0138] In some possible implementations, the memory 1706 of one or more computing devices 1700 in the computing device cluster may also store partial instructions for executing the operating system definition method. In other words, the combination of one or more computing devices 1700 may jointly execute instructions for executing the operating system definition method.

[0139] It should be noted that the memory 1706 in different computing devices 1700 in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the operating system redefinition device. That is, the instructions stored in the memory 1706 in different computing devices 1700 can implement the functions of one or more modules among the full-stack dependency generation module, the software binary generation module, the operation track collection module and the software definition module.

[0140] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.18 A possible implementation is shown. Fig.18 As shown, two computing devices 1700A and 1700B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 1706 in the computing device 1700A stores instructions for executing the functions of the full stack dependency generation module and the software binary generation module. At the same time, the memory 1706 in the computing device 1700B stores instructions for executing the functions of the operation trajectory collection module and the software definition module.

[0141] Fig.18 The connection method between the computing device clusters shown can be based on the consideration that the operating system definition method provided in this application needs to determine the target operating system configuration combination and obtain the device operation log, so it is considered to entrust the functions implemented by the operation trajectory collection module and the software definition module to the computing device 1700B for execution.

[0142] It should be understood that Fig.18 The functionality of the computing device 1700A shown in FIG. 17 may also be implemented by multiple computing devices 1700. Similarly, the functionality of the computing device 1700B may also be implemented by multiple computing devices 1700.

[0143] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Fig.17 and Fig.18 The connection mode of the computing device cluster is different in that the memory 1706 in one or more computing devices 1700 in the computing device cluster may store the same instructions for executing the operating system definition method.

[0144] In some possible implementations, the memory 1706 of one or more computing devices 1700 in the computing device cluster may also store partial instructions for executing the operating system definition method. In other words, the combination of one or more computing devices 1700 may jointly execute instructions for executing the operating system definition method.

[0145] The present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on an operating system redefinition device or stored in any available medium. When the computer program product is run on an operating system redefinition device, the operating system redefinition device executes the aforementioned Figure 7 The operating system definition method executed in the illustrated embodiment.

[0146] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that the operating system redefinition device can store or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the operating system redefinition device to perform the aforementioned Figure 7 The operating system definition method executed in the illustrated embodiment.

[0147] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loading and executing computer program instructions on a computer, all or part of the processes (or functions) of the embodiments of the present application are implemented. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. Computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions can be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that contains one or more servers that can be integrated with a medium. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)), etc. In the embodiment of the present application, the computer may include the above device.

[0148] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other changes to the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

Claims

1. A method for defining an operating system, It is characterized in that The method comprises: Acquire application call information, wherein the application call information includes basic library file information, basic library process information, kernel program interface API call information and / or CPU call information called by the application when running on the platform; Obtaining device operation logs, wherein the device operation logs include application operation logs, basic library access logs, kernel API access logs and / or central processing unit CPU operation logs; Determine a target operating system configuration combination according to the application call information and the device operation log, wherein the target operating system configuration combination includes target basic library file information, target kernel file information and / or target CPU interface information, wherein the target basic library file information includes binary rearranged basic library files, and the target kernel file information includes binary rearranged kernel files; Apply the target operating system configuration combination.

2. The method according to claim 1, It is characterized in that Before acquiring the device operation log according to the application call information and after determining the target operating system configuration combination according to the device operation log: inserting a redirection plug-in into the application, wherein the redirection plug-in is used for performing binary reordering on the application; Inserting a redirection field into the basic library, wherein the redirection field is used for binary rearrangement of the basic library; A redirection callback function is inserted into the kernel, and the redirection callback function is used for the kernel to perform binary reordering.

3. The method according to claim 1 or 2, It is characterized in that The obtaining of application call information includes: Acquire dynamic call information, wherein the dynamic call information includes user state call stack information, kernel state call stack information, function usage interface and / or CPU instruction feature information; Obtaining static call information, wherein the static call information includes basic library component information that the application depends on; The basic library file information is determined according to the dynamic call information and the static call information.

4. The method according to claim 3, It is characterized in that The determining the target operating system configuration combination according to the device operation log includes: The target CPU configuration information is determined according to the CPU operation log.

5. The method according to claim 4, It is characterized in that The CPU operation log includes performance monitoring unit information, and determining target CPU configuration information according to the CPU operation log includes: Determine the hot functions and hot variables of the CPU according to the performance monitoring unit information; Determine a mapping relationship table between hotspot functions and hotspot variables of the CPU and configurable characteristics of the CPU; The target CPU configuration information is determined according to the mapping relationship table.

6. An operating system redefinition device, It is characterized in that The operating system redefinition device includes a full-stack dependency generation module, an operation track collection module and a software definition module, wherein: A full-stack dependency generation module is used to obtain application call information, wherein the application call information includes basic library file information, basic library process information, kernel program interface API call information and / or CPU call information called by the application when running on the platform; An operation track collection module is used to obtain a device operation log, wherein the device operation log includes an application operation log, a basic library access log, a kernel API access log and / or a central processing unit CPU operation log; A software definition module is used to determine a target operating system configuration combination based on the application call information and the device operation log, wherein the target operating system configuration combination includes target basic library file information, target kernel file information and / or target CPU interface information, wherein the target basic library file information includes binary rearranged basic library files, and the target kernel file information includes binary rearranged kernel files.

7. The operating system redefinition device according to claim 6, It is characterized in that The operating system redefinition device also includes: A software binary generation module is used to insert a redirection plug-in into the application, and the redirection plug-in is used for the application to perform binary reordering; it is also used to insert a redirection field in the basic library, and the redirection field is used for the basic library to perform binary reordering; it is also used to insert a redirection callback function in the kernel, and the redirection callback function is used for the kernel to perform binary reordering.

8. The operating system redefinition device according to claim 6 or 7, It is characterized in that The full-stack dependency generation module is specifically used for: Acquire dynamic call information, wherein the dynamic call information includes user state call stack information, kernel state call stack information, function usage interface and / or CPU instruction feature information; Obtaining static call information, wherein the static call information includes basic library component information that the application depends on; The basic library file information is determined according to the dynamic call information and the static call information.

9. The operating system redefinition device according to claim 8, It is characterized in that The software definition module is specifically used to determine the target CPU configuration information according to the CPU operation log.

10. The operating system redefinition device according to claim 9, It is characterized in that The software definition module is specifically used for: Determine the hot functions and hot variables of the CPU according to the performance monitoring unit information; Determine a mapping relationship table between hotspot functions and hotspot variables of the CPU and configurable characteristics of the CPU; The target CPU configuration information is determined according to the mapping relationship table.

11. A computing device cluster, It is characterized in that comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 5.

12. A computer-readable storage medium, It is characterized in that The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 5.

13. A computer program product comprising instructions, It is characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 5.