FUJITA Tomonori

219 posts

FUJITA Tomonori banner
FUJITA Tomonori

FUJITA Tomonori

@brewaddict

Hoppy beer lover, dad of a girl, former Linux kernel dev, creator of https://t.co/QqggvDIqXJ, https://t.co/vibiuYnSAZ, https://t.co/j6LmYb414K, https://t.co/pY9qHAtA3s

가입일 Ekim 2018
9 팔로잉1.4K 팔로워
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
RustのBGP実装、RustyBGPにLinuxカーネルのルーティングテーブル操作機能を追加しました。GoBGPも同機能をサポートしていますが、FRR/Zebraを使っているため、特定のバージョンに依存するなどセットアップが面倒でした。RustyBGPは自前で実装しているので、簡単に使えます。 github.com/osrg/rustybgp
日本語
0
13
45
3.6K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
実装していた i8/i16 のアトミック操作サポートがマージされました。Rustドライバでは標準ライブラリのアトミック型は使用せず、Linuxカーネル独自のRustアトミック型を使用します。
FUJITA Tomonori@brewaddict

Linuxカーネルは、Rustの標準ライブラリのアトミック型を使わずに、独自のアトミック型を実装しています。その背景と、実装中のi8/i16のサポートに向けた課題をまとめました。NTT Open Source:LinuxカーネルのRustアトミック型 medium.com/nttlabs/linux-…

日本語
1
29
112
10.5K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
LinuxカーネルでRustをサポートするアーキテクチャにPOWERPCが追加されるかもしれません。まだ、開発中でマージされていませんが、QEMUで動作しました。現在、Rustをサポートしているアーキテクチャは、 - arm - arm64 - loongarch - riscv - x86 (x86_64のみ)
FUJITA Tomonori tweet media
日本語
0
18
53
4.2K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
Linuxカーネルは、Rustの標準ライブラリのアトミック型を使わずに、独自のアトミック型を実装しています。その背景と、実装中のi8/i16のサポートに向けた課題をまとめました。NTT Open Source:LinuxカーネルのRustアトミック型 medium.com/nttlabs/linux-…
FUJITA Tomonori tweet media
日本語
0
125
495
56K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
今週、実験的な扱いが終了し、Linuxカーネルの正式な機能になることが決まったRust。実は、6月にリリースされたAndroid 16には、Rustで実装されたカーネルモジュールが含まれており、すでに広く使われている。 @kernel.org/" target="_blank" rel="nofollow noopener">lore.kernel.org/rust-for-linux…
日本語
0
6
23
2.7K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
LinuxカーネルのRustメンテナーが1人辞めました。過去には論争がきっかけでの辞任もありましたが、今回はそうではなく、すでにこの2年間ほどは活動しておらず、辞任しました。カーネル内のRustコードは順調に増加しており、現在、もっともRustのコードを実装しているのはNVIDIAの開発者たち。
TechFeed公式@techfeedapp

プログラミングカテゴリーで、今TechFeedで人気の記事はこちら! 「Rust for Linuxカーネル共同メンテナーが正式に退任」 techfeed.io/entries/6924c2…

日本語
0
2
4
1.1K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
@a_small_robot It probably depends on the workload. The design using channels allocates a large number of objects, which increases GC pressure and can degrade performance.
English
0
0
4
123
beep boop
beep boop@a_small_robot·
@brewaddict I would naively expect mutex to be slower at big updates, I guess it's ok?
English
1
0
1
183
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
GoBGP v4.0 is coming early next month. Now using Go’s new netip and slog libraries instead of net and logrus, and replacing channel-based routing table access with mutex. Major memory improvements expected.
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

GoBGP v3.37.0 will be the final release in the 3.x series. The next version will be 4.x and will introduce breaking changes, meaning it will not be backward compatible with the 3.x API. github.com/osrg/gobgp/rel…

English
1
4
19
5.7K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
LinuxカーネルのRustサポートを牽引してきた、Rust版のAndroid Binderドライバがついにマージされました。今は、C版とRust版の両方のドライバがありますが、将来的には、Rust版のドライバが標準で使われるようになるのでしょうか。
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

Googleは、Androidで使用されているbinderドライバをRustで書き換えることを目指しており、そのために必要な抽象化が少しずつLinuxカーネルに取り込まれている。LinuxのRustサポートの将来は分からないが、C版のbinderドライバがRust版で置き換えられると、Rustをやめるのは難しくなりそう

