* news/2024-q3.mdwn: rust support for 64 bit hurd, Debian is building X86_64 packages, described the somewhat instability of the X86_64 bit port, and other news.
Samuel, there are two spots where I use ALL CAPS, those definitely need some tweaking on your part. I know you always proofread, but I figured that I would give you a heads up. --- news/2024-q3.mdwn | 156 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 news/2024-q3.mdwn diff --git a/news/2024-q3.mdwn b/news/2024-q3.mdwn new file mode 100644 index 00000000..06712900 --- /dev/null +++ b/news/2024-q3.mdwn @@ -0,0 +1,156 @@ +[[!meta copyright="Copyright © 2024 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta date="2024-09-29 09:00 UTC"]] + +Hello! Welcome to a new qoth. This qoth covers new and interesting GNU/Hurd +developments in Q3 of 2024! +[[!if test="included()" then="""[[!toggle id=full_news +text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]""" +else=" +[[!paste id=full_news]]"]] + +[[!cut id="full_news" text=""" + +Samuel Thibault added rust support for hurd-amd64 (`X86_64`), and it +was [merged upstream](https://github.com/rust-lang/rust/pull/128345)! +Samuel is ok with using rust code in the Hurd code base. If you would +like to help us [build rust language +bindings](https://www.gnu.org/software/hurd/community/gsoc/project_ideas/language_bindings.html), +so that we can build translators in rust, then please get in touch! + +He also started a Debian hurd-amd64 build daemon. So an `X86_64` +Debian GNU/Hurd is officially building Debian packages around the +clock (almost 8,000 packages are built already)! You can see its +progress +[here](https://buildd.debian.org/status/architecture.php?a=hurd-amd64&suite=sid). +Several packages that build on `hurd-i386` are failing to build on +hurd-amd64. The `X86_64` port is still experimental with [known +issues](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00058.html) +(no one is running it on real hardware yet), but it can be [[tested|open_issues/64-bit_port]] +already. Samuel's summed up the 64-bit Hurd's stability with this +comment: + +> ``` +> All in all, I have to reboot the buildd box several times a day +> (while the i386 buildds can compile packages for several weeks before encountering hangs). +> ``` + +Samuel also got the [Debian installer CD working on a 64-bit +Hurd](https://lists.gnu.org/archive/html/bug-hurd/2024-08/msg00034.html) +(in qemu), and he had a smattering of fixes +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00025.html), +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00011.html), +and +[here](https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=aa4b556251f14cce6a1d560f4ca14a7ee76bf05f). + +Flavio Cruz removed some lingering code that handled [untyped mach +messages](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00056.html). +He added `pthread_getname_np` and `pthread_setname_np` to +[glibc](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00023.html), +and he added a `thread_get_name` RPC to [GNU +Mach](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00032.html). He +also fixed several 64-bit issues +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00055.html), +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00051.html), +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00041.html), +[here](https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=3cbb6c48aba3e50c6c6430f9abcc6adcff1d7252), +[here](https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=90b2060cc2a0c18dd48879c347cefda486f5a017), +and +[here](https://lists.gnu.org/archive/html/bug-hurd/2024-09/msg00012.html). +He continued working on [porting +GDB](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00001.html) +to the 64-bit Hurd. + +Luca Dariz fixed/worked around [a shell replacement issue +](https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00057.html), +and Samuel notes that "saving/restoring `sse registers` needs to be +implemented," which Luca started working towards with his several +patches that [added xfloat thread state +interface](https://lists.gnu.org/archive/html/bug-hurd/2024-09/msg00002.html) +to GNU Mach. He added a test to check that [interrupts on an RPC +work](https://lists.gnu.org/archive/html/bug-hurd/2024-08/msg00019.html), +and he also worked on fixing an [unprivileged double fault with +GDB](https://lists.gnu.org/archive/html/bug-hurd/2024-09/msg00021.html). + +Sergey Bugaev resumed his work on +[GHurdFileMonitor](https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3626) +(IS THAT A GOOD LINK? Seems outdated). This will let glib's +GFileMonitor work on the Hurd, so that applications can monitor when a +file or directory changes. + +He also sped up `access ()` / `faccessat ()`, when checking for [file +existence](https://lists.gnu.org/archive/html/bug-hurd/2024-09/msg00023.html). This +is prompted by +[GLib](https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4272) +switching to use `faccessat (F_OK)` to implement `g_file_query_exists +()` for local files. It is not a large patch, but hopefully it shows +that tiny patches can make the Hurd faster! + +The AArch64 port still [[exists|open_issues/arm_port]]. You can +[cross](https://mail.gnu.org/archive/html/bug-hurd/2023-01/msg00132.html)\-[compile](https://github.com/flavioc/cross-hurd) +and [[build|toolchain/cross-gnu]] the Hurd for AArch64. Then you can +run that binary via qemu (please note that this is a bare bones and +experimental Hurd not Debian GNU/Hurd). Hurd developers +successfully used GNU Mach to print "Hello World" on the [Olimex A64 +OLinuXino](https://www.olimex.com/Products/OLinuXino/A64/A64-OLinuXino/open-source-hardware) +board, but it's probably easier to help the port via qemu. + +Want to help the AArch64 port?! We need an interrupt framework for +AArch64, timers, exceptions for bugs on many models (WHAT DOES THAT +MEAN/DID I EXPLAIN IT WELL), debugging rump kernels, bootstrapping +Debian, porting packages, and plenty of bugs to squash! If you want +to run the Hurd on the MNT reform, Pinephone, or Librem 5, then we +could really use some help making it a reality! There's lots of work +to do! + +Want to run Debian GNU/Hurd on real hardware? We might recommend the +Thinkpad T60, which supports a maximum of 4GB of RAM. You can +download a working installer image +[here](https://www.debian.org/ports/hurd/hurd-cd). You can probably +buy a cheap T60 for less than $50! If you can't get the installer to +detect your hard drive or solid-state-drive, then try configuring the +SATA interface to "compatibility" in the BIOS, which will let the SATA +device act like an IDE device. Please reach out on irc when you +install, because the installer image can be a little wonky. + +It is possible to run a 32 bit Hurd on the Thinkpad X200, T400, T500, +or W500, but installing it is a [little +harder](https://www.gnu.org/software/hurd/hurd/running/debian/CrossInstall.html). +If you get it installed, then you should have internet connectivity +via the ethernet port. Additionally those Thinkpads support 8GB of +RAM, and you could also use an SSD, which the Hurd can use, with a +maximum partition size of 2TB! I know we are all excited to use the +hurd-amd64 port in real hardware, but it is not yet recommended. + +Interested in running the Hurd on newer hardware? We have plans to +support newer hardware with [[rump kernels|hurd/rump]]. And we are +already supporting SSDs with rumpdisk, and we have an experimental usb +support with +[rumpusbdisk](https://lists.gnu.org/archive/html/bug-hurd/2023-07/msg00025.html). +Samuel showed off very basic and limited sound support a few years +ago. That work needs to be extended. Join in the effort, and we can +support newer hardware! + +--- + +The **GNU Hurd** is the GNU project's replacement for the Unix kernel. It is a +collection of servers that run on the Mach microkernel to implement file +systems, network protocols, file access control, and other features that are +implemented by the Unix kernel or similar kernels (such as Linux). [[More +detailed|hurd/documentation]]. + +**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It +provides an Inter Process Communication (IPC) mechanism that the Hurd uses to +define interfaces for implementing in a distributed multi-server fashion the +services a traditional operating system kernel provides. [[More +detailed|microkernel/mach/gnumach]]. + +"""]] -- 2.45.2