IP Library Granted Patent US 8,286,144
Granted Patent B2
US 8,286,144 · App. 11/906,106 · Granted Oct 9, 2012

Administering a process filesystem with respect to program code conversion

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,286,144
App. No.
11/906,106
Granted
Oct 9, 2012
Kind
B2
Abstract

A technique is provided for administering references to a subject process filesystem during translation of subject code into target code in a dynamic binary translator. The subject code for execution on a subject processor is received by a translator, and corresponding target code for execution on the target processor is generated. The translator is arranged to establish, populate and maintain a process data structure, so that code can be generated by the translator in which subject references to the subject process filesystem are handled effectively.

Claims (56)

1. A computer apparatus comprising:

a target processor; and

data storage coupled to the target processor, the data storage including:

an operating system having a target process filesystem; and

a translator process running above the operating system that dynamically translates received subject code intended for execution on a subject processor into target code for execution on the operating system by the target processor, wherein the translator process, when executed, is arranged:

(a) to populate a target process data structure with information concerning the translator process; and

(b) responsive to a reference made in the received subject code to information in a subject process filesystem, to refer to the target process data structure instead of the target process filesystem.

2. The computer apparatus of claim 1 , wherein the translator process is arranged to establish a further translator process in response to each received subject code instruction which, when executed on a subject processor, would establish a subject process.

3. The computer apparatus of claim 2 , wherein the translator process and each further translator process are different instances of a common process.

4. The computer apparatus of claim 3 , wherein the translator process and each further translator process populate and refer to the same target process data structure.

5. The computer apparatus of claim 4 , wherein the target process data structure comprises one or both of: (a) a directory accessible to each translator process; and (b) a shared memory region accessible to each translator process.

6. The computer apparatus of claim 1 , wherein the translator process is arranged to populate the target process data structure with a process identifier for each translator process, the process identifier corresponding to that which would be allocated to the subject processes established in response to the received subject code instructions, when executed on a subject processor.

7. The computer apparatus of claim 1 , further comprising an auditor arranged to check the status of translator processes whose information is present in the target process data structure, and to remove from the target process data structure information relating to translator processes which are no-longer running.

8. The computer apparatus of claim 7 , wherein the auditor is arranged to check periodically the status of translator processes whose information is present in the target process data structure.

9. The computer apparatus of claim 7 , wherein the auditor comprises part of the translator process.

10. The computer apparatus of claim 1 , further comprising an auditor, wherein the auditor is arranged to record that a reference has been made to information in the target process data structure.

11. The computer apparatus of claim 10 , wherein the auditor is arranged to record a first identifier for the translator process making the reference in association with a second identifier for a translator process whose information is being referenced.

12. The computer apparatus of claim 11 , wherein the auditor is arranged to record the first and second identifiers in the target process data structure.

13. The computer apparatus of claim 12 , wherein the auditor is arranged to remove from the target process data structure the data it has recorded when the process whose information is being referenced is determined to be no-longer running.

14. The computer apparatus of claim 1 , wherein the translator process removes information relating to itself from the target process data structure when the translator process exits.

15. The computer apparatus of claim 1 , wherein the target processor employs a same instruction set architecture as the subject processor on which the subject code is intended for execution.

16. The computer apparatus of claim 1 , wherein the translator process comprises a Solaris-to-Linux translator.

17. The computer apparatus of claim 1 , wherein the translator process, responsive a call in the subject code, verifies by reference to the target process data structure that a target process referenced by the call is currently running.

18. The computer apparatus of claim 1 , wherein the target process data structure includes information regarding a memory mapping of the translator process.

19. A method in a data processing system of administering a process filesystem with respect to program code conversion from subject code for execution on a subject processor to target code for execution by a target processor of the data processing system, the method comprising:

the data processing system executing an operating system having a target process filesystem;

the data processing system establishing a translator process running above the operating system in response to received subject code which, when executed on a subject processor, would establish a subject process;

the translator process dynamically translating received subject code intended for execution on a subject processor into target code for execution by the target processor on the operating system;

populating a target process data structure accessible to the translator process with information concerning the translator process established in response to the received subject code; and

in response to a reference in the received subject code to information in a subject process filesystem, referring to the target process data structure populated with the information concerning the translator process instead of the target process file system of the operating system of the data processing system.

20. The method of claim 19 , wherein the target process data structure resides in a shared memory region accessible to multiple translator processes including the translator process.

21. The method of claim 19 , further comprising:

checking the status of processes whose information is stored in the target process data structure; and

removing from the target process data structure information relating to translator processes which are no-longer running.

22. The method of claim 21 , wherein the step of checking the status of processes whose information is stored in the data structure is performed periodically.

23. The method of claim 19 , further comprising:

recording that a reference has been made to information in the target process data structure by recording a first identifier for the translator process making the reference in association with a second identifier for the translator process whose information is being referenced.

24. The method of claim 23 , further comprising:

removing from the target process data structure the first and second identifiers when the translator process whose information is being referenced is no-longer running.

25. The method of claim 19 , further comprising removing information relating to a process which is no-longer running from the target process data structure.

26. The method of claim 19 , and further comprising:

the data processing system establishing a further translator process in response to each received subject code instruction which, when executed on a subject processor, would establish a subject process.

27. The method of claim 26 , wherein the translator process and each further translator process populate and refer to the same target process data structure.

28. The method of claim 19 , wherein the populating comprises:

populating the target process data structure with a process identifier for each translator process, the process identifier corresponding to that which would be allocated to the subject processes established in response to the received subject code instructions, when executed on a subject processor.

29. The method of claim 19 , wherein the translating comprises performing Solaris-to-Linux translation.

30. The method of claim 19 , and further comprising:

the translator process, responsive a call in the subject code, verifying by reference to the target process data structure that a target process referenced by the call is currently running.

31. The method of claim 19 , wherein the target process data structure includes information regarding a memory mapping of the translator process.

32. A program product, comprising:

a computer-readable storage medium; and

program code stored within the computer-readable storage medium and executable by a computer to perform:

establishing a translator process in response to received subject code which, when executed on a subject processor, would establish a subject process, wherein the translator process runs above an operating system of the computer, and wherein the operating system has a target process filesystem;

the translator process dynamically translating received subject code intended for execution on a subject processor into target code for execution by the target processor on an operating system;

populating a target process data structure accessible to the translator process with information concerning the translator process established in response to the received subject code; and

in response to a reference in the received subject code to information in a subject process filesystem, referring to the target process data structure populated with the information concerning the translator process instead of the target process filesystem of the operating system of the computer.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 022928 FRAME 0190. ASSIGNOR(S) HEREBY CONFIRMS THE RECEIVING PARTY. Recorded Aug 26, 2013
From: IBM UNITED KINGDOM LIMITED
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031085/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2009
From: IBM UNITED KINGDOM LIMITED
To: IBM CORPORATION
Reel/Frame 022928/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2009
From: TRANSITIVE LIMITED
To: IBM UNITED KINGDOM LIMITED
Reel/Frame 022824/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2007
From: WALKER, JAMES WILLIAM; COCKS, RYAN JASON
To: TRANSITIVE LIMITED
Reel/Frame 020204/0210 →