Modalità di lettura

GNU Hurd development blog: 2026-q2

Hello and welcome to another Qoth! Here's what's been happening in Q2 of 2026!

Joshua Branson added a pretty cool svg logo for our ethernet multiplexor. He built that image with Inkscape whilst using a Hurd laptop (Thinkpad 420) running on real iron! The Hurd wiki could certainly use more artwork. Perhaps you have a favorite Hurd translator that you believes needs some artwork!

Sergey Bugaev announced his WIP 9pfs (source code), and it has a wiki page! He writes:

Some years ago, I experimented with implementing a 9P translator for
the Hurd. Hopefully there is no need to tell this list what 9P is :)

Besides just browsing files on the few existing servers out there, a
potential use case is virtio-9p, to enable shared directory trees
between VMs and the host. But that would need someone to implement
virtio support in the Hurd.

I wanted to complete 9pfs before publishing, but that ultimately
didn't happen, so now it's time to turn it over to the community. I
now went and made the repository public on GitHub:
https://github.com/bugaevc/9pfs

What's implemented is basic browsing (readdir, stat), path resolution
(dir_lookup), and reading files (io_read). And below that, the whole
tracking for nodes, peropens, protids, fids, tags, and 9p RPCs.

Improvements are welcome, send patches to this list with [PATCH 9pfs]
in the subject. A good starting point would be to continue porting
things that I had implemented in the old netfs-based version (see
netfs.c) but didn't yet port to the new one.

He then got a little more motivated, and he added some write support!

Etienne Brateau added validation to msync, so that the Hurd better follows POSIX.

Diego Nieto Cid worked on allowing privileged users to set their task priority (nice value). His patches landed in glibc and GNU Mach. He also fixed a tiny bug in our test suite. He fixed an adjtime bug, which is helpful to the OpenNTPD port, and he fixed two more bugs.

Paulo Duarte sent a RFC patch series trying to commit Sergey’s previous AArch64 work. He writes:

This series adds the gnumach kernel-side implementation for the
aarch64 ABI Sergey landed in April 2024, plus the test-suite arms.
Patch 01 brings in the aarch64-only sources from bugaevc/wip-aarch64
verbatim, with Sergey as Author; the rest is mine.

The meaningful divergence from wip-aarch64 is what I left out:
roughly 150 files of cross-arch refactoring across kern/, ipc/, vm/,
device/intr.{c,h}, and the i386 tree. Each got replaced with a
smaller per-arch shim under aarch64/ so kern/bootstrap.c,
device/intr.{c,h}, kern/lock.h, and the i386 trees all stay
bit-identical to current master. The shared-file footprint outside
aarch64/ is four files: a new ELF constant, two missing decls plus
their include, and a linker-symbol filter extension...

Tested: 12/12 pass on x86_64, i686, and aarch64 under qemu. No
bare-metal validation yet. I plan to build bootable images and boot
the kernel on Apple M1 / Raspberry Pi (aarch64) and an x86_64 box
(x86_64 + i686). Help on any of these welcome.

He also fixed a tiny cross compilation issue.

gfleury fixed some tmpfs typos. He also fixed a kernel crash on a null pointer deference.

Almudena Garcia is developing a WIP trivfs implementation in rust. The work is not complete yet, but it is possible to write Hurd translators in Rust!

Mikhail Karpov added some checks for mmap in several places. He also worked on adding storeio to the bootstrap chain. This is actually quite interesting. Currently the Hurd sets device entries in /dev/ statically. For example, I am writing this qoth on a Hurd machine that is using two /dev/ entries for my filesystem: /dev/wd0s1 for swap and /dev/wd0s5 for my root filesystem. However, /dev/wd0s1 through /dev/wd0s16 exist on my computer! Once Mikhail's project is done, then the Hurd will dynamically populate SATA devices at boot time! No more need for static translators! He writes:

I've expanded the functionality of the partfs translator to work
with multiple disks and their partitions. Thus, by running the
command:
settrans -c partfs /hurd/partfs /root/disk1.img /root/disk2.img /root/disk3.img


The translator directory will have the following directory tree:
partfs
├── 0
│ ├── 1
│ ├── 2
│ └── ...
├── 1
│ ├── 1
│ ├── 2
│ └── ...
├── 2
│ ├── 1
│ ├── 2
│ └── ...
Since the disks are directories, the cd and ls commands work in the translator node.

I also tested mounting, reading, and writing using the commands:
`settrans -c ext01 /hurd/ext2fs -w -T typed file:/root/partfs/0/1`
and
`settrans -c ext1_1 /hurd/ext2fs -w -T typed part:1:file:/root/partfs/1`

It actually is even cooler! Samuel (our fearless leader) is seeking feedback for how to name these newer /dev entries. Samuel writes:

One thing that would be really needed for efficiency is to implement
netfs_file_get_storage_info, so that libstore would be able to get the
underlying storage information, and directly get data from there rather
than partfs having to pass data with io_read/write.

I'm then wondering how this would fit in the "grand scheme". Our current
approach, /dev/hd0s* being always there, is indeed not really good
because it doesn't easily tell the user which partitions are actually
there. We used to have to have this because partitions used to be
handled by the kernel, and then we have moved to
storerio+parted-supported partitions, which brings much more
flexibility.

Perhaps we could use

settrans -c /dev/hd0s /hurd/partfs /dev/hd0

and then we'd have /dev/hd0s/1, which is almost like before, but allows
the entries to be dynamic. Actually, we could even have some

settrans -c /dev/hd /hurd/probedisk hd

and then we'd have /dev/hd/0, and we could have /dev/hd/0s being partfs,
so we'd eventually have

/dev/hd/0s/1

But I'm also thinking that perhaps it could be integrated more with
storeio, i.e. /dev/hd0 can as well also act as a directory with partfs
behavior, so you could have

/dev/hd0/1

and with the probedisk translator, you could have

/dev/hd/0/1

What do people think about it?

Mike Kelly has been hard at work porting OpenBSD’s OpenNTPD, which required some glibc work. The Hurd doesn't currently have a NTP daemon, so thanks Mike!

He also debugged a weird memory error with rump, and he provided a "brown-tape" solution for it. Hopefully, he (or you dear reader), can reach out to the NetBSD people to fix this bug. This just goes to show that when two projects use the same code, both projects benefit!

He also got a glibc patch committed. Essentially SIGSTOP/SIGCONT was duplicating portions of files, which is now fixed. However, there are still some other issues with building some haskell packages.

Joan Lledó continued his work on porting dhcpcd. Also Roy Maples, the dhcpcd maintainer did a lot of helpful work to help us out. Thanks Roy!

Bradley Morgan fixed a tiny implementation bug with cat. He also tweaked procfs to show hidden files, and he allowed passing “-s” to init. Previously, passing "-s" to init was silently ignored.

Johannes Schauer Marin Rodrigues has been working on getting s-build to run on amd64 Hurd. It is a rather long email thread, so grab some popcorn and dig in!

Milos Nikic ported Neovim. He also worked on bug fixes to libdiskfs, and he fixed a deadlock bug in the “ext3/ext4” filesystem journal.

In the last qoth we had talked about how the Milos was working on adding an ext3/ext4 binary compatible journal. Samuel has committed it! Samuel wrote:

There is a couple things that I fixed on the fly:

- We want to use pthread_cond_clockwait rather than
  pthread_cond_timedwait, to be able to use CLOCK_MONOTONIC instead of
  CLOCK_REALTIME, to avoid being hit by ntpdate and such.

- In diskfs_S_dir_rename, there was an addition of:

  pthread_mutex_unlock (&fnp->lock);

  which was clearly bogus: we were unlocking it again below.

There are a couple things that we'd want to fix now:

- when calling diskfs_file_update, don't we have to be inside a
  transaction? Otherwise if we pass wait=1 and use a journal, we won't
  be waiting AIUI? Notably, in diskfs_S_dir_rmdir we don't use a
  transaction. And ideally we'd have an assertion that makes sure we
  respect this.

- we should define some helper for this recurring pattern:

  if ((docommit) && (diskfs_synchronous || diskfs_journal_needs_sync (txn)))
    diskfs_journal_commit_transaction (txn);
  else
    diskfs_journal_stop_transaction (txn);

- journal_drain_deferred_blocks should document what it does, not just
  its call conditions :), and more generally the functions that are
  not already documented in a .h and not just a _locked variant of a
  documented function.

Leonardo Lopes Pereira did some spring cleaning to remove some dead code.

Samuel Thibault mentioned in an email that the Hurd can support nvmes with rump, but that the work was just not done yet. Perhaps you, dear reader, would like to help us accomplish this task?

The mysterious user yelini worked on porting the D language compiler.

Damien Zammit worked on tweaking the Hurd’s WIP CI. He also fixed several bugs to make it possible to run the Hurd’s test suite from GNU/Linux running on an AArch64 computer. He also is working on integrating qemu’s Hurd support into upstream qemu’s CI, so that the support does not bitrot.

Sophiel Zhou fixed a tiny pfinet permission checking issue and taught pfinet to not fail under memory pressure:

This series fixes two latent crash bugs in pfinet where mmap
return values go unchecked, may causing crash when memory is tight.

Both bugs follow the same pattern: mmap is called to grow a buffer,
but the returned pointer is dereferenced before (or without) checking
for MAP_FAILED.  Under normal operation mmap rarely fails, so these
have gone unnoticed, but under address-space pressure pfinet would
crash.
  •  

GNUnet News: GNUnet 0.28.0

GNUnet 0.28.0 released

We are pleased to announce the release of GNUnet 0.28.0.
GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old insecure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and applications towards the creation of a GNU internet.

This is a new major release. Major versions may break protocol compatibility with the 0.27.X versions. Please be aware that Git master is thus henceforth (and has been for a while) INCOMPATIBLE with the 0.27.X GNUnet network, and interactions between old and new peers will result in issues. In terms of usability, users should be aware that there are still a number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.28.0 release is still only suitable for early adopters with some reasonable pain tolerance .

Download links

  • gnunet-0.28.0.tar.gz ( signature )
  • The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A

    Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try http://ftp.gnu.org/gnu/gnunet/

    Changes

    A detailed list of changes can be found in the git log, the NEWS.

    Known Issues

    • There are known major issues with the TRANSPORT subsystem.
    • There are known moderate implementation limitations in CADET that negatively impact performance.
    • There are known moderate design issues in FS that also impact usability and performance.
    • There are minor implementation limitations in SET that create unnecessary attack surface for availability.
    • The RPS subsystem remains experimental.

    In addition to this list, you may also want to consult our bug tracker at bugs.gnunet.org which lists about 190 more specific issues.

    Thanks

    This release was the work of many people. The following people contributed code and were thus easily identified: Christian Grothoff, Florian Dold, TheJackiMonster, and Martin Schanzenbach.

  •  

COMUNICATO STAMPA - I Garanti privacy europei all'UE: rafforzare la cooperazione tra le autorità di regolazione. A Dublino il Gruppo di Alto Livello del Comitato europeo per la protezione dei dati

I Garanti privacy europei all'UE: rafforzare la cooperazione tra le autorità di regolazione A Dublino il Gruppo di Alto Livello del Comitato europeo per la protezione dei dati Una base giuridica europea che favorisca lo scambio di informazioni tra Au...
  •  

Sono ciclica, su Ciclica di Donatella Fiacchino

Le mie mutande sono macchiate di sangue e so che dentro ci sono brandelli di materia organica, oggi il veterinario ha asportato l’utero al mio gatto, una semplice sterilizzazione. Vorrei fosse stata usanza culturale negli anni Novanta farlo anche con gli esseri umani come per i buchi alle orecchie. So che questa cosa non si può dire e provo un senso di rabbia all’idea di non conoscere  parole utili per spiegarmi: Ciclica – Mestruazioni, corpo e società di Donatella Fiacchino, pubblicato questa primavera dalla casa editrice Le Plurali, mi accoglie con il fiato sospeso, in un mischione di rabbia personale e politica. 

Mia madre mi ha detto per una vita che avevo carenze di magnesio, mi faceva bere questi bibitoni bianchi salati. Da adolescente almeno una giornata al mese la passavo immobile a letto con una bottiglia di vetro riempita con l’acqua bollita nel pentolone della pasta anche in piena estate. Un paio di volte mi sono ustionata e ho tratto sollievo dal nuovo dolore, mi distraeva  dai crampi. In quarta superiore ero già una tossica di antidolorifici. Ma, essendo l’organizzazione umana altamente fallibile e le mie mestruazioni abbastanza imprevedibili, mi sono ritrovata più volte accasciata dietro il bancone del posto in cui lavoravo, sul bordo di un marciapiede o, una volta, dentro un bagno chimico in piena estate, mentre sudavo freddo e supplicavo al telefono qualcuno di portarmi l’antidolorifico più forte che avesse. Come funziona il mio corpo me lo ricordo sempre quando non posso fare altro che odiarlo. Per questo leggere questo saggio è stato difficile.

È faticoso metter da parte la frustrazione, uscire dal silenzio e condividere l’esperienza di mestruare, ma non sono sola. Anche Fiacchino parte da sé, seguendo un approccio frequente in questo genere di saggistica: quando un’esperienza pervasiva come questa viene marginalizzata dalla struttura sociale e confinata entro la sfera individuale, si genera una forte necessità di incontro espressa a pieno titolo nella forma della testimonianza. Il bisogno di nominare e comprendere ciò che la società ci ha insegnato a tacere rimane tumultuoso, ma spesso indistinto, finché non trova un dialogo capace di dargli senso. È precisamente ciò che avviene in Ciclica: il saggio si avvicina all’esperienza individuale con delicatezza, la cinge senza determinarla e le dà del tu. Getta così, in modo esplicito e consapevole, le basi di un discorso comune abbastanza ampio da poter essere attraversato da esperienze differenti senza cancellarne la singolarità.

Il presupposto con cui ho approcciato il tema delle mestruazioni è che non tutte le persone socializzate donne hanno o hanno avuto le mestruazioni nella loro vita e che, viceversa, non tutte le persone che hanno o hanno avuto le mestruazioni sono donne. Per quanto possibile nel testo ho cercato di mantenere un linguaggio neutro, utilizzando i termini persone con le mestruazioni o persone che mestruano.

Non è quindi casuale che Fiacchino decida di scrivere Ciclica mentre affronta il percorso che la porterà alla diagnosi di endometriosi e alla prescrizione di una terapia ormonale. Non è casuale nemmeno che il saggio si apra con una premessa dedicata al linguaggio. Per sottrarsi alla narrazione patriarcale, segregante e infantilizzante delle mestruazioni, il discorso deve innanzitutto parlare a chi ne fa esperienza quotidiana e cercare con queste persone un contatto sincero e radicale, è da qui che trae la sua forza.

Tutto, nella società, ci dissuade dal parlare del ciclo. Prima del menarca è raro entrare in contatto, anche soltanto visivo, con il sangue mestruale; e quando accade, ancora più raramente la situazione sarà vissuta senza drammi o mani che cercano borsette e che corrono subito nei corridoi verso i bagni. Fin dall’infanzia sai che, se un giorno inizierai a mestruare, sarà una faccenda da gestire da solə, o al massimo con zia Monica preoccupata che bussa alla porta del bagno e ti chiede se stai bene. Sto bene o non sto bene se mi succede tutti i mesi? Se è solo una questione privata, come capisco cos’è la normalità?

Il saggio sceglie una serie di questioni sostanziali e si prende il tempo necessario per fare chiarezza su  cosa sia il ciclo, su come funzionino le diverse fasi e su come le mestruazioni siano state storicamente stigmatizzate in Europa, dall’antichità fino all’avvento del marketing, oltre che all’interno delle dottrine religiose. Da questa ricostruzione emerge, con una semplicità sfacciata, che se dolori insopportabili vengono taciuti, minimizzati e scambiati per una parte inevitabile dell’esperienza di abitare un corpo che mestrua, non è perché siano davvero normali, ma si tratta del risultato di un’equazione che possiamo invertire soltanto attraverso una consapevolezza comune.

Ciclica è una lettura in grado di toccare i punti giusti, attraverso un percorso argomentativo particolarmente curato, il nostro funzionamento biologico, la nostra ciclicità si prende i suoi termini per essere raccontata e con questi i suoi spazi e la sua completa e possente legittimità di stare al centro della scena. Fiacchino non sceglie di farlo trasformando le mestruazioni in un trionfo o imponendo una forma di devozione verso il corpo, Ciclica ci invita piuttosto a trasformare la rabbia in una coscienza capace di fornire gli strumenti per distinguere il funzionamento individuale dalla patologia. Il carattere distruttivo e rivoluzionario della rabbia può allora rivolgersi contro le fondamenta che permettono di oscurare in un grande mistero omogeneo l’esperienza quotidiana e sfaccettata di due miliardi di persone. 

L’immaginario comune sulla menopausa comprende tutte caratteristiche associate di solito all’immagine di una persona anziana, perché lo stereotipo ci dice che la menopausa vuol dire questo, vecchiaia. Tuttavia, al giorno d’oggi non definiremmo una persona di cinquant’anni “vecchia”

L’intenzione di Ciclica è soprattutto quella di dedicare spazio alle esperienze che non rientrano nell’immagine convenzionale della donna cisgender tra i quattordici e i quarantacinque anni. Fiacchino parla di persone molto giovani, persone trans, disabili e neurodivergenti, e dedica attenzione anche alla premenopausa e alla postmenopausa, ampliando il discorso oltre i confini in cui  la ciclicità e l’esperienza mestruale vengono abitualmente racchiuse. 

Chiedersi «chi mestrua, oltre alle donne?» permette non solo di riconoscere altre esperienze e ampliare la nostra consapevolezza, ma anche  liberare il ciclo mestruale dallo stretto legame con l’educazione femminile in una società patriarcale. Rinchiudere questa esperienza dentro un genere è un’arma che colpisce due volte, dal un lato esclude chi mestrua senza essere donna, e dall’altro confina chi lo è entro una cornice di ruolo sociale essenzialista, costruita intorno a un funzionamento biologico. In entrambi i casi, riduce la possibilità di vivere la ciclicità in forme creative e originali.

Nonostante le mestruazioni siano, in molte culture, un simbolo di salute e fertilità e il loro arrivo sia un rito di passaggio da celebrare (chi non ha ricevuto gli auguri il giorno che è “diventata signorina”?), il ciclo mestruale è anche una delle cose più censurate, edulcorate e ignorate nella pletora dei meccanismi fisiologici e degli eventi fisici che attraversa il corpo umano nel corso della vita. È il paradosso delle mestruazioni: si festeggia quando arrivano e si passano i decenni successivi a fingere che non esistano. Eppure, non sembriamo, in quanto società occidentale, così tanto inibiti quando si tratta di altri fenomeni e meccanismi che interessano il corpo umano. Quanti film avete visto in cui ci sono persone che mangiano? Che vomitano? Persone che sudano e che eiaculano? Qualsiasi cosa abbia a che fare con la materia che costituisce il nostro corpo può essere oggetto di discussione in pubblica piazza. Eppure, è ancora raro che si parli di mestruazioni e che le si includano nella rappresentazione del quotidiano, esclusi i liquidi blu nelle pubblicità per assorbenti igienici in televisione. Non sta mai bene chiamarle con il vero nome, ma è opportuno ricorrere a codici cifrati (“il marchese”, “quei giorni”, “le mie cose”… ). La rappresentazione e la discussione del ciclo mestruale sembra essere considerata tuttora imbarazzante, disgustosa, non necessaria.

La povertà di narrazioni e di esperienze condivise riguardo alle mestruazioni non emargina soltanto l’esperienza quotidiana, ma come abbiamo visto anche le sue manifestazioni patologiche. Fiacchino rimarca l’arretratezza scientifica, diagnostica e legislativa, affrontando questioni come il congedo mestruale e le tasse imposte sui prodotti per l’igiene mestruale, all’interno di una cornice argomentativa diretta, ampia e sempre disponibile a essere messa in discussione.

Il saggio accenna in maniera sintetica, seppur convinta, alla necessità di organizzare percorsi di educazione sessuale, indicandoli come una delle azioni pratiche più utili. In Ciclica vengono aperti molti temi con lucidità, ma non sempre trovano lo spazio necessario per essere approfonditi sul piano specialistico. La postura dialettica del libro rende evidente che questo discorso non può considerarsi concluso, tenendo bene a mente la stratificazione e l’eterogeneità di esperienze che comprende, rappresenta un’occasione per riconoscersi in un funzionamento biologico quasi sempre invisibilizzato.

The post Sono ciclica, su Ciclica di Donatella Fiacchino first appeared on Stanca.

  •  

Prompt Injection e Token Distribution Dynamic

💾

Spiego come i sistemi di difesa riescono a intercettare i tentativi di prompt injection e come possiamo eluderli con la tecnica token distribution dynamic. Mostro un esperimento pratico in cui chiedo a GPT di risolvere un compito che riconosce come malintenzionato e rifiuta.

0:00 Rilevamento prompt injection

=[ INFO ]=
inviaci un messaggio a info@rev3rse.it

🌐 Contatti e community
🔗 LinkedIn → linkedin.com/company/rev3rse-security
📸 Instagram → instagram.com/rev3rsesecurity
💬 Telegram (invite-only) → @rev3rsesecuritychat
🎙️ Twitch → twitch.tv/rev3rsesecurity
🌍 Website → rev3rse.it
  •  

NanoKVM-Go Brings AI-Powered Hardware Control to Linux with a Compact USB-C KVM

NanoKVM-Go Brings AI-Powered Hardware Control to Linux with a Compact USB-C KVM

Sipeed has introduced NanoKVM-Go, a compact USB-C KVM-over-IP device that combines remote hardware management with AI integration. Designed for Linux, Windows, macOS, and other USB-C devices, NanoKVM-Go allows users to remotely view and control a system through a web browser while exposing its keyboard, mouse, and display functions to AI agents via the Model Context Protocol (MCP).

Unlike traditional KVM-over-IP solutions that require multiple cables and dedicated networking hardware, NanoKVM-Go simplifies the setup into a single USB-C connection, making remote administration and AI-assisted automation more accessible for developers, system administrators, and homelab enthusiasts.

A Portable USB-C KVM

NanoKVM-Go is roughly the size of a smartwatch, measuring about 45 × 40 × 15 mm, yet it combines several functions into a single device.

Key hardware features include:

  • USB-C connection for video, audio, keyboard, mouse, and power
  • Wi-Fi 6 connectivity
  • Browser-based remote management
  • Support for virtual USB storage
  • Built-in Tailscale integration for secure remote access
  • Fanless aluminum enclosure with low power consumption

Because it connects over USB-C using DisplayPort Alt Mode, the device can manage a wide variety of hardware without requiring software installation on the target system.

Designed for Linux and Beyond

NanoKVM-Go supports numerous USB-C devices, including:

  • Linux desktops and laptops
  • Windows PCs
  • macOS systems
  • Mini PCs
  • Steam Deck
  • Android devices with DisplayPort Alt Mode
  • iPhone 15 and newer models
  • Tablets supporting USB-C video output

For Linux users, this provides an easy way to perform BIOS configuration, operating system installation, kernel debugging, or remote troubleshooting—even when the operating system is unavailable.

AI Integration Through MCP

One of NanoKVM-Go's defining features is its AI-native design.

Rather than simply streaming a desktop remotely, the device exposes its KVM functions as an MCP (Model Context Protocol) server, allowing compatible AI agents to interact with the connected computer using hardware-level keyboard and mouse input.

This enables AI systems to:

  • View the screen
  • Move the mouse
  • Type on the keyboard
  • Launch applications
  • Navigate user interfaces
  • Complete repetitive desktop workflows

Because control happens at the hardware level, AI agents can interact with systems regardless of the operating system installed.

  •  
❌