One of the things that's always fascinated me about Unix is the community
aspect; in particular, I imagine that in the early days when machines were
multiplexed among many simultaneous users, I wonder whether there was a
greater sense of knowing what others were up to, working on, or generally
doing.
I think of the /etc/motd file as being a part of this. It is, in some very
real sense, a way to announce things to the entire user community.
So what are its origins? Where did it first appear? I haven't dug into
this, but I imagine it was at Berkeley. What was it used for early on at
individual sites?
- Dan C.
> From: Dave Horsfall
> he would've been the registraNT, no?
Symbolics was the registrant.
I may have spoken too soon, Postel/ISI might not have been the registrar when
".com" was set up, so maybe it was someone at SRI/NIC. (The memory is dim.) I
don't remember how "MIT.EDU" got registered - I'm not sure if I did it. It
was definitely Jon handing out addresses, not SRI - I do recall us going to
Jon to get 128.30 & 31.
Noel
> From: Michael Kjörling
> the DNS RFCs (initially 1034, 1035) were only published in 1987...
Ah, those were later versions; the originals were:
0882 Domain names: Concepts and facilities. P.V. Mockapetris. November
1983.
0883 Domain names: Implementation specification. P.V. Mockapetris.
November 1983.
Both were updated by RFC0973 before being replaced by 1034/1035.
You might also want to look at:
0881 Domain names plan and schedule. J. Postel. November 1983.
0897 Domain name system implementation schedule. J. Postel. February 1984.
0921 Domain name system implementation schedule - revised. J. Postel. October 1984.
Note that ".com" didn't exist in the early revs.
Noel
> From: Lars Brinkhoff
> Is this "Network Unix" available?
??? This was announced here not long ago:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC
It's called 'NOSC' because that's where it came from, but it has the Illinois
NCP code in it.
Noel
hi,
im looking for Unix/Unix-like/Linux friendly hardware(desks,laps,phones,etc) free of proprietary software or compatible with free software(OS,BIOS firmware,etc) something that is easy to replace stock or something that cames with free software preinstalled and that i can replace them if i want to.
i've seen some lists that contain vendors that are Unix/Linux friendly and also the hardware endorsed by FSF which seem to be Lenovo thinkpads,etc the thing is it seems most of hardware require external flashing to replace BIOS,etc and makes the task harder..
my question are,
what are the bests Unix/Unix-like/Linux friendly hardware manufacturers?
which hardware is the best to make a computer 100% free (free BIOS and OS) and that is optimized and behave better under Unix/Unix-like/Linux based OS's?
Thank you.
--
PHACT Phreakers / Hackers / Anarchists / Cyberpunks / Technologists
Back when the dinosaurs were using card readers (and yes, I've used a card
reader on Unix; I think it was a desktop CDC model, and the driver would
handle two modes: strict 80-column i.e. one 12-bit column per 16-bit word
and you got 80 of 'em on a DMA channel, or ASCII NL-terminated after last
non-blank column, and no, I have no idea whether it handled EBCDIC or CDC
etc, but I digress as usual).
Where was I? Oh yes, sleeps...
Back when sleep(3) was sleep(2) (yes, Virginia, sleep() used to be a
system call, then it became alarm()/pause(), and now it seems to be
nanosleep(), and I'm wandering again), you never called sleep(1) because
its granularity was +/-1 second (and all the way up to +infinity,
actually, on a really busy machine), thus it could return right away, with
ensuing hilarity.
So, I'm curious:
When did sleep(2) become sleep(3)? Was it V7, or some BSD? Or Babbage
help me, SysVile?
When did the caveat about sleeping for 1 second become known? I don't
think that I ever saw it documented, but was one of those "lore" things
passed around at Unix conferences and the like.
And when did it start using nanosleep() instead of alarm()/pause()? I see
that my Penguin box has a bet both ways; it "may" use SIGALRM[a] (thus
"mixing calls to alarm(2) and sleep() is a bad idea" (well, I've used
both), and also refers to nanosleep().
[a]
Alpine's spell-checker suggested "SICKROOM" here; pretty close when
dealing with timed-out reads on a TTY connection[ii] :-)
[ii]
Have you tried this with Perl? You can't rely on EINTR[3], so you have to
use eval{} blocks instead, and it starts getting pretty fugly...
[3]
And here it suggested "ENTREE".
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
>Date: Wed, 7 Mar 2018 13:54:32 -0500
>From: Paul Winalski <paul.winalski(a)gmail.com>
>To: Clem Cole <clemc(a)ccc.com>
>Cc: The Eunuchs Hysterical Society <tuhs(a)tuhs.org>
>Subject: Re: [TUHS] Sleep()y musings
>Message-ID:
> <CABH=_VTO7sdgGypp3U7zQoWdJ3HsGUUjrk->6_Rf5VE5gyNGD7g(a)mail.gmail.com>
>Content-Type: text/plain; charset="UTF-8"
>
>...
>VAX also has a Time-of-Year Clock Register (colloquially called the
>TOY clock), a 32-bit unsigned value whose LSB represents a resolution
>of 10 milliseconds (0.01 second). All VAX models except the
>VAX-11/730 provided battery backup for the TOY clock so that it
>continued to operate even when the system was powered off. A VAX can
>thus be powered off for about 497 days and still remember the
>date/time.
Also in AlphaServers we still have this TOY, the clock and the battery that is.
>From a DS10 running Digital Unix 4.0G, /var/adm/messages file, I only
removed the BEL characters
Dec 12 03:01:27 br0011 vmunix: You must reset the system time manually
Dec 12 03:01:27 br0011 vmunix: Time of year (TOY) clock returned zero
as the current time
Dec 12 03:01:27 br0011 vmunix:
Dec 12 03:01:27 br0011 vmunix:
Dec 12 03:01:27 br0011 vmunix: WARNING: preposterous time in TOY clock
-- CHECK AND RESET THE DATE!!
Dec 12 03:01:27 br0011 vmunix:
Dec 12 03:01:27 br0011 vmunix: i2c: Server Management Hardware Present
Dec 12 03:01:27 br0011 vmunix: datalink: links=128, macs=6
Dec 12 03:01:27 br0011 vmunix: NOTE: dxb_configure: Configure values:
dxb, ffffffffffffff9d, ffffffff90bfbf80, ffffffff90bf9a20
Dec 12 03:01:27 br0011 vmunix: WARNING: dxb_configure:
configure_driver error = 22
Dec 12 03:01:28 br0011 vmunix: Node ID is 00-10-64-30-ae-38 (from device tu0)
Dec 12 03:01:28 br0011 vmunix: WARNING: Time of year (TOY) clock
battery is dead, time and NVR contents ignored
Dec 12 03:01:28 br0011 vmunix:
Dec 12 03:01:28 br0011 vmunix: You must reset the system time manually
Cheers,
uncle rubl
> From: Dave Horsfall
> When did sleep(2) become sleep(3)? Was it V7, or some BSD?
Before V7. The MIT system (~PWB1) says, on the man page for sleep (II), "As of
this writing the system call is still available although the C routine
implmeneting the function uses 'alarm' and 'pause' (II). It will be withdrawn
when convenient."
Probably left the system call there for compiled commands, etc which used it?
Noel
> > But the concept of email goes way back.
> Indeed, it does, but only on the same system.
Very far back. CTSS had a mail utility.
If communication within one system is not
recognized as email, then the exchange that
opened in Boston in 1877 was not a
telephone system.
Doug
We lost Ray Tomlinson on this day in 2016; known as the inventor of email,
he sent the first message between two hosts on the ARPAnet (prior to that
the users had to be on the same host), and pioneered the use of the "@"
sign.
In the meantime, some tosser (his name is not important) is claiming that
he invented email first; I recall that APL\360 had a "mailbox" facility,
but it certainly didn't use "@".
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
I hadn't realized that groff hyphenation had been taken from
Tex, not troff. Is that becuase Tex did a better job, or
because troff's was deemed proprietary?
A new paper comparing Unix kernel designs was published earlier today:
Stergios Papadimitriou and Lefteris Moussiades
Mac OS versus FreeBSD: A Comparative Evaluation
[IEEE] Computer 52(2), 44--53, February 2018
https://doi.org/10.1109/MC.2018.1451648
Despite the title, GNU/Linux also is included in the comparisons. The
abstract is:
>> ...
>> FreeBSD (an open source Unix-like OS) and Apple's Mac OS use similar
>> BSD functionality but take different approaches. FreeBSD implements a
>> traditional compact monolithic Unix kernel, whereas Mac OS builds the
>> BSD Unix functionality on top of the Mach microkernel. The authors
>> provide an in-depth technical investigation of both approaches.
>> ...
Our fellow list member Larry McVoy, and his lmbench suite, are
mentioned in the article, along with results of that suite.
There are about 200 numbers in the two large tables of performance
measurements, and while many are comparable across operating systems,
there are some benchmarks that show up to a 40x difference between
systems on the same hardware.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe(a)math.utah.edu -
- 155 S 1400 E RM 233 beebe(a)acm.org beebe(a)computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------
pipes in SCO UNIX 3.2V4.2,
It's long, long ago, so excuses for vagueness. I think the issue was
not pipe() perse, but the difference in functionality between 'pipe
filesystem' and streams pipes.
By using pipe() you create a FIFO pipe with certain limitations
(including 5120 write limit). When you open the streams device twice
and ioctl() two file descriptors together you have more flexibility.
Excuses for the possible confusion.
Following the Claude Shannon discussion:
http://www.jaycar.com.au/useless-box/p/GT3706
I tried to explain to the Young Thing (tm) behind the shop counter that it
was invented several decades ago etc, but I suspect it was beyond her
ken...
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
> [Bob Fano} still has a reverential photograph of Shannpn
> hanging in his office.
Alas, no, Fano died in 2016 at age 98.
More memories: Fano was among the grad students who came to
ice-skating parties at our house in the mid-40s--the house near
Shannon's later abode. I did not really get to know him until
Multics days. His gravelly mafioso voice would scare you off--until
you saw the irrepressible twinkle in his eye. A beloved and
inspiring leader, worthy of Dave Horsfall's calendar.
Doug
>From a piece of code I have in some SCO UNIX 3.2V4.2 source. SCO
doesn't have pipes, but you can simulate them.
int fd[2]
int rc;
struct strfdinsert ins;
queue_t *pointer = (queue_t *)NULL;
rc = -1;
/*
* First open the stream clone device "/dev/spx" twice,
* obtaining the two file descriptors.
*/
if ( (fd[0] = open(SPX_DEVICE, O_RDWR)) < 0)
{
gen_trace(gtr_flag, "-gen_pipe(): -open(fd[0]): %s\n", strerror(errno));
break;
}
if ( (fd[1] = open(SPX_DEVICE, O_RDWR)) < 0)
{
gen_trace(gtr_flag, ">gen_pipe(): -open(fd[1]): %s\n", strerror(errno));
close(fd[0]);
break;
}
/*
* Now link these two streams together with an
* I_FDINSERT ioctl.
*/
ins.ctlbuf.buf = (char *) &pointer; /* no ctl info, just the ptr */
ins.ctlbuf.maxlen = sizeof(queue_t *);
ins.ctlbuf.len = sizeof(queue_t *);
ins.databuf.buf = (char *) 0; /* no data to send */
ins.databuf.len = -1; /* magic: must be -1, not 0, for stream pipe */
ins.databuf.maxlen = 0;
ins.fildes = fd[1]; /* the fd to connect with fd[0] */
ins.flags = 0; /* nonpriority message */
ins.offset = 0; /* offset of pointer in control buffer */
if (ioctl(fd[0], I_FDINSERT, (char * ) &ins) < 0)
{
gen_trace(gtr_flag, ">gen_pipe(): -ioctl(I_FDINSERT): %s\n", strerror(errno));
close(fd[0]);
close(fd[1]);
break;
}
If I'm remembering correctly, miniunix didn't have pipes. The shell faked
it by taking the output of the first program into a file and then using it
as the input for the second.
Didn't really multitask anyhow, so it was pretty much fine.
-----Original Message-----
From: TUHS [mailto:tuhs-bounces@minnie.tuhs.org] On Behalf Of Ian Zimmerman
Sent: Monday, February 26, 2018 11:58 AM
To: tuhs(a)minnie.tuhs.org
Subject: Re: [TUHS] EOF on pipes?
On 2018-02-26 23:03, Rudi Blom wrote:
> From a piece of code I have in some SCO UNIX 3.2V4.2 source. SCO
> doesn't have pipes, but you can simulate them.
Is this a SCO speciality, or are there other UNIXes like that?
Does it not even have pipe() in its libc?
Many years ago (when the dinosaurs were using V6), I had a crazy idea[*]
that a write(fd, 0, NULL) would somehow signal EOF to the reader i.e. a
subsequent read would wait for further data instead of ENOTOBACCO.
Did any *nix ever implement that? I have no idea how it would be done.
Have an ENOGORILLA.
To answer the real question: stream pipes, which became the only
sort of pipe in the Research stream (sic) sometime between the
8/e and 9/e manuals.
The implementation was trivial, because from the beginning the
metadata within a stream admitted delimiters: markers that meant
`when this object reaches read(2) at the head end, return from
read with whatever has already been delivered.' Empty messages
(two consecutive delimiters) were explicitly allowed.
If a stream was marked as using delimeters (and pipes always
were), a delimeter was inserted after every write(2). So
write(2) generated an empty message, and read(2) returned it.
Norman Wilson
Toronto ON
We lost Claude Shannon on this day in 2001. He was a mathematician,
electrical engineer, and cryptographer; he is regarded as the "father" of
information theory, and he pioneered digital circuit design. Amongst
other things he built a barbed-wire telegraph, the "Ultimate Machine" (it
reached up and switched itself off), a Roman numeral computer ("THROBAC"),
the Minivac 601 (a digital trainer), a Rubik's Cube solver, a mechanical
mouse that learned how to solve mazes, and outlined a chess program
(pre-Belle). He formulated the security mantra "The enemy knows the
system", and did top-secret work in WW-2 on crypto and fire-control
systems.
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
Re: RIP Claude Shannon
> Never heard of Claude Shannon. So a good opportunity to do some
> searching reading to 'catch up'.
Shannon did some amazing work. My field is Information science and without Shannon, it would be a dull field indeed. His masters thesis laid out an elegant use of digital logic for switching systems that we take for granted today, his mathematical theory of communication, while dense, is foundational - ever heard of a bit?, and he actually loved juggling so much he created a juggling machine - what’s not to love? :) All that said, he was also in the right place at the right time and was surrounded by genius.
Will
> But a note on Dijkstra's algorithm: Moore and Dijsktra both published
> in 1959.
I was off by one on the year, but the sign of the error is debatable.
Moore's paper was presented in a conference held in early April, 1957,
proceedings from which were not issued until 1959. I learned about it
from Moore when I first I met him, in 1958. Then, he described the
algorithm in vivid, instantly understandable terms: imagine a flood
spreading at uniform speed through the network and record the
distance to nodes in order of wetting.
> But it is documented Dijkstra's algorithm has been invented and used
> by him in 1956.
Taking into account the lead time for conference submissions, one
can confidently say that Moore devised the algorithm before 1957.
I do not know, though, when it first ran on a Bell Labs computer.
That said, Moore's paper, which presented the algorithm essentially
by example, was not nearly as clear as the capsule summary he gave
me. It seems amateurish by comparison with Dijkstra's elegant treatment.
Dijkstra's name has been attached to the method with good reason.
Doug