Hi,
The following comment was made on the geeks mailing list and I figured
it was worth cross posting to the TUHS mailing list. -- I'm BCCing the
original poster so that they are aware of the cross post and in case
they want to say more.
--8<--
In related news that might entertain and inform, there are some
interesting old-timey UNIXes out there that I've come across recently
though:
XV6:
https://pdos.csail.mit.edu/6.828/2012/xv6.html
OMU:
http://www.pix.net/mirrored/discordia.org.uk/~steve/omu.html
V7/x86:
https://www.nordier.com/
RUnix and Singlix:
https://www.singlix.com/runix/
-->8--
I don't know if any of it should be included in the TUHS archives or
not. -- I figure discussing it on TUHS is the best way to find out.
P.S. Re-sending to the correct TUHS email address. Somehow I had
something on file reflecting the old server. :-/
--
Grant. . . .
unix || die
> It was used, in the modern sense, in "Planning a Computer System",
> Buchholz,1962.
Also in the IBM "650 Manual of Operation", June, 1955. (Before I was
born! :-)
Noel
> On Sep 8, 2022, at 9:51 AM, Jon Steinhart <jon(a)fourwinds.com> wrote:
> One of those questions for which there is no search engine incantation.
Whatever it is, it's really old. I found it used, not quite in the modern
sense, in "Hi-Speed Computing Devices", by ERA, 1950. It was used, in the
modern sense, in "Planning a Computer System", Buchholz,1962.
Noel
> (Research) Unix ... 'shipped' with zero known bugs.
It wasn't a Utopia. Right from the start man pages reported BUGS,
though many were infelicities, not implementation errors.
Dennis once ran a demo of a ubiquitous bug: buffer overflow. He fed a
2000-character line on stdin to every program in /bin. Many crashed.
Nobody was surprised; and nobody was moved to fix the offenders. The
misdesign principle that "no real-life input looks like that" fell
into disrepute, but the bad stuff lived on. Some years down the road a
paper appeared (in CACM?) that repeated Dennis's exercise.
> An emergent property is "Good Security”
Actually security (or at least securability) was a conscious theme
from the start to which Ken, Bob Morris, and Fred Grampp gave serious
attention. Networking brought insecurity, especially to Berkeley Unix.
But research was not immune; remote execution via uucp caused much
angst, but not enough to kill it.
In regards to the basic question. To oversimplify: Theme 1. Unix
facilities encouraged what Brian recognized and proselytized as
software tools. Theme 2. OS portability was new and extraordinarily
final. Subsequent OS's were all portable and were all Unix.
Doug
Does anybody out there have a copy of the old AT&T Toolchest "dmd-pgmg"
package?
This apparently includes the a SysV port of Sam for 5620/630 as well
as other programs for the AT&T windowing terminals.
I’ve been looking at this question for a time and thought it could’ve appeared on the TUHS list - but don’t have an idea of the search terms to use on the list.
Perhaps someone suggest some to me.
As a starting point, below is what John Lions wrote on a similar topic in 1978. Conspicuously, “Security” is missing, though “Reliability & Maintenance” would encompass the idea.
With hindsight, I’d suggest (Research) Unix took a very strong stance on “Technical Debt” - it was small, clean & efficient, even elegant. And ‘shipped' with zero known bugs.
It didn’t just bring the Unix kernel to many architectures, the same tools were applied to create what we now call “Open Source” in User land:
- Multi-platform / portable
- the very act of porting software to diverse architectures uncovered new classes of bugs and implicit assumptions. Big- & Little-endian were irrelevant or unknown Before Unix.
- full source
- compatibility layers via
- written in common, well-known, well-supported languages [ solving the maintenance & update problem ]
- standard, portable “toolchains”
- shell, make, compiler, library tools for system linker, documentation & doc reading tools
- distribution systems including test builds, issue / fault reporting & tracking
An emergent property is "Good Security”, both by Design and by (mostly) error-free implementations.
In the Epoch Before Unix (which started when exactly?), there was a lot of Shared Software, but very little that could be mechanically ported to another architecture.
Tools like QED and ROFF were reimplemented on multiple platforms, not ‘ported’ in current lingo.
There are still large, complex FORTRAN libraries shared as source.
There’s an important distinction between “Open” and “Free” : cost & availability.
We’ve gone on to have broadband near universally available with easy to use Internet collaboration tools - e.g. “git”, “mercurial” and “Subversion” just as CVS’s.
The Unix-created Open Source concept broke Vendor Lock-in & erased most “Silos”.
The BSD TCP/IP stack, and Berkeley sockets library, were sponsored by DARPA, and made freely available to vendors as source code.
Similarly, important tools for SMTP and DNS were freely available as Source Code, both speeding the implementation of Internet services and providing “out of the box” protocol / function compatibility.
The best tools, or even just adequate, became only a download & install away for all coding shops, showing up a lot of poor code developed by in-house “experts” and radically trimming many project schedules.
While the Unix “Software Tools” approach - mediated by the STDOUT / STDIN interface, not API’s - was new & radical, and for many classes of problems, provided a definitive solution,
I’d not include it in a list of “Open Source” features.
It assumes a “command line” and process pipelines, which aren’t relevant to very large post-Unix program classes: Graphical Apps and Web / Internet services.
regards
steve jenkin
==============
Lions, J., "An operating system case study" ACM SIGOPS Operating Systems Review, July 1978, ACM SIGOPS Oper. Syst. Rev. 12(3): 46-53 (1978)
2. Some Comments on UNIX
------------------------
There is no space here to describe the technical features of UNIX in detail (see Ritchie and Thompson, 1974 ; also Kernighan and Plauger, 1976),
nor to document its performance characteristics, which we have found to be very satisfactory.
The following general comments do bear upon the present discussion:
(a) Cost.
UNIX is distributed for "academic and educational purposes" to educational institutions by the Western Electric Company for only a nominal fee,
and may be implemented effectively on hardware configurations costing less than $50,000.
(b) Reliability and Maintenance.
Since no support of any kind is provided by Western Electric,
each installation is potentially on its own for software maintenance.
UNIX would not have prospered if it were not almost completely error-free and easy to use.
There are few disappointments and no unpleasant surprises.
(c) Conciseness.
The PDP-11 architecture places a strong limitation on the size of the resident operating system nucleus.
As Ritchie and Thompson (1974) observe,
"the size constraint has encouraged not only economy but a certain elegance of design".
The nucleus provides support services and basic management of processes, files and other resources.
Many important system functions are carried out by utility programs.
Perhaps the most important of these is the command language interpreter, known as the "shell".
(Modification of this program could alter, even drastically, the interface between the system and the user.)
(d) Source Code.
UNIX is written almost entirely in a high level language called "C" which is derived from BCPL and which is well matched to the PDP-11.
It provides record and pointer types,
has well developed control structures,
and is consistent with modern ideas on structured Programming.
(For the curious, the paper by Kernighan (1975) indirectly indicates the flavour of "C"
and exemplifies one type of utility program contained in UNIX.)
Something less than i0,000 lines of code are needed to describe the resident nucleus.
pg 47
(e) Amenability.
Changes can be made to UNIX with little difficulty.
A new system can be instituted by recompiling one or more files (at an average of 20 to 30 seconds per file),
relinking the file containing the nucleus (another 30 seconds or so),
and rebooting using the new file.
In simple cases the whole process need take no more than a few minutes.
(f) Intrinsic Interest.
UNIX contains a number of features which make it interesting in its own right:
the run-time support for the general tree structured file system is particularly efficient;
the use of a reserved set of file names smooths the concepts of device independence;
multiple processes (three or four per user is average) are used in a way which in most systems is regarded as totally extravagant
(this leads to considerable simplification of the system/user interface);
and the interactive intent of the system has resulted in an unusually rich set of text editing and formatting programs.
(g) Limitations.
There are few limitations which are of concern to us.
The PDP-11 architecture limits program size, and this for example frustrated an initial attempt to transfer Pascal P onto the 11/40.
Perhaps the greatest weakness of UNIX as it is presently distributed (and this is not fundamental!)
is in the area where other systems usually claim to be strong:
support for "bread and butter" items such as Fortran and Basic.
(h) Documentation.
The entire official UNIX documentation, including tutorial material, runs to less than 500 pages.
By some standards this is incredibly meagre,
but it does mean that student can carry his own copy in his brief case.
Features of the documentation include:
- an unconventional arrangement of material (unsettling at first, but really very convenient);
- a terse, enigmatic style, with much information conveyed by innuendo;
- a permuted KWIC index.
Most importantly perhaps UNIX encourages the programmer to document his work.
There is a very full set of programs for editing and formatting text.
The extent to which this has been developed can be gauged from the paper by Kernighan and Cherry (1975).
==============
--
Steve Jenkin, IT Systems and Design
0412 786 915 (+61 412 786 915)
PO Box 38, Kippax ACT 2615, AUSTRALIA
mailto:sjenkin@canb.auug.org.au http://members.tip.net.au/~sjenkin
>> a paper appeared (in CACM?) that repeated Dennis's exercise.
> Maybe this one?
> B.P. Miller, L. Fredriksen, and B. So, "An Empirical Study of the Reliability
> of UNIX Utilities", Communications of the ACM 33, 12 (December 1990).
> http://www.paradyn.org/papers/fuzz.pdf
Probably. I had forgotten that the later effort was considerably more
elaborate than Dennis's. It created multiple random inputs that might
stumble on other things besides buffer overflow. I see a Unix parable
in the remarkable efficacy of Dennis's single-shot test.
Doug
I added i386 binary compiled from 4.4BSD-Alpha source.
http://www.netside.co.jp/~mochid/comp/bsd44-build/
Boot with bochs works rather well. qemu-system-i386 also boots, and
NIC (NE2000 ne0) works good, but kernel prints many "ISA strayintr" messages.
I got many useful infomations from below 2 sites:
"Fun with virtualization" https://virtuallyfun.com/ 386bsd bochs qemu
"Computer History Wiki!" https://gunkies.org/wiki/Main_Page
Installing 386BSD on BOCHS
First time, I tried to compile i386 using 4.4BSD final (1995) source,
patching many many pieces from 386BSD, NetBSD, and else..
but then, I felt "Well, we have BSD/OS 2.0, NetBSD 1.0, and FreeBSD 2.0
those are full of good improvements.."
So, I changed target, and remebered Pace Willisson's memo in 4.4BSD
(and in 4.4BSD-Lite2 also) sys/i386/i386/README:
"4.4BSD-alpha 80386/80486 Status" June 20, 1992
that file says "can be compiled into a fairly usable system".
yeah, needed chages not so small, though.
-mochid
Hi All.
Thanks to Jeremy C. Reed who's email to the maintainer got the PCC Revived
website and CVS back up.
Thanks to everyone who let me know that it's back up. :-)
My github mirror is https://github.com/arnoldrobbins/pcc-revived and there
are links there to the website etc.
My repo has a branch 'ubuntu18' with diffs for running PCC on Ubuntu,
if that interests anyone.
Enjoy,
Arnold