💾 Archived View for 9til.de › fqa › fqa1.gmi captured on 2024-05-26 at 14:44:28. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

FQA INDEX | FQA 0 - Introduction To Plan 9 | FQA 2 - Getting To Know 9front

FQA INDEX

FQA 0 - Introduction To Plan 9

FQA 2 - Getting To Know 9front

FQA 1 - Introduction to 9front

[‡ 9frontsystem]

[‡ 9frontsystem]

1.1 - What is 9front?

Plan9front (or 9front) is a fork of the Plan 9 from Bell Labs operating system. The project was started to remedy a perceived lack of devoted development resources inside Bell Labs,[citation needed] and has accumulated various fixes and improvements.

Plan 9 from Bell Labs

fixes

improvements.

This FQA specifically covers only the most recent release of 9front.

1.1.1 - Cirno

[‡ cirno]

[‡ cirno]

At some point, Cirno became associated with 9front. Details are sketchy.

Pro

Cirno

• girl

• has magical powers

• associated with 9

• upsets kfx

• she is known to be the strongest

Alternatives

[‡ tuttleglenda]

[‡ tuttleglenda]

[‡ grumpycatno]

[‡ grumpycatno]

1.2 - On what systems does 9front run?

9front runs on the following platforms:

• 386

• amd64

• arm

• arm64

• mips

Read: FQA 3.2 - Selecting Hardware

fqa3.gmi

1.3 - Why might I want to use 9front?

It is very likely that you do not.

New users frequently want to know whether 9front is superior to some other free UNIX-like operating system. Consider: The question is largely unanswerable. What are your criteria? Why are you even using computers in the first place? Exploring these questions and the implications that derive therefrom may help you sharpen your perceptions and eventually come to some sort of conclusion about which operating system you prefer to use for daily tasks.

Ultimately, whether or not 9front is for you is a question only you can answer.

1.3.0 - Why might I not want to use 9front?

Hold up. Before you get too excited, consider the following possibilities:

• You just realized you don’t want to use Plan 9 at all.

• You don’t like the people who use and/or work on 9front.

• You don’t like 9front’s propaganda.

• You prefer less functionality from your obscure OS, and/or you prefer to ignore 9front’s public commit history and complain later because nobody informed you about bug fixes and new programs.

• You have technical objections to specific changes 9front made to the original Bell Labs code.

• You’re not sure right now, but you’ll know it when you see it.

Okay, carry on.

1.3.0.1 - Why did 9front stop making fun of Nazis?

[‡ pipe]

[‡ pipe]

Because you asked us to.

• People complained it was done in poor taste.

• People reliably interpret any depiction of a thing as an endorsement of same.

• We’re tired of explaining this shit to people who just call us liars anyway. (To be fair, look at the world around us today. Why cloud the issue?) I’m through explainin the shit —Ice T

https://www.youtube.com/watch?v=4FWCSBpG5q8

• Cognitive dissonance.

Read: Appendix L - Ruby

appendixl.gmi

[‡ wreckastow]

[‡ wreckastow]

1.3.1 - New Features

The following list is not exhaustive:

• /shr, global mountpoint device shr(3)

http://man.9front.org/3/shr

• /mnt is provided by mntgen(4)

http://man.9front.org/4/mntgen

• #A, audio drivers for sb16, intel hd audio and ac97 (both playback and recording supported!) audio(3)

http://man.9front.org/3/audio

• New BIOS based boot loader 9boot(8) featuring a console and support for FAT/ISO/PXE and being small (<8K)

http://man.9front.org/8/9boot

• New EFI based boot loader efi

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/boot/efi

• Made kernel compliant to multiboot specification so it can be booted by qemu or grub directly.

• Interruptable kernel qlocks (eqlock)

• Defered clunks (closeproc) for cached mounts

• New rc based boot(8) allows breaking into a shell at any time

http://man.9front.org/8/boot

• Default file system is an improved cwfs(4) (cwfs64x)

http://man.9front.org/4/cwfs

• New screen fonts: dejavu, germgoth, vga

• No central replica; source updates are done with hg (1) (Mercurial)

http://man.9front.org/1/hg

