Steve Simon | 18 Sep 17:15 2014

ipv6 /lib/ndb/local example?


My new ISP supports ipv6, so I thought I would have a go.

I know next to nothing about ipv6 and it would be great
to have a /lib/ndb/local to study.

anyone got one they would be willing to share.



Caleb Malchik | 17 Sep 23:33 2014

inquiry about project sponsorship outside GSoC

Greetings 9fans,

I am a senior studying computer science at Tufts University. I'm
interested in Plan 9 and frequently read this list. As seniors at Tufts
we are required to do a year long capstone project; it's fairly open
ended but must be motivated by some external sponsor. If sponsoring a
group of 3 university students to do a year-long project around Plan 9
sounds cool, read on!

What project we choose to do (Plan 9 or otherwise) is still up in the
air, and depends on our sponsor. In the Plan 9 vein, the GSoC wiki page
has a nice selection of projects that are of comparable size:

Some projects from that page that seem particularly intersting and

* alternative window system
* create additional modules for pq
* Kernel lock analyzer for amd64 kernel
* Kernel lock timing analyzer for amd64 kernel
* a per-processor scheduler
* Implement TLS 1.2 in libsec
* Add support for OAuth2 Login authentication to factotum
* 9p on Arduino Yun
* Teach Plan 9 to speak mDNS

We're also very open to other project ideas.

(Continue reading)

Ingo Krabbe | 17 Sep 13:18 2014

Annyoing modified by boyd


using legacy bell-labs plan9 (I don't know the others), I often, that converges to always, get "FILE
modified by boyd since last read" when editing a file on a cifs share with acme.

The cifs main.c defines "boyd" as the "modifying user" (muid) in I2D and V2D, which are from fs.stat.

From /sys/src/cmd/acme/exec.c:/putfile/+14

	if(d!=nil && runeeq(namer, nname, f->name, f->nname)){
		/* f->mtime+1 because when talking over NFS it's often off by a second */
		if(f->dev!=d->dev || f->qidpath!=d->qid.path || f->mtime+1<d->mtime){
			f->dev = d->dev;
			f->qidpath = d->qid.path;
			f->mtime = d->mtime;
				warning(nil, "%s not written; file already exists\n", name);
				warning(nil, "%s modified%s%s since last read\n", name, d->muid[0]?" by ":"", d->muid);
			goto Rescue1;

Hmm, possibly this is another time quirk, like that one from NFS. Does anyone know a good solution to that problem?


arisawa | 14 Sep 04:54 2014

segattach in telnetd


we have an example for segattach() in /sys/src/cmd/ip/telnetd.c

share(ulong len)
	uchar *vastart;

	vastart = sbrk(0);
	if(vastart == (void*)-1)
		return 0;
	vastart += 2*1024*1024;

	if(segattach(0, "shared", vastart, len) == (void*)-1)
		return 0;

	return vastart;

I think it should be
-	if(segattach(0, "shared", vastart, len) == (void*)-1)
+	if((vastart = segattach(0, "shared", vastart, len)) == (void*)-1)

Kenji Arisawa

David Hoskin | 10 Sep 08:27 2014

someone made a glenda key...

I'd like to see keys to match /sys/lib/kbmap/mouse-fn.

-- David

Steve Simon | 9 Sep 23:45 2014

JIT (mostly off topic)

Years ago The Commander and Bart Locanthi used JIT
in the form of some C that write machine code into an
array of chars, cast it to a function pointer, and called it.
(I appologise if the details are not correct but this is the idea).

I have a need for such a thing again - trying to speed up
a compressed video decoder.

Anyone done such a thing this millenium? Does the x86 data execution
prevention mean you just cannot do this - my targets are desktop OSs
other than plan9 (sadly).


cherry | 6 Sep 06:55 2014


Hello 9Fans,

I would like to share that mips64 support of Plan 9 is currently
available. The compiler and the libraries are at
And a 64-bit kernel for Loongson machine is built, at
The kernel seems to work fine, and so do programs like acme and page.

The userland support is in the compiler repo instead of along with the
kernel, as I hope it will be useful for not only Loongson but mips64
in general.

The kernel is not 9k kernel though. It is instead a (minimal)
modification from 32-bit Plan 9. The next step is probably to switch
to 9k kernel. For the userland, ape is not ported yet, so a few
programs don't build. Currently the kernel code is not so
user-friendly: to build the kernel, it needs to bind _port64/ before
/sys/src/9/port/, and in the 32-bit Loongson sources bind 2f/ to the
front to use 2F drivers. A kernel image is uploaded to the download
page of the repo.

Hope this is useful.

- cherry

Steve Simon | 2 Sep 09:07 2014

silly question

I want to process some dated logfiles in awk.

gawk has date, strftime and mktime but Brian's does not.

plan9 has date(1) but there is no tm2sec(1), unless it
is called somthing I didn't expect.

Anyone found somting I could not in the plan9 distribution?


Bao Cheng | 2 Sep 08:25 2014

UTF-8 font

Hello 9fans,

I am using 9front, a fork of plan9 in my ThinkPad. I know that plan9 
supports unicode but I still find some of Chinese characters display 
funny. Is it a font issue or something?

Best wishes,

Shane Morris | 30 Aug 12:39 2014


Hello 9fans,

After getting myself an ODROID-W as part of my contract for a deeply embedded Linux appliance yesterday, I read this on the Hardkernel website this evening:

Not recommended for new designs. Broadcom will not supply the SoC to Hardkernel.
When the first trial batch is sold out, you can’t buy the ODROID-W anymore. 
Sorry for the inconvenience.

Now, if you'd like to know my personal thoughts on this, you're more than welcome to email me privately, but my wish to make a Inferno powered tablet from the ODROID-W has now been deep-sixed, as the additional ODROID I picked up from the contract has already been soldered up in a "minimal" configuration suitable for placing on a UAV, and thats exactly what it'll be doing, now that its become one of the rarest (and smallest, for the size/ performance ratio) motherboards on the face of the planet. I was hoping however, under sustained production of the boards, to produce the Inferno tablet, and announce it to the community.

Oh well. Pride goeth, and all that...
trebol | 28 Aug 16:31 2014

Announcing The Virtual Plan 9 Server Cookbook

Hello David.