298 NFS Date: Fri, 5 Jan 90 14:44 CST From: Chris Garrigues 7thSon@slcs.slb.com Subject: Multiple architecture woes To: UNIX-HATERS I’ve been bringing up the X.500 stuff from NYSERnet (which is actually a fairly nicely put-together system, by Unix standards). There is a lot of code that you need for a server. I compiled all this code, and after some struggle, finally got it working. Most of the struggle was in trying to compile a system that resided across file systems and that assumed that you would do the compilation as root. It seems that someone realized that you could never assume that root on another system was trustworthy, so root has fewer privileges than I do when logged in as myself in this context. Once I got the server running, I came to a piece of documentation which says that to run just the user end, I need to copy certain files onto the client hosts. Well, since we use NFS, those files were already in the appropriate places, so I won on all the machines with the same architecture (SUN3, in this case). However, many of our machines are SUN4s. There were no instruc- tions on how to compile only the client side, so I sent mail to the original author asking about this. He said there was no easy way to do this, and I would have to start with ./make distribution and rebuild everything. Since this is a large system, it took a few hours to do this, but I suc- ceeded, and after finding out which data files I was going to have to copy over as well (not documented, of course), I got it working. Meanwhile, I had been building databases for the system. If you try and load a database with duplicate entries into your running system, it crashes, but they provide a program that will scan a datafile to see if it’s OK. There's a makefile entry for compiling this entry, but not for installing it, so it remains in the source hierarchy. Last night, I brought my X.500 server down by loading a broken database into it. I cleaned up the database by hand and then decided to be rational and run it through their program. I couldn't find the program (which had a horrid path down in the source hierarchy). Naturally enough, it had been deleted by the ./make distribution (Isn't that what you would call the command for deleting everything?). I
Not File System Specific? (Not Quite) 299 thought, “Fine, I’ll recompile it.” This didn’t work either because it was depending on intermediate files that had been recompiled for the other architecture. So… What losing Unix features caused me grief here. 1) Rather than having a rational scheme of priv bits on users, there is a single priv’d user who can do anything. 2) Unix was designed in a networkless world, and most systems that run on it assume at some level or other that you are only using one host. 3) NFS assumes that the client has done user validation in all cases except for root access, where it assumes that the user is evil and can’t be trusted no matter what. 4) Unix has this strange idea of building your system in one place, and then moving the things you need to another. Normally this just means that you can never find the source to a given binary, but it gets even hairier in a heterogeneous environment because you can keep the intermediate files for only one version at a time. I got mail last night from the author of this system telling me to relax because this is supposed to be fun. I wonder if Usenix attendees sit in their hotel rooms and stab themselves in the leg with X-Acto knives for fun. Maybe at Usenix, they all get together in the hotel’s grand ballroom and stab themselves in the leg as a group.
A Epilogue Enlightenment Through Unix From: Michael Travers mt@media-lab.media.mit.edu Date: Sat, 1 Dec 90 00:47:28 -0500 Subject: Enlightenment through Unix To: UNIX-HATERS Unix teaches us about the transitory nature of all things, thus ridding us of samsaric attachments and hastening enlightenment. For instance, while trying to make sense of an X initialization script someone had given me, I came across a line that looked like an ordinary Unix shell command with the term “exec” prefaced to it. Curious as to what exec might do, I typed “exec ls” to a shell window. It listed a directory, then proceeded to kill the shell and every other window I had, leaving the screen almost totally black with a tiny white inactive cursor hanging at the bottom to remind me that nothing is absolute and all things partake of their opposite. In the past I might have gotten upset or angry at such an occurrence. That was before I found enlightenment through Unix. Now, I no longer have attachments to my processes. Both processes and the disapperance of pro- cesses are illusory. The world is Unix, Unix is the world, laboring ceaslessly for the salvation of all sentient beings.