Standardisation has played a major role in establishing Unix as a mainstream operating system – but that doesn’t mean that the original authors of Unix have to like it. Dennis Ritchie and Ken Thompson have been highly vocal about their disapproval of the ANSI C standard and Rob Pike, in his keynote speech about Plan 9 at the UK Unix User Group meeting last week, condemned a number of the trends that are currently transforming the Unix industry in the commercial world.
Gnot terminal
Aside from the natural desire of a systems programmer to have free access to the source code for hacking purposes, Pike pointed to X Window as a standard that had been forced to develop too quickly due to commercial pressure, negating the possibility of a more technically elegant solution. He also argued that use of networked workstations, each with its own private data and adminstrative problems, was wasteful and expensive. The response at AT&T Bell Laboratories was to re-think the technology to make Unix fun again and last week Pike, Dave Presotto and Tom Duff revealed details of their Plan 9 distributed system for the first time (CI No 1,469). Plan 9 includes compilers, operating system, networking software, command interpreter and windowing system, as well as a specially-produced terminal – the Gnot – which uses a 25MHz 68020 with 4Mb or 8Mb, 1,024 by 1,024 two-bits per pixel display, keyboard and mouse, but no external storage or expansion bus. Plan 9 needs CPU servers (which can be multi-processors), file servers and terminals such as the Gnot to operate efficiently. The CPU server and terminal have the same operating system, although the terminal’s version is configured for a single, smaller processor for running the windowing system and text editor. The CPU server, which has no local storage, deals with compilation, text processing and other applications, and is connected via direct memory access links to the file server, which holds all the permanent files (at Bell Labs the Silicon Graphics machine has 64Mb memory, 600Mb magnetic disks and 300Gb juke box of write-once optical disks). Frequently used files are kept in the cache, with the magnetic disks acting as a secondary cache for the optical disks, where the true file system resides. The Plan 9 software uses a single file-oriented protocol and local name space operations, and avoids one of the main problems of current day Unix – size. The multi-processor operating system running on the CPU server has 454 lines of assembly language code, while the kernel proper use 3,647 line of C plus 774 header files – with 1,029 lines of code to interface to the 29 system calls. Drivers and network software add another 9,511 lines of code, resulting in a highly efficient operating system. Users interface to the system via the Gnot terminals, of which AT&T have produced several hundred. Unlike X terminals, these offer the user a fully programmable computer running a virtual memory operating system that maintain a complete view of the Plan 9 system. The Gnot runs a windowing system that is implemented as a user-level file server, and with no bit-mapped graphics code can be run on any machine. Users can work locally, or connect to the CPU server using the cpu command, still retaining the terminal’s local name space.
By John Abbott and William Fellows
Most utilities have a familar Unix feel to them, but all have been re-written, and Pike’s cultural compatibility with Unix is all that has been aimed for. First emerging between 1987 and 1988, Plan 9 was re-written from May 1989 to take advantage of multi-processing, with the Silicon Graphics file server first coming on line in February of this year. One of the main advantages of the system is seen as its portability – although MIPS-based systems and the Motorola-based Gnot terminals are used at Bell Labs, fast implementation of the system for other appropriate hardware, including Sparc and Intel systems, should present few technical problems. But with its healthy disregard for standards, the system is unlikely to be offered as a commercial
operating system for the present, and like Unix itself, may well have to gather support in the academic community before it starts to be taken seriously elsewhere. Unix and C language developers Dennis Ritchie and Ken Thompson – both still with AT&T’s Bell Labs research centre in New Jersey concentrated on the intricacies of C and C compilers. Ritchie started off dealing with the pros and cons of the recently adopted ANSI C language standard. What do I think? I think its pretty good – they took the thing, and didn’t make it any worse! In fact they made some improvements, but it took them longer than it should have, and they would have done better to be more radical. One of the main headaches for C compiler developers is that because the new standard took so long to put together, there are now as many C programs around that use the old ANSI standard as the new – its all very messy, Ritchie mused. Under ANSI rules, the standard now cannot be altered for five years, however Ritchie said that in the US, a body that goes by the name of the Numerical C Extensions Group – apparently composed of Fortran refugees – is working hard to address some of its limitations, such as how to take advantage of IEEE mathematics such as non numbers and vector extensions, and parallelism. He went on to talk about the extensions and deletions that have been made to the language for the new C compiler that is being used by Plan 9, implemented in their laboratories on the – now commercially abandoned – AT&T Crisp RISC chip, and on Motorola and MIPS Computer processor architecture.
Poor self-discipline
One continuing problem with C is that it does not allow variable array sizes. The solution was obvious to me, said Ritchie, let arrays be expressions. He said that such a move had been considered 10 years ago when C was originally being put together, but was dropped because it was a pain to program. In fact the Free Software Foundation’s C compiler tried to do the job – but it didn’t work, he said. The problems, he suggested, are where to get the space to do the job, and what to call them. Before Thompson went on to talk about the new C compiler itself, he offered his his own views on the ANSI C standard, I have poor self-discipline, I am totally unable to follow a set of instructions – ie the C standard – and that from the guy who invented C! And he warned the packed auditorium before he started – C compilers – it’s not an exciting subject. He revealed that the compiler AT&T is working on is structured differently from conventional C compilers, though the components are basically the same, and there are a host of extensions but its all syntactic sugar, he said. Papers on Plan 9, C and C++ by Rob Pike, Dave Presotto, Tom Duff, Dennis Ritchie and Ken Thompson are published in the UK Unix User Group Conference Proceedings, available from UKUUG Secretariat, Owles Hall, Buntingford SG9 9LP