logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: 438d5c15d078b4240c7305b57bf2ee7bff9a82c4
parent 5ed6c4fa684e39af00e9dc7c6c98e447d1c0afb3
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed, 15 Jun 2022 12:34:29 +0200

status update

Diffstat:

Acontent/blog/Status-update-June-2022.md66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+), 0 deletions(-)

diff --git a/content/blog/Status-update-June-2022.md b/content/blog/Status-update-June-2022.md @@ -0,0 +1,66 @@ +--- +title: Status update, June 2022 +date: 2022-06-15 +--- + +Hello again! I would like to open this post by acknowledging the response to my +earlier post, "bleh". Since it was published, I have received several hundred +emails expressing support and kindness. I initially tried to provide these with +thoughtful replies, then shorter replies, then I had to stop replying at all, +but I did read every one. Thank you, everyone, for sending these. I appreciate +it very much, and it means a lot to me. + +I have actually had a lot more fun programming this month than usual, since I +decided to spend more time on experimental and interesting projects and less +time on routine maintenance or long-term developments. So, the feature you've +been waiting for in SourceHut might be delayed, but in return, there's cool +progress on the projects that you didn't even know you were waiting for. Of +course, the SourceHut workload never dips below a dull roar, as I have to attend +to business matters and customer support promptly, and keep a handle on the +patch queue, and the other SourceHut staff and contributors are always hard at +work &mdash; so there'll be plenty to discuss in the "what's cooking" later. + +The bulk of my focus has been on the Helios kernel this month, a project [I +introduced][helios] a couple of days ago. I spent a lot of time furiously +refactoring, reworking the existing kernel code for evalutaing features like +page allocation and virtual address space management into capability-oriented +kernel services that can be provided to userspace, then overhauling our startup +code to provision a useful set of capabilities for the init process to take +advantage of. I also implemented x86\_64 I/O port services, which allowed for +the first few drivers to be written in userspace &mdash; serial ports and simple +VBE graphics. We also got interrupts working properly and brought up the PIT, +which is another major step towards multi-tasking. I also implemented a new +syscall ABI with error handling, and refactored a lot of the arch-specific code +to make new ports easier. The kernel is in a much better state now than it was a +month ago (and to think it's only three months old!). + +[helios]: https://drewdevault.com/2022/06/13/helios.html + +![A picture of Helios drawing to a framebuffer](https://l.sr.ht/KeMW.jpg) + +There was also a lot of progress on [Himitsu], which I plan on presenting in a +video and blog post in a few days time. The Firefox add-on actually works now +(though some features remain to be done), and Alexey Yerin fixed several +important bugs and contributed several new features. The user is now prompted to +consent before deleting keys, and we have a new GTK+ prompter written in Python, +which is much more reliable and feature-full thanks to Martijn Braam's help +(rewriting it in C again is a long-term TODO item for any interested +contributor). I also made some progress towards what will ultimately become +full-disk encryption support. + +[Himitsu]: https://sr.ht/~sircmpwn/himitsu + +![himitsu-keyring, a new GTK+ keyring manager from Martijn Braam](https://brixitcdn.net/metainfo/keyring.png) + +Hare also enjoyed many improvements this month. We have some new improvements to +date/time support, including fixes for Martian time ;) I also mostly implemented +cross-compiling, which you can try out with `hare build -t riscv64` or something +similar. The major outstanding pain point here is that the Hare cache is not +arch-aware, so you need to `rm -rf ~/.cache/hare` each time you switch +architectures for now. We now have complex number support, as well as +improvements to enconding::json and net::uri. + +![A screenshot of a fractal rendered with the aid of Hare's new complex number +support](https://l.sr.ht/Do-Q.png) + +That's all for today. Until next time!