OK, turing.

<- leave blank

Wed Sep 30 22:39:01 EDT 2026

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

next