On January 9, the official news section of the GNU Hurd project published the results for Q3 2023:
- Samuel Thibault fixed the default PIE for gcc and added support for static PIE.He also added the whatis command to the GNU Mach kernel debugger, which can determine what an address points to (stack? port? kalloc?…). Support for hurd-amd64 was added in GCC. Samuel also asked the Hurd team to organize continuous integration (.
- continuous integration) so that when developers make changes to the code, they can be sure that nothing is broken."It turns out that Hurd supports multiple environments: 32-bit, 64-bit, 32 on 64-bit, ACPI, non-ACPI, SMP, non-SMP, Xen, etc. Apparently, one of the Hurd developers, Flavio, has a
personal CI , but it is set up independently of Debian. If you are interested in helping the Hurd project set up CI, please contact us!"Luca Dariz worked on adding several
- simple tests for the user space of GNU Mach. With a running MiG, a GNU/Linux machine can run the make check command for the GNU Mach source code, which will start qemu to ensure that the 32-bit (PAE and non-PAE), 32-bit on 64-bit, and full 64-bit GNU Mach work. Currently, we are testing on GNU/Linux, as qemu is not functioning on Hurd. A large number of people worked on the new
- support for x86_64 in Hurd. Samuel noted that the 64-bit port of GNU Hurd now has enough packages in the debian-ports archive to allow for a chroot to be booted. The build daemon for the 64-bit version of Debian + GNU Hurd is being set up, and other infrastructure work is also ongoing. Thibault noted: "Package building is not very stable. I've been trying to build gcc-13 for a couple of weeks, but so far without success. There are various failures, often strange errors in the libtool script, which indicate that the system itself is behaving incorrectly. The way to reproduce the issue is simply to rebuild a package that uses libtool, and sooner or later, this leads to very strange failures." reported The majority of people were involved in the new
support for x86_64 in Hurd.
This means that although the buildd is ready, I really hesitate to start it knowing that it might behave erratically. When I built the initial set of packages for the Debian ports (~100 packages), I encountered about 5-10 such failures, which is quite a high rate:/ - Flavio Cruz improved IPC GNU Mach, changing the order of the fields in mach_msg_type_t for alignment of msgt_name and msgt_size. He also created a series of patches, to avoid message size changes for x86_64. He removed untyped Mach RPC code:
"GNU Mach uses typed IPC. Hurd can support both typed and untyped calls, but it seems Hurd only uses typed RPC. Therefore, it is best to remove any untyped RPC code."
- Sergey Bugaev added support for coalescing GNU Mach records. Mach could not always coalesce two virtual machine records made next to each other, which slowed down ext2, bash, etc. Sergey enabled GNU Mach to coalesce records in normal cases, which greatly helped, for instance, in ext2fs.
- Sergey is also working on porting the Ladybird web browser to Hurd. The author of this post (clearly referring to the original post at gnu.org - ed.) use the netsurf web browser to Hurd, which works on simple websites (like Wikipedia), but poorly renders pages with heavy JavaScript, making many websites unusable. If Sergey succeeds in porting Ladybird, Hurd users could start using web resources like Github! It is worth noting that someone has to update and port Firefox.
- Additionally, Bugaev started porting Hurd to AArch64! And while the port to RISC-V may seem more interesting, it should be noted that AArch64 is more well-known. Interestingly, Sergey is already able to build Hurd servers for AArch64! Usually, to run binaries, one needs to port GNU Mach to AArch64, but fortunately for us, he turned to GDB and directly ran the Hurd AArch64 binary "Hello World" in Linux! This helped him fix some bugs. There is still the task of defining the ABI and completing the port of GNU Mach, but for now, this is amazing news!
- Tobias Platen started porting GNU Mach to the Power9 platform.
If anyone wishes to check the functionality of their favorite packages under Hurd and their contribution to the use of the entire GNU system for a broader audience — please, check the participation page.
For reference: GNU Hurd (or simply Hurd) — is a free software development project aimed at replacing the Unix kernel for Unix-like operating systems. Hurd has been in development since 1990 by the GNU project and the Free Software Foundation. Progress has been slow due to the existence of Linux — an already ready free replacement for Unix kernels. Details can be viewed both in Wikipedia, and on the official GNU Hurd project page.
In turn, GNU Mach — is an implementation of the Mach microkernel, which is included by default in GNU Hurd.
Source: linux.org.ru
