9FRONT(~Plan9) "RELEASE" RELEASED

5 hours ago 1

front

NOTABLE CHANGES

In this release:

  • memdraw and devdraw now support affine warp primitive with demonstration programs provided in form of games/rotzoomer and see also image(1).

  • new atomic(2) functions provided for arm, arm64, mips, 386 and amd64.

  • big stabilization improvements for kernel when it runs out of memory as well as complete overhaul of the mount and image cache.

  • virtio10 i/o bar support for openbsd vmd.

  • libc got rune normalization updated to unicode v17.

  • libsec now has blake2 implementation.

  • git got a new rebase utility.

  • troff got ported to native plan9 from ape.

DOWNLOAD

Multiple installation media are provided for PC, Raspberry Pi, MNT Reform, and QEMU. For PC, burn an .iso file to CD, or dd it directly to USB media. For Raspberry Pi or MNT Reform, dd an .img file directly to sdcard.

The pi.img file can be used for Raspberry Pi 1, 2, and 3. The pi3.img file can be used for Raspberry Pi 3 and 4.

QEMU images are provided in QCOW2 format.

http://iso.only9fans.com/release/9front-11321.386.iso.gz.torrent

http://iso.only9fans.com/release/9front-11321.amd64.iso.gz.torrent

http://iso.only9fans.com/release/9front-11321.amd64.qcow2.gz.torrent

http://iso.only9fans.com/release/9front-11321.arm64.qcow2.gz.torrent

http://iso.only9fans.com/release/9front-11321.honeycomb.img.gz.torrent

http://iso.only9fans.com/release/9front-11321.pi.img.gz.torrent

http://iso.only9fans.com/release/9front-11321.pi3.img.gz.torrent

http://iso.only9fans.com/release/9front-11321.reform.img.gz.torrent

; sha1sum -2 256 9front-* ed05b97fc977acc7dd419db576fbe8e8c02eaaf7da5602d59170875e66d9d699 9front-11321.386.iso.gz 028e2dc9a44eb69f833dd0aff560bf01afe2a0e7cf092a95b98230fa7a9eaa43 9front-11321.amd64.iso.gz fe2a664ac5f60c7e572350294af6af733d4f076c9eff97e2e5fac8d4c15a5715 9front-11321.amd64.qcow2.gz 9ee9ff0c50da252f852d288373757a242bbb2f894e07bcd76587359d18426533 9front-11321.arm64.qcow2.gz 5fcce163e1a21b5facd4d0c4df14fced09594bc8dabae7d483834616a39a479b 9front-11321.honeycomb.img.gz 1e5ed728a27af6644b3b85df13278704cb801efc5470b65f680db541b33fdc38 9front-11321.pi.img.gz f24f7562f9883c91cb533ab9905e362b0b2c8619e7ac8dadfe1ec3994e3687e0 9front-11321.pi3.img.gz 2f7a596572e8bc65dca00f2a09dabcc5260cb3dec7fe002cbb67f13bc8cd6a78 9front-11321.reform.img.gz

MIRRORS

https://9front.org/iso/

https://iso.only9fans.com/release/

GIT REPOSITORY

ACHTUNG!

the git repo has moved:

http://git.9front.org/plan9front/9front/HEAD/info.html

DASH 1 MANUAL

http://fqa.9front.org/dash1.release.pdf

dash 1 manual: http://9front.org/propaganda/books

SONGS

by unrznbl

http://9front.org/mp3/whitelabel-theyliveparty.m4a

THANKS

[redacted]

KERNEL AND DRIVERS

9/pc: add mkfile rule for install.$dest

9boot: Add the *nouartbios parameter

9pc64/mkfile: add ‘mk install.$part’ command

bcm: trap and skip barrier instructions (for arm v6)

bootrc: make sure to reset #ec/nobootprompt on reboot!kernel!… boot

devdraw: implement affinewarp protocol message ‘a’

devenv: don’t mangle lists in ‘#ec’ for /dev/reboot

devenv: fix off-by-one in nul to space replacement (thanks cinap_lenrek)

devip: make dial(2) work for /net/ipifc

devsegment: remove useless waserror()

devsegment: speed up fixedseg()

etheri225: correctly mask interrupts

kernel: Improve killbig() function

kernel: New page cache design

kernel: attach text segment outside of up->seglock in sysexec()

kernel: avoid pagereclaim() on active images when possible

kernel: avoid smalloc() for process groups

kernel: big virtual memory system overhaul

kernel: cap the amount of work to reclaim pages form hash chain

kernel: change newpage() prototype

kernel: don’t use smalloc() for ptealloc()

kernel: double image hash hash-table size from 512 -> 1024 buckets

kernel: embed the Mount.spec string into Mount structure

kernel: fill stack segments with 0xfefe… pattern

