3 ms·
I've been reading up lately on the earlier OS's that influenced Unix - the Compatible Time-Sharing System, the Berkeley Time-Sharing System (Project Genie), and
by bbanyc 7y ago
I've been reading up lately on the earlier OS's that influenced Unix - the Compatible Time-Sharing System, the Berkeley Time-Sharing System (Project Genie), and Multics. Bitsavers.org and Multicians.org both have a lot of information on that early era (and Bitsavers has a whole lot more).
Lots of the ideas in Unix came from those earlier systems. What Thompson and Ritchie contributed was synthesizing these ideas into a more coherent whole, and demonstrating that they could be made a whole lot smaller. (Both in terms of the PDP-7 and 11/20 being smaller computers than the mainframes previous systems were written for, and in that descriptive command names were reduced to cryptic abbreviations. CTSS's LISTF was shortened to ls, ARCHIV to ar, RUNOFF to roff and then nroff/troff...) And of course Unix ran on the most popular computer of the 1970s and got rewritten in a portable language to let it run on every popular computer since then, while just about every other OS was tied to its specific hardware platform and died off as the hardware did.
All really fascinating stuff.
- larsbrinkhoff 7y agoI understand TENEX is largely a port of the Berkeley system from SDS 940 to PDP-10. So that would make Unix and TENEX siblings.
- msla 7y agoHaving used Multics and a farrago of other OSes (not CTSS or the Berkeley timesharing system) as part of my retrocomputing hobby, I think the single biggest thing Unix brought to the day-to-day experience of using an OS was the pipe, and the concomitant transformation of the command line from just being a way to enter program names with command line options (on OSes which even have command line options as we know them, of course) to being a programming language in its own right suitable for rapid prototyping and the creation of glue code. Glue code isn't glamorous. It isn't something which seems to get a lot of research put into it. It is, however, important to get right, and part of getting it right is foregrounding the right thing: The stuff you're gluing together, as opposed to the glue itself. This is something the "replace shell with a Real Programming Language" projects get wrong, in that the Unix shell defaults to treating unknown barewords as external programs as opposed to syntax errors. This plays Hell with any kind of automated analysis, but it's essential for a language primarily intended to glue those external programs together. Typing isn't just about the type system, after all. TL;DR: OSes prior to Unix had surprisingly weak scripting facilities, and attempts to "improve" scripting tend to miss the point.