Linux 6.2がリリース 21
リリース 部門より
アナウンス:スラドとOSDNは受け入れ先を募集中です。
非 GNU な Linux ディストリビューション「Chimera Linux」の開発が進められているそうだ (The Register の記事、 公式サイトの About ページ、 FOSDEM 2023 の紹介記事、 GitHub)。
Chimera Linux のユーザーランドでは GNU Core Utilities に代えて FreeBSD ベースのコアユーティリティが使われており、NetBSD や OpenBSD のソースコードも使われている。システムツールチェーンは GNU ツールチェーンではなく LLVM/Clang を用い、C ライブラリも GNU C ライブラリに代えて musl の標準 C ライブラリを用いる。
これらの GNU コンポーネントを使用しないことは、Chimera が GNU/Linux システムでないことを意味する。システムは (make を除いて) GNU コンポーネントを使用することなくブートストラップ可能であり、GNU コンポーネントを使用することなくブート可能だという。
現在はプリアルファ版が提供されており、今春にもアルファテストを開始する計画とのことだ。
広く使われていたとされるMozc用辞書「Mozc-UT」について、Twitter上でライセンス上の不透明感について疑問を投げかける投稿が何度かあり、作者本人は問題とは思っていないものの生活への影響への懸念から公開を停止、このことが波紋を呼んでいるとのこと。
リンク先には
・主にLinuxにおける日本語変換環境に関する困難な状況
・オープンソースプロジェクトを継続する困難さ、特にモチベーション維持
などについて書かれている。
kawakazuさんの日記
https://srad.jp/~kawakazu/journal/659581/
で知りました。
Linuxに実装されているMotorola MC68000(m68k)アーキテクチャ向けに最適化された文字列比較に使用される「strcmp」関数の手書きのアセンブリコードが、2010年10月の実装時から2022年12月まで12年間の間、正常に動作していなかったことが判明した。Linus Torvalds氏はこの件に関して「常に壊れていた」と発言している(Phoronix、Linus Torvalds氏による説明)。
この問題についての詳細をツイートしているFadis氏の説明を引用すると、
Linuxのm68kサポートには2010年にアセンブリで書かれた高速なstrcmpの実装が追加された。しかしこの実装は2つの文字を8bit整数のまま減算して結果が0でなければそれを返り値とするという実装だった為、非ASCII文字を含む場合に正しくない結果を返す不具合があった
とのこと。
GNU Libc(glibc)にDT_HASHを含めるか,DT_GNU_HASHのみにするかはビルド時に選択できたが、おおくのdistroはDT_HASHを含めて出荷していた(IVYL'S BLOG)。
elfのシンボルハッシュを使うプログラム(libstrangle)などはDT_HASHに依存していた。DT_GNU_HASHのみになったのでそれを前提としていたプログラムから見ると、後方互換性がなくなったように見える(ただ、DT_HASHはABIの一部ではなかったので,glibcから見ると後方互換性の約束を一応守っている,ちなみに、glibcは前方互換性は保証してないので、リリースサイクルの遅いdistroだとバイナリが動かなかったりするよね)
少し前(8月くらい)にlinuxコミュニティで話題になっていたことだが、
まだsradで書かれてなかったのでかいてみる
60代の男性(自称:会社役員)が、80代の男性を、秋葉の駅でエスカレータの使いかたで揉めてキレちゃって投げとばすだー蹴りを入れるだーして捕まったそうです。なんで揉めちゃうかな。
駅の客同士のトラブルなんてべつに珍しかないんで、へえニュースになるんだー、ってくらいですけど、ニュースで「秋葉原駅で」って見出しが載るとなんか胸がどきどきするようになっちゃったのは僕だけでしょうかねー。あーやだやだ。
2014年のMaxwell-v2(第2世代Maxwell)以降、NvidiaはGPUの周波数変更などの電源管理機能にアクセスするため署名付きのFirmwareを必要とするようになった。しかし、Nvidiaのクローズドなドライバから暗号化鍵やFirmwareを抽出することは、技術的にも、それを配布することはライセンス的にも困難となり、オープンソースカーネルドライバでの周波数変更ができなくなり、起動時の低い周波数に固定されることで、性能を出すことが不可能になった(Phoronix、Phoronixその2、True DMABUF support、Clarification on GPU support for Maxwell/Pascal archs and binary/OS relationship)。
その他のAMD製GPUやIntelのGPUは、Firmwareを再配布可能なライセンスにし、また両者とも(AMDは2015年以降、Intelはもっと前から)カーネルドライバをオープン(GPL)にしているため、そのような問題はない。カーネルドライバがクローズドなことの問題点はセキュリティや、バグを直すことができないことの他にも、DmabufなどのカーネルのAPIはGPLでライセンスされているため、クローズドなカーネルドライバでは提供することができないという点もある。
Nvidiaは2022年、カーネルドライバのオープンソースバージョンを並行して提供するようになった。それは、GPUのメモリや電源管理機能の多くを、カーネルドライバから、GPUの内部Firmware(NvidiaはGSP(GPU System Processor)と呼ぶ内部CPU)に移したことで、可能になった(秘密にしておきたい内部を切り離した)。これにより、オープンソースカーネルドライバで周波数変更ができるようになり、また、DmabufなどのGPLライセンスされたAPIを実装しサポートすることを妨げるライセンス上の問題はなくなった。
しかし、GSPはTuring-architecture以降に導入されたものであり、NvidiaのオープンカーネルドライバではPascal以前はサポートできない。したがって、PascalとMaxwell-v2はオープンソースドライバでは周波数変更できず、クローズドソースドライバでは、Dmabufなどがサポートされていないという現状にある。さらに、それらの制約は技術的なハードの問題ではなく、ライセンスとNvidiaの反オープンソース的経営方針によるものだ。
この間、Intelはオープンソースカーネルドライバを提供し続け、またユーザースペースでも(Mesaでのi965, Iris, ANV)などオープンソースに貢献し続けた。また、AMDも2015年からカーネルドライバをオープンにし、ユーザースペースドライバを作るための情報を提供し、コミュニティベースのMesaでのRADVなどが販売中 - Steam Deなどにも使われている。このまま、PascalやMaxwell-v2は数年後Nvidiaのサポート対象から外れ、オープンソースカーネルドライバでの周波数変更もできないまま、死んだハードウェアになっていくのだろうか?
Microsoft Store 版の Windows Subsystem for Linux (WSL) がバージョン 1.0.0 に到達した (リリースノート、 BetaNews の記事)。
前のバージョン 0.70.8 がリリースされたのは 11 月 5 日だが、それから 10 日ほどで一気にバージョン 1.0.0 まで進んだ。「Preview」のラベルも外れ、非 Insider 環境の Windows 10 / 11 (ビルド 19041 以降) での利用も可能になっている。
多数の修正点や改善点が列挙されていたバージョン 0.70.8 のリリースノートとは異なり、バージョン 1.0.0 の変更内容は「Preview」ラベルが外れたことのほか、以下の 2 点のみ。
- ブート中に /tmp/.X11-unix ソケットが削除されないよう generator.early のオーバーライドを使用
- ブート中に systemd がタイムアウトする問題を修正するため、systemd 用の pty を作成しない
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy