Page 1 of 2
PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 3:27 am
by Brendan
Hi,
Starting
from 2007 (I think - I couldn't find anything earlier), on multiple occasions I've suggested the use of "batch system calls"; where the caller creates a list of kernel API functions, calls the kernel once, and the kernel processes this list (mostly to avoid "CPL=3 -> CPL=0 -> CPL=3" switching overheads).
It turns out that Redhat Inc.
patented this idea in 2012, and it was granted.
If you've used my idea in some way and your kernel is open source; then you should be covered by
Redhat's "patent promise" (at least for the foreseeable future, until/unless they change their mind and/or sell the patent to someone else).
However, if (like me) your work is not open source, then you aren't covered by the "patent pledge", and (like me) you're screwed and can't use my idea.
Note: I am not claiming to be the only person to have thought of this idea; and (because it really is quite obvious) multiple people could have thought of it before I did. I'm mostly only warning people that following my suggestion might not be wise in hindsight.
Cheers,
Brendan
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 3:37 am
by Octocontrabass
Your forum posts may be detailed enough to be considered prior art and invalidate their patent. Contact a patent lawyer (if you can afford it).
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 4:04 am
by Brendan
Hi,
Octocontrabass wrote:Your forum posts may be detailed enough to be considered prior art and invalidate their patent. Contact a patent lawyer (if you can afford it).
I'd assume (I really don't know) that after the patent is granted it's much harder to challenge, and that because I'm able to edit posts (including other people's posts) the evidence probably isn't strong enough.
Cheers,
Brendan
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 4:16 am
by mallard
To be realistic, it's pretty much impossible to create a substantial OS with treading on somebody's patent toes. Much of the basic technology (filesystems, memory management, security, user interfaces, etc.) has been implemented (and patented) so many times before that you're very unlikely to build anything truly "new" that's never been thought of. Even the big players who have been in the business for decades (Microsoft, Apple, IBM, Google, etc.) regularly face legal threats and they have entire departments dedicated to avoiding patent infringement.
The good news, however, is that patent trolls are in it to make money. They're not going to waste theirs perusing someone who doesn't have any to give them. Unless you're making significant money selling your OS or related products, you won't attract their attention. Just to be sure, if you are selling your OS, make sure you're doing it through your jurisdiction's version of a "private limited company"; this will ensure that if you do get into legal trouble you can fold up the company with the minimum of personal liability. (This advice constitutes the personal opinion of someone who claims no expertise in the field, consult a lawyer before taking any action.)
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 4:24 am
by alexfru
I vaguely remember someone proposing on alt.os.development the idea of not apps calling system calls, but the OS calling app's routines. That was years ago, not sure when exactly. I wonder how much different that idea is.
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 9:17 am
by Rusky
Brendan wrote:I'd assume (I really don't know) that after the patent is granted it's much harder to challenge, and that because I'm able to edit posts (including other people's posts) the evidence probably isn't strong enough.
To the contrary, the EFF has a whole program going to challenge already-granted patents:
https://www.eff.org/patent-busting You might be able to get help there.
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 11:31 am
by Schol-R-LEA
Octocontrabass wrote:Your forum posts may be detailed enough to be considered prior art and invalidate their patent. Contact a patent lawyer (if you can afford it).
So would Massalin's 1989 paper, as batching system calls (along with short-circuiting them) was an integral part of Synthesis. I doubt it was new even then, however. It is the sort of thing that they would have used as far back as CTSS and ITS in the 1960s (two of the first operating systems on hardware with separate privilege rings), and I would be astonished if it weren't used in Multics. It seems like less a matter of 'prior art' than of 'common lore' - something so basic no one bothered to document it, at least until someone thought there was money to be made from it.
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 7:50 pm
by drunkenfox
Rusky wrote:Brendan wrote:I'd assume (I really don't know) that after the patent is granted it's much harder to challenge, and that because I'm able to edit posts (including other people's posts) the evidence probably isn't strong enough.
To the contrary, the EFF has a whole program going to challenge already-granted patents:
https://www.eff.org/patent-busting You might be able to get help there.
I'm glad something like this exists. Software patents are an absolute cancer. But the real cancer is thing like simple shapes being patented. *cough*apple*cough*
Re: PATENT WARNING: Batch System Calls
Posted: Wed Oct 26, 2016 11:58 pm
by tsdnz
What a rubbish patent, just basic performance stuff; batch processing.
Ali
Re: PATENT WARNING: Batch System Calls
Posted: Thu Oct 27, 2016 1:22 am
by Sik
alexfru wrote:I vaguely remember someone proposing on alt.os.development the idea of not apps calling system calls, but the OS calling app's routines. That was years ago, not sure when exactly. I wonder how much different that idea is.
They got you covered
https://www.google.com/patents/US20130275997 (at least, it looks like it's the same idea >_>)
Re: PATENT WARNING: Batch System Calls
Posted: Thu Oct 27, 2016 1:24 am
by NunoLava1998
sleazayfox wrote:Rusky wrote:Brendan wrote:I'd assume (I really don't know) that after the patent is granted it's much harder to challenge, and that because I'm able to edit posts (including other people's posts) the evidence probably isn't strong enough.
To the contrary, the EFF has a whole program going to challenge already-granted patents:
https://www.eff.org/patent-busting You might be able to get help there.
I'm glad something like this exists. Software patents are an absolute cancer. But the real cancer is thing like simple shapes being patented. *cough*apple*cough*
Agree with you 100%.
Re: PATENT WARNING: Batch System Calls
Posted: Thu Oct 27, 2016 1:27 am
by NunoLava1998
I've seen Microsoft and 3 other companies have had this patent or tried to claim this patent before, the oldest being in October 2007. However, your thread links to a August 2007 thread, so possibly you can reclaim this or remove this patent.
Re: PATENT WARNING: Batch System Calls
Posted: Fri Oct 28, 2016 12:50 pm
by Candy
How is this idea not just a display list, like OpenGL used to have before 2.0 - ie, it's been deprecated already! - or like any window manager since Windows 2.0 or so? Or like TCL/TK? Or dozens of other examples?
Re: PATENT WARNING: Batch System Calls
Posted: Fri Oct 28, 2016 3:09 pm
by Schol-R-LEA
Candy wrote:How is this idea not just a display list, like OpenGL used to have before 2.0 - ie, it's been deprecated already! - or like any window manager since Windows 2.0 or so? Or like TCL/TK? Or dozens of other examples?
I don't think you get the idea here. This isn't a list in the sense of a pulldown menu; it wouldn't be visible to the user at all. It is a list in the sense of a collection such as an array or linked list.
Basically, the idea is that if an application is making several system calls (e.g., reading data from several configuration files), the program (or, more likely, the underlying library) would batch the system calls into a single call which would pass the list containing entries for each operation and its arguments, rather than making several calls in succession. The OS could then perform the series of operations without the overhead of repeated privilege and context switches.
By way of analogy, consider buffered I/O streams. Most I/O libraries buffer their operations in the application space, and will merge output operations on a single source into a single write until either the buffer is full, the application flushes or forces the buffer, or some operation dependent on the write is performed. Similarly, input functions will read a full buffer in on the first system call and pass data from that buffer until it is exhausted.
However, what Brendan is talking about is a more general facility which could be applied to any series of system calls, 'buffering' the calls themselves rather than the input or output. It is also less amenable to a purely automatic approach, but it can be at least partly automated, as Massalin showed.
A semi-manual version of this which could be exposed to the application developer might consist of creating a kind of 'system call transaction frame' in which system calls would be kept in abeyance until the last one is ready, similar to a transaction in some database systems, and could even be rolled back if some problem arose, in a way similar to an exception.
Code: Select all
transaction
{
system_call_x();
system_call_y();
if (foo)
{
system_call_z();
}
if (bar)
{
rollback bar_rollback();
else if (quux)
{
rollback quux_rollback();
}
else
{
system_call_w();
}
}
catch_rollback(rollback_bar)
{
}
catch_rollback(rollback_quux)
{
}
I don't know if Brendan actually had something like this in mind, but it does give some flavor of how it might be used in a higher-level language's syntax. There's no specific reason to have a special syntax for it, though it could prove useful.
Re: PATENT WARNING: Batch System Calls
Posted: Fri Oct 28, 2016 3:19 pm
by Ycep
I want to patent buddy allocator!