• Keyboard events with /dev/kbd. Read: kbdfs (8) and rio (4)

http://man.9front.org/8/kbdfs

http://man.9front.org/4/rio

• /lib/rob and other new corpuses, suitable as fodder for fortune(1) and other rhetorical programs

https://code.9front.org/hg/plan9front/file/9ad06889a5d1/lib/rob

http://man.9front.org/1/fortune

• New listen(8) -p maxprocs option

http://man.9front.org/8/listen

• Always available network aan(8) support in cpu(1) and rcpu(1)

http://man.9front.org/8/aan

http://man.9front.org/1/cpu

http://man.9front.org/1/rcpu

• MSI (message signalled interrupts), avoids problems with broken MP tables. Read: icanhasmsi (8)

http://man.9front.org/8/icanhasmsi

• Legacy free ACPI support (aml interpreter libaml, mp interrupt routing, scram)

• Added rio(1) -b option (black window backgrounds) and look menu option

http://man.9front.org/1/rio

• USB CD-ROM boot/install

• USB drive boot

drive boot

• Improved USB mouse support

• Support for USB ptp cameras

• Stable-across-machines USB device names

• VGA initialization done by interpreting the VESA BIOS with realemu(8), working VESA screen blanking.

http://man.9front.org/8/realemu

• /dev/kbd and clipboard charset support for vnc(1)

http://man.9front.org/1/vnc

• New webfs(4) with HTTP1.1 and Keep-Alive support.

http://man.9front.org/4/webfs

• Qemu/KVM virtio block device and ethernet drivers. Read: FQA 4.5.1.3 - Virtio

fqa4.gmi

• Mouse wheel and chording support in sam(1)

http://man.9front.org/1/sam

• Elliptic curve cryptography ec(2)

http://man.9front.org/2/ec

• Working interrupt key (Del) in console

• WiFi support with wpa/wpa2

• SSE support

• System-wide support for internationalized domain names

• Unicode support in vt(1)

http://man.9front.org/1/vt

• pc64, kernel for amd64

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc64/

• Numerous ciphers added and improvements made to libsec

http://man.9front.org/2/pushtls

• New dpi9k authentication protocol

1.3.1.1 - New Programs

• " and "" (print, repeat previous command)

• alarm(1) — timeouts in rc scripts

http://man.9front.org/1/alarm

• atari(1) — 2600 emulator

http://man.9front.org/1/atari

• audio(1) — mp3, ogg, flac, µlaw, wav

http://man.9front.org/1/audio

• blit(1) — Blit terminal emulator

http://man.9front.org/1/blit

• bullshit(1) — print out a stream of bullshit

http://man.9front.org/1/bullshit

• cifsd(8) — CIFS/SMB server

http://man.9front.org/8/cifsd

• cryptsetup (8) — prepare an AES-encrypted partition to be used with the fs(3) device

http://man.9front.org/8/cryptsetup

http://man.9front.org/3/fs

• derp(1) — find changes between directories

http://man.9front.org/1/derp

• dtracy(1) — dynamic tracing language (like dtrace)

http://man.9front.org/1/dtracy

• feminize(1) — replace sexist remarks

http://code.9front.org/hg/plan9front/file/1f9d7811d546/rc/bin/feminize

• fplot(1)

http://man.9front.org/1/fplot

• New games: doom, glendy, linden, mandel, mines, mole, packet, v8e

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/doom

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/glendy.c

https://code.9front.org/hg/plan9front/file/38dcaeaa222c/sys/src/games/linden.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mandel.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mines

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mole.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/packet.c

https://code.9front.org/hg/plan9front/file/38dcaeaa222c/sys/src/games/v8e

• hg(1) and hgfs(4) (Mercurial)

http://man.9front.org/1/hg

http://man.9front.org/4/hgfs

• hget(1) — rewritten in rc, now uses webfs

http://man.9front.org/1/hget

• hjfs(4) — new, experimental fs

http://man.9front.org/4/hjfs

• hpost(1) — extract and post HTML forms

http://man.9front.org/1/hget

• hold(1) — simple text editor

http://man.9front.org/1/hold

