Haiku, Inc. is proud to announce being the target of the Icculus Microgrant program for 2020. We would like to thank Icculus, and all of the wonderful folks who have donated to Haiku, Inc. over the years.
Your continued donations help keep us working on what we love, and help us continuously grow and develop the ideal personal computing operating system.
Debugging early bootloader code can be extremely difficult. The lack of printf and other classical black-box debugging tools means you’re limited to one of the following methods of debugging lockups:
- Arm chair debugging, Changing code, compiling, booting, repeat.
- Using GDB or another debugger tool and stepping through code watching outcome.
Obviously #2 above is more ideal than #1. Welcome to debugging by attaching gdb to qemu!
The steps below really should apply to any architecture. Just replace riscv64 with your architecture of choice.
Due to the awesome work by long-time developer waddlesplash, nightly images after hrev53079 have read/write NVMe support built-in.
What is NVMe?
For those not keeping up with the latest advances in tech, NVMe is a M.2 form-factor flash-based storage device which attaches
directly to the system’s PCI Express bus. These flash devices are present in modern desktops and laptops and offer transfer
speeds of several GiB/s.
These devices now show up in /dev/disk/nvme/ and are fully useable by Haiku.
Over the last year, I have been slowly pushing patches upstream to Vagrant introducing native Haiku support. Vagrant is an open-source tool to build and maintain portable virtual development environments. Essentially, Vagrant lets you deploy and rapidly customize a Haiku virtual machine with programmatic scripts.
Since we now have a new stable release, I have prepared some updated R1/beta1 images to play with under an official Haiku, Inc. account.
Requirements
- A linux, OS X, or Windows machine.
- VirtualBox installed and functional.
- Vagrant installed.
Starting Haiku under the VirtualBox provider
The example below starts up a x86_64 Haiku VM.
This evening a standard operating system upgrade has once again turned fatal.
Our infrastructure still depends on a single bare metal server at Hetzner which
continues to be our downfall. This evening a (tested) OS upgrade failed resulting
in maui going MIA. I requested KVM access to attempt repair of maui after it was
missing for ~15 minutes, however we were stuck waiting almost 2 hours for the KVM
from Hetzner.
A small notification that we have updated our repository URL’s in preperation for R1 Beta 1.
This change will ensure that repository links remain consistant through R1 Beta 1 and beyond.
This afternoon, I noticed some strange heavy load on our Postgres database.
After some initial investigation, it was discovered that a server misconfiguration left our Postgres database open to the internet since late January 2018.
Impact
- Translation services (i18n.haiku-os.org)
- Email addresses
- Hashed passwords (old accounts sha1, newer accounts pbkdf2_sha256)
- Trac (dev.haiku-os.org)
- Usernames
- Some emails (based on last session age)
- We got extremely lucky that user passwords were not contained in the database for Trac.
We have notified every individual who was directly impacted via email on behalf of Haiku, Inc. to ensure they are aware of the situation and the data leak.
Up until recently, Haiku builds for ARM have targetted individual ARM boards. The compile process for ARM images required two things: an architecture, and a target board (such as the Raspberry Pi 2). This board setting adjusted a large number of defines throughout Haiku at compile time to set the operating system up for the target ARM device. The board selection also handled placing all the propriety bits (a lot of which have sketchy licensing) into the Haiku image during compile. Haiku would then have to distribute these files. (sketchy licensing and all)
Haiku released R1 Alpha 4.1 on November 14th, 2012. (5 years ago next month).
Since our last release, we have seen a huge number of groundbreaking
new features slip into the
nightly code including package management.
Along with the addition of Package Management (which was added pretty shortly
after R1A4), we were presented with the massive task of building “all the ports”
into packages and maintaining their dependencies within our repositories.