To: linux-kernel@vger.rutgers.edu Subject: OT: PerlOS---the horrible, horrible dream From: buhr@stat.wisc.edu (Kevin Buhr) Date: 02 Mar 2000 11:42:01 -0600 I had a nightmare last night. See, Perl 6 had been released, and it wasn't a standalone interpreter---it was a free POSIX wannabe implemented entirely in Perl. The usual suite of unixy system calls was there, though most took regular expressions, like so: stat /\.c$/; kill /\bforkbomb\b/; I was subscribed to the Perl 6.0 development mailing list, "linux-perl@vger.rutgers.edu", though "perl-kernel" would have been a more suitable name---bad dream-logic, I guess. Anyway, the list regulars were giving patient explanations to new Perl developers who wanted to reimplement the kernel in C++ or gratuitously break Perl or POSIX compatibility. There were also the usual angry messages from new Perl users who had stumbled across the list and were demanding to know why upgrading from Perl 5.005 (the intepreter) to Perl 6.001 (the OS) had replaced Windows. In a (dream-logic) twist on Linux odd/even version numbering, I seem to remember knowing that odd major version numbers were interpreters while even major version numbers were operating systems (used to develop new feature sets to be released in the next interpreter). Of course, this fact was clearly documented, so it was their own fault for installing beta operating system code instead of the stable interpreter code they really wanted. I forget who the key contact was for the stable Perl 5 interpreter release---I know it wasn't Alan Cox, because he was busy coordinating an important security patch release for Perl 4, the old OS version. Anyway, someone had just sent a 9500-line patch to the list. It added explicit reference counting to all kernel data structures. In addition to the expected barrage of hate mail, Linus had joined the fray---there was no way in HELL he was going to add this UGLY, UGLY code to the Perl kernel when Perl already supported internal reference counting and there was a kernel interface to break circular references. Again, thanks to dream-logic, even though this was definitely a mailing list, it was also interactive, so I was explaining, in real time, that it was a serious security hole to allow the system call hash to be modified by non-root users: $Kernel::_syscall{setuid} = &mysub. Alan, together with Alexander Viro, were ganging up on me, making fun of me and telling me that you *had* to trust your users because there was no way to secure the system from someone who could log in. That's all I remember. Except, if anyone is interested, the source code for Perl 6.0 (written in Perl, of course---don't ask me how one bootstraps an interpreter to run on itself) uses Linux-style indenting and is quite readable. It also uses C-style comments. I do not know if there are quotations from Tolkien at the top. Kevin <buhr@stat.wisc.edu> P.S. I just remembered that Linus was *also* explaining, in another thread, why a Perl microkernel would be far inferior, performance-wise to the current monolithic kernel. I think I'm going to take a break from computers. I hear organic farming is rewarding. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/