• icanhasmsi (8) — print MSI configuration

http://man.9front.org/8/icanhasmsi

• ipserv(8) — proxy servers socksd and hproxy

http://man.9front.org/8/ipserv

• ircrc(1) — IRC client

http://man.9front.org/1/ircrc

• memory(1) — check memory usage

http://man.9front.org/1/memory

• mothra(1) — Tom Duff’s web browser, now uses webfs

http://man.9front.org/1/mothra

• netaudit(8) — network configuration checker

http://man.9front.org/8/netaudit

• newt(1) — Usenet client

http://man.9front.org/1/newt

• nietzsche(1) — print out Nietzsche quote

http://man.9front.org/1/nietzsche

• nintendo(1) — Nintendo emulators: gb, gba, nes, snes

http://man.9front.org/1/nintendo

• page(1) — zoom and enhance!

http://man.9front.org/1/page

• paint(1) — drawing program

http://man.9front.org/1/paint

• play(1) — audio player

http://man.9front.org/1/play

• pstree(1) — print tree-like map of current processes and sub-processes

http://man.9front.org/1/ps

• ptrap(4) — plumber(4) filter

http://man.9front.org/4/ptrap

• rc-httpd(8) — HTTP server

http://man.9front.org/8/rc-httpd

• rcpu (1) — replacement for legacy cpu (1) client, uses dp9ik

http://man.9front.org/1/rcpu

http://man.9front.org/1/cpu

• resize(1) — fast but low quality image resampler

http://man.9front.org/1/resample

• rotate(1) — rotate or mirror a picture

http://man.9front.org/1/rotate

• scram(8) — ACPI and APM shutdown

http://man.9front.org/8/fshalt

• sega(1) — Sega Megadrive/Genesis emulator: md

http://man.9front.org/1/sega

• ssam(1) — stream interface to sam

http://man.9front.org/1/ssam

• ssh(1) — SSH2 client

http://man.9front.org/1/ssh

• sshnet(4) — re-implementation of sshnet for SSH2

http://man.9front.org/4/sshnet

• sysinfo(1) — print hardware report

http://man.9front.org/1/sysinfo

• sysupdate(1) — update the local hg repository

• theo(1) — print out insults from Theo de Raadt

http://man.9front.org/1/fortune

• tput(1) — measure read throughput

http://man.9front.org/1/tput

• troll(1) — automated trolling

http://man.9front.org/1/fortune

• tap(1) — follow the pipes of a process

http://man.9front.org/1/tap

• tif(1) — tiff decoder

http://man.9front.org/1/jpg

• tinc(8) — mesh peer to peer VPN

http://man.9front.org/8/tinc

• tojpg(1) — jpeg encoder

http://man.9front.org/1/jpg

• totif(1) — tiff encoder

http://man.9front.org/1/jpg

• torrent(1) — bittorrent client

http://man.9front.org/1/torrent

• walk(1) — recursively walk descending directories

http://man.9front.org/1/walk

1.3.1.1.1 - Why do some new program names begin with hj?

Message-ID: <775b8d190603072010v282cd1afl8677895d3407d914@mail.gmail.com>

Date: Wed,  8 Mar 2006 15:10:14 +1100

From: "Bruce Ellis" <bruce.ellis@gmail.com>

To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>

Subject: Re: [9fans] structure allocation.

In-Reply-To: <225d545abee6717eec8ffe272836f235@collyer.net>

MIME-Version: 1.0

Content-Type: text/plain; charset=ISO-8859-1

Content-Transfer-Encoding: quoted-printable

Content-Disposition: inline

References: <440E3FBE.20209@lanl.gov>

<225d545abee6717eec8ffe272836f235@collyer.net>

Topicbox-Message-UUID: 0e6c2144-ead1-11e9-9d60-3106f5b1d025

i still like hjdicks  it is obscure enough that no-one would think it’s

a feature (or guess it).  it was required because we had a large

slab of 3rd-party code that assumed it could read packets off the

wire (assuming correct endian) and do no marshaling.

pragam pack

looks like a feature.

i was there when it happened (after a nice italian meal).

ken asked "Do i really have to do this?"

