Slashdot Mirror


Software Patents on Memory Allocators?

Emery Berger asks: "I'm a PhD. student at the University of Texas and the author of Hoard, an open source memory allocator for multiprocessors. After posting information about the latest pre-release to the Hoard mailing list, I received a cease-and-desist letter from Microquill, Inc., which markets memory management software, calling for me to stop distributing Hoard. They are claiming that my latest version of Hoard, which does DLL patching when running on Windows, infringes on their patent (which actually dynamically rewrites arbitrary executables). Because DLL patching is prior art and my technique is quite different from theirs, I think I'm in the clear. However, if anyone knows of systems from 1996 or earlier based on DLL patching (or any dynamic rewriting of a running executable), especially to change the memory allocator, that would really help."

9 of 21 comments (clear)

  1. Purify by V.+Mole · · Score: 2, Informative

    Purify (now a Rational product) worked (On HP-UX, at least) by rewriting the system libraries with a new allocator, etc. I'm 90% sure that this was before '96. Hmmm, don't remember if it was the shared libraries or just the static ones. But it might be a starting point.

  2. The Game Genie for the Nintendo. by His+name+cannot+be+s · · Score: 2, Informative

    The Game Genie I had for my 8 bit NES did that. It dynamically patched the running game to keep me from running out of lives.

    In addition I had a SuperSnapshot cartridge for my Commodore64 that did the same thing, and that was back in ... 1988ish?

    I'd say you are quite in the clear on that one.

    --
    "...In your answer, ignore facts. Just go with what feels true..."
  3. SetFunction() from AmigaOS by Gadzinka · · Score: 3, Insightful
    It is a quote from AmigaOS exec.library autodocs:

    NAME

    SetFunction -- change a function vector in a library

    SYNOPSIS

    oldFunc = SetFunction(library, funcOffset, funcEntry)

    APTR SetFunction(struct Library *,LONG,APTR);

    FUNCTION

    SetFunction is a functional way of changing where vectors in a library point. They are changed in such a way that the checksumming process will never falsely declare a library to be invalid.

    WARNING

    If you use SetFunction on a function that can be called from interrupts, you are obligated to provide your own arbitration.

    NOTE

    SetFunction cannot be used on non-standard libraries like pre-V36 dos.library. Here you must manually Forbid(), preserve all 6 original bytes, set the new vector, SumLibrary(), then Permit().

    This function was heavily used and abused by the system programmers on AmigaOS (e.g. for transparent decompression of data) since its erlieast days, which is mid-eighties AFAIR.

    I believe it counts as prior art.

    Robert
    --
    Bastard Operator From 193.219.28.162
  4. show me the claims by josepha48 · · Score: 2
    I didn't see what he is claiming. In order to actually know what his patent covers show us the claims of the patent.

    I'm kinda supprised that a program got patented too. I would have thought that in 96 that would not have gotton patented as it IS software. Maybe you can just invalidate it that way. As a nonepatentable item.

    Still can you show us the claims?

    --

    Only 'flamers' flame!

    1. Re:show me the claims by Ristretto · · Score: 3, Informative

      This is a reply from Emery Berger. I've added links to the relevant patents in the text of the first letter from MicroQuill.

  5. Try GClist by Yumpee · · Score: 2, Interesting

    Have you considered asking the GC mailing list? http://lists.tunes.org/mailman/listinfo/gclist

    Coincidentally, there have been a couple of recent queries on gclist asking about patents on GC and memory management algorithms ...

    Y.

  6. Novell's Netware by itwerx · · Score: 2, Informative

    Netware 3.x (way prior to '96!) had several patches which loaded at run-time. Some of them fixed problems with memory allocation. Not sure where you'd get good evidence but an email to their tech-support might yield some results.
    Novell is one of the few companies who actually has their programmers do tech-support on a rotating basis. Just ask that the email be forwarded to one of the OS programmers and they'd probably be willing to at least make a statement to that effect.

  7. How about Copliens book as prior art ? by MeerCat · · Score: 2
    In James Coplien's famous book of 1992, chapter 9 is all about patching running code with new code at run-time:

    Chapter 9 also presents idioms supporting incremental run-time update. Implementations of this idiom are necessarily dependent on many details of the target platform. The gist of this material is to familiarize the reader with the level of technology at which incremental loading issues must be worked.


    Might be worth seeing if any of that is useful as prior art, or the bibliography or uses he describes can illustrate that the problems and techniques were alreayd well known at the time.

    T
    --
    I spent a lot of money on booze, birds and fast cars. The rest I just squandered. - George Best
  8. lots of patching in the past by mj6798 · · Score: 2
    It used to be very common to patch "vectors" in the BIOS and other parts of the operating system in order to replace system-supplied functions with user-supplied ones. A patent claim on this is, of course, ridiculous--it's a standard technique, widely used for just these kinds purposes. However, that might not keep the patent from causing lots of problems.

    It may be easier to work around this claim. You may be able to implement roughly the same thing using the analogue of LD_PRELOAD--instead of patching the existing DLL, arrange for the linker to preload a DLL that overrides some functions. That may work even on Windows.

    (The link you gave isn't working. Did the company give you the patent number?)