ARC-Seal: i=1; a=rsa-sha256; t=1790820220; cv=none; d=google.com; s=arc-20260327; b=PCJ8Dl8H++WpHsi8QexJt48eVQJguWfSijXDhQxRvf1SwfkI6+wvoi73FQLL48C1eN QOOPPV5fblnFPbdpH+cOILhLJ/mAs2wn1aH38/Y6o1XkDUejQbT1sltmMZn0o4hthl5P 38nh1QJ5Oixny6vJbVVpZKwMk/L7sWssUuP23QaiHFI3HgGtRrdZvYrXWtzKoG7l0SRH +LX3/EcHztmHF5CsQ4HVOqT/Td3RKxS1Jv5bF333PIX5ltbXaFQArBAgzBVaZHpKhIN0 3TX47rL9uDqwR1Z9xqN++RB4MeilUmDjsNGrc5TMZFdJ1TfNLLYM0c/aniuAvUvuSDMt 13yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uO7NjmCVzDhqV7XITWPtBfpbs+l8VhONYZKpveCksqs=; fh=jV4FDXogsQkGomMWjIK1Gs7h0ozA7XnEO1l3yZNB5x4=; b=BupJ4O6dNb5DeyGybd6HTKYhHrAs9LXjlD1QS76WPhiBei3InPw+kcuOEQcKA7oNBs fasdW7innTEARH+vyLDwObmL/fmn0QhE69ri3vy3Y3VUcqzQNQaKW1M6sFKLvNX+Cldm 8Nkb42JYxf3mAQf68hOXbxeEZn9kRRzrd6mphZInmvxwn9Yqzty6tq/jsY2jd71jni3I EYgO+k0MsYPorjs2hIdWo/+s9f5YtdkacG4oZfFtQqQ8OC7IOFoNn2NNGoPWfLrOw5kd 8XeKQF5m96rD7PoG0AF7TOyOJjSkJ87XwPS7Nv2Jv4ba5la149Nv5xIr4eFO03g1w1ti T0Mw==; darn=tuhs.org ARC-Authentication-Results: i=1; mx.google.com; arc=none Date: Wed, 30 Sep 2026 22:03:24 -0400 To: segaloco <segaloco@protonmail.com> Message-ID-Hash: 2WWUG2VEW3YZHG66EO3SW3DW2AL35O5V CC: The Eunuchs Hysterical Society <tuhs@tuhs.org> Subject: [TUHS] Re: Research Ninth Edition Manual (V1) Found Archived-At: <> From: Douglas McIlroy via TUHS <tuhs@tuhs.org> Reply-To: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> > I don't think any version of [v9] is currently preserved. I have a complete set of all volumes and printed forms of all editions; see https://mcilroy.cs.dartmouth.edu/UnixManuals.jpg. If any other needs copying, I could lend it out for the purpose. > I wouldn't be surprised if volume two wasn't physically published Correct. The only editions with a second volume were v6, v7, anf v10. Doug Editor, v7-v10. On Wed, Sep 30, 2026 at 7:46 PM segaloco via TUHS <tuhs@tuhs.org> wrote: > > Exciting news, I managed to run down a physical copy of volume one of > the Ninth Edition Programmer's Manual. I don't think any version of > this is currently preserved, so I'll try and get it on my scan docket > once I've got my new RISC-V machine all stable. Unfortunately it is > just volume one, although given the relative lack of distribution, I > wouldn't be surprised if volume two wasn't physically published, but I > can't rule that out entirely. > > Anywho, it is thicker than the Tenth Edition I've also got sitting here, > but I haven't had a chance to thumb through the indices to get a feel > for what the delta is. An exciting find nonetheless! > > In the meantime until I get this scanned, happy to entertain any > questions on contents. A question myself: > > What would the reach of V9 have materially been in the late 80s vs. V8 > and V10 around it? The only artifacts from V9 I'm aware of are > contained in the archive from the batterpudding collection. It seems V9 > is pretty darn obscure in the grand scheme of things, so I find myself > curious what the likelihood of something a little closer to virgin BTL > tapes popping up actually is vs. trying to get hands on backup tapes or > images from running systems being used in BTL between 86-89. > > - Matt G.
Wed Sep 30 22:18:00 EDT 2026
Ola, quería saber o seu prezo.
Tue Sep 29 23:21:14 EDT 2026
Xin chào, tôi muốn biết giá của bạn.
Tue Sep 29 14:28:44 EDT 2026
SVC/CONNECTORS(4) SVC/CONNECTORS(4)
NAME
svc/grid, svc/irc, svc/discord, svc/matrix, svc/mxc,
svc/news - connectors between gridchat, IRC, Discord,
Matrix, RSS/Atom feeds and the svc/fs(4) service fileserver
SYNOPSIS
svc/grid [ -q ] [ -s svcname ] [ -n nickname ]
svc/irc [ -emP ] [ -p passwd ] [ -r realname ] [ -n nickname
] [ -t channels ] -s svcname [net!]ircserver[!port]
svc/discord [ -S ] [ -s svcname ]
svc/matrix [ -P ] [ -b baseurl ] [ -s svcname ] server
svc/mxc -s server mxc://server/id ...
svc/news [ -s svcname ] [ -n newsfile ] [ -t minutes ]
DESCRIPTION
Each of these is a connector, a small program that speaks an
external protocol on one side and svcfs(4)'s buffer protocol
on the other. For every conversation it learns about - a
channel, a room, a feed - it creates a buffer and appends
each new message or entry as it arrives. Text written into a
buffer's input is sent out over the external protocol.
svc/grid, svc/irc, svc/discord svc/matrix and svc/news are
connectors for gridchat, IRC, Discord, Matrix, and RSS/Atom
feeds. svc/news does not send any user input back out. See
svcfs(4) for the fileserver they use and its namespace and
its ctl protocol. See svcclient(1) for the client program
users interact with.
A connector needs svcfs(4) already running and mounted
before it is started.
Gridchat (svc/grid)
svc/grid joins 9front's gridchat as nickname (default
$user), and relays the chat into a buffer called svcname
(default #grid). Option -q suppresses the "JOIN $user to
chat" announcement.
IRC (svc/irc)
svc/irc connects to [net!]ircserver[!port], port 6667 by
default, as nickname with real name realname (both default
to $user), sending passwd as a PASS if given. If the pass-
word is in factotum it will be used. If not it will prompt
for a password.
key proto=pass service=svcname user=$user !password?
Option -e enables TLS on the same port. -t channels joins a
comma-separated list of channels on connect. Each channel
and each private-message chat gets its own buffer, named
after it. The server messages use a buffer named svcname. -m
tracks channel membership for the sidebar. -P hides
join/part lines.
Discord (svc/discord)
svc/discord needs webfs(4) mounted at /mnt/web. It will use
a factotum key of the form
key proto=pass service=discord-token user=you !password=token
or prompt on the console for an email and password, and
two-factor code if enabled on the account. It then prints a
key line to add to factotum so the next start skips the
prompt.
Without -S, everything lands in one service named svcname
(default discord), with guild channels named guild/#channel
and direct messages named @user. With -S, each guild
becomes its own service (named after the guild, posted
separately to its own /srv), and its channels are named
#channel within it. A channel can be hidden from the tab
list with /hide [buffer] where not naming a buffer hides the
current one, and brought back with /show [buffer]. /show
with no argument lists hidden buffers. History is kept for
hidden buffers, so /show picks up where it left off.
Matrix (svc/matrix, svc/mxc)
svc/matrix also needs webfs(4) mounted at /mnt/web. Server
is a homeserver name. Unless -b gives the base URL directly,
svc/matrix discovers it via the discovery spec using
server/.well-known/matrix/client. A factotum key of the
form
key proto=pass service=matrix-token server=server user=you
!password=token
will be used if found. If not the program prompts the user
and offers a key line to save. Svcname defaults to a sani-
tized form of server. -P hides join/part lines. Rooms become
buffers named after the room.
svc/mxc is a standalone helper, not a connector. Given one
or more mxc:// URIs it resolves and downloads each one to
standard output, authenticating with the matrix-token facto-
tum key from svc/matrix . It is meant to be run from a plumb
rule for embedded media.
News (svc/news)
svc/news reads a list of feed URLs, one per line, from
newsfile (default $home/lib/news/feeds), fetches each
through webfs(4), and posts titles and links for any entry
it has not shown before to a single buffer, #news. Both RSS
(<item>) and Atom (<entry>) are understood. It refetches
the
whole list every minutes (default 60), or at once when fetch
is written to its ctl. Writing a URL to its input fetches
and parses that URL immediately, keeping its own
seen-entries cache under $home/lib/news. Svcname defaults
to news.
FILES
$home/lib/news/feeds
Default feed list for svc/news, one URL per line.
$home/lib/news/*
Per-feed "already shown" caches, named by a hash of the
feed URL.
See svcfs(4) for the fileserver namespace and ctl protocol
common to all connectors.
SEE ALSO
svcfs(4), svcclient(1), webfs(4), factotum(4), plumb(1)
BUGS
svc/news doesn't clean up a feed's seen-entries cache when a
feed is removed from $home/lib/news/feeds.
Tue Sep 29 11:36:14 EDT 2026
Booting from ROM... Plan 9 HPET: fed00000 8086a201 100 MHz 125 holes free 0x00022000 0x0009f000 512000 0x00100000 0x00110000 65536 0x00610000 0x7ffff000 2141122560 2141700096 bytes free pcirouting: PCI.0.1.3 at pin 1 link 60 irq 9 -> 10 cpu0: 3793MHz AuthenticAMD AMD-K8 (AX 00060FB1 CX 80202001 DX 178BFBFD) amlmapio: no address amlmapio: mapping \_SB.PCI0.S08.P40C failed ELCR: 0C00 LAPIC: fee00000 fffffe80fee00000 cpu0: lapic clock at 63MHz cpu1: 3793MHz AuthenticAMD AMD-K8 (AX 00060FB1 CX 80202001 DX 178BFBFD) cpu2: 3793MHz AuthenticAMD AMD-K8 (AX 00060FB1 CX 80202001 DX 178BFBFD) cpu3: 3793MHz AuthenticAMD AMD-K8 (AX 00060FB1 CX 80202001 DX 178BFBFD) mpintrassign: can't find bus type 12, number 0 #l0: virtio: 1000Mbps port 0xC000 irq 11 ea fe2e83337912 usbxhci: 0x1b36 0xd: port febd0000 size 16384 irq 11 7984M memory: 2048M kernel data, 5936M user, 7186M swap mpintrassign: can't find bus type 12, number 0 pc64.bootfs: Tue Sep 1 07:07:11 GMT 2026 fingerprint: f216f18b84ebaa73931afb2798f95c02de5fc8a3 ip/ipconfig: no success with DHCP <---- Some time lost here, ~10 seconds post... init: starting /bin/rc cpu0# cpu0#
Tue Sep 29 10:27:07 EDT 2026
phishing scams, obviously
Tue Sep 29 08:55:17 EDT 2026
what is this website even about
Mon Sep 28 23:40:47 EDT 2026
enum {
SW_BUF = 0b0000000001000000,
KEEP = 0b0100011101001111,
};
char *msg = "Hello, world!\n";
for(;;){
epr = USB->epr[1] & KEEP;
buf = &USBtbl[1].buf[!!(epr & SW_BUF)];
pmacpy(pmaddr(buf.addr), msg, sizeof msg);
buf.len = sizeof msg;
USB->epr[1] = epr|SW_BUF;
while(full(USB->epr[1]))
/* what if interrupt fires right here? */
halt();
}
Mon Sep 28 22:53:52 EDT 2026
Hello
Mon Sep 28 17:00:26 EDT 2026
#include <u.h>
#include <libc.h>
#include <stdio.h>
#include <bio.h>
typedef struct Node Node;
struct Node {
char *file;
int line;
char *id;
};
Node* nodes[512];
int nnodes;
void
printnode(Node *n)
{
printf("%s: %s:%d\n", n->id, n->file, n->line);
}
Node *
readone(char* line)
{
Node *new;
char *f[6];
int nf;
nf = getfields(line, f, 5, 0, ":");
if(nf < 5)
sysfatal("Could not parse fields\n");
int ln = atoi(f[1]);
new = malloc(sizeof(Node));
new->file = malloc(sizeof(f[0])+1);
while(f[4][0] == ' ') f[4]++;
new->id = malloc(sizeof(f[4])+1);
strcpy(new->file, f[0]);
new->line = ln;
strcpy(new->id, f[4]);
return new;
}
static void
usage(void)
{
fprint(2, "usage: %s [-s srvname] [-m mntpt]\n", argv0);
exits("usage");
}
int
main(int argc, char *argv[])
{
char* list;
ARGBEGIN {
case 'l':
list = EARGF(usage());
break;
default:
usage();
break;
} ARGEND
nnodes = 0;
Biobuf* bp;
bp = Bopen(list, OREAD);
char *buf;
for(; (buf = Brdstr(bp, '\n', 1)) != nil; free(buf)){
nodes[nnodes] = readone(buf);
nnodes++;
}
for(int i = 0; i< nnodes; i++)
printnode(nodes[i]);
Bterm(bp);
return 0;
}
Mon Sep 28 16:07:29 EDT 2026
@@ -19,7 +19,7 @@ PROTO = xdg-shell-protocol.h xdg-output-unstable-v1-protocol.h \ OBJ = wawa.o $(PROTO:.h=.o) wawa: $(OBJ) - $(CC) $(LDFLAGS) $(LIBS) -o $@ $(OBJ) + $(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) wawa.c: $(PROTO) WAYLAND_PROTOCOLS != $(PKG_CONFIG) --variable=pkgdatadir wayland-protocols