This kernel is designed for running on the QEMU "virt"
machine. It implements the QEMU ECAM-based PCIe and
utilizes VirtIO drivers for networking and storage.
USB, screen and so on are umimplemented, because this
kernel is meant to be installed via UART, and then
administered as a CPU server via rcpu. It is booted
using U-Boot, so the QEMU "virt" machine "firmware"
is required, otherwise installation is straightforward.
This is the QEMU command used to run this kernel on
an M1 Mac under Hypervisor.framework:
qemu-system-aarch64 -M virt-2.12,accel=hvf,gic-version=3 \
-cpu host -m 4G -smp 4 \
-bios u-boot.bin \
-drive file=9front.arm64.qcow2,if=none,id=disk \
-device virtio-blk-pci-non-transitional,drive=disk \
-serial stdio
This code is based off of the i.MX 8 kernel.
* Added pinyin alternative Chinese input dictionary
* Remove Cyrilic and Greek input, use kbmap instead
* Ensure ktrans dictionaries are copied to iso
* Cleanup ktrans(1)
* Document dictionary format in ktrans(6)
* Fix ktrans example in riow(1)
9front has several tests scattered throughout the source,
as well as more tests in an external 'regress' repository.
Many of these tests are broken, because there is no easy
way to build and track all of them.
This pulls in several tests from different sources, deletes
the broken tests, tests with missing data, and adds a single
command that can be run from the root of the src directory
to test our system.
The hope is that as we develop new code, we add more tests,
and eventually start running the tests on every commit.
Please enter the commit message for your changes. Lines starting
The kernel used to always set console=0, which as
usefull during bring-up, but makes it impossible
to use the uart for other purposes.
We now have the ability to pass plan9.ini using
the u-boot script, so add the console=0 line there.
To make debugging easy, we still apply
console=0 if no plan9.ini has been passed.
Historically, ktrans used ^t for completion as denoted in the older
README's and thus likely was using ^e for (e)nglish mode at some point.
While the ktrans we imported had this changed around already, our older
Jp kbmap was still emitting ^e for Zenkaku. This has been updated
to give ^t, the current control sequence for english mode.
Git has the ability to track the person who
creates a commit separately from the person
who wrote the commit. For git9, we ignored
this feature.
However, as we start using git/import more,
it will be useful to figure out who imported
a commit, as well as who wrote it.
This change adds support for seeing this
information in git, as well as setting the
author and committer separately in git/import.
Git currently gets a bit confused if you try to
manipulate files by absolute path. There were also a
number of places where user-controlled file paths ended
up getting passed to regex interpretation, which could
confuse things.
This change mainly does 2 things:
- Adds a 'drop' function which drops
a non-regex prefix from a string, and uses
that to manipulate paths, simplifies 'subst',
and removes 'subst -g', which was only used
with fixed regexes; sed does this job fine.
- When getting a path from a user, we
make it absolute and then strip out the head
Along the way it cleans up a couple of stupids:
- 'for(f in $list) if(! ~ $#f 0) use $f:
$f can't be a nil list because of
list flattening.
- removes a useless substitution here:
all=`$nl{{git/query -c $1 $2; git/query -c $2 $3} | sed 's/^..//' | \
gsubst '^('$ourbr'|'$basebr'|'$theirbr')/*' | sort | uniq}
where git/query -c doesn't produce
paths prefixed with the query.
All of these files appear to have been imported from sources in a
case-insensitive manner and consequently lost their original content.
- Hx, Hb, and Hi fonts should be narrow versions of Helvetica
- c[1-3] fonts should be condensed versions of Century Old Style
- the lH character should be a filled left hand symbol
- the rh character should be a stroked right hand symbol
- the rc character should be the right ceiling symbol
I've verified that these are the only files that collide with others
when ignoring case (aside from rc/bin/[Kk]ill but those are correct).
This change makes the text window be focused on startup when using
default riostart (e.g: when using the release ISO). This little change
makes you able to immediately reach the rc shell without clicking the
window, which at the very least is more convenient, and if you have
problems to use your mouse but want to install the system, you also
can (I had to stop profile from running at boot to patch it in my VPS
KVM console because the mouse wasn't working properly. Could install
and setup it to connect through drawterm).