P: Yes, there’s buckets of code that rely on it.

K: *some expression of disbelief*

P: well hj are just dicks

done deal

it also turned out to be important for inferno on machines with

greater than 32 bit alignment requirements.  the 64 bit mips

is an example.  took but a recompile with hjdicks in the right

place (it takes an optional alignment parameter).  same with

the ps2 which has 128 bit issues.

thanks for telling me that it has been changed.

brucee

On 3/8/06, geoff@collyer.net <geoff@collyer.net> wrote:

 I was implicitly referring to C compilers.  Heck, Pascal had packed
 data in the early 1970s, possibly even the late 1960s.

1.3.1.2 - New Hardware Support

Audio

• AC97 — /sys/src/9/pc/audioac97.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audioac97.c

• Intel HDA — /sys/src/9/pc/audiohda.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audiohda.c

• SB 16/ESS — /sys/src/9/pc/audiosb16.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audiosb16.c

• Countless new variants (VID/DID) added to existing drivers.

Ethernet

• ADMtek Pegasus — /sys/src/cmd/nusb/ether/aue.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/nusb/ether/aue.c

• Broadcom BCM57xx — /sys/src/9/pc/etherbcm.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/etherbcm.c

• Realtek RTL8150 — /sys/src/cmd/nusb/ether/url.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/nusb/ether/url.c

• Countless new variants (VID/DID) added to existing drivers.

WiFi

• Intel Centrino Advanced-N 6205 (iwl-6005)

• Intel Centrino Ultimate-N (iwl-6000)

• Intel Centrino Wireless-N 100

• Intel WiFi Link 1000/4965/5100/5300/5350 AGN

• Intel PRO Wireless 3945ABG (wpi-3945abg)

• Intel Wireless AC 8260/8265

• Intel Wireless AC 9260

• Ralink RT2860/RT3090

Tablets

• Wacom serial tablets WACF004, WACF008

/sys/src/cmd/aux/wacom.c, /sys/src/cmd/aux/tablet.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/wacom.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/tablet.c

• USB tablets supported by USB subsystem

Video

• AMD Geode LX driver

/sys/src/cmd/aux/vga/geode.c /sys/src/9/pc/vgageode.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/vga/geode.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/vgageode.c

• Intel GM915, GM965, Sandy Bridge, Ivy Bridge, and Haswell driver

/sys/src/cmd/aux/vga/igfx.c /sys/src/9/pc/vgaigfx.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/vga/igfx.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/vgaigfx.c

SD Card

• Ricoh — /sys/src/9/pc/pmmc.c

http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/pmmc.c

Read: FQA 3.2 - Known Working Hardware for a list of complete machines known to work.

fqa3.gmi

[‡ ibmintel]

[‡ ibmintel]

1.4 - Is 9front really free?

Yes.

Read: FQA 0.2.4 - What is the deal with Plan 9’s weird license?

fqa0.gmi

1.5 - How can I help support 9front?

We are greatly indebted to the people and organizations that have contributed to the 9front project. That said, the topic is complicated: The main developers refuse to accept donations (except when they do accept donations), and the people who do offer to make donations often disappear without further explanation or make strange demands that nobody feels like capitulating to. This complex, fluid, and at times contentious dynamic can best be navigated by joining #cat-v on freenode and asking strangers how to donate to the project.

When this fails, donations that help pay for the hosting of 9front.org and cat-v.org (including fqa.9front.org, the document you are reading right now) can be made at: http://patreon.com/stanleylieber.

http://patreon.com/stanleylieber

1.6 - Who maintains 9front?

9front is maintained by an East German intelligence officer who never sleeps but instead logs periods of inactivity staring straight into the soulless eyes of games/catclock. Occasional contributions are made by a diverse team of malcontents that is spread somewhat thinly across many different timezones and Internet providers. Most of them have dayjobs and in fact are not concerned with your demands. (Subsidized or not).

somewhat thinly

1.7 - When is the next release of 9front?

Soon.

The 9front team makes new releases on a regular, but unscheduled, basis. More information on the development cycle can be found on the 9front mailing list.

9front mailing list.

1.8 - What is included with 9front?

