prl@ethz.UUCP (Peter Lamb) (06/13/90)
The following article appeared (in German) on the German UUG net and SubNet. It tells a short history of Unix in the German Democratic Republic. The original author (Guenther Fischer) can be reached at gf@tu-k-ddr.cs.tu-berlin.de. Translation and redistribution is with the author's permission. The original can be had by emailing me (prl@iis.ethz.ch). Peter Lamb uucp: uunet!mcsun!ethz!prl eunet: prl@iis.ethz.ch Tel: +411 256 5241 Integrated Systems Laboratory ETH-Zentrum, 8092 Zurich UNIX at the TUK/IF Attempt at a private history. Technical University Karl-Marx-Stadt, Computer Science Department Guenther Fischer und Matthias Clausz Translation Peter Lamb, ETH Zurich, with the kind permission of the authors. Getting started 1982 - our department had none of its own students (a department without students is like a dried-out tree) - we were more a service department for the whole school (teaching and technical computing services). Our computing base was 2 ESER I machines (alias IBM 360). We had finally made the jump from DOS to OS, and then with some pressure switched over to TSO - our slogan then was `TSO keeps everyone happy' (TSO macht alle froh) [ perhaps the abuse of dead whales is popular in the GDR - pl :-) :-) ]. We were also just about ready to move away from Assembler programming. The lucky break. One day a magtape, which our IBM-clone could make nothing of, fell into our laps. After analysing it with Hex-Dump it wasn't so hard to see the ASCII codes and the 512-byte blocking. Even if you don't know what it is, it's not so hard to read and print out a tar-format tape. What we then saw on paper (our printer had only capitals and the restricted special characters from IBM stone age), was cryptic enough. The comments and the README's gave away the secret. It was a [compiler for a - pl ] programming language and the name UNIX appeared occasionally. Literature research quickly brought light onto the matter. We even found an unnoticed book in the department; Kernigan&Ritchie's `The C Programming Language'. We were immediately enthusiastic about the idea that an operating system could be written in a high-level language and could run on different machines. Literature searches, a draft translation of the `C' book and an implementation of the `C' preprocessor cpp in our System-Pascal (our first attempt at an alternative to Assembler) rapidly made us known in the Unix-scene in the GDR (in the land of the blind, the one-eyed man is king). In this way we came into contact with other Unix efforts in the GDR: the Froelich brothers (ZKI and LfA Berlin), our collegues in ZfT KEAW Berlin and the TH Ilmeneau, as well as the small team at Robotron Dresden. How to knit a C compiler. Encouraged by the success of the cpp effort (translation into a language similar to `C'), we continued on to the port of the compiler itself. Since we had no machine with a `C' complier, we chose the same method: translation by hand into another language. In a finite time (about 3 months), we had a `C' compiler which produced PDP/11 assembler. The next stage for us, relatively computer-ignorant, was more complicated. We had to convince the code generator to produce IBM 360-Assembler, and the code should also be reasonably good. After the first few attempts, we got the first hello world on the screen fairly quickly. After about 4 months we succeeded in compiling the `C' compiler itself. Of course it was initially PDP/11 code that came out, but from then on, we were able to think in `C'. The alterations to the code generator had to be ported back into the original compiler. Unix - the first stage We built up our relationship with LfA, since their work on PSU was closest to what we wanted. PSU was planned as a subsystem under OS. PSU was similar to Unix, but was restricted -- in particular multiprocessing was simulated sequentially. The first GDR-Unix was a batch system, and was implemented in assembler. As TSO `sharks', we missed the interactive capabilities, and we assisted the port of PSU to TSO with advice and action. As soon as PSU ran, we ported our compiler to this environment -- the first version ran under OS. We also worked in close association with LfA on the compiler. The bulk of Unix tools could then be ported to PSU. Wump (`hunt the wumpus') enjoyed great popularity -- in the graphics age nobody remembers this program. Other Uni's and Colleges assisted with the ports and helped find compiler bugs. But we had a real cuckoo's egg in the nest (or rather LfA had put one there), since PSU used EBCDIC. Some ports (eg. nroff) were true works of art. But our efforts began to bear fruit: - the students and staff could work with the same tools both in batch and interactively, - OS and TSO could no longer be seen, - we could start to educate ourselves for the future. Unix - stage 2 Parallel to our PSU activities, we ran Unix V7 part-time on a `foreign' [non-360 - pl] machine (PDP 11/20) to get some `real' Unix experience. Later we ran two such machines in our department, which could then be easily incorporated in our education and reseatch efforts. Unix - stage 3 We moved to a new situation when our two 360's were exchanged for 370's. We wanted to put real Unix on the new machines. Development efforts, much enthusiasm and a few happy coincidences put us in the position of being able to port Unix such that we had full source, that supported all our peripherals, and that could run `standalone' (without VM), and for which we now had complete German documentation. Th this phase we were actively assisted by TH Leipzig and FSU Jena. The associated installation of about 30 Unix terminals brought us a good piece forwards in education and research. However our so-called `mainframe' with 0.5 MIPS is often overloaded and sometimes requires patience. From this basis came numerous developments: - a job scheduler to permit overnight scheduling - interactive use was insufficient to meet all the computing needs for the students' prac. work. - a number of compilers: Pascal, Modula 2, Lisp, C, C++, - numerous technical tools. In the meantime - 8-bit micros These systems ran CP/M are only mentioned because they were the basis for education with Turbo Pascal, database and textprocessing systems and serve still as stable workhorses. 8 + 8 = 16 == P8000 A significant improvement in our computing misery was brought by the use of P8000 systems. These machines, based on the Z8000 ran the Unix system WEGA. Unix == Unix ? great : not-so-great At last it was clear: it was advantageous to run Unix on all our computers (except for the 8-bit machines), but Unix'es can be quite different from each other. VMX (our 370 system) was approximately Version 7, and WEGA was supposed to be System III compatible. As passionate collectors of Unix literature, we naturally followed all the activities of from /usr/group, SVID and X/OPEN up to POSIX. GDR-UUG (EAG) "GUUG and EAG: why not unity from below?" All GDR Unix developers saw a great need for a uniform documentation of all the varieties of Unix systems. Two years ago we started to write documentation for system calls and library functions, which were based upon X/OPEN and SVID; roughly equivalent to System V Release 2. The command documentation (man1) followed. All systems, where possible, should conform to this standardised interface. Where this was not possible, at least the differences should be documented. This has been pushed quite far for two systems (VMX and MUTOS 1835). Our documentation was made available to others through the EAG, to serve as an example for further systems. The Flop. MUTOS 1835 was a UNIX port which we did under contract for an AT-compatible from Robotron. Since this machine was never produced, the whole thing must be seen as a flop. Unix -- here and now. We see our efforts with X and ET++ on the AT/286 as training for better (hardware-) times. We should have been working on the development of a 386 for the past year, but so far it has not been possible for us to turn up even one such machine. In the meantime, another K1840 (VAX/11-780-alias) has been installed, running its now-standard operating system Unix-OS MUTOS 1800. At the moment we are working on bringing VMX up to System V Release 3. This work is largely being undertaken as student projects. ... and Tomorrow? We have been following the GNU project with great interest, the current work of X/OPEN and OSF, particularly now that AIX has been replaced by Mach. We are told that OSF is interested in University partners!? And here are we by our current problem: What are our directions for our research? Formerly, we were behind double walls -- one we built ourselves and the second by the West (eg. COCOM) -- but even this is crumbling. Our catching-up of the last years came from a sense of emergency, and we learnt our trade through it. Now we need security for our future research which will give us the freedom to purchase new hard- and software, participate in international conferences, connect to networks and update our literature. Whether this comes through cooperative projects with other institutions, through industrial research or however, is almos irrelevant to us -- we want, as far as possible, to determine our own future and not wait until it comes to us from `above'. This last paragraph may be taken politcally. Author: Guenther Fischer (gf@tu-k-ddr.cs.tu-berlin.de) Glossary of abbreviations: TH - Technische Hochschule (Technical College) EAG - Entwickler- und Anwendergemeinschaft / GDR-UUG : GDR-UUG; now also GUUG/east ZKI - Zentralinstitut fuer Kybernetik und Informatik : Institute for Cybernetics and Informatics LfA - Leitzentrum fuer Anwendungforschung : Software Company ZfT KEAW - Zentrum fuer Technik im Kombinat fuer Elektro-Apparate-Werke : Technical Centre, Electrical Equipment Combine - R&D Centre for (amongst other things) electronic control. FSU - Friedrich Schiller Universitaet -- Peter Lamb uucp: uunet!mcsun!ethz!prl eunet: prl@iis.ethz.ch Tel: +411 256 5241 Integrated Systems Laboratory ETH-Zentrum, 8092 Zurich