Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1, 2, 7, 9 – 11 and 13 - 15 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Weimer (hereinafter Weimer, US 2022/0121457).
Regarding claim 1, Weimer discloses:
a method (see at least Fig. 2 and ph. [0036] that references the interaction of components from Fig. 1 ph. [0023] – [0035] that disclose a method), comprising:
by a first process of a computer system (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose an a dynamic linker) the kernel separate from the dynamic linker in at least one embodiment / implementation), wherein the first process is separate from an operating-system kernel of the computer system (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the kernel separate from the dynamic linker in at least one embodiment / implementation), and wherein the first process is executing a dynamic linker system (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the dynamic linker is used to handle runtime dependency processing, at which time the linker is executing its linking functions for the system),
receiving an indication associated with a second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the handling of the executable file that will be executed (at which time it is executed it is a process) and that the kernel determines that the executable file has at least one run-time dependency, thus the kernel used the indication to make that decision), wherein the second process is separate from the first process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the processing of the executable file and while it is executing it is separate from the dynamic linker used by the kernel in facilitating the successful execution of the executable file), and wherein the second process is (1) to be executed by the computer system or (2) executing by the computer system (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the processing / execution of the executable file);
determining, based on the indication, one or more dynamic linking operations associated with the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the kernel identifies that the executable file requires run-time dependencies and has the dynamic linker handle the runtime dependency processing, which will require at least one dynamic linking operation by the dynamic linker for the file); and
performing the one or more dynamic linking operations for the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the kernel identifies that the executable file requires run-time dependencies and has the dynamic linker handle the runtime dependency processing – demonstrating the performance of the dynamic linking by the dynamic linker for the file).
Regarding claim 2, the rejection of claim 1 is incorporated and Weimer discloses:
the first process is separate from an operating system of the computer system (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the kernel separate from the dynamic linker in at least one embodiment / implementation and as such the linker is separate from the kernel’s respective operating system).
Regarding claim 7, the rejection of claim 1 is incorporated and Weimer discloses:
the first process performs the one or more dynamic linking operations before the second process executes an instruction (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the kernel preparing the execution of the executable file and as part of that preparation it requests that the dynamic linker perform its tasks, further, as this is all in preparation for the executable file to be executed, the preparation steps, including those of the dynamic linker, will be performed before the executable file itself executes).
Regarding claim 9, the rejection of claim 1 is incorporated and Weimer discloses:
an operation of the one or more dynamic linking operations includes mapping a file to memory corresponding to the second process, wherein the operation is performed by the first process communicating with the operating-system kernel via a kernel call (see at least ph. [0028] for the executable file (which its executed form is a process) resolving/mapping to an actual address by the kernel or dynamic linker or a combination of the two and where the dynamic linker performs this action only upon the kernel transferring the runtime dependency processing to the dynamic linker, the kernel calls the dynamic linker in any event to perform these actions)).
Regarding claim 10, the rejection of claim 1 is incorporated and Weimer discloses:
an operation of the one or more dynamic linking operations includes loading one or more libraries into memory associated with the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the dynamic linker performs the runtime dependency processing that maps (i.e. brings into active/runtime memory) necessary data/files to executed the executable file), modifying code at runtime to call one or more functions corresponding to one or more libraries, resolving symbols in code to be executed by the second process, or performing Address Space Layout Randomization (ASLR).
Regarding claim 11, the rejection of claim 1 is incorporated and Weimer discloses:
the first process has file-access permission, and wherein the second process never has file-access permission (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the dynamic linker performs the runtime dependency processing and therefore is allowed to access the data/files necessary (therefore is permitted/has permission as per system operation) to those runtime dependency processing, while the executed executable file (i.e. a process) does not access / permission these files itself as per system operation).
Regarding claim 13, the rejection of claim 1 is incorporated and Weimer discloses:
by the first process:
mapping one or more dynamic libraries into an address space of the first process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that discloses the kernel invoking the linker to perform the runtime dependency processing and thereby bring the related files and programs (libraries of programs) into active memory (thereby facilitating their mapping) and they will have their own address space as they are in memory, see also at least ph. [0027] for the dynamic dependency function address, and at this point in the processing it has not yet bound them / linked them to the executable file for that file’s execution and will be, at that time in the handling of the linker, and therefore in its address space at that time); and
after mapping the one or more dynamic libraries into the address space of the first process:
mapping at least one of the one or more dynamic libraries into:
an address space of the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) after the linker is prepared all the relevant data and programs as part of its dependency processing, it then allows the executable file to be passed to the kernel for handling, where the kernel then allows the application to execute, and as such executes in its own memory, i.e. its own address space); and
an address space of a third process different from the first process and the second process (see at least ph. [0022] for the dynamic linker providing the dynamic dependency function of the computing environment that the dependency function is executing, which is then a function necessary to allow the executing executable file access to the linked data and programming at runtime, and therefore the linker provided this information to the dependency function).
Claim 14 is a non-transitory computer-readable medium version of claim 1 and is similarly rejected where Weimer discloses such a medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions in at least Fig. 1 and ph. [0023] – [0035] and throughout the reference through its disclosed features and steps.
Claim 15 is a non-transitory computer-readable medium version of claim 1 and is similarly rejected where Weimer discloses such a computer system, one or more processors and memory in at least Fig. 1 and ph. [0023] – [0035] and throughout the reference through its disclosed features and steps.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103(a) which forms the basis for all obviousness rejections set forth in this Office action:
A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102 of this title, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negatived by the manner in which the invention was made.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103(a) are summarized as follows:
Determining the scope and contents of the prior art.
Ascertaining the differences between the prior art and the claims at issue.
Resolving the level of ordinary skill in the pertinent art.
Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 3 and 4 are rejected under 35 U.S.C. 103(a) as being unpatentable over Weimer in view of Tan et al. (hereinafter Tan, US 2015/0356294).
Regarding claim 3, the rejection of claim 1 is incorporated and Weimer discloses:
the first process has [a] logical space separate from address space of the second process (see at least ph. [0028] for the executable file address resolving to an actual address) and at least ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose the kernel separate from the dynamic linker in at least one embodiment / implementation).
Weimer does not disclose, however, Tan discloses:
processes/programs with their own address space (see at least ph. [0299] for entry value is the address of … the dynamic linker).
It would have been obvious for a person of ordinary skill in the art at the time of filing to modify the teachings of Weimer, by the teachings of Tan in order to have dedicated logical execution addressing for appropriate programs to ensure proper order of execution for called programs and their respective routines.
Regarding claim 4, the rejection of claim 3 is incorporated and Weimer discloses:
the first process is configured to modify the address space of the second process (see at least ph. [0028] where the dynamic linker (or kernel or both) copy the execution file contents into the execution environment, which is then a different/ modified location and therefore address and address space from its previous location).
Claim 5 is rejected under 35 U.S.C. 103(a) as being unpatentable over Weimer in view of Wimmer et al. (hereinafter Wimmer, US 2020/0117509).
Regarding claim 5, the rejection of claim 1 is incorporated and Weimer does not expressly disclose, however Wimmer discloses:
by the first process, modifying a process image to be executed by the second process (see at least ph. [0059] discloses the dynamic linker loading an image file (in non-persistent storage, thus in active memory and is a process at said point) and adjusting its code).
It would have been obvious for a person of ordinary skill in the art at the time of filing to modify the teachings of Weimer, by the teachings of Wimmer in order to have safe copy and a work copy (image) thereby protecting the original from possible corruptions from processing.
Claims 6 and 12 are rejected under 35 U.S.C. 103(a) as being unpatentable over Weimer in view of Ionescu et al. (hereinafter Ionescu, US 2014/0317731).
Regarding claim 6, the rejection of claim 3 is incorporated and Weimer discloses:
by the first process, receiving, from a kernel, a request to perform dynamic linking for the second process (see at least ph. [0023] – [0035] (emphasis on ph. [0026] for the kernel transfers handling / requests the dynamic linker to handle the run-time dependency processing and see at least ph. [0040] – [0041] that disclose the dynamic linker loading the identified dependencies), wherein the request is received before determining the one or more dynamic linking operations associated with the second process (see at least ph. [0023] – [0035] (emphasis on ph. [0026] for the kernel transfers handling / requests the dynamic linker to handle the run-time dependency processing which would logically occur before the dynamic linker loads the dependencies as per ph. [0040] as it would not have yet been directed to do so but for by the kernel directive/request).
Weimer does not expressly disclose, however, Ionescu discloses:
a loader making requests (see at least claim 1 for the loader requesting that the dynamic link library become executable).
It would have been obvious for a person of ordinary skill in the art at the time of filing to modify the teachings of Weimer, by the teachings of Ionescu in order to allow a loading component of a computing system communicate to another component that it needs to activate to further .
Regarding claim 12, the rejection of claim 1 is incorporated and Weimer discloses:
by the first process, wherein the first process is executing:
identifying a software program to execute on the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026] the kernel invokes the linker and the linker then performs the runtime dependency processing, including the associated data and programs/routines/subroutines associated therewith);
loading at least a portion of the software program in memory associated with the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that disclose that the dynamic linker performs the runtime dependency processing necessary data/files to execute the executable file and as it is executing, then the necessary data and routines have been added to memory); and
providing control of a processor of the computer system to the second process (see at least Fig. 2 and ph. [0023] – [0035] (emphasis on ph. [0026]) that discloses the execution of the executable file, and therefore at least one processor of the computer system is used to facilitate the processing of said executable file).
Weimer does not expressly disclose, however, Ionescu discloses:
a loader is executing for a dynamic linker (see at least claim 1 for the loader requesting that the dynamic link library become executable).
It would have been obvious for a person of ordinary skill in the art at the time of filing to modify the teachings of Weimer, by the teachings of Ionescu in order to allow a loading component of a computing system communicate to another component that it needs to activate to further .
Claim 8 is rejected under 35 U.S.C. 103(a) as being unpatentable over Weimer in view of Hughes et al. (hereinafter Hughes, US 2016/0092674).
Regarding claim 8, the rejection of claim 7 is incorporated and Weimer discloses:
receiving, from the kernel via an inter-process communication, a request to perform an additional dynamic linking operation (see at least ph. [0023] – [0035] (emphasis on ph. [0026] for the kernel transfers handling / requests the dynamic linker to handle the run-time dependency processing and this occurs for any number of the files that needs to be dynamically linked (see at least ph. [0040]) and therefore includes requests for any initial and subsequent / additional dynamic linking operations); and
in response to receiving the request, performing the additional dynamic linking operation for the second process (see at least ph. [0023] – [0035] (emphasis on ph. [0026] for the kernel transfers handling / requests the dynamic linker to handle the run-time dependency processing and this occurs for any number of the files that needs to be dynamically linked (see at least ph. [0040]) and therefore includes requests for any initial and subsequent / additional dynamic linking operations - indicating that the actions are actually performed during the system’s execution thereof).
Weimer does not expressly disclose, however, Hughes discloses:
a process making requests (see at least ph. [0066] for the process requesting access to a shared library function via calls to the dynamic linker).
It would have been obvious for a person of ordinary skill in the art at the time of filing to modify the teachings of Weimer, by the teachings of Hughes in order to allow a process communication options to invoke other system processes to assist in the execution of a computer system task.
Other References Cited Not Relied Upon
Wang et al. (US 2023/0342164) discloses a linker between a system library and a kernel layer where dependency libraries may be loaded and incorporated into an application and its respective dynamic link libraries.
Kanai et al. (US 2020/0184067) discloses a dynamic linker requesting a kernel to ready a dynamic link library using dll information.
Treadwell. (US 2009/0165131) a process that may exist in a kernel driver and a system process in the background not part of the kernel and a DLL loaded into every application.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CRAIG C DORAIS whose telephone number is (571)270-3371. The examiner can normally be reached M-F 9:00 am - 6:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Pierre Vital can be reached at 5712724215. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CRAIG C DORAIS/Primary Examiner, Art Unit 2198