发明名称 Universal user input/output application layers
摘要 Files on a secondary storage are accessed using alternative IO subroutines that buffer IO requests made by a user and mimic the IO subroutines provided by an operating system. The buffer used by the alternative IO subroutines is maintained by the user and not the operating system. User applications are not recompiled or relinked when using the alternative subroutines because the library that provides these subroutines intercepts requests for buffered IO made by user applications to the operating system's IO subroutines and replaces the requests with calls to the alternative IO subroutines that utilize the buffer maintained by the user.
申请公布号 US8819311(B2) 申请公布日期 2014.08.26
申请号 US200711752914 申请日期 2007.05.23
申请人 RPX Corporation 发明人 Liao Cheng
分类号 G06F3/00;G06F9/54 主分类号 G06F3/00
代理机构 Howison & Arnott, LLP 代理人 Howison & Arnott, LLP
主权项 1. A method of executing a software application for a user, on a computer system executing an operating system, the operating system providing a standard library having buffering subroutines that buffer data transfers between user applications and a secondary storage via system calls to a kernel of the operating system in a non-user controlled buffer, the standard library also having unbuffered subroutines that transfer data, without buffering, between the user applications and the secondary storage via system calls to the kernel of the operating system, the method comprising: defining a plurality of user subroutines in a user software library distinct from the software application and distinct from the standard library, each user subroutine in the user software library mimicking an input functionality or an output functionality of a corresponding one of the buffering subroutines in the standard library that uses the non-user controlled buffer by utilizing a user-controlled buffer; intercepting input/output requests by the software application to the standard library buffering subroutines that use the non-user controlled buffer; determining if the request requires the non-user controlled buffer or the user controlled buffer; passing the request to the user subroutine that uses the non-user controlled buffer if the request requires the non-user controlled buffer; and replacing each intercepted input/output request with a request to the user subroutine in the user software library that mimics the buffering subroutine of the intercepted input/output request that uses the non-user controlled buffer if the request requires the user controlled buffer, whereby the user subroutine performs the requested input/output functionality using the user-controlled buffer and an unbuffered subroutine of the standard library rather than the non-user controlled buffer.
地址 San Francisco CA US