Path: utzoo!attcan!uunet!mcsun!ukc!edcastle!dcl-cs!aber-cs!thor!pcg From: pcg@cs.aber.ac.uk (Piercarlo Grandi) Newsgroups: comp.arch Subject: Re: Patents and Architecture Message-ID: Date: 23 Jul 90 17:11:23 GMT References: <62864@sgi.sgi.com> <=Y943A7@xds13.ferranti.com> <37297@ucbvax.BERKELEY.EDU> <63007@sgi.sgi.com> <40193@think.Think.COM> Sender: pcg@aber-cs.UUCP Organization: Coleg Prifysgol Cymru Lines: 74 In-reply-to: barmar@think.com's message of 8 Jul 90 04:37:32 GMT In article <40193@think.Think.COM> barmar@think.com (Barry Margolin) writes: In article pcg@cs.aber.ac.uk (Piercarlo Grandi) writes: >Just a moment, here. The setuid bit an *invention*? Hey, this is >ridiculous. It is just a scaled down version of Multics rings. [ ... rings are hierarchical, setuid not ... ] Setuid isn't a perfect mechanism, and there are some ways in which rings beat it. For instance, setuid can usually only be invoked by spawning new processes (except that the superuser can use the setuid() system call), while rings can be crossed within a process. And true domains have them both beat. But setuid is a simple, clever way to allow users to create personal domains. It certainly deserves to be called an invention. Ahh. But here, please, tell us what is the invention: * The idea of having multiple domains and protected procedures? They were already old in the early sixties. * The domain crossing? Surely rings and capability systems have it. * The fact that it is a software and not an hardware mechanism? But the Multics rings were initially implemented in software and then what about the PDP-1 inter domain call? * None of the above? What then? I have selected the setuid bit because it is such an obvious illustration of the problems with patenting software. What do you want to patent with software? The implementation, the specification, the interface, the general idea, the algorithm embodied, what? The setuid bit is a clever application of the idea of priviledged gates at the between processes level instead of the within processes one, for a non capability machine. Is it an invention? Where is the novelty? Which *is* the invention? Do we give patents on all mechanisms that allow calling protected trusted code between processes? Only if implemented under Unix? Only on the specific inode structure and few lines in the implementation of exec(2) that implement setuid executables and their activation? The software patent issue is a can of worms. It is very easy to close both eyes before the many difficulties of the concept. Traditional patents were about designs of gadgets, and the idea has been stretched and used questionably over and over again in more conventional fields, software offers a whole lot of new opportunities. There is a big, big risk of altering the careful balance between encouraging the publication of inventions and widespread adoption of technological advances that has served the western world tolerably well so far. As to the latter point, consider the monstrosity of allowing copyright registration of works of which only the first and last 25 pages are deposited for inspection. A remark: note that patents do not encourage *inventions*; an inventor can always resort to the more complicated trade secret route if he/she wants to keep the invention proprietary (e.g. AT&T with the better-than-simplex method). Patents encourage *publication*, in exchange for the otherwise unavailable protection against independent or subsequent reinvention. -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcsun!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk