IP Library Granted Patent US 12,645,441
Granted Patent B2
US 12,645,441 · App. 18/600,813 · Granted Jun 2, 2026

System and method for making a program compatible across multiple-versions of operating systems

Inventors: Santosh Sahu (Karnataka, IN); Puneet Agarwal (Bangalore, IN); Sanjay Nagraj (Dublin, CA)
Assignee: Harness Inc.
G06F8/47
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 12,645,441
App. No.
18/600,813
Granted
Jun 2, 2026
Kind
B2
Abstract

A method for making a program compatible across multiple-versions of Operation Systems (OS) is disclosed. The method includes receiving the program to be attached to function. Next, the method includes compiling the received program using macro to make it agnostic to OS version. The macro includes a conditional branching feature for determining type of syscall based on flag information from a shared map for attaching the program in different OS versions. Thereafter, the method includes attaching the program to the OS based on the determined type of syscall. In one scenario, the program is attached to a first function if the determined type of syscall is of a first type. In another scenario, the program is attached to a second function if the determined type of syscall is of a second type.

Claims (54)

1 . A system for making a program compatible across multiple-versions of operating systems for tracing and observing functions, the system comprises:

a receiver module to receive the program to be attached to a function;

a program compilation module to compile the received program using a macro to make the program agnostic to operating system version, wherein the macro includes a conditional branching feature for determining type of supported syscall based on flag information from a shared map for attaching the program in different operating system versions; and

a program attachment module to attach the program in the operating system based on the determined type of syscall,

wherein the program is attached to a first function if the determined type of syscall is of a first type, and

wherein the program is attached to a second function if the determined type of syscall is of a second type.

2 . The system of claim 1 , wherein the shared map corresponds to a bpf map that includes the flag information indicative of the type of syscall.

3 . The system of claim 1 , wherein the type of syscall comprises at least one of: legacy syscall and wrapped syscall.

4 . The system of claim 1 , wherein the program attachment module adds an entry indicative of the second function in the shared map.

5 . The system of claim 1 , wherein the macro further includes an internal helper function for processing of the program with syscall arguments to ensure compatibility.

6 . The system of claim 1 , wherein the program compilation module forms a unified program, via the compilation using the macro, that invokes the program when attached in the function.

7 . The system of claim 1 ,

wherein the first function corresponds to a non-wrapped function, and

wherein the second function corresponds to a wrapped function.

8 . The system of claim 1 ,

wherein the operating system is a Linux operating system,

wherein the program is an extended Berkeley Packet Filter (eBPF) program, and

wherein the function is at least one of: a kernel function and a user space function.

9 . A method for making a program compatible across multiple-versions of operating systems for tracing and observing functions, the method comprises:

receiving the program to be attached to a function;

compiling the received program using a macro to make the program agnostic to operating system version, wherein the macro includes a conditional branching feature for determining type of supported syscall based on flag information from a shared map for attaching the program in different operating system versions; and

attaching the program in the operating system based on the determined type of syscall,

wherein the program is attached to a first function if the determined type of syscall is of a first type, and

wherein the program is attached to a second function if the determined type of syscall is of a second type.

10 . The method of claim 9 ,

wherein the shared map corresponds to a bpf map that includes the flag information indicative of the type of syscall, and

wherein the type of syscall comprises at least one of: legacy syscall and wrapped syscall.

11 . The method of claim 9 , further comprises adding an entry indicative of the second function in the shared map.

12 . The method of claim 9 , wherein the macro further includes an internal helper function for processing of the program with syscall arguments to ensure compatibility.

13 . The method of claim 9 , further comprises forming an unified program, via the compilation using the macro, that invokes the program when attached to the function.

14 . The method of claim 9 ,

wherein the first function corresponds to a non-wrapped function, and

wherein the second function corresponds to a wrapped function.

15 . The method of claim 9 ,

wherein the operating system is a Linux operating system,

wherein the program is an extended Berkeley Packet Filter (eBPF) program, and

wherein the function is at least one of: a kernel function and a user space function.

16 . A computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code portions stored therein for making a program compatible across multiple-versions of operating systems for tracing and observing functions, the computer program product configured to:

receive the program to be attached to a function;

compile the received program using a macro to make the program agnostic to operating system version, wherein the macro includes a conditional branching feature for determining type of supported syscall based on flag information from a shared map for attaching the program in different operating system versions; and

attach the program in the operating system based on the determined type of syscall,

wherein the program is attached to a first function if the determined type of syscall is of a first type, and

wherein the program is attached to a second function if the determined type of syscall is of a second type.

17 . The computer program product of claim 16 , further comprises adding an entry indicative of the second function in the shared map,

wherein the shared map corresponds to a bpf map that includes the flag information indicative of the type of syscall, and

wherein the type of syscall comprises at least one of: legacy syscall and wrapped syscall.

18 . The computer program product of claim 16 , further comprises forming a unified program, via the compilation using the macro, that invokes the program when attached in the function, wherein the macro further includes an internal helper function for processing of the program with syscall arguments to ensure compatibility.

19 . The computer program product of claim 16 ,

wherein the first function corresponds to a non-wrapped function, and

wherein the second function corresponds to a wrapped function.

20 . The computer program product of claim 16 ,

wherein the operating system is a Linux operating system,

wherein the program is an extended Berkeley Packet Filter (eBPF) program, and

wherein the function is at least one of: a kernel function and a user space function.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0281 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0062 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 074240/0707 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 074240/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2025
From: TRACEABLE INC.
To: HARNESS INC.
Reel/Frame 071911/0025 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2024
From: SAHU, SANTOSH; AGARWAL, PUNEET; NAGARAJ, SANJAY
To: TRACEABLE INC.
Reel/Frame 068934/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2024
From: SAHU, SANTOSH, MR.; AGARWAL, PUNEET, MR.; NAGRAJ, SANJAY, MR.
To: TRACEABLE INC
Reel/Frame 066710/0945 →
Continuity (1)
Related Publication 20250284474A1 · Sep 11, 2025
References Cited (20)
US 8533836B2 · Saunders et al. · 2013 [cited by applicant]
US 10203968B1 · Lawson · 2019 [cited by applicant]
US 10514909B2 · Yahav et al. · 2019 [cited by applicant]
US 20150370560A1 · Tan · 2015 [cited by examiner]
US 20170269907A1 · Goetz · 2017 [cited by examiner]
US 20200344180A1 · Pope · 2020 [cited by examiner]
US 20220147408A1 · Asgar et al. · 2022 [cited by applicant]
US 20220269520A1 · Yamamoto · 2022 [cited by examiner]
US 20220358214A1 · Anderson et al. · 2022 [cited by applicant]
US 20230052452A1 · Choochotkaew · 2023 [cited by examiner]
US 20230362198A1 · Jung · 2023 [cited by examiner]
US 20230385403A1 · Czerninski · 2023 [cited by examiner]
US 20230418934A1 · Constable · 2023 [cited by examiner]
US 20240103842A1 · Liang · 2024 [cited by examiner]
US 20240104221A1 · Saieva · 2024 [cited by examiner]
US 20250039239A1 · Parla · 2025 [cited by examiner]
Milano et al., “Creating Complex Network Services with eBPF: Experience and Lessons Learned,” IEEE, 2018. (Year: 2018). [cited by examiner]
Ramesh et al., “Stop Hiding The Sharp Knives: The WebAssembly Linux Interface,” arXiv, 2023. (Year: 2023). [cited by examiner]
Zhou et al., “Electrode: Accelerating Distributed Protocols with eBPF,” Usenix, 2023. (Year: 2023). [cited by examiner]
Practical Analysis of Stripped Binary Code https://dl.acm.org/doi/10.1145/1127577.1127590. [cited by applicant]