9front “Is Coming Out As A Winner On Many Issues…” – SD Times

rkrishnan, Cisco Systems: “I am extremely sorry to see plan9 die a silent death.” (rkrishnan.org, 10/25/13)

Rod Person, VPN Cryptographer: “Does 9front have an email app and how usable is mothra, I’m guessing not ebay or youtube?” (daemonforums.org, 6/25/15)

Christoph Reiter, German: “Wer verwendet 9Front eigentlich? Die Antwort lautet: fast niemand.” (golem.de, 8/3/16)

seesomesense, Hacker News: “Plan 9 was probably the finest operating system in the world.” (HN, 11/16)

pranomostro, Redditor: “The future of plan9 is pretty bleak imho.” (reddit.com, 1/17)

dash 1 manual


kernel and drivers

kernel: add “close” ctl message for tcp connection to gracefully hang up a connection without a tcp reset (used by go)

kernel: make the mntcache robust against fileserver like fossil that do not change the qid.vers on wstat

pc/pc64: get rid of timerset(0) case, was used with “i8253set off” ctl

sgi: change definition of tas() to take void* like the rest

sgi: cleanup timer code

sgi: get rid of timerset(0) case

ether82563: support for i219 (tested on t460p, thanks aiju)

etheriwl: add support for Centrino Advanced-N 6030, 6235 (thanks khm, openbsd)

vgaigfx: enable softscreen by default

wifi: timestamps in debug print, flush queue on deassoc, shorter roam timeout, timeout in blocked state, fix essid seprint race


libmp: avoid temporary buffer allocation in mprand()

libmp: fix mpmod() aliasing bug when n == r and x < 0 (thanks aiju, mischief)

libregexp: simplify regular expression vm implementation

libregexp: improve the transition to next available thread, instruction, and generation

libregexp: fix assert check for compile1 instruction count

libsec: replace des based X9.17 genrandom() with chacha random number generator

libsec: implement extended 192-bit nonce xchacha variant and hchacha function

libsec: avoid temp variables in chacha/salsa ENCRYPT() macro

libsec: have rsagen() always produce postive !dk to avoid confusion

libsec: need PKCS#9 “Extension Request” attribute (rsareq())

libsec: check if modulus is too small for message in pkcs1padbuf()

libsec: fix mkbigint(), asn.1 uses two’s compement signed representation

libsec: handle signed asn.1 bigint to mpint conversion for x509

libsec: revert asn1mpint(), rewrite rsa signature validation, cleanups

libsec: make X509toECpub() return CN name like X509toRSApub()

libsec: zero name buffer in X509toECpub()

compilers and debuggers

6c, 8c: fix “DI botch” evacuating DI/SI/CX registers to “.save” variables

6c: reverse register allocation order to avoid having to spill AX,DX and CX


aan: check negative message size in header

aan: use unsigned message counters, reject repeated acks, cleanup debug prints

aan: remove fcallfmt

audio/flacdec: continue after decode error (thanks deuteron)

auth/factotum: fix memory leak in findkey()

auth/factotum: support sha256 algorithm in rsa pkcs#1 signing

auth/keyfs, auth/secstore, auth/secuser: use ulong for time

aux/data2s: compress output

aux/wpa: dont send initial “start” message, faster polling interval waiting for connection

cfs: fix cfsctl interaction with mount cache (mount -C flag)

cwfs: fix cwcmd startdump

cwfs: handle worm exhaustion more gracefully

fplot: parse negative numbers in argument to -r option (thanks qu7uux)

fplot: fix zoom egetrect check (thanks qu7uux)

games/galaxy: add n-body simulator

games/galaxy: fix crash on write to closed display

games/gb: fix typo in the routine to load timer data (thanks qwx)

games/gb: timer array should be unsigned (thanks qwx)

games/gb: fix bug that prevented timer data from being accessed (thanks qwx)

games/jukefs: fix realloc sizes (thanks mischief)

games/mix: Add Knuth MIX emulator/assembler

games/mix: fix STZ bug, print CMPA instruction

games/mix: implement Knuth’s specification for comments

inst/bootsetup: fix unformated esp check (thanks yellow_apple)

ip/gping: fix corruption due to Machine.last pointer not being maintained in pingclean(), cleanup unused stuff

ip/ipconfig: don’t write /net/ndb when getting config from ndb (-N)

ip/ipconfig: have to refresh /net/cs, /net/dns after ndbconfig even tho /net/ndb didnt got written

keyfs: print error message when reading /adm/keys fails

playlistfs: fix playc chan type (thanks mischief)

rcpu: use $cpu environment variable for host when not specified

rsagen: prefer 65537 as the default exponent when elen == 0, otherwise pick randomly

rx: remove ssh code

samterm: avoid flushimage when theres nothing new to flush

ssh: R.I.P.


auth(8): document authsrv -N flag

cpu(1), import(4): note deprecation and refer to rcpu(1)

ec(2): document ecencodepub(), ecdecodepub() and ecpubfree() and list all the curve parameter functions

ec(2), rsa(2): document X509toECpub(), X509ecdsaverify(), X509ecdsaverifydigest(), X509rsaverifydigest()

galaxy(1): terminate .EX sections with .EE

rsa(2): document rsafill()

srv(4), &c: remove ssh/sshsrv references


cdproto: explicitely create /$objtype/bin subdirectories for all archs

/sys/lib/plumb/basic: fix rule for audio files (thanks deuteron)