kernel: fix bind order for /env (#e vs #ec)

kernel: fix crash in fpunoted() when called from noted(NRSTR) (thanks yuvia)

kernel: fix deadlock between sysexec() and killbig() (thanks ori)

kernel: fix memory leak in procctlmemio()

kernel: fix rounding of bss size in exec (broke mntgen on arm64)

kernel: have smalloc()

kernel: improve imagecache locking

kernel: leave alignment hole between TEXT and DATA unmapped

kernel: limit fscache to 256MB

kernel: lock segment in segpage()

kernel: make pio() interruptable, avoid copy when doing single-page I/O

kernel: move core of note handling logic into port/sysproc.c

kernel: re-check Segment.ref when detaching from Image

kernel: remove unneeded memset() in procinit0(). xalloc() zeros

kernel: rename RWlock to RWLock for consistency with userspace

kernel: restore original context for noted(NDFLT)

kernel: revert locking change for putseg(), it is A/B/A bug.

kernel: secalloc() whine when out of memory

kernel: wrap resrcwait() in waserror() for FPsave/FPalloc

nusb/ether: reset promiscuous mode only when connection gets closed

nusb/serial: add support for cdc serial devices

nusb/usbd: process read requests on /dev/usbevent in (descending) open order

pc64: don’t panic when running out of page-tables

tcp: remove “tcpporthogdefense” cruft

virtio: support pci i/o bars for virtio10 devices

vmx: fix format arguments in error messages

vmx: whine when we have an invalid mac address

COMPILERS, LINKERS, DEBUGGERS

5[al]: support DMB, DSB, and ISB

7[al]: implement atomic register loads properly

cc: OLABEL and OCASE nodes do not chain on Node.right (fixes case range warning)

cc: lexbody/macbody are effectively header dependencies.

lstk: allow getting multiple stack traces

v[al], libmach: add LL (load-linked) and SC (store-conditional)

v[al]: add SYNC (memory barrier)

vl: LL operand order and scheduling

vl: atomic instruction scheduling

LIBRARIES

ape: add blake2s to ape/libsec

ape: remove fmtdoquote

libc/port: fix regression in ./reduce script (thanks ndeuteron)

libc: fix aswap*() for arm

libc: import atomics from gefs (thanks ori)

libc: lift limit on pool sizes

libc: make needsrcquote the default

libc: move unicode data stuff from port/ to ucd/

libc: remove duplicated test (powtest.c is the same as pow.c)

libc: remove spare dofmt decl

libdraw, libmemdraw: implement affinewarp(2) and move mkwarp(2) from memdraw to draw

libdraw: don’t set the Drawop in affinewarp()

libdraw: locking revamp

libdraw: no more racey Drawops

libgeometry: fix incorrect use of sizeof to size matrices

libhttpd: the reports of my death have been exaggerated

libmach/test: avoid 64-bit value in switch

libmach: disassemble DMB, DSB, and ISB correctly

libmach: dissasemble arm64 atomic loads and stores

libmach: fix D_REGREG operand parsing for arm

libmemdraw: add image correlation and other improvements

libmemdraw: add memaffinewarp routine

libmemdraw: arbitrary color chans and other improvements for memaffinewarp()

libmemdraw: do the matrix inversion in mkwarp() instead of memaffinewarp()

libmemdraw: follow draw(2)’s behavior for clipr and repl

libmemdraw: optimized per-chan (get|put)pixel versions for memaffinewarp

libmemdraw: use fixed-point in memaffinewarp()

libmemlayer: fix little typo in memdraw()

libsec: B2s_256dlen -> BLAKE2s_256dlen

libsec: add blake2s-256

libsec: add x25519() function (thanks nepomuk)

libsec: allow missing subject

libsec: blake2s_128, mac_blake2s_*

libsec: fix warning in chacha tests

libsec: move tests in port to test/

libsec: rename internal fmul() function form curve25519.c to not conflict unix <math.h> (thanks an2qzavok)

PROGRAMS

9fs: exit with success when we succeed.

acme/Mail: only require confirmation if the window is dirty (thanks flowerss)

acme/Mail: remove unused plumb fd

acme/Mail: require confirmation do Del a composing message

acmed: parse and show error messages returned from the server

audio/mixfs: add support for a null sink

auth/acmed: gracefully handle missing errorbody file

auth/factotum: are we webscale yet?

awk: fix %c printf format not handling runes

awk: make tolower and toupper builtins unicode-aware

disk/test: rfork en to not pollute environment/namespace

diskparts: use $sysname instead of reading /dev/sysname

distproto: include /lib/image/filter

eui: fix off-by-one in joystick event processing

eui: get rid of useless and uninformative n-1 read size

eui: handle screen scaling ourselves

fortunes: I don’t really like anime.

g: add rust

gefs patch: make wstat(nulldir) sync the fs

gefs: add comments/asserts

gefs: add missing ‘\n’ in error message

gefs: add missing unlock in waserror() path

gefs: add reloading users to usage example

gefs: check should take the mutlk, not make the fs readonly

gefs: document ‘-c’ flag

gefs: don’t allow removal of locked files

gefs: dump block state on assertion failures

gefs: fix deadlocks on very slow disks

gefs: handle full disk and other errors more gracefully

gefs: implement ‘-R’ flag for mounting file systems read-only

gefs: improve assertions and logging

gefs: only error() after waserror

gefs: remove broken dead code in freepath

gefs: remove spurious debug print

gefs: remove stray print

gefs: respond with Rwstat in all necessary AOsync cases

gefs: sync last block when compressing

gefs: tighten assertion on btupsert

gefs: track nulldir more accurately

gefs: use rwlock instead of atomics for mount list

git/*: make murmurhash portable

git/branch: avoid spurious warnings when checking out remote branch

git/branch: branches at the same commit may not be the same

git/branch: don’t clobber baseref when checking if we have an upstream branch

git/branch: sort output with -a

git/common.rc: redirect stdout to stderr

git/diff: don’t use the index for diffing with a commit

git/get: also, we want the HEAD ref.

git/get: don’t fetch all prefixes by default

git/get: properly skip entire argument string once the nheads limit is surpassed (thanks ori)

git/rebase: add missing ‘rfork en’

git/rebase: stop doing it.

git/rebase: update man page to match current behaviour

git/serve: use strip function

git/walk: Fix missing NUL terminator for exit status

git/walk: fix bug with prefixed directories

git/walk: major cleanup, partial rewrite, remove bad optimizations (thanks cinap)

git: allow unicode in branch names

git: cleanup git/hist

git: fix ‘mk clean’

git: fix parsing of author lines

git: improve comments in mkfile

git: send more known refs, in hopes of smaller fetches

hget: add -e flag for errorbody contents

history: use unified diffs for -D and add delimiters

htmlroff: sometimes a quote is just a quote

httpd: nuke from orbit

image/affinewarp: initialize the mstk and fix getbbox()

imap4d: make BYE message upper case (thanks saeed)

inst/mountgefs: create an unsnapshotted /n/other for gefs by default

inst/mountgefs: make log messages accurate

inst: don’t copy *acpi=0x… into plan9.ini

io: add bitmask argument

ip/ftpd: zero out ftpd state on startup

ip/ppp: implement termination timeout

ktrans: use ^‘ to escape other control characters (thanks B. Wilson)

mk: initialize ‘files’ in main (thanks A. Kozdra)

mothra: quote filename correctly when passing strings to rc

mothra: show errorbody contents (404 pages)

newuser: default to $“sysname^‘% ’ for the prompt

newuser: fix variable expansion

patch: add ‘-d’ flag to make applying patches less clunky

patch: add missing case in previous change

patch: add support for best-effort patching with reject files

patch: cleanname of paths

patch: improve behavior when a patch has rejected hunks

rc: fix fn sigexit handling (thanks nepomuk)

rotzoomer: new game

samterm: add scroll-select

sed: increase input line size to 32k (was 8k)

sshnet: pass cs query operations to original /net/cs

stats: not on my bitsy

sysinfo: include the commit from the last sysupdate (thanks Dave Woodman)

sysupdate: onwards and upwards

sysupdate: tell people to make sure the permissions on the extracted new repo are correct

tar: add support for generating long file names

tlssrv: we know the internet is hostile

topng: fix crash due to uninitialized stack variable

troff: fix parsing of font files in nroff (thanks Dave Woodman)

troff: native port

tweak: increase maximum magnification

upas/fs: Allow mounting nested imap inboxes

upas/fs: handle unsolicited expunge messages correctly

upas/fs: make ‘-f’ flag consistent with ‘open’ message

upas/fs: no strcpy for username

upas/smtpd: improve default configuration

vcrop: fix clamping of cropped images with panned images

vdiff: add a trailing space hunter

vt: don’t reapply side effects when replaying terminal state

webfs: Provide errorbody file

DOCUMENTATION

ascii(1): look example: remove the extra 0 and add -f

atomic(2): reference the correct names

draw(3): document new affinewarp protocol message ‘a’

fstype(1): Add gefs

gefs(4): add missing .TP in manpage (thanks Dave Woodman)

gefs(8): add missing ‘-c’ flag to example

gefs(8): add missing space in example

gefs(8): document creating /n/other/usr/$user/tmp when adding users

gefs(8): escape \ in EXAMPLES

gefs(8): fix botched commit

gefs(8): one more typo

gefs(8): remove stray “logprog chgrp” at top of page

image(1): add a new set of tools for image processing

ip(3), ether(3): move the netif ctl’s to ether(3)

ip(3): document correct default keep-alive timeout (120 vs 30 seconds)

memdraw(2): document new behavior and fix mkwarp() paragraph

patch(1): add missing flags to SYNOPSIS (thanks Dave Woodman)

patch(1): document ‘-r’ flag

plan9.ini(8): *tiltscreen -> tiltscreen (thanks rodri)

prof(1): add flambe to NAME

quote(2): fix lie about doquote being nil

OTHER

all: update references to the repo to its new location

/lib/theo: everything is a nail

/lib/ucd: Update to v17.0

/sys/doc: add unicode.ms

/sys/lib/dist/mkfile: enable console on qcow2 images

/sys/lib/postscript/font/fontmap: garamond regular italics should not be bold italics

/sys/src/mkfile, /sys/src/cmd/ip/mkfile: remove httpd

/sys/src: do not assume . in $path (thanks falsifan)

back

Read Entire Article