Path: utzoo!attcan!uunet!aplcen!samsung!cs.utexas.edu!fletcher From: chip@tct.uucp (Chip Salzenberg) Newsgroups: comp.std.unix Subject: Re: Unified I/O namespace: what's the point? Message-ID: <13392@cs.utexas.edu> Date: 9 Oct 90 14:22:19 GMT References: <13220@cs.utexas.edu> <13343@cs.utexas.edu> <13390@cs.utexas.edu> Sender: fletcher@cs.utexas.edu Organization: Teltronics/TCT, Sarasota, FL Lines: 59 Approved: fletcher@cs.utexas.edu (Guest Moderator, Fletcher Mattox) X-Submissions: std-unix@uunet.uu.net Submitted-by: chip@tct.uucp (Chip Salzenberg) According to ok@goanna.cs.rmit.OZ.AU (Richard A. O'Keefe): >My program *can't* know what's available. If someone comes along >with a special "open hyperspace shunt" function; my program can't >benefit from it. If hyperspace shunts are in the global name space >and posix_open() understands their name syntax, my program will work >just fine. Thank you, Richard, for stating well what I have intuitively felt. (Dan, you wanted a reasoned rebuttal. Very well: here it is.) It is true that interactive use of UNIX, especially by programmers, puts a lot of emphasis on the shell interface. If such an environment were all there were to Unix, then Dan's fd-centric view of the world could possibly be useful. To use Richard's example: when a hyperspace shunt became available, its use would require only a change to the shell source code and a recompilation. However, the reality of modern Unix use is something else entirely: pre-packaged utilities, usually available only as binaries, that for practical purposes *cannot* be changed or replaced. In this environment, kernel features that require program customization are unwieldy at best, useless at worst. As long as shells fall into this category -- "programs usually distributed as binaries" -- fd-centric UNIX will never be practical. One could argue that binary-only distribution is evil and should be stopped. I can agree that binaries are less useful than source code; in fact, my personal motto is, "Unless you have source code, it isn't software." Nevertheless, copyright and trade secret law being what they are, we will continue to see binary-only distributions for the indefinite future. Even if source code were for all UNIX programs were freely available, I doubt that anyone would seriously propose modifying *all* of them each time a new kind of fd-accessible object were added to the kernel. Finally, filenames often are stored in places where no shell will ever see them, such as program-specific configuration files. So in Dan's hypothetical fd-centric UNIX, we would have to either (1) pass such filenames to the shell for interpretation, thus incurring a possibly substantial performance hit; or (2) modify each program to understand all the names the shell would understand. In my opinion, neither of these alternatives is viable. To summarize: A unified namespace has one great advantage: new types of objects are immediately available to all programs -- even the programs for which you do not have the means or the desire to modify and recompile. -- Chip Salzenberg at Teltronics/TCT , "I've been cranky ever since my comp.unix.wizards was removed by that evil Chip Salzenberg." -- John F. Haugh II Volume-Number: Volume 21, Number 194