HN 日本語サマリー

← 一覧へ戻る
オープンソース

GNU Hurd ニュース 2026-Q2

GNU Hurd News 2026-Q2 (gnu.org)

203 pointsby plaguna139 コメント

要約

この記事は、2026年第2四半期におけるGNU Hurdプロジェクトの進捗を報告しています。主な更新内容として、新しいSVGロゴの追加、Sergey Bugaev氏による9pfs(ファイルシステムプロトコル)の実装と書き込みサポートの追加、msyncへの検証追加、タスク優先度設定の改善、AArch64アーキテクチャサポートの進展、trivfsの実装、動的なデバイスエントリの生成に向けたpartfsの機能拡張、OpenNTPDのポート、dhcpcdのポート、Neovimのポートなどが挙げられています。

全文翻訳

GNU Hurd/ news/ 2026-q2 最近の変更 設定 履歴 ソース ?ディスカッション ようこそ... ...GNU Hurdへ! ホーム コミュニティ 連絡先 寄付 貢献 ソースコード パブリック Hurd ボックスン QEMU イメージ ヘルプの入手 プロジェクトアイデア オープンな課題 ドキュメント FAQ Hurd ドキュメント ビルド 実行 Mach ドキュメント GNU Mach ビルド GNU Mach MIG ドキュメント GNU MIG ビルド GNU MIG Debian GNU/Hurd Guix GNU/Hurd Arch GNU/Hurd Gentoo GNU/Hurd GNU System Hurd NG こんにちは、そしてもう一つのQothへようこそ!2026年の第2四半期に何があったか見ていきましょう! Joshua Bransonは、イーサネットマルチプレクサのクールなSVGロゴを追加しました。彼はInkscapeを使って、実際の鉄の上で動作するHurdラップトップ(Thinkpad 420)でその画像を作成しました!Hurd wikiは確かに、より多くのイラストを必要としています。お気に入りのHurdトランスレータで、イラストが必要だと思うものがあるかもしれません! Sergey Bugaevは、彼のWIP 9pfs(ソースコード)を発表しました。そして、それにはwikiページがあります!彼は次のように書いています。 数年前、私はHurd用の9Pトランスレータを実装する実験をしました。Hurdで9Pが何であるかをリストに伝える必要はないでしょう :) 既存のサーバー上のファイルを参照するだけでなく、潜在的なユースケースはvirtio-9pであり、VMとホスト間で共有ディレクトリツリーを有効にすることです。しかし、そのためにはHurdにvirtioサポートを実装する誰かが必要になります。公開する前に9pfsを完成させたかったのですが、結局それは実現しなかったので、今コミュニティに委ねる時が来ました。私は今、リポジトリをGitHubで公開しました:https://github.com/bugaevc/9pfs 実装されているのは、基本的なブラウジング(readdir、stat)、パス解決(dir_lookup)、ファイル読み取り(io_read)です。そしてその下には、ノード、peropens、protids、fids、タグ、9p RPCのすべての追跡があります。改善は歓迎します。件名に[PATCH 9pfs]を付けて、このリストにパッチを送ってください。良い出発点は、私が古いnetfsベースのバージョン(netfs.cを参照)で実装したが、新しいバージョンにはまだ移植していないものを移植し続けることでしょう。 彼はその後、少しモチベーションを高め、書き込みサポートを追加しました! Etienne Brateauはmsyncに検証を追加し、HurdがPOSIXにより良く従うようにしました。 Diego Nieto Cidは、特権ユーザーがタスクの優先度(nice値)を設定できるようにすることに取り組みました。彼のパッチはglibcとGNU Machに適用されました。彼はまた、テストスイートの小さなバグを修正しました。 彼はadjtimeバグを修正しました。これはOpenNTPDポートに役立ちます。そして、さらに2つのバグを修正しました。 Paulo Duarteは、Sergeyの以前のAArch64作業をコミットしようとするRFCパッチシリーズを送信しました。彼は次のように書いています。 このシリーズは、Sergeyが2024年4月にリリースしたaarch64 ABIのgnumachカーネル側の実装と、テストスイートのアームを追加します。パッチ01は、bugaevc/wip-aarch64からaarch64専用のソースをそのまま取り込み、Sergeyを著者としています。残りは私です。wip-aarch64からの意味のある分岐は、私が除外したものです。kern/、ipc/、vm/、device/intr.{c,h}、およびi386ツリー全体にわたる約150ファイルのクロスアーキテクチャリファクタリングです。それぞれがaarch64/の下に小さなアーキテクチャごとのシムに置き換えられたため、kern/bootstrap.c、device/intr.{c,h}、kern/lock.h、およびi386ツリーはすべて現在のマスターとビット同一のままです。aarch64/の外の共有ファイルフットプリントは4つのファイルです。新しいELF定数、2つの欠落している宣言とそのインクルード、およびリンカーシンボルフィルター拡張機能です。 テスト: qemuの下でx86_64、i686、およびaarch64で12/12がパスしました。まだベアメタル検証はありません。Apple M1 / Raspberry Pi (aarch64) および x86_64 ボックス (x86_64 + i686) でブート可能なイメージをビルドし、カーネルをブートする予定です。これらのいずれかに関するヘルプを歓迎します。 彼はまた、小さなクロスコンパイルの問題を修正しました。 gfleuryはtmpfsのタイプミスをいくつか修正しました。 彼はまた、ヌルポインタ参照によるカーネルクラッシュを修正しました。 Almudena Garciaは、RustでWIP trivfs実装を開発しています。作業はまだ完了していませんが、RustでHurdトランスレータを記述することは可能です! Mikhail Karpovは、いくつかの場所にmmapのチェックを追加しました。彼はまた、ブートストラップチェーンにstoreioを追加することに取り組みました。これは実際には非常に興味深いことです。現在、Hurdは/dev/にデバイスエントリを静的に設定しています。例えば、私はこのqothを、私のファイルシステムに使用されている2つの/dev/エントリを使用しているHurdマシンで書いています。/dev/wd0s1はスワップ用、/dev/wd0s5はルートファイルシステム用です。しかし、/dev/wd0s1から/dev/wd0s16までが私のコンピュータに存在します!Mikhailのプロジェクトが完了すると、Hurdは起動時にSATAデバイスを動的に設定するようになります!静的なトランスレータはもう必要ありません! 彼は次のように書いています。 私はpartfsトランスレータの機能を拡張して、複数のディスクとそのパーティションで動作するようにしました。したがって、コマンドを実行することで: settrans -c partfs /hurd/partfs /root/disk1.img /root/disk2.img /root/disk3.img トランスレータディレクトリには次のディレクトリツリーがあります。 partfs ├── 0 │ ├── 1 │ ├── 2 │ └── ... ├── 1 │ ├── 1 │ ├── 2 │ └── ... ├── 2 │ ├── 1 │ ├── 2 │ └── ... ディスクはディレクトリなので、cdおよびlsコマンドはトランスレータノードで機能します。また、次のコマンドを使用してマウント、読み取り、書き込みをテストしました。 `settrans -c ext01 /hurd/ext2fs -w -T typed file:/root/partfs/0/1` および `settrans -c ext1_1 /hurd/ext2fs -w -T typed part:1:file:/root/partfs/1` 実際、さらにクールです! Samuel(私たちの勇敢なリーダー)は、これらの新しい/devエントリの名前の付け方についてフィードバックを求めています。 Samuelは次のように書いています。 効率のために本当に必要とされることの1つは、netfs_file_get_storage_infoを実装することです。これにより、libstoreは基盤となるストレージ情報を取得し、partfsがio_read/writeでデータを渡すのではなく、直接そこからデータを取得できるようになります。私は、これが「壮大な計画」にどのように適合するか疑問に思っています。現在の私たちの方法、つまり/dev/hd0s*が常にあるということは、ユーザーが実際にどのパーティションが存在するかを簡単に教えてくれないため、確かにあまり良くありません。パーティションはカーネルによって処理されていたため、これが必要でしたが、その後、storerio + partedサポートのパーティションに移行し、これによりはるかに多くの柔軟性が得られました。おそらく、settrans -c /dev/hd0s /hurd/partfs /dev/hd0 を使用し、その後 /dev/hd0s/1 を持つことができます。これは以前とほぼ同じですが、エントリを動的にすることができます。実際、settrans -c /dev/hd /hurd/probedisk hd を使用して、/dev/hd/0 を持つこともできます。そして、/dev/hd/0s を partfs にすることもできます。最終的には /dev/hd/0s/1 を持つことができます。しかし、storeio とより統合される可能性についても考えています。たとえば、/dev/hd0 はディレクトリとしても機能し、partfs の動作を持ち、/dev/hd0/1 を持つことができます。probedisk トランスレータを使用すると、/dev/hd/0/1 を持つことができます。人々はどう思いますか? Mike Kellyは、OpenBSDのOpenNTPDをポートすることに懸命に取り組んでおり、これにはいくつかのglibc作業が必要でした。Hurdには現在NTPデーモンがないため、Mikeに感謝します!彼はまた、rumpでの奇妙なメモリエラーをデバッグし、それに対する「ブラウンテープ」ソリューションを提供しました。うまくいけば、彼(またはあなた、親愛なる読者)はNetBSDの人々に連絡してこのバグを修正できるでしょう。これは、2つのプロジェクトが同じコードを使用すると、両方のプロジェクトが利益を得ることを示しています!彼はまた、glibcパッチをコミットさせました。基本的にSIGSTOP/SIGCONTはファイルの重複部分を生成していましたが、これは現在修正されています。しかし、一部のHaskellパッケージのビルドにはまだ他の問題があります。 Joan Lledóはdhcpcdのポート作業を続けました。また、dhcpcdのメンテナーであるRoy Maplesも、私たちを助けるために多くの役立つ作業をしてくれました。ありがとうRoy! Bradley Morganはcatの実装バグを一つ修正しました。また、procfsを調整して隠しファイルを表示するようにし、「-s」をinitに渡せるようにしました。以前は、「-s」をinitに渡しても静かに無視されていました。 Johannes Schauer Marin Rodriguesは、amd64 Hurdでs-buildを実行できるようにすることに取り組んでいます。これはかなり長いメールスレッドなので、ポップコーンを用意して読み込んでください! Milos NikicはNeovimをポートしました。彼はまた、libdiskfsのバグ修正に取り組み、ext3/ext4ファイルシステムのジャーナルでデッドロックバグを修正しました。前回のqothでは、Milosがext3/ext4バイナリ互換ジャーナルを追加することに取り組んでいたことについて話しました。Samuelがそれをコミットしました! Samuelは次のように書いています。 私がその場で修正したことがいくつかあります。 - pthread_cond_timedwaitではなく、pthread_cond_clockwaitを使用したい。これは、t