日本語
0
12
14
2.4K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
Rustの型システムを使ったLinuxカーネルのタイマーAPI設計を考えてみました。Cでは防ぎにくいAPI誤用も、コンパイルエラーで防ぐ仕組みになっています。NTT Open Source:Rustの型システムでLinuxカーネルのバグを防ぐ medium.com/nttlabs/linux-…
日本語
0
37
206
87.5K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
半年越しで、C言語を使わずに、Rustのインラインアセンブリ機能を使い、Linuxカーネルのデバッグ情報を表示するアセンブリコードを実行する機能がマージされました。CPUレジスタや関数呼び出し履歴、ソースコード位置などに関する正確な情報が表示可能に
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

Rustのインラインアセンブラ機能を使って、Rustとアセンブリ言語を組みあわせ、実行中のアドレスやソースコード情報などのデバッグ情報を表示するLinuxカーネルの機能を実装してみました。NTT Open Source:Rustで実装するLinuxカーネル(アセンブリ言語編) medium.com/nttlabs/rust-i…

日本語
2
141
568
59.2K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
私が実装し、Linuxカーネルにマージされた初のRust製デバイスドライバを題材に使った記事がLWNに掲載されています。このイーサネットPHYのドライバは100行ほどとシンプルで、C言語版との比較を通じて、カーネルでのRust実装の初歩や両言語の違いが学べる内容 lwn.net/Articles/10252…
FUJITA Tomonori tweet media
日本語
0
129
507
38.3K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
ARM GPU用Rust製ドライバ「Tyr」が発表されました。Linuxカーネルの既存のCドライバの置き換えを目指し、ARM・Google・Collaboraのエンジニアが開発中。Android端末やSBCで使わているGPU。動機は明言されていませんが、過去に発生した脆弱性問題が背景かもしれません @collabora.com/" target="_blank" rel="nofollow noopener">lore.kernel.org/rust-for-linux…
日本語
0
8
20
2.9K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
Rustのデバッグ情報APIに、C言語連携のため、null終端されたソースファイル名を返す関数が追加された。Linuxカーネルでの必要性のために提案されたが、一度はリジェクトされるなど、RustのC連携強化は開発者間で温度差がある印象。Linuxカーネルに限らず、C連携で使える機能 github.com/rust-lang/rust…
FUJITA Tomonori tweet media
日本語
0
0
7
1.6K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
Linuxカーネル6.16-rc1で、新しいRust版のCPU周波数を制御する汎用CPUfreqドライバがマージされました。主にARMで使われるDevice Tree用。既存のC版ドライバとの関係が不明ですが、CPUfreqサブシステムメンテナーが実装し、あまり議論されずにマージされました。将来的にC版を置き換える?
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

LinuxカーネルにRustの新しいドライバがマージされました。Red Hatが開発を主導しているNVIDIA GPUのドライバで、古いハードウェアのサポートを止め、現在のCのドライバよりシンプルなものを目指している模様。名前がNVIDIAが以前に公開したOSSのドライバの通称と一緒ですが、別物です。

日本語
0
4
25
3.6K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
半年越しで、LinuxカーネルにRustのInstant / Duration相当の型がマージされました。ドライバがHW初期化待ちなどタイマー処理に利用予定。起動時間ベースや外部から設定される時間など複数のタイマーソースに対応するため、今後、Instant型はジェネリック化され、標準ライブラリとはかなり異なるものに
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

RustはOSカーネルや組み込みシステム向けに機能限定のcoreライブラリを提供しているが、Linuxカーネルは利用できないデータ型を置き換える独自の型をたくさん導入しています。例えば、期間を扱うDuration型は、生成時に異常な入力値でpanicしてしまうなどの問題があり、代用品を開発中

日本語
0
42
117
17.5K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
GoBGP v3.37.0 will be the final release in the 3.x series. The next version will be 4.x and will introduce breaking changes, meaning it will not be backward compatible with the 3.x API. github.com/osrg/gobgp/rel…
English
0
7
27
5.4K
FUJITA Tomonori
FUJITA Tomonori@brewaddict·
LinuxカーネルにRustの新しいドライバがマージされました。Red Hatが開発を主導しているNVIDIA GPUのドライバで、古いハードウェアのサポートを止め、現在のCのドライバよりシンプルなものを目指している模様。名前がNVIDIAが以前に公開したOSSのドライバの通称と一緒ですが、別物です。
FUJITA Tomonori tweet media
FUJITA Tomonori@brewaddict

LinuxカーネルがRustをサポートしてから約2年経過し、採用済みのRust製ドライバは、私が実装した2種類のイーサネットPHYドライバとnull blockドライバ、パニック時のQRコード表示ドライバの4つ。日々変化する大規模なC言語プロジェクトにRustを導入する際のさまざまな課題が見えてきた段階でしょうか

日本語
0
105
275
35.5K