`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`__________________________________
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`__________________________________
`
`MICROSOFT CORP.,
`Petitioner,
`
`v.
`
`VIRTAMOVE, CORP.,
`Patent Owner.
`__________________________________
`
`IPR2025-00854
`Patent No. 7,784,058
`__________________________________
`
`PETITION FOR INTER PARTES REVIEW
`OF CLAIMS 1-16 AND 18 OF U.S. PATENT NO. 7,784,058
`
`1619374531
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`TABLE OF CONTENTS
`
`B.
`
`Page
`INTRODUCTION .................................................................................................... 1
`I.
`BACKGROUND ............................................................................................ 2
`A.
`Shared Libraries Were Well Known. ................................................... 2
`1.
`Many Common Operating Systems Supported Shared
`Libraries Dynamically Linked to Applications. ........................ 3
`2.
`Levine Disclosed Shared Libraries and Dynamic Linking. ....... 4
`Storing “Critical System Elements” (“CSEs”) in Shared
`Libraries Was Known. .......................................................................... 5
`1.
`Ely Disclosed Networking in a Shared Library. ........................ 6
`2.
`Thekkath Disclosed Networking in a Shared Library. .............. 8
`3.
`Eggert Disclosed File Systems in a Shared Library. ............... 10
`THE ’058 PATENT ...................................................................................... 11
`A.
`Overview ............................................................................................ 11
`B.
`Prosecution History ............................................................................ 13
`STATEMENT OF RELIEF REQUESTED ................................................. 13
`A.
`Grounds .............................................................................................. 13
`B.
`The References Are Prior Art. ............................................................ 13
`1.
`Ely is Prior Art. ........................................................................ 14
`2.
`Eggert is Prior Art. ................................................................... 15
`3.
`Levine is Prior Art.................................................................... 15
`4.
`Thekkath is Prior Art. .............................................................. 16
`C.
`The Asserted References Are Analogous Art. ................................... 16
`LEVEL OF ORDINARY SKILL ................................................................. 17
`IV.
`CLAIM CONSTRUCTION ......................................................................... 17
`V.
`VI. GROUNDS OF UNPATENTABILITY ....................................................... 19
`A.
`Ground 1: Ely and Levine .................................................................. 19
`1.
`Claim 1 ..................................................................................... 21
`-i-
`
`II.
`
`III.
`
`1619374531
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`a.
`b.
`c.
`d.
`
`e.
`
`Preamble ........................................................................ 22
`Processor ........................................................................ 23
`Operating System with Kernel and OSCSEs ................ 23
`Shared Library with SLCSEs ........................................ 24
`i.
`SLCSEs are Functional Replicas of OSCSEs ..... 26
`ii.
`SLCSEs Form a Part of the Application ............. 27
`CSE Provided to First and Second Applications ........... 29
`i.
`First Instance of SLCSE Provided to First
`Application .......................................................... 29
`Unique Instance of Corresponding CSE
`Provided to Second Application .......................... 31
`Two Instances of SLCSE Run Simultaneously ............. 32
`i.
`SLCSE Related to a Predetermined Function ..... 32
`ii.
`Second Instance of SLCSE ................................. 33
`Claim 2 ..................................................................................... 33
`Claim 3 ..................................................................................... 34
`Claim 4 ..................................................................................... 34
`Claim 5 ..................................................................................... 35
`Claim 6 ..................................................................................... 36
`a.
`Kernel Provides Notification of an Event ..................... 37
`b.
`Event is Asynchronous and Outside of the
`Application .................................................................... 37
`7.
`Claim 9 ..................................................................................... 38
`8.
`Claim 10 ................................................................................... 39
`9.
`Claim 11 ................................................................................... 40
`10. Claim 12 ................................................................................... 41
`11. Claim 13 ................................................................................... 41
`12. Claim 14 ................................................................................... 41
`13. Claim 16 ................................................................................... 43
`
`ii.
`
`f.
`
`2.
`3.
`4.
`5.
`6.
`
`1619374531
`
`-ii-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`14. Claim 18 ................................................................................... 43
`Ground 2: Ely, Levine, and Thekkath ................................................ 44
`1.
`Claim 5 ..................................................................................... 46
`2.
`Claim 6 ..................................................................................... 48
`a.
`Kernel Provides Notification of an Event ..................... 48
`b.
`Event is Asynchronous and Outside of the
`Application .................................................................... 48
`Claim 7 ..................................................................................... 49
`Claim 8 ..................................................................................... 49
`Claim 15 ................................................................................... 50
`a.
`Kernel Module Enables Data Exchange ........................ 51
`b.
`Data Exchange Uses Virtual Memory Mapping ........... 51
`Ground 3: Eggert and Levine ............................................................. 52
`1.
`Claim 1 ..................................................................................... 54
`a.
`Preamble ........................................................................ 54
`b.
`Processor ........................................................................ 54
`c.
`Operating System with Kernel and OSCSEs ................ 55
`d.
`Shared Library with SLCSEs ........................................ 55
`i.
`SLCSEs are Functional Replicas of OSCSEs ..... 56
`ii.
`SLCSEs Form a Part of the Application ............. 57
`CSE Provided to First and Second Applications ........... 58
`i.
`First Instance of SLCSE Provided to First
`Application .......................................................... 58
`Unique Instance of Corresponding CSE
`Provided to Second Application .......................... 59
`Two Instances of SLCSE Run Simultaneously ............. 59
`i.
`SLCSE Related to a Predetermined Function ..... 59
`ii.
`Second Instance of SLCSE ................................. 60
`Claim 2 ..................................................................................... 60
`
`e.
`
`f.
`
`ii.
`
`B.
`
`C.
`
`3.
`4.
`5.
`
`2.
`
`1619374531
`
`-iii-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`3.
`Claim 3 ..................................................................................... 61
`4.
`Claim 4 ..................................................................................... 61
`5.
`Claim 9 ..................................................................................... 62
`6.
`Claim 10 ................................................................................... 63
`7.
`Claim 11 ................................................................................... 63
`8.
`Claim 12 ................................................................................... 64
`9.
`Claim 16 ................................................................................... 65
`10. Claim 18 ................................................................................... 65
`VII. NO SECONDARY CONSIDERATIONS OF NONOBVIOUSNESS ........ 65
`VIII. NO BASIS FOR DISCRETIONARY DENIAL .......................................... 66
`IX. MANDATORY NOTICES .......................................................................... 66
`A.
`Real Party-In-Interest (37 C.F.R. §42.8(b)(1)) .................................. 66
`B.
`Related Matters (37 C.F.R. §42.8(b)(2)) ............................................ 66
`C.
`Lead and Backup Counsel (37 C.F.R. §42.8(b)(3)) ........................... 67
`D.
`Pursuant to 37 C.F.R. §42.10(b), a Power of Attorney
`accompanies this Petition. Counsel for Petitioner consents to
`service of all documents via electronic mail. Payment of Fees
`(37 C.F.R. §42.103) ............................................................................ 68
`E.
`Grounds for Standing (37 C.F.R. §42.104(a)) ................................... 68
`CONCLUSION ....................................................................................................... 69
`CERTIFICATE OF COMPLIANCE ...................................................................... 70
`CERTIFICATE OF SERVICE ............................................................................... 71
`
`1619374531
`
`-iv-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`TABLE OF AUTHORITIES
`
`Page(s):
`
`Cases:
`Apple Inc. v. Fintiv, Inc.,
`IPR2020-00019, Paper 11 (P.T.A.B. Mar. 20, 2020) ......................................... 66
`In re GPAC Inc.,
`57 F.3d 1573 (Fed. Cir. 1995) ............................................................................ 17
`Intel Corp. v. Qualcomm Inc.,
`21 F.4th 801 (Fed. Cir. 2021) ....................................................................... 18, 19
`Jazz Pharms., Inc. v. Amneal Pharms., LLC,
`895 F.3d 1347 (Fed. Cir. 2018) .......................................................................... 15
`Juniper Networks, Inc. v. Monarch Networking Solutions LLC,
`IPR2024-00175, 2024 WL 2054958 (PTAB May 8, 2024) ............................... 68
`Leapfrog Enters. v. Fisher-Price, Inc.,
`485 F.3d 1157 (Fed. Cir. 2007) .......................................................................... 65
`M & K Holdings, Inc. v. Samsung Elecs. Co.,
`985 F.3d 1380-83 (Fed. Cir. 2021) ..................................................................... 15
`Mueller Systems, LLC v. Rein Tech, Inc.,
`IPR2020-00098, 2020 WL 2478514 (May 12, 2020) ........................................ 68
`Newell Cos. v. Kenney Mfg. Co.,
`864 F.2d 757 (Fed. Cir. 1988) ............................................................................ 65
`Nidec Motor Corp. v. Zhongshan Broad Ocean Motor Co. Ltd.,
`868 F.3d 1013 (Fed. Cir. 2017) .......................................................................... 17
`Samsung Electronics Co., Ltd. v. Maxell, Ltd.,
`IPR2024-00907, 2024 WL 5079910 (PTAB Dec. 11, 2024) ............................. 68
`Sotera Wireless, Inc. v. Masimo Corp.,
`IPR2020-01019, Paper 12 (P.T.A.B. Dec. 1, 2020) ........................................... 66
`Unwired Planet, LLC v. Google Inc.,
`841 F.3d 995 (Fed. Cir. 2016) ............................................................................ 16
`
`1619374531
`
`-v-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`Vivid Techs., Inc. v. Am. Sci. & Eng’g, Inc.,
`200 F.3d 795 (Fed. Cir. 1999) ............................................................................ 17
`Statutes and Rules:
`35 U.S.C. §102 ............................................................................................. 14, 15, 16
`35 U.S.C. §103 ......................................................................................................... 13
`35 U.S.C. §314 ................................................................................................... 66, 67
`35 U.S.C. §325 ................................................................................................... 67, 68
`37 C.F.R. §42.8 .................................................................................................. 69, 70
`37 C.F.R. §42.10 ...................................................................................................... 70
`37 C.F.R. §42.103 .................................................................................................... 70
`37 C.F.R. §42.104 .................................................................................................... 71
`Miscellaneous:
`Katherine K. Vidal, Interim Procedure for Discretionary Denials in AIA
`Post-Grant Proceedings with Parallel District Court Litigation
`(June 21, 2022).................................................................................................... 66
`
`1619374531
`
`-vi-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`TABLE OF EXHIBITS
`
`Exhibit No.
`1001
`
`Description
`U.S. Patent No. 7,784,058 (“the ’058 patent”)
`
`1002
`
`Declaration of Dr. Darrell Long, EX. 1002 in IPR2025-00561
`
`1003
`
`1004
`
`1005
`
`1006
`
`1007
`
`David Ely et al., Alpine: A User-Level Infrastructure for Network
`Protocol Development, Proc. 3rd USENIX Symposium on
`Internet Technologies and Systems (USITS ’01) (2001) (“Ely”)
`
`Paul R. Eggert & D. Stott Parker, File Systems in User Space,
`Proc. USENIX Winter 1993 Conference (1993) (“Eggert”)
`
`John R. Levine, Linkers & Loaders (2000) (“Levine”)
`
`Chandramohan A. Thekkath, et al., Implementing Network
`Protocols at User Level, 23 ACM SIGCOMM Computer Comm.
`Rev., 64-73 (1993) (“Thekkath”)
`
`David Ely et al., Alpine: A User-Level Infrastructure for Network
`Protocol Development, 3rd USENIX Symposium on Internet
`Technologies and Systems (USITS ’01) (“Ely Presentation”)
`
`1008
`
`Excerpts from the ’058 patent’s file history
`
`1009
`
`1010
`
`1011
`
`1012
`
`1013
`
`1014
`
`1015
`
`Arindam Banerji et al., Protected Shared Libraries – a New
`Approach to Modularity and Sharing, Proc. USENIX Annual
`Technical Conf. (USENIX 1997) 59-75 (“Banerji”)
`
`Excerpts of UNIX System V Release 3 Programmer’s Guide
`
`Excerpts of SunOS 4.1 Release Manual
`
`Excerpts of Solaris and SunOS System Interfaces Guide
`
`Excerpts of Sun Linker and Libraries Guide
`
`Linux Release Notes
`
`FreeBSD 3.3 Linker Information
`
`1619374531
`
`Table of Exhibits, Page 1
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`1016
`
`Excerpts of Windows API Guide Reference Volume 3 (1992)
`
`1017
`
`1018
`
`1019
`
`1020
`
`1021
`
`1022
`
`1023
`
`1024
`
`1025
`
`1026
`
`1027
`
`1028
`
`1029
`
`1030
`
`1031
`
`1032
`
`1033
`
`Scheduling order from VirtaMove, Corp. v. Amazon.com, Inc. et
`al., No. 7:24-cv-30-ADA-DTG (W.D. Tex.) (the “Amazon
`Litigation”)
`
`Order cancelling Markman hearing in the Amazon Litigation
`
`Order granting transfer in the Amazon Litigation
`
`Arnold, J. Q., “Shared Libraries on UNIX System V”, Summer
`Conference Proceedings, Atlanta 1986, USENIX Association,
`1986.
`
`FreeBSD 3.0 Release Notes
`
`FreeBSD 3.3 Release Notes
`
`FreeBSD System Calls Manual – “select(2)”
`
`Curriculum Vitae of Dr. Darrell Long
`
`Declaration of Sylvia D. Hall-Ellis
`
`Wayback Machine – USITS ’01 Home Page
`
`Amazon’s Opening Claim Construction Brief in the Amazon
`Litigation
`
`Wayback Machine – USITS ’01 Alpine Abstract
`
`Australian Unix User Group Newsletter, Vol. 8, No. 5 excerpts
`
`Declaration of Rachel J. Watters
`
`Ex Parte Reexamination Request
`
`Order Granting Request for Ex Parte Reexamination
`
`Plaintiff VirtaMove Corp.’s Preliminary Disclosure of Asserted
`Claims and Infringement Contentions, in VirtaMove, Corp. v.
`Microsoft Corp., 7:24-cv-00338 (W.D. Tex.) (Mar. 28, 2025)
`
`1619374531
`
`Table of Exhibits, Page 2
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`Petitioner Microsoft Corp. (“Petitioner” or “Microsoft”) requests inter partes
`
`review of claims 1-16 and 18 of U.S. Patent No. 7,784,058 (“the ’058 patent”), which
`
`VirtaMove, Corp. (“Patent Owner” or “PO”) purportedly owns.
`
`INTRODUCTION
`The ’058 patent claims computing systems in which functionality provided
`
`within a computer’s operating system (“OS”) is replicated in another location on the
`
`same computer. The patent’s purported novelty lies in the location where the
`
`replicated functionality is stored: a “shared library.” Although such libraries were
`
`well known, the patent asserts that shared libraries in the prior art did not replicate
`
`functionality that was also present in an operating system on the same computer.
`
`Contrary to the patent’s assertion, replicating OS functionality in a shared
`
`library was not new. Prior art disclosing this use of shared libraries was published at
`
`least a decade before the patent’s priority date. The prior art grounds presented in
`
`this Petition disclose replicating two types of OS functionality in shared libraries:
`
`(1) network functionality, and (2) file-system functionality. Both of these function-
`
`alities are also used as example embodiments in the ’058 patent.
`
`The ’058 patent’s Examiner never considered the prior art presented in this
`
`Petition. Because the prior art demonstrates that the ’058 patent contributed nothing
`
`new to the public store of knowledge, the patentee has no right to exclude the public
`
`from practicing the patent claims.
`
`1619374531
`
`-1-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`I.
`
`BACKGROUND
`A.
`Shared Libraries Were Well Known.
`Shared libraries allow software applications to share common functionality
`
`without wasting memory. (Ex. 1002 ¶40.) Instead of each application having its own
`
`copy of computer code for common functionality, the applications (1) link to a
`
`shared library that contains that functionality and (2) use a single copy of the li-
`
`brary’s contents whenever possible, as explained below. (Ex. 1020, 395.)
`
`Different parts of a shared library may be shared in different ways. One part
`
`of a shared library contains executable code that every linked application can access.
`
`(Ex. 1009, 60-61; Ex. 1002 ¶41.) Because this code does not change from one
`
`application to another, every application shares the same code. (Id.) Sharing this
`
`code avoids duplication and saves space in the computer’s memory. (Ex. 1020, 395.)
`
`For example, if multiple applications need to connect to the Internet, all of the
`
`applications can link to a single shared library that contains code for establishing
`
`such connections. (Ex. 1002 ¶41.) Similarly, the patent admits that it was “common
`
`practice” for all applications that access files on a computer to use shared code for
`
`doing so. (Ex. 1001 at 3:32-37 (“All applications currently share code for common
`
`services, such services include operations such as ... open a file, write to the file,
`
`read from the file, etc.”).)
`
`1619374531
`
`-2-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`Shared libraries also contain data that is accessed by the shared code. (Ex.
`
`1009, 60-61; Ex. 1010, 8-28; Ex. 1002 ¶42.) Each linked application gets its own
`
`copy of the data from the shared library. (Id.; Ex. 1013, 100.) Each application’s
`
`copy of the data is private—i.e., it is unique to that application and can be accessed
`
`only by code running in the context of that application. (Ex. 1005, 169-172.) For
`
`example, multiple applications may share the same library code for connecting to
`
`the Internet, but each application may need to access a different web site. (Ex. 1002
`
`¶42.) Although all applications share the same library code, each application uses its
`
`own private copy of the library data to keep track of the unique Internet address it is
`
`accessing. (Id.) Giving each application its own private copy of the data allows the
`
`applications to share code without interfering with other applications’ differing uses
`
`of the shared code. (Id.)
`
`1. Many Common Operating Systems Supported Shared
`Libraries Dynamically Linked to Applications.
`Popular operating systems such as UNIX included shared libraries by the
`
`1980s. (Ex. 1002 ¶43; Ex. 1010, 3-24 (“Beginning with Release 3.0, shared libraries
`
`are supported.”), Ch. 8 (explaining how to build and use shared libraries).) Shared
`
`libraries were quickly adopted by other operating systems in the late 1980s and early
`
`1990s. (Ex. 1002 ¶43; Ex. 1011, 25 (shared libraries supported in SunOS 4.0 and 4.1
`
`by 1990); Ex. 1012, 2; Ex. 1013, 3, 11-12; Ex. 1014; Ex. 1005, 4.) Thus, shared
`
`1619374531
`
`-3-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`libraries were widely used well before the ’058 patent’s earliest claimed priority date
`
`in 2003. (Ex. 1002 ¶43; Ex. 1009, 60 (“Most commercial operating systems support
`
`shared libraries in one form or another ...”).) The patent admits this. (Ex. 1001, 7:3-
`
`5 (“what is commonly done is to provide an application library in shared code
`
`space”).) PO also admitted this during prosecution. (Ex. 1008, 21 (“It is fully
`
`acknowledged that [prior art from 1995] describe[s] shared libraries”).)
`
`Shared libraries can be linked with applications using “static” linking,
`
`performed when an application is first compiled and installed, or “dynamic” linking,
`
`which delays the linking process until an application starts running. (Ex. 1005, 188;
`
`Ex. 1012, 2-3; Ex. 1010, G-7 (“Dynamic linking refers to the ability to resolve
`
`symbolic references at run time.”), G-18 (“Static linking refers to the requirement that
`
`symbolic references be resolved before run time.”); Ex. 1013, 4.) Dynamic linking
`
`was introduced to UNIX in the late 1980s and was quickly adopted by other popular
`
`operating systems such as SunOS, Solaris, and Windows. (Ex. 1012, 109; Ex. 1013,
`
`3; Ex. 1016, 1.) Thus, many operating systems supported dynamic linking of shared
`
`libraries well before the ’058 patent’s earliest claimed priority date. (Ex. 1002 ¶44.)
`
`Levine Disclosed Shared Libraries and Dynamic Linking.
`2.
`A textbook called Linkers and Loaders, authored by John R. Levine and
`
`published in 2000 (“Levine”), explains that most operating systems included shared
`
`libraries and dynamic linking by the time it published. (Ex. 1005, xi, 4, 187-88, 206
`
`1619374531
`
`-4-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`(Linux and Unix used “ELF” format for shared libraries), 217-18 (Microsoft
`
`Windows used “DLL” format); Ex. 1002 ¶45.) Levine explains how shared libraries
`
`were commonly created and linked to applications using either static or dynamic
`
`linking. (Ex. 1005, xiii-xiv, Ch. 9 (shared libraries and static linking), Ch. 10
`
`(dynamic linking).)
`
`Levine explains that most applications “usually turn out to share a lot of
`
`common code;” therefore, if “all the programs that use a library can share a single
`
`copy of it,” significantly less storage space is needed. (Ex. 1005, 4; Ex. 1002 ¶46.)
`
`Although different shared library formats may vary slightly, the process of linking
`
`them to applications is “nearly the same.” (Ex. 1005, 190; Ex. 1002 ¶46.) When an
`
`application program that is linked to shared libraries starts running, “startup code finds
`
`those [linked] libraries and maps them into the program’s address space before the
`
`program starts.” (Ex. 1005, 188; Ex. 1002 ¶46.) The program’s address space is the
`
`part of the computer’s memory that is allotted to that program. (Ex. 1002 ¶46.)
`
`B.
`
`Storing “Critical System Elements” (“CSEs”) in Shared Libraries
`Was Known.
`The ’058 patent coins the phrase “Critical System Elements” to describe OS
`
`functionality replicated in the shared library. (Ex. 1001, 6:6-10.) Two examples of
`
`CSEs are “Network services including TCP/IP” and “File System services.” (Id.,
`
`6:11-28.) The prior art disclosed replicating both examples in shared libraries.
`
`1619374531
`
`-5-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`Ely Disclosed Networking in a Shared Library.
`1.
`In 2001, David Ely and other researchers at the University of Washington
`
`published a paper titled “Alpine: A User-Level Infrastructure for Network Protocol
`
`Development.” (Ex. 1003 (“Ely”).) They presented their paper at the 3rd USENIX
`
`Symposium on Internet Technologies and Systems. (Ex. 1007.) The paper explains
`
`that traditional networking stacks were difficult for developers to work with because
`
`they were part of a “kernel,” which is the core of an operating system. (Ex. 1003, 171.)
`
`Any changes to a traditional networking stack required rebuilding the entire kernel.
`
`(Id.) To overcome this inconvenience, Ely presented the “Alpine” system, which
`
`copies the networking stack from an operating system’s kernel into a shared library
`
`that is dynamically linked with applications. (Id., 171, 177; Ex. 1002 ¶48.)
`
`Figures 1 and 2 of Ely show, respectively, a “traditional” stack where “all
`
`network processing is performed in the kernel” and Alpine’s library where
`
`“unmodified networking code is placed:”
`
`1619374531
`
`-6-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`(Ex. 1003, Figs. 1, 2; Ex. 1002 ¶49.)1 As these figures show, the traditional stack
`
`implements networking in kernel space. (Ex. 1003, Fig. 1.) But Alpine’s stack
`
`moves the networking to a library in user space. (Id., Fig. 2.) Kernel space is the
`
`1 Figures in this Petition may be colored and annotated for ease of reference.
`
`Additionally, some figures in this Petition come from online copies of the
`
`references because figures in the online copies provide better clarity in some cases
`
`than the scanned paper copies. (See Ex. 1025 ¶33, n.18; ¶40, n.23 (describing
`
`online sources).) The content of the online copies and paper copies is the same.
`
`1619374531
`
`-7-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`part of the computer’s memory in which the kernel resides. (Ex. 1002 ¶49.) User
`
`space is the part of memory in which applications and shared libraries reside. (Id.)
`
`Alpine was implemented in a “dynamic library,” which was a well-known
`
`type of shared library widely used in popular operating systems. (Ex. 1003, 177;
`
`supra §I.A.1; Ex. 1002 ¶50.) Alpine’s library used “dynamic linking” to integrate
`
`with pre-existing applications. (Ex. 1003, 177.)
`
`Alpine was “fully implemented in the FreeBSD 3.3 operating system.” (Id.,
`
`178.) “However, very little of [Alpine’s] code [was] specific to this version of
`
`FreeBSD, and most of it [was] portable to any Unix environment.” (Id.) Thus, Ely
`
`explained that Alpine broadly “support[ed] a FreeBSD networking stack on top of a
`
`Unix operating system.” (Id., 171.)
`
`Presentation slides from the conference where Ely was first presented further
`
`confirm that Alpine was implemented as a shared library. The presentation shows
`
`that applications linked to Alpine using the command “LD_PRELOAD=libAl-
`
`pine.so.” (Ex. 1007, 8; id. at 3, 6-7; Ex. 1002 ¶52.) The “.so” extension of the
`
`libAlpine file shows that it was a shared library. (Ex. 1015, line 326 (“a ‘.so’
`
`extension indicates a shared library.”); Ex. 1002 ¶52.)
`
`Thekkath Disclosed Networking in a Shared Library.
`2.
`In 1993, Chandramohan Thekkath and other researchers published a
`
`conference paper titled “Implementing Network Protocols at User Level.” (Ex. 1006
`
`1619374531
`
`-8-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`(“Thekkath”).) Thekkath, like Ely, described research conducted at the University of
`
`Washington’s Department of Computer Science and Engineering. (Id.; Ex. 1003.)
`
`Thekkath implemented networking protocols outside of the kernel to allow
`
`for “ease of prototyping, debugging, and maintenance.” (Ex. 1006, 64.) Thekkath’s
`
`system allowed for the “co-existence of multiple protocols” that could “exploit
`
`application-specific knowledge,” unlike the traditional networking stack, which was
`
`generalized for the entire OS. (Id.; Ex. 1002 ¶54.) Similar to Ely, Thekkath used a
`
`shared library to store its networking protocols outside the kernel. (Ex. 1006, 64, 67,
`
`68; Ex. 1002 ¶54.) This system, with the “protocol library” linked to an application,
`
`is shown in Figure 2:
`
`(Ex. 1006, Fig. 2.) Because the “protocol library [] is linked into the application”
`
`and “[t]he library contains the code that implements the communication protocol,”
`
`1619374531
`
`-9-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`applications can directly access several different networking protocols stored in the
`
`library. (Id., 67, 68; Ex. 1002 ¶54.)
`
`Because the protocol library is in user space rather than the kernel, it does not
`
`have direct access to networking hardware. (Ex. 1002 ¶55.) Rather, the protocol
`
`library exchanges data with a “Network I/O Module” in the kernel. (Ex. 1006, 69.)
`
`This kernel module acts as an interface between the protocol library and networking
`
`devices. (Id.; Ex. 1002 ¶55.)
`
`Eggert Disclosed File Systems in a Shared Library.
`3.
`Also in 1993, Paul Eggert and another researcher published “File Systems in
`
`User Space” and presented it at the USENIX Winter Conference. (Ex. 1004.) This
`
`paper disclosed “two user-extensible file systems,” collectively called “IFS,” that
`
`extended a computer’s default file system with added capabilities. (Id., 229.) These
`
`file systems were implemented with libraries to which applications could
`
`dynamically link. (Id., 229, 235-237; Ex. 1002 ¶56.) When an application was
`
`dynamically linked to the IFS shared library, that library intercepted the
`
`application’s calls to the operating system, allowing the application to access files
`
`in new ways. (Ex. 1004, 231-32; Ex. 1002 ¶56.)
`
`1619374531
`
`-10-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`II.
`
`THE ’058 PATENT
`A.
`Overview
`The ’058 patent discloses shared libraries containing so-called “critical system
`
`elements” (CSEs), which replicate functionality from an OS kernel. (Ex. 1001, 1:58-
`
`64.) “The term replica used [in the patent] is meant to denote a CSE having similar
`
`attributes to, but not necessarily and preferably not an exact copy of a CSE in the
`
`operating system[.]” (Id., 1:66-2:3.)
`
`Figure 1 shows a “conventional architecture where critical system elements
`
`execute in kernel mode”:
`
`(Ex. 1001, Fig. 1; id., 6:62-63.)
`
`An “important distinction between [the ’058 patent] and [some] prior art
`
`systems and architectures is the ability to allow a CSE to execute in the same context
`
`as an application.” (Id., 1:46-48.) CSEs “are replicated through the use of shared
`
`1619374531
`
`-11-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`libraries” and “replicated CSEs are then able to run in the context of a software
`
`application” like any other shared library. (Id., 5:22-34.)
`
`“By way of example; a Linux based platform provides a TCP/IP [i.e.,
`
`networking protocol] stack in the Linux kernel. [The ’058 patent] provides a TCP/IP
`
`stack in the form of a CSE that is a different implementation of a TCP/IP stack, from
`
`Berkeley Software Distribution (BSD) by way of example. Applications on a Linux
`
`platform may use a BSD [TCP]/IP stack in the form of a CSE. The mechanism for
`
`attaching the BSD TCP/IP stack to an application is in the form of a shared library.”
`
`(Id., 5:41-49; see also Ex. 1002 ¶60 (providing background on TCP/IP).)
`
`Figure 4 of the patent shows “how critical system elements exist in the same
`
`context as an application.” (Ex. 1001, 5:11-12.) In this figure, “the CSE shared
`
`library, 47, provides an implementation of a critical system element.” (Id., 8:23-27.)
`
`(Id., Fig. 4.)
`
`1619374531
`
`-12-
`-12-
`
`
`
`Microsoft Corp. v. VirtaMove, Corp.
`IPR Petition – U.S. Patent 7,784,058
`
`Prosecution History
`B.
`The applicant admitted during prosecution that (1) shared libraries were
`
`known and (2) running CSEs outside of the kernel was known. (Ex. 1008, 21-22.)
`
`But the applicant argued that CSEs in shared libraries that replicate CSEs in the
`
`ker