Some useful programs included with the operating system are:

• 2600 — Atari 2600 emulator.

2600

• acid — Programmable symbolic debugger.

http://doc.cat-v.org/plan_9/4th_edition/papers/acidpaper

• acme — Text editor, window system, mail client and more.

http://doc.cat-v.org/plan_9/4th_edition/papers/acme/

• ape — ANSI/POSIX environment.

http://doc.cat-v.org/plan_9/4th_edition/papers/ape

• cwfs64x — Cached-worm file server based on the original Ken’s fs.

http://man.9front.org/4/cwfs

• doom — Science fiction horror-themed first-person shooter video game by id Software.

http://en.wikipedia.org/wiki/Doom_(video_game)

• gs — Aladdin Ghostscript (PostScript and PDF language interpreter).

http://man.9front.org/1/gs

• hjfs — A new, experimental fs.

http://man.9front.org/4/hjfs

• mercurial — Distributed source control management tool.

mercurial

• mk — Tool for describing and maintaining dependencies between files.

http://doc.cat-v.org/plan_9/4th_edition/papers/mk

• mothra — Web browser by Tom Duff.

http://man.9front.org/1/mothra

• newt — NNTP client.

http://man.9front.org/1/newt

• nintendo — Nintendo Game Boy, NES, SNES and GBA emulators.

nintendo

• paint — Drawing program.

http://man.9front.org/1/paint

• page — FAX, image, graphic, PostScript, PDF, epub, cbz viewer.

http://man.9front.org/1/page

• play — Flac, ogg, mp3, sun, wav player.

http://man.9front.org/1/play

• plumber — Mechanism for inter-process communication.

http://doc.cat-v.org/plan_9/4th_edition/papers/plumb

• python 2.5.1 — Interpreted programming language. (needed for mercurial)

python 2.5.1

• rc — Shell by Tom Duff.

http://doc.cat-v.org/plan_9/4th_edition/papers/rc

• rc-httpd — Web server written in rc.

http://man.9front.org/8/rc-httpd

• rio — Rectangle multiplexer/window system.

http://man.9front.org/1/rio

• sam — Text editor.

http://doc.cat-v.org/plan_9/4th_edition/papers/sam/

• sega — Megadrive/Genesis emulator.

sega

• torrent — BitTorrent client.

http://man.9front.org/1/torrent

• troff — Text processor/typesetter.

http://doc.cat-v.org/plan_9/4th_edition/papers/troff/

• upas — A simpler approach to network mail.

http://doc.cat-v.org/bell_labs/upas_mail_system/

1.9 - Can I use 9front as a desktop system?

This question is often asked in exactly this manner—with no explanation of what the asker means by "desktop". The only person who can answer that question is you, as it depends on what your needs and expectations are.

Read: FQA 1.3 - Why might I want to use 9front?

fqa1.gmi

1.10 - Why is/isn’t ProductX included?

Two potential reasons:

• Nobody wanted it.

• Nobody wrote the code.

Many "features" and programs are missing from Plan 9 for a very good reason: They are terrible ideas expressed as terrible software. Other features are missing simply because no one has yet written the code to implement them. It is left as an exercise for the reader to determine which is which, and to apply the appropriate remedy.

Read: FQA 8.8 - Additional Software

fqa8.gmi

1.11 - Fine, where can I get 9front?

[‡ meganinefront]

If you simply cannot be dissuaded from trying 9front for yourself, obtain installation media from the mirrors mentioned in the following section.

[‡ meganinefront]

1.11.1 - Mirrors

1.11.1.1 - 9front.iso

http://9front.org/iso/

http://r-36.net/9front/

http://felloff.net/usr/cinap_lenrek/9front.torrent

1.11.1.2 - Mercurial repository

https://code.9front.org/hg/plan9front (official)

https://code.9front.org/hg/plan9front (official)

Good luck, you may need it.

[‡ reactorcat]

[‡ reactorcat]

FQA INDEX | FQA 0 - Introduction To Plan 9 | FQA 2 - Getting To Know 9front

FQA INDEX

FQA 0 - Introduction To Plan 9

FQA 2 - Getting